rpms/kernel/F-7 linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch, NONE, 1.1 kernel-2.6.spec, 1.3327, 1.3328

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Fri Aug 24 16:56:16 UTC 2007


Author: cebbert

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

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch 
Log Message:
* Fri Aug 24 2007 Chuck Ebbert <cebbert at redhat.com>
- fix 3ware 9000 controller DMA fallback (#251729)


linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch:

--- NEW FILE linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch ---
    [SCSI] 3w-9xxx: Fix dma mask setting
    
    The attached patch updates the 3ware 9000 driver:
    
    - Fix dma mask setting to fallback to 32-bit if 64-bit fails.

Originally:    
    Signed-off-by: Adam Radford <linuxraid at amcc.com>
    Signed-off-by: James Bottomley <James.Bottomley at SteelEye.com>

--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -4,7 +4,7 @@
    Written By: Adam Radford <linuxraid at amcc.com>
    Modifications By: Tom Couch <linuxraid at amcc.com>
 
-   Copyright (C) 2004-2006 Applied Micro Circuits Corporation.
+   Copyright (C) 2004-2007 Applied Micro Circuits Corporation.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -69,6 +69,7 @@
    2.26.02.008 - Free irq handler in __twa_shutdown().
                  Serialize reset code.
                  Add support for 9650SE controllers.
+   2.26.02.009 - Fix dma mask setting to fallback to 32-bit if 64-bit fails.
 */
 
 #include <linux/module.h>
@@ -92,7 +94,7 @@
 #include "3w-9xxx.h"
 
 /* Globals */
-#define TW_DRIVER_VERSION "2.26.02.008"
+#define TW_DRIVER_VERSION "2.26.02.009"
 static TW_Device_Extension *twa_device_extension_list[TW_MAX_SLOT];
 static unsigned int twa_device_extension_count;
 static int twa_major = -1;
@@ -2002,11 +2011,14 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
 
 	pci_set_master(pdev);
 
-	retval = pci_set_dma_mask(pdev, sizeof(dma_addr_t) > 4 ? DMA_64BIT_MASK : DMA_32BIT_MASK);
-	if (retval) {
-		TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
-		goto out_disable_device;
-	}
+	if (pci_set_dma_mask(pdev, DMA_64BIT_MASK)
+	    || pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK))
+		if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)
+		    || pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) {
+			TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
+			retval = -ENODEV;
+			goto out_disable_device;
+		}
 
 	host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
 	if (!host) {


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3327
retrieving revision 1.3328
diff -u -r1.3327 -r1.3328
--- kernel-2.6.spec	23 Aug 2007 18:20:55 -0000	1.3327
+++ kernel-2.6.spec	24 Aug 2007 16:55:36 -0000	1.3328
@@ -565,6 +565,7 @@
 Patch400: linux-2.6-scsi-cpqarray-set-master.patch
 Patch401: linux-2.6-aacraid-ioctl-security.patch
 Patch402: linux-2.6-scsi-async-scanning.patch
+Patch403: linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch
 Patch420: linux-2.6-squashfs.patch
 Patch422: linux-2.6-gfs2-update.patch
 Patch423: linux-2.6-gfs-locking-exports.patch
@@ -1226,6 +1227,8 @@
 ApplyPatch linux-2.6-aacraid-ioctl-security.patch
 # fix locking problems w/ async scsi scan
 ApplyPatch linux-2.6-scsi-async-scanning.patch
+# fix 3ware 9000 DMA fallback
+ApplyPatch linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch
 
 # Filesystem patches.
 # Squashfs
@@ -2299,6 +2302,9 @@
 %endif
 
 %changelog
+* Fri Aug 24 2007 Chuck Ebbert <cebbert at redhat.com>
+- fix 3ware 9000 controller DMA fallback (#251729)
+
 * Thu Aug 23 2007 Chuck Ebbert <cebbert at redhat.com>
 - Linux 2.6.22.5
 - CFS scheduler v20.2




More information about the fedora-extras-commits mailing list