On Mon, Jan 19, 2015 at 12:05:58AM +0900, Akinobu Mita wrote: > While accessing a scsi_device, the use count of the underlying LLDD > module is incremented. The module reference is retrieved through > .module field of struct scsi_host_template. > > This mapping between scsi_device and underlying LLDD module works well > except some drivers which consist with the core driver and the actual > LLDDs and scsi_host_template is defined in the core driver. In these > cases, the actual LLDDs can be unloaded even if the scsi_device is > being accessed. > > This patch series fixes the module reference mismatch problem for > ufs, usb-storage, esp_scsi, ahci_platform, and pata_platform drivers > by moving owner module reference field from struct scsi_host_template > to struct Scsi_Host and allowing the LLDDs to set their correct module > reference. Hmmm, can't we just move sht definitions to actual LLDDs? libata can do that easily. sht, as its name implies, is the template for creating the scsi_hosts of a given type. We're now just moving module ownership from sht definition site to whatever callsite the actual instance is being created which can also be wrapped in a separate layer requiring explicit propagation. Why not just propagate sht's directly? What's the difference? Thanks. -- tejun -- 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