[IBBUS] Add back invalidation of Device Removal Relations as they were incorrectly...
[mirror/winof/.git] / core / bus / kernel / bus_port_mgr.c
index 1cfeb67..bd8fab3 100644 (file)
@@ -926,6 +926,10 @@ port_mgr_port_add(
        IoInvalidateDeviceRelations(\r
                p_port_ext->pdo.h_ca->obj.p_ci_ca->verbs.p_hca_dev, BusRelations );\r
 \r
+       /* Invalidate removal relations for the bus driver. */\r
+       IoInvalidateDeviceRelations(\r
+               p_bfi->p_bus_ext->cl_ext.p_pdo, RemovalRelations );\r
+\r
        BUS_EXIT( BUS_DBG_PNP );\r
        return IB_SUCCESS;\r
 }\r
@@ -1120,6 +1124,10 @@ cl_status_t _port_mgr_pkey_add( IN       pkey_array_t    *req_pkeys,
        IoInvalidateDeviceRelations(\r
                pmatched_guid_ext->pdo.h_ca->obj.p_ci_ca->verbs.p_hca_dev, BusRelations );\r
 \r
+       /* Invalidate removal relations for the bus driver. */\r
+       IoInvalidateDeviceRelations(\r
+               p_bfi->p_bus_ext->cl_ext.p_pdo, RemovalRelations );\r
+\r
        BUS_EXIT( BUS_DBG_PNP );\r
        return CL_SUCCESS;\r
 }\r
@@ -1229,6 +1237,10 @@ port_mgr_port_remove(
                p_ext->cl_ext.vfptr_pnp_po->identity, p_ext->cl_ext.p_self_do, p_ext,\r
                p_ext->b_present, p_ext->b_reported_missing ) );\r
 \r
+       /* Invalidate removal relations for the bus driver. */\r
+       IoInvalidateDeviceRelations(\r
+               p_bfi->p_bus_ext->cl_ext.p_pdo, RemovalRelations );\r
+\r
        /* Invalidate bus relations for the HCA. */\r
        IoInvalidateDeviceRelations(\r
                p_ext->h_ca->obj.p_ci_ca->verbs.p_hca_dev, BusRelations );\r