]> git.baikalelectronics.ru Git - kernel.git/commit
[SCSI] scsi_sysfs: restore prep_fn when ULD is removed
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 2 Jan 2008 17:14:30 +0000 (11:14 -0600)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 2 Jan 2008 19:08:00 +0000 (13:08 -0600)
commitbbf13ce2a48c9c17ac962426b36670eca0a41f98
treebb5d45ec9af0dc3cf22d3a21364c13f6ae2e5358
parent37f65fa6789b358d472ad876b4f0961e3c700f97
[SCSI] scsi_sysfs: restore prep_fn when ULD is removed

A recent bug report:

http://bugzilla.kernel.org/show_bug.cgi?id=9674

Was caused because the ULDs now set their own prep functions, but
don't necessarily reset the prep function back to the SCSI default
when they are removed.  This leads to panics if commands are sent to
the device after the module is removed because the prep_fn is still
pointing to the old module code.  The fix for this is to implement a
bus remove method that resets the prep_fn pointer correctly before
calling the ULD specific driver remove method.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/scsi_lib.c
drivers/scsi/scsi_priv.h
drivers/scsi/scsi_sysfs.c