On 04/05/2012 01:00 PM, Bart Van Assche wrote: > On 04/05/12 13:58, Tomas Henzl wrote: > >> When a rmmod is tried then in some cases the kernel is not able to handle a paging request: >> [ 727.154296] BUG: unable to handle kernel paging request at ffffffffa01874b8 >> From what I observerved it happens when when we call the rmmod only a while after a modprobe >> (in this case it is the mpt2sas driver). More accurately said, it happens when rmmod is called >> while scsi async is still at work. The driver is removed but the scsi_host_template is still filled >> with now invalid pointers, in this case it is most likely the hostt->scan_finished which causes the BUG. > > > Are you sure the above analysis is correct ? I've triggered several > million device removal events with ib_srp but I haven't ever seen the > above crash. ib_srp uses scsi_scan_target when the target is added so you are going down a different code path. If you are rmmoding ib_srp while the driver is calling scsi_scan_target() that would be a similar problem. Tomas's bug occurs when drivers use scsi_scan_host, use the async scsi device scanning, and then rmmod the LLD while the scan is still in progress. I think a general problem that we might hit similar to Tomas's issue is when scanning from userspace then rmmoding the driver. Maybe that means we need a more generic fix? Or, maybe that could be handled by having scsi_scan() do a try_module_get before scanning. -- 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