Fixups to ATA ACPI hotplug
authorMatthew Garrett <mjg59@srcf.ucam.org>
Mon, 19 May 2008 16:29:34 +0000 (17:29 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Mon, 19 May 2008 21:55:18 +0000 (17:55 -0400)
commitae6c23c4e1ec9720b99e1e6850fe47c6c7fddbb3
tree645210471902a33b044cdf9f9e06620677b01835
parent50af2fa1e18d0ab411d06bf727ecadb7e01721e9
Fixups to ATA ACPI hotplug

The libata-acpi.c code currently accepts hotplug messages from both the
port and the device. This does not match the behaviour of the bay
driver, and may result in confusion when two hotplug requests are
received for the same device. This patch limits the hotplug notification
to removable ACPI devices, which in turn allows it to use the _STA
method to determine whether the device has been removed or inserted.
On removal, devices are marked as detached. On insertion, a hotplug scan
is started. This should avoid lockups caused by the ata layer attempting
to scan devices which have been removed. The uevent sending is moved
outside the spinlock in order to avoid a warning generated by it firing
when interrupts are disabled.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-acpi.c