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)
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>

No differences found