rpms/kernel/F-8 linux-2.6-libata-fix-hpt-svw-dma-masking.patch, NONE, 1.1 kernel.spec, 1.367, 1.368

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Thu Mar 6 20:57:02 UTC 2008


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3240

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-libata-fix-hpt-svw-dma-masking.patch 
Log Message:
* Thu Mar 06 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-22
- Fix libata DMA masking for HPT and SVW (possible fix for #433557)


linux-2.6-libata-fix-hpt-svw-dma-masking.patch:

--- NEW FILE linux-2.6-libata-fix-hpt-svw-dma-masking.patch ---
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6ddd68615ae9b21096545d7d6ab0f04113ae8b42
Commit:     6ddd68615ae9b21096545d7d6ab0f04113ae8b42
Parent:     29e8c3c304b62f31b799565c9ee85d42bd163f80
Author:     Alan Cox <alan at lxorguk.ukuu.org.uk>
AuthorDate: Tue Feb 26 13:35:54 2008 -0800
Committer:  Jeff Garzik <jeff at garzik.org>
CommitDate: Wed Mar 5 07:46:34 2008 -0500

    pata_hpt*, pata_serverworks: fix UDMA masking
    
    When masking, mask out the modes that are unsupported not the ones
    that are supported.  This makes life happier.
    
    Signed-off-by: Alan Cox <alan at redhat.com>
    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
    Signed-off-by: Jeff Garzik <jeff at garzik.org>
---
 drivers/ata/pata_hpt366.c      |    6 +++---
 drivers/ata/pata_hpt37x.c      |    6 +++---
 drivers/ata/pata_serverworks.c |    2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c
index 0713872..a742efa 100644
--- a/drivers/ata/pata_hpt366.c
+++ b/drivers/ata/pata_hpt366.c
@@ -27,7 +27,7 @@
 #include <linux/libata.h>
 
 #define DRV_NAME	"pata_hpt366"
-#define DRV_VERSION	"0.6.1"
+#define DRV_VERSION	"0.6.2"
 
 struct hpt_clock {
 	u8	xfer_speed;
@@ -180,9 +180,9 @@ static unsigned long hpt366_filter(struct ata_device *adev, unsigned long mask)
 		if (hpt_dma_blacklisted(adev, "UDMA",  bad_ata33))
 			mask &= ~ATA_MASK_UDMA;
 		if (hpt_dma_blacklisted(adev, "UDMA3", bad_ata66_3))
-			mask &= ~(0x07 << ATA_SHIFT_UDMA);
+			mask &= ~(0xF8 << ATA_SHIFT_UDMA);
 		if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4))
-			mask &= ~(0x0F << ATA_SHIFT_UDMA);
+			mask &= ~(0xF0 << ATA_SHIFT_UDMA);
 	}
 	return ata_pci_default_filter(adev, mask);
 }
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c
index 68eb349..9a10878 100644
--- a/drivers/ata/pata_hpt37x.c
+++ b/drivers/ata/pata_hpt37x.c
@@ -24,7 +24,7 @@
 #include <linux/libata.h>
 
 #define DRV_NAME	"pata_hpt37x"
-#define DRV_VERSION	"0.6.9"
+#define DRV_VERSION	"0.6.11"
 
 struct hpt_clock {
 	u8	xfer_speed;
@@ -281,7 +281,7 @@ static unsigned long hpt370_filter(struct ata_device *adev, unsigned long mask)
 		if (hpt_dma_blacklisted(adev, "UDMA", bad_ata33))
 			mask &= ~ATA_MASK_UDMA;
 		if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5))
-			mask &= ~(0x1F << ATA_SHIFT_UDMA);
+			mask &= ~(0xE0 << ATA_SHIFT_UDMA);
 	}
 	return ata_pci_default_filter(adev, mask);
 }
@@ -297,7 +297,7 @@ static unsigned long hpt370a_filter(struct ata_device *adev, unsigned long mask)
 {
 	if (adev->class == ATA_DEV_ATA) {
 		if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5))
-			mask &= ~ (0x1F << ATA_SHIFT_UDMA);
+			mask &= ~(0xE0 << ATA_SHIFT_UDMA);
 	}
 	return ata_pci_default_filter(adev, mask);
 }
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c
index 9c523fb..a589c0f 100644
--- a/drivers/ata/pata_serverworks.c
+++ b/drivers/ata/pata_serverworks.c
@@ -226,7 +226,7 @@ static unsigned long serverworks_csb_filter(struct ata_device *adev, unsigned lo
 
 	for (i = 0; (p = csb_bad_ata100[i]) != NULL; i++) {
 		if (!strcmp(p, model_num))
-			mask &= ~(0x1F << ATA_SHIFT_UDMA);
+			mask &= ~(0xE0 << ATA_SHIFT_UDMA);
 	}
 	return ata_pci_default_filter(adev, mask);
 }
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.367
retrieving revision 1.368
diff -u -r1.367 -r1.368
--- kernel.spec	6 Mar 2008 16:28:23 -0000	1.367
+++ kernel.spec	6 Mar 2008 20:56:27 -0000	1.368
@@ -655,6 +655,7 @@
 Patch640: linux-2.6-defaults-nommconf.patch
 Patch660: linux-2.6-libata-ali-atapi-dma.patch
 Patch670: linux-2.6-ata-quirk.patch
+Patch671: linux-2.6-libata-fix-hpt-svw-dma-masking.patch
 
 Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
@@ -1217,6 +1218,8 @@
 ApplyPatch linux-2.6-libata-ali-atapi-dma.patch
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
+# actually mask the intended DMA modes from the blacklist
+ApplyPatch linux-2.6-libata-fix-hpt-svw-dma-masking.patch
 # Enable ACPI ATA objects
 # add option to disable PATA DMA
 # fix resume failure on some systems
@@ -1917,6 +1920,9 @@
 
 
 %changelog
+* Thu Mar 06 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-22
+- Fix libata DMA masking for HPT and SVW (possible fix for #433557)
+
 * Thu Mar 06 2008 John W. Linville <linville at redhat.com> 2.6.24.3-21
 - correct patch name typo in spec file
 




More information about the fedora-extras-commits mailing list