Re: RFC: ACPI/scsi/libata integration and hotswap

Matthew Garrett
2005-12-08T17:19:12Z

On Thu, Dec 08, 2005 at 02:52:57PM +0000, Matthew Garrett wrote:

> Hrm. I guess this can be implemented pretty much just by cutting and
> pasting the code into drivers/acpi rather than drivers/scsi. Would that
> be considered an improvement?

This turns out to be quite difficult, and I can't see a clean way of
doing it without touching scsi or rewriting chunks of the ACPI glue
code.

The basic flow of code required here is:

1) scsi layer registers a new device
2) platform_notify is called, which is (in this case)
acpi_platform_notify
3) acpi_platform_notify checks whether it knows dev->bus. If so, it
calls appropriate callbacks.

Without touching scsi, there doesn't seem to be any way for (3) to work
if scsi is a module. Would a simple

#ifdef CONFIG_ACPI
acpi_scsi_init(&scsi_bus_type)
#endif

in the scsi code be acceptable? If not, then we have some difficulty.
The acpi glue code has to be statically linked in, so it can't rely on
anything that directly references the scsi code.
--
Matthew Garrett | mjg59@srcf.ucam.org