aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-eh.c
diff options
context:
space:
mode:
authorMikael Pettersson <mikpe@it.uu.se>2012-09-16 20:53:43 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-17 08:43:54 -0800
commit1bf35799a1d4fa0db11cdfa0da020fabde140982 (patch)
treea2a2213c3b41c7b4ca0e18bd652e5cbfa500e110 /drivers/ata/libata-eh.c
parent78c9672f78f8bdf6321f6bead28c7dbd251ddd24 (diff)
downloadkernel_samsung_smdk4412-1bf35799a1d4fa0db11cdfa0da020fabde140982.zip
kernel_samsung_smdk4412-1bf35799a1d4fa0db11cdfa0da020fabde140982.tar.gz
kernel_samsung_smdk4412-1bf35799a1d4fa0db11cdfa0da020fabde140982.tar.bz2
sata_promise: fix hardreset lockdep error
commit 3100d49d3cd236443faae9d81137c81b22d36003 upstream. 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 <mikpe@it.uu.se> Tested-by: Adko Branil <adkobranil@yahoo.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/ata/libata-eh.c')
0 files changed, 0 insertions, 0 deletions