]> git.baikalelectronics.ru Git - kernel.git/commit
ata_piix: fix locking around SIDPR access
authorTejun Heo <tj@kernel.org>
Tue, 20 Jul 2010 14:20:01 +0000 (16:20 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Sun, 1 Aug 2010 23:46:39 +0000 (19:46 -0400)
commit308401722ca920cb2fa914ead0668b0047ed1f4c
tree9e25256c54df4dfe7664e7bd6c45b55f99cfea66
parentc1ba3c5c9b0ba4cf57ac38cdef1efa7e7e4e1f5a
ata_piix: fix locking around SIDPR access

SIDPR window registers are shared across ports and as each access is
done in two steps, accesses to different ports under EH may race.
This primarily is caused by incorrect host locking in EH context and
should be fixed by defining locking requirements for each EH operation
which can be used during EH and enforcing them but for now work around
the problem by adding a dedicated SIDPR lock and grabbing it for each
SIDPR access.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Mark Knecht <markknecht@gmail.com>
Reported-by: Paul Check <paul@thechecks.ca>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/ata_piix.c