]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.drivers/libata-eh-fix-slave-link-EH-action-mask-handling
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / libata-eh-fix-slave-link-EH-action-mask-handling
diff --git a/src/patches/suse-2.6.27.31/patches.drivers/libata-eh-fix-slave-link-EH-action-mask-handling b/src/patches/suse-2.6.27.31/patches.drivers/libata-eh-fix-slave-link-EH-action-mask-handling
new file mode 100644 (file)
index 0000000..a716d80
--- /dev/null
@@ -0,0 +1,35 @@
+From a568d1d2e2aff4f114b087c06bfd350e945ad6cf Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj@kernel.org>
+Date: Tue, 21 Oct 2008 20:37:21 +0900
+Subject: [PATCH] libata-eh: fix slave link EH action mask handling
+References: bnc#441420
+
+Slave link action mask is transferred to master link and all the EH
+actions are taken by the master link.  ata_eh_about_to_do() and
+ata_eh_done() are called with ATA_EH_ALL_ACTIONS to clear the slave
+link actions during transfer.  This always sets ATA_PFLAG_RECOVERED
+flag causing spurious "EH complete" messages.
+
+Don't set ATA_PFLAG_RECOVERED for slave link actions.
+
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Tejun Heo <teheo@suse.de>
+---
+ drivers/ata/libata-eh.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/drivers/ata/libata-eh.c
++++ b/drivers/ata/libata-eh.c
+@@ -1200,7 +1200,10 @@ void ata_eh_about_to_do(struct ata_link 
+       ata_eh_clear_action(link, dev, ehi, action);
+-      if (!(ehc->i.flags & ATA_EHI_QUIET))
++      /* About to take EH action, set RECOVERED.  Ignore actions on
++       * slave links as master will do them again.
++       */
++      if (!(ehc->i.flags & ATA_EHI_QUIET) && link != ap->slave_link)
+               ap->pflags |= ATA_PFLAG_RECOVERED;
+       spin_unlock_irqrestore(ap->lock, flags);