Cc'ing Shane. On Thu, Jun 06, 2013 at 02:33:20PM +0800, Yu Liu wrote: > Hi all, > > I met a lockup while I was running IO test on disks connected > with an fbs enabled pmp board and an ahci host. > > looks like the reason for the lockup is as below: > ahci_interrert() > | spin_lock(&host->lock); // get host->lock > | ahci_port_intr() > | ahci_error_intr() // status & PORT_IRQ_ERROR > | ata_link_online() // if fbs_enabled > | sata_scr_read() > | sata_pmp_scr_read() // using pmp > | ata_exec_internal() > | ata_exec_internal_sg() > | spin_lock_irqsave(ap->lock, flags); > since ap->lock == &host->lock, > these two spin_lock get conflict > > Can someone confirm the issue? Did I miss anything? Yeah, it's a bug. ata_link_online() can't be called from interrupt handlers. Shane? Can you please look into it? What's the purpose of ata_link_online() in ahci_error_intr()? Thanks. -- tejun -- 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