[PATCH] Pass proper device from BusLogic to SCSI layer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andrew,
  
While trying to get SUSE's SLES9 working on system with more than 4GB
we've noticed that SCSI layer happilly passes addresses over 4GB to
the buslogic driver, which is quite a big problem as buslogic can
generate only 32bit busmastering cycles.

Fortunately in the current kernels this problem does not exist anymore
as SCSI layer now assumes 4GB capable device by default, but it is
still good idea to pass correct device structure to the SCSI layer.
If nothing else, /sys/block/sda/device now points to
/sys/devices/pci0000:00/0000:00:10.0/host0/... instead of
/sys/devices/platform/host0/... like it did in the past.

Change does nothing for ISA based BusLogic adapters, they'll still
end under platform (and they are probably broken for long time as
I do not see anything forcing ISA 16MB limit for them).

					Thanks,
						Petr Vandrovec


diff -urdN linux/drivers/scsi/BusLogic.c linux/drivers/scsi/BusLogic.c
--- linux/drivers/scsi/BusLogic.c	2006-01-01 16:22:50.000000000 +0100
+++ linux/drivers/scsi/BusLogic.c	2006-01-01 16:34:43.000000000 +0100
@@ -2216,6 +2216,7 @@
 		HostAdapter->PCI_Address = ProbeInfo->PCI_Address;
 		HostAdapter->Bus = ProbeInfo->Bus;
 		HostAdapter->Device = ProbeInfo->Device;
+		HostAdapter->PCI_Device = ProbeInfo->PCI_Device;
 		HostAdapter->IRQ_Channel = ProbeInfo->IRQ_Channel;
 		HostAdapter->AddressCount = BusLogic_HostAdapterAddressCount[HostAdapter->HostAdapterType];
 		/*
@@ -2296,7 +2297,7 @@
 				scsi_host_put(Host);
 			} else {
 				BusLogic_InitializeHostStructure(HostAdapter, Host);
-				scsi_add_host(Host, NULL);
+				scsi_add_host(Host, HostAdapter->PCI_Device ? &HostAdapter->PCI_Device->dev : NULL);
 				scsi_scan_host(Host);
 				BusLogicHostAdapterCount++;
 			}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux