Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sata_promise: fix hardreset lockdep error
sata_promise's pdc_hard_reset_port() needs to serialize because it flips a port-specific bit in controller register that's shared by all ports. The code takes the ata host lock for this, but that's broken because an interrupt may arrive on our irq during the hard reset sequence, and that too will take the ata host lock. With lockdep enabled a big nasty warning is seen. Fixed by adding private state to the ata host structure, containing a second lock used only for serializing the hard reset sequences. This eliminated the lockdep warnings both on my test rig and on the original reporter's machine. Signed-off-by: Mikael Pettersson <[email protected]> Tested-by: Adko Branil <[email protected]> Cc: [email protected] Signed-off-by: Jeff Garzik <[email protected]>
- Loading branch information