Merge branches 'core', 'cxgb4', 'iser', 'mlx5' and 'ocrdma' into for-next
[linux-2.6-block.git] / drivers / infiniband / core / uverbs_main.c
index c73b22a257fe3c92c9398e5318acbc4ffa569b90..71ab83fde47292e95315c2170b00fec6277b7861 100644 (file)
@@ -477,6 +477,7 @@ static void ib_uverbs_async_handler(struct ib_uverbs_file *file,
 
        entry->desc.async.element    = element;
        entry->desc.async.event_type = event;
+       entry->desc.async.reserved   = 0;
        entry->counter               = counter;
 
        list_add_tail(&entry->list, &file->async_file->event_list);
@@ -502,6 +503,10 @@ void ib_uverbs_qp_event_handler(struct ib_event *event, void *context_ptr)
 {
        struct ib_uevent_object *uobj;
 
+       /* for XRC target qp's, check that qp is live */
+       if (!event->element.qp->uobject || !event->element.qp->uobject->live)
+               return;
+
        uobj = container_of(event->element.qp->uobject,
                            struct ib_uevent_object, uobject);