patch-2.4.0-test2 linux/drivers/scsi/3w-xxxx.c

Next file: linux/drivers/scsi/53c7,8xx.c
Previous file: linux/drivers/sbus/char/vfc_dev.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test1/linux/drivers/scsi/3w-xxxx.c linux/drivers/scsi/3w-xxxx.c
@@ -565,6 +565,8 @@
 
 	dprintk(KERN_NOTICE "3w-xxxx: tw_findcards()\n");
 	while ((tw_pci_dev = pci_find_device(TW_VENDOR_ID, TW_DEVICE_ID, tw_pci_dev))) {
+		if (pci_enable_device(tw_pci_dev))
+			continue;
 		/* Prepare temporary device extension */
 		tw_dev=(TW_Device_Extension *)kmalloc(sizeof(TW_Device_Extension), GFP_ATOMIC);
 		if (tw_dev == NULL) {
@@ -582,11 +584,11 @@
 		}
 
 		/* Calculate the cards register addresses */
-		tw_dev->registers.base_addr = tw_pci_dev->resource[0].start;
-		tw_dev->registers.control_reg_addr = (tw_pci_dev->resource[0].start & ~15);
-		tw_dev->registers.status_reg_addr = ((tw_pci_dev->resource[0].start & ~15) + 0x4);
-		tw_dev->registers.command_que_addr = ((tw_pci_dev->resource[0].start & ~15) + 0x8);
-		tw_dev->registers.response_que_addr = ((tw_pci_dev->resource[0].start & ~15) + 0xC);
+		tw_dev->registers.base_addr = pci_resource_start(tw_pci_dev, 0);
+		tw_dev->registers.control_reg_addr = pci_resource_start(tw_pci_dev, 0);
+		tw_dev->registers.status_reg_addr = pci_resource_start(tw_pci_dev, 0) + 0x4;
+		tw_dev->registers.command_que_addr = pci_resource_start(tw_pci_dev, 0) + 0x8;
+		tw_dev->registers.response_que_addr = pci_resource_start(tw_pci_dev, 0) + 0xC;
 		/* Save pci_dev struct to device extension */
 		tw_dev->tw_pci_dev = tw_pci_dev;
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)