[ofw] patch: Fix bug 1307 (https://bugs.openfabrics.org//show_bug.cgi?id=1307)

Tzachi Dar tzachid at mellanox.co.il
Mon Oct 27 15:35:46 PDT 2008


This bug happens when trying to disable the HCA while opensm is running.
>From the perspective of ib_bus there is a pnp query of query_remove. 
The bus driver answers that remove can happen and also calls
cl_obj_destroy( &p_ext->p_port_mgr->obj );
 
Since the HCA answers query_remove with no, we get a cancel_remvove.
Which we don't handle. (that is 
p_port_mgr is not being created again).
 
More than that, since now there is no bus driver we also get a surprise
removal from the pnp manager.
In this function we have been using p_port_mgr which is now null => blue
screen.
 
Our solution to the problem is simple, we only destroy p_port_mgr on the
function fdo_release_resources()
(we do nothing on the query remove).
 
Please review the attached patch.
 
Index: Q:/projinf2/trunk/core/bus/kernel/bus_pnp.c
===================================================================
--- Q:/projinf2/trunk/core/bus/kernel/bus_pnp.c (revision 3373)
+++ Q:/projinf2/trunk/core/bus/kernel/bus_pnp.c (working copy)
@@ -428,13 +428,6 @@
 
  //TODO: Fail outstanding I/O operations.
 
- if ( p_ext->p_port_mgr && p_bfi->p_port_mgr )
-  cl_obj_destroy( &p_ext->p_port_mgr->obj );
-
- if ( p_ext->p_iou_mgr && p_bfi->p_iou_mgr )
-   cl_obj_destroy( &p_ext->p_iou_mgr->obj );
-
-
  *p_action = IrpSkip;
  /* The FDO driver must set the status even when passing down. */
  p_irp->IoStatus.Status = STATUS_SUCCESS;
@@ -468,11 +461,15 @@
 
  //TODO: Fail outstanding I/O operations.
 
- if ( p_ext->p_port_mgr && p_bfi->p_port_mgr )
+ if ( p_ext->p_port_mgr && p_bfi->p_port_mgr ) {
   cl_obj_destroy( &p_ext->p_port_mgr->obj );
+  p_ext->p_port_mgr = NULL;
+ }
 
- if ( p_ext->p_iou_mgr && p_bfi->p_iou_mgr )
+ if ( p_ext->p_iou_mgr && p_bfi->p_iou_mgr ) {
    cl_obj_destroy( &p_ext->p_iou_mgr->obj );
+  p_ext->p_iou_mgr = NULL;
+ }
 
  BUS_PRINT( BUS_DBG_PNP, ("Releasing BusFilter %s\n", p_bfi->whoami ));
  if (p_bfi) {

 
Thanks
Tzachi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20081028/7727fa23/attachment.html>


More information about the ofw mailing list