While testing the ibmvscsis driver, an oops was observed on module remove. This occurred due to some confusion regarding what layer owns the drvdata in the struct device for an ibmvscsis device. libsrp was overriding what ibmvscsis had already setup, so on module remove we go off a bad pointer. Since libsrp appears only to setup drvdata and never read the value, lets just remove setting it in libsrp and let the server driver own the field. Signed-off-by: Brian King <brking@xxxxxxxxxxxxxxxxxx> --- drivers/scsi/libsrp.c | 2 -- 1 file changed, 2 deletions(-) diff -puN drivers/scsi/libsrp.c~libsrp_fix_oops drivers/scsi/libsrp.c --- linux-2.6/drivers/scsi/libsrp.c~libsrp_fix_oops 2011-03-24 15:09:01.000000000 -0500 +++ linux-2.6-bjking1/drivers/scsi/libsrp.c 2011-03-24 15:09:17.000000000 -0500 @@ -126,8 +126,6 @@ int srp_target_alloc(struct srp_target * INIT_LIST_HEAD(&target->cmd_queue); target->dev = dev; - dev_set_drvdata(target->dev, target); - target->srp_iu_size = iu_size; target->rx_ring_size = nr; target->rx_ring = srp_ring_alloc(target->dev, nr, iu_size); _ -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html