rpms/kernel/F-9 linux-2.6-libata-always-do-follow-up-SRST-if-requested.patch, NONE, 1.1 linux-2.6-libata-fix-EH-action-overwriting-in-ata_eh_reset.patch, NONE, 1.1 linux-2.6-libata-sata_nv-disable-swncq.patch, NONE, 1.1 kernel.spec, 1.795, 1.796
Chuck Ebbert
cebbert at fedoraproject.org
Mon Oct 13 20:13:36 UTC 2008
- Previous message (by thread): rpms/e2fsprogs/devel .cvsignore, 1.27, 1.28 e2fsprogs.spec, 1.122, 1.123 sources, 1.27, 1.28 e2fsprogs-fix-blkid.patch, 1.1, NONE
- Next message (by thread): rpms/tomcat6/devel tomcat6-6.0.init,1.1,1.2 tomcat6.spec,1.3,1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9922
Modified Files:
kernel.spec
Added Files:
linux-2.6-libata-always-do-follow-up-SRST-if-requested.patch
linux-2.6-libata-fix-EH-action-overwriting-in-ata_eh_reset.patch
linux-2.6-libata-sata_nv-disable-swncq.patch
Log Message:
libata: always do follow-up SRST if hardreset returned -EAGAIN
libata: fix EH action overwriting in ata_eh_reset()
libata: sata_nv: SWNCQ should be disabled by default (#463034)
linux-2.6-libata-always-do-follow-up-SRST-if-requested.patch:
--- NEW FILE linux-2.6-libata-always-do-follow-up-SRST-if-requested.patch ---
From: Tejun Heo <tj at kernel.org>
Date: Thu, 31 Jul 2008 07:08:02 +0000 (+0900)
Subject: libata: always do follow-up SRST if hardreset returned -EAGAIN
X-Git-Tag: v2.6.27-rc5~51^2~6
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=5dbfc9cb59d4ad75199949d7dd8a8c6d7bc518df
libata: always do follow-up SRST if hardreset returned -EAGAIN
As an optimization, follow-up SRST used to be skipped if
classification wasn't requested even when hardreset requested it via
-EAGAIN. However, some hardresets can't wait for device readiness and
skipping SRST can cause timeout or other failures during revalidation.
Always perform follow-up SRST if hardreset returns -EAGAIN. This
makes reset paths more predictable and thus less error-prone.
While at it, move hardreset error checking such that it's done right
after hardreset is finished. This simplifies followup SRST condition
check a bit and makes the reset path easier to modify.
Signed-off-by: Tejun Heo <tj at kernel.org>
Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
---
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index c98909b..d4dad47 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2171,18 +2171,12 @@ static int ata_do_reset(struct ata_link *link, ata_reset_fn_t reset,
}
static int ata_eh_followup_srst_needed(struct ata_link *link,
- int rc, int classify,
- const unsigned int *classes)
+ int rc, const unsigned int *classes)
{
if ((link->flags & ATA_LFLAG_NO_SRST) || ata_link_offline(link))
return 0;
- if (rc == -EAGAIN) {
- if (classify)
- return 1;
- rc = 0;
- }
- if (rc != 0)
- return 0;
+ if (rc == -EAGAIN)
+ return 1;
if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
return 1;
return 0;
@@ -2309,9 +2303,11 @@ int ata_eh_reset(struct ata_link *link, int classify,
ehc->i.flags |= ATA_EHI_DID_SOFTRESET;
rc = ata_do_reset(link, reset, classes, deadline);
+ if (rc && rc != -EAGAIN)
+ goto fail;
if (reset == hardreset &&
- ata_eh_followup_srst_needed(link, rc, classify, classes)) {
+ ata_eh_followup_srst_needed(link, rc, classes)) {
/* okay, let's do follow-up softreset */
reset = softreset;
@@ -2326,10 +2322,6 @@ int ata_eh_reset(struct ata_link *link, int classify,
ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
rc = ata_do_reset(link, reset, classes, deadline);
}
-
- /* -EAGAIN can happen if we skipped followup SRST */
- if (rc && rc != -EAGAIN)
- goto fail;
} else {
if (verbose)
ata_link_printk(link, KERN_INFO, "no reset method "
linux-2.6-libata-fix-EH-action-overwriting-in-ata_eh_reset.patch:
--- NEW FILE linux-2.6-libata-fix-EH-action-overwriting-in-ata_eh_reset.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a674050e068a2919908730279f0b731ae6d2e005
Commit: a674050e068a2919908730279f0b731ae6d2e005
Parent: eb3a55a9f43f0f8e770c2abf70e65bdda2d5ff1e
Author: Tejun Heo <tj at kernel.org>
AuthorDate: Thu Jul 31 16:07:04 2008 +0900
Committer: Jeff Garzik <jgarzik at redhat.com>
CommitDate: Fri Aug 22 02:19:39 2008 -0400
libata: fix EH action overwriting in ata_eh_reset()
ehc->i.action got accidentally overwritten to ATA_EH_HARD/SOFTRESET in
ata_eh_reset(). The original intention was to clear reset action
which wasn't selected. This can cause unexpected behavior when other
EH actions are scheduled together with reset. Fix it.
Signed-off-by: Tejun Heo <tj at kernel.org>
Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
---
drivers/ata/libata-eh.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index a570ca4..c98909b 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2251,10 +2251,10 @@ int ata_eh_reset(struct ata_link *link, int classify,
ehc->i.action &= ~ATA_EH_RESET;
if (hardreset) {
reset = hardreset;
- ehc->i.action = ATA_EH_HARDRESET;
+ ehc->i.action |= ATA_EH_HARDRESET;
} else if (softreset) {
reset = softreset;
- ehc->i.action = ATA_EH_SOFTRESET;
+ ehc->i.action |= ATA_EH_SOFTRESET;
}
if (prereset) {
linux-2.6-libata-sata_nv-disable-swncq.patch:
--- NEW FILE linux-2.6-libata-sata_nv-disable-swncq.patch ---
From: Chuck Ebbert <cebbert at redhat.com>
Subject: ata: sata_nv SWNCQ should be disabled by default
Reverts: d21279f4125893c63ec285962e1f2164b4d71117
libata: sata_nv: SWNCQ should be disabled by default
https://bugzilla.redhat.com/show_bug.cgi?id=463034
Signed-off-by: Chuck Ebbert <cebbert at redhat.com>
---
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index b2eb572..8bb8ba1 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -532,7 +532,7 @@ MODULE_DEVICE_TABLE(pci, nv_pci_tbl);
MODULE_VERSION(DRV_VERSION);
static int adma_enabled;
-static int swncq_enabled = 1;
+static int swncq_enabled;
static void nv_adma_register_mode(struct ata_port *ap)
{
@@ -2485,7 +2485,7 @@ module_exit(nv_exit);
module_init(nv_init);
module_exit(nv_exit);
module_param_named(adma, adma_enabled, bool, 0444);
-MODULE_PARM_DESC(adma, "Enable use of ADMA (Default: true)");
+MODULE_PARM_DESC(adma, "Enable use of ADMA (Default: false)");
module_param_named(swncq, swncq_enabled, bool, 0444);
-MODULE_PARM_DESC(swncq, "Enable use of SWNCQ (Default: true)");
+MODULE_PARM_DESC(swncq, "Enable use of SWNCQ (Default: false)");
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.795
retrieving revision 1.796
diff -u -r1.795 -r1.796
--- kernel.spec 11 Oct 2008 14:50:33 -0000 1.795
+++ kernel.spec 13 Oct 2008 20:13:05 -0000 1.796
@@ -660,10 +660,13 @@
# libata
Patch670: linux-2.6-ata-quirk.patch
Patch671: linux-2.6-libata-pata_it821x-driver-updates-and-reworking.patch
-Patch674: linux-2.6-sata-eeepc-faster.patch
-Patch675: linux-2.6-libata-pata_marvell-play-nice-with-ahci.patch
-Patch676: linux-2.6-libata-fix-a-large-collection-of-DMA-mode-mismatches.patch
-Patch677: linux-2.6-libata-lba-28-48-off-by-one-in-ata.h.patch
+Patch672: linux-2.6-sata-eeepc-faster.patch
+Patch673: linux-2.6-libata-pata_marvell-play-nice-with-ahci.patch
+Patch674: linux-2.6-libata-fix-a-large-collection-of-DMA-mode-mismatches.patch
+Patch675: linux-2.6-libata-lba-28-48-off-by-one-in-ata.h.patch
+Patch676: linux-2.6-libata-always-do-follow-up-SRST-if-requested.patch
+Patch677: linux-2.6-libata-fix-EH-action-overwriting-in-ata_eh_reset.patch
+Patch678: linux-2.6-libata-sata_nv-disable-swncq.patch
Patch680: linux-2.6-wireless.patch
Patch681: linux-2.6-wireless-pending.patch
@@ -1248,6 +1251,11 @@
ApplyPatch linux-2.6-libata-fix-a-large-collection-of-DMA-mode-mismatches.patch
# libata breaks lba28 rules
ApplyPatch linux-2.6-libata-lba-28-48-off-by-one-in-ata.h.patch
+# fix libata error handling
+ApplyPatch linux-2.6-libata-always-do-follow-up-SRST-if-requested.patch
+ApplyPatch linux-2.6-libata-fix-EH-action-overwriting-in-ata_eh_reset.patch
+# disable swncq on sata_nv
+ApplyPatch linux-2.6-libata-sata_nv-disable-swncq.patch
# wireless patches headed for 2.6.26
#ApplyPatch linux-2.6-wireless.patch
@@ -1922,6 +1930,11 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
%changelog
+* Mon Oct 13 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.26.6-69
+- libata: always do follow-up SRST if hardreset returned -EAGAIN
+- libata: fix EH action overwriting in ata_eh_reset()
+- libata: sata_nv: SWNCQ should be disabled by default (#463034)
+
* Sat Oct 11 2008 Dennis Gilmore <dennis at ausil.us> 2.6.26.6-68
- disable atl1e on sparc64
- backport syscall tracing to use the new tracehook.h entry points on sparc64
- Previous message (by thread): rpms/e2fsprogs/devel .cvsignore, 1.27, 1.28 e2fsprogs.spec, 1.122, 1.123 sources, 1.27, 1.28 e2fsprogs-fix-blkid.patch, 1.1, NONE
- Next message (by thread): rpms/tomcat6/devel tomcat6-6.0.init,1.1,1.2 tomcat6.spec,1.3,1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list