libata used to claim only cmd ports for legacy SFF ports. Claim ctl ports too. Signed-off-by: Tejun Heo <htejun@xxxxxxxxx> --- This has been this way as long as I can remember. It's almost pleasant to see that it survived through all the devres/init rework. I guess it's time for a change. drivers/ata/libata-sff.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index e35d134..99a9f98 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c @@ -712,6 +712,7 @@ int ata_pci_prepare_native_host(struct pci_dev *pdev, struct ata_legacy_devres { unsigned int mask; unsigned long cmd_port[2]; + unsigned long ctl_port[2]; void __iomem * cmd_addr[2]; void __iomem * ctl_addr[2]; unsigned int irq[2]; @@ -764,12 +765,16 @@ static int ata_init_legacy_port(struct ata_port *ap, ctl_port = ATA_SECONDARY_CTL; } - /* request cmd_port */ + /* request cmd and ctl port */ if (request_region(cmd_port, 8, "libata")) legacy_dr->cmd_port[port_no] = cmd_port; - else { + + if (request_region(ctl_port, 8, "libata")) + legacy_dr->ctl_port[port_no] = ctl_port; + + if (!legacy_dr->cmd_port[port_no] || !legacy_dr->ctl_port[port_no]) { dev_printk(KERN_WARNING, host->dev, - "0x%0lX IDE port busy\n", cmd_port); + "0x%0lX/0x%0lX IDE port busy\n", cmd_port, ctl_port); return -EBUSY; } - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html