IB/core: Fix XRC race condition in ib_uverbs_open_qp
[cascardo/linux.git] / drivers / infiniband / core / uverbs_main.c
index c73b22a..bb6fea1 100644 (file)
@@ -502,6 +502,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);