Supporting ACPI drive hotswap

From: Matthew Garrett
Date: Sat Sep 24 2005 - 11:50:28 EST


ACPI provides a mechanism for noting which devices can be hotswapped and
notifying the system that this has happened. Hotswappable devices are
tagged with a _RMV token. What effectively needs to be done is this:

1) Find every device with an _RMV token, and install a notify handler
for it. This is fairly easy.

2) On notification, check whether the device is present or absent. This
can be done by calling the _STA method - alternatively it could
presumably be done through the appropriate IDE or SCSI layer. I believe
that we now have code that allows binding of ACPI devices to appropriate
busses.

3) If a device has been added, enumerate it and do appropriate messaging
to userspace (for device node creation and so forth). This ought to be
relatively easy?

4) If a device has been removed, we currently have problems. SATA
hotplugging is only supported on a subset of devices. The SATA laptop I
have here is an Intel ICH part, but uses the ata_piix driver (ahci won't
load) which isn't supposed to support hotswap. Unregistering devices in
the IDE layer has been broken for ages.

Is there any point in working on the first three of these points until
point four is more reasonable? What actually needs to be done to improve
this?
--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/