mirror of https://gitee.com/openkylin/linux.git
[SCSI] BusLogic: make FlashPoint support x86-32 only
We've verified that there are 64 bit and endianness problems in the flashpoint driver. Reverse the logic of CONFIG_OMIT_FLASHPOINT (make it CONFIG_SCSI_FLASHPOINT) and make it depend on X86_32 so it can't appear for any other architectures. Long term, if someone chooses, they could make FlashPoint 64 bit compliant (it looks like its a question of fixing up the sizes in some of the packed descriptors) Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
5c815d1501
commit
78b4b05db5
|
@ -896,7 +896,7 @@ static int __init BusLogic_InitializeFlashPointProbeInfo(struct BusLogic_HostAda
|
||||||
IRQ_Channel = PCI_Device->irq;
|
IRQ_Channel = PCI_Device->irq;
|
||||||
IO_Address = BaseAddress0 = pci_resource_start(PCI_Device, 0);
|
IO_Address = BaseAddress0 = pci_resource_start(PCI_Device, 0);
|
||||||
PCI_Address = BaseAddress1 = pci_resource_start(PCI_Device, 1);
|
PCI_Address = BaseAddress1 = pci_resource_start(PCI_Device, 1);
|
||||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||||
if (pci_resource_flags(PCI_Device, 0) & IORESOURCE_MEM) {
|
if (pci_resource_flags(PCI_Device, 0) & IORESOURCE_MEM) {
|
||||||
BusLogic_Error("BusLogic: Base Address0 0x%X not I/O for " "FlashPoint Host Adapter\n", NULL, BaseAddress0);
|
BusLogic_Error("BusLogic: Base Address0 0x%X not I/O for " "FlashPoint Host Adapter\n", NULL, BaseAddress0);
|
||||||
BusLogic_Error("at PCI Bus %d Device %d I/O Address 0x%X\n", NULL, Bus, Device, IO_Address);
|
BusLogic_Error("at PCI Bus %d Device %d I/O Address 0x%X\n", NULL, Bus, Device, IO_Address);
|
||||||
|
@ -1006,6 +1006,9 @@ static void __init BusLogic_InitializeProbeInfoList(struct BusLogic_HostAdapter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define BusLogic_InitializeProbeInfoList(adapter) \
|
||||||
|
BusLogic_InitializeProbeInfoListISA(adapter)
|
||||||
#endif /* CONFIG_PCI */
|
#endif /* CONFIG_PCI */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,23 +33,6 @@
|
||||||
#define PACKED __attribute__((packed))
|
#define PACKED __attribute__((packed))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
FlashPoint support is only available for the Intel x86 Architecture with
|
|
||||||
CONFIG_PCI set.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __i386__
|
|
||||||
#undef CONFIG_SCSI_OMIT_FLASHPOINT
|
|
||||||
#define CONFIG_SCSI_OMIT_FLASHPOINT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CONFIG_PCI
|
|
||||||
#undef CONFIG_SCSI_OMIT_FLASHPOINT
|
|
||||||
#define CONFIG_SCSI_OMIT_FLASHPOINT
|
|
||||||
#define BusLogic_InitializeProbeInfoListISA BusLogic_InitializeProbeInfoList
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Define the maximum number of BusLogic Host Adapters supported by this driver.
|
Define the maximum number of BusLogic Host Adapters supported by this driver.
|
||||||
*/
|
*/
|
||||||
|
@ -178,7 +161,7 @@ static int BusLogic_HostAdapterAddressCount[3] = { 0, BusLogic_MultiMasterAddres
|
||||||
Define macros for testing the Host Adapter Type.
|
Define macros for testing the Host Adapter Type.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||||
|
|
||||||
#define BusLogic_MultiMasterHostAdapterP(HostAdapter) \
|
#define BusLogic_MultiMasterHostAdapterP(HostAdapter) \
|
||||||
(HostAdapter->HostAdapterType == BusLogic_MultiMaster)
|
(HostAdapter->HostAdapterType == BusLogic_MultiMaster)
|
||||||
|
@ -871,7 +854,7 @@ struct BusLogic_CCB {
|
||||||
void (*CallbackFunction) (struct BusLogic_CCB *); /* Bytes 40-43 */
|
void (*CallbackFunction) (struct BusLogic_CCB *); /* Bytes 40-43 */
|
||||||
u32 BaseAddress; /* Bytes 44-47 */
|
u32 BaseAddress; /* Bytes 44-47 */
|
||||||
enum BusLogic_CompletionCode CompletionCode; /* Byte 48 */
|
enum BusLogic_CompletionCode CompletionCode; /* Byte 48 */
|
||||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||||
unsigned char:8; /* Byte 49 */
|
unsigned char:8; /* Byte 49 */
|
||||||
unsigned short OS_Flags; /* Bytes 50-51 */
|
unsigned short OS_Flags; /* Bytes 50-51 */
|
||||||
unsigned char Private[48]; /* Bytes 52-99 */
|
unsigned char Private[48]; /* Bytes 52-99 */
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||||
|
|
||||||
#define MAX_CARDS 8
|
#define MAX_CARDS 8
|
||||||
#undef BUSTYPE_PCI
|
#undef BUSTYPE_PCI
|
||||||
|
@ -7626,7 +7626,7 @@ FlashPoint__HandleInterrupt(FlashPoint_CardHandle_T CardHandle)
|
||||||
#define FlashPoint_InterruptPending FlashPoint__InterruptPending
|
#define FlashPoint_InterruptPending FlashPoint__InterruptPending
|
||||||
#define FlashPoint_HandleInterrupt FlashPoint__HandleInterrupt
|
#define FlashPoint_HandleInterrupt FlashPoint__HandleInterrupt
|
||||||
|
|
||||||
#else /* CONFIG_SCSI_OMIT_FLASHPOINT */
|
#else /* !CONFIG_SCSI_FLASHPOINT */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Define prototypes for the FlashPoint SCCB Manager Functions.
|
Define prototypes for the FlashPoint SCCB Manager Functions.
|
||||||
|
@ -7641,4 +7641,4 @@ extern bool FlashPoint_InterruptPending(FlashPoint_CardHandle_T);
|
||||||
extern int FlashPoint_HandleInterrupt(FlashPoint_CardHandle_T);
|
extern int FlashPoint_HandleInterrupt(FlashPoint_CardHandle_T);
|
||||||
extern void FlashPoint_ReleaseHostAdapter(FlashPoint_CardHandle_T);
|
extern void FlashPoint_ReleaseHostAdapter(FlashPoint_CardHandle_T);
|
||||||
|
|
||||||
#endif /* CONFIG_SCSI_OMIT_FLASHPOINT */
|
#endif /* CONFIG_SCSI_FLASHPOINT */
|
||||||
|
|
|
@ -588,18 +588,20 @@ config SCSI_BUSLOGIC
|
||||||
<http://www.tldp.org/docs.html#howto>, and the files
|
<http://www.tldp.org/docs.html#howto>, and the files
|
||||||
<file:Documentation/scsi/BusLogic.txt> and
|
<file:Documentation/scsi/BusLogic.txt> and
|
||||||
<file:Documentation/scsi/FlashPoint.txt> for more information.
|
<file:Documentation/scsi/FlashPoint.txt> for more information.
|
||||||
|
Note that support for FlashPoint is only available for 32-bit
|
||||||
|
x86 configurations.
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called BusLogic.
|
module will be called BusLogic.
|
||||||
|
|
||||||
config SCSI_OMIT_FLASHPOINT
|
config SCSI_FLASHPOINT
|
||||||
bool "Omit FlashPoint support"
|
bool "FlashPoint support"
|
||||||
depends on SCSI_BUSLOGIC
|
depends on SCSI_BUSLOGIC && PCI && X86_32
|
||||||
help
|
help
|
||||||
This option allows you to omit the FlashPoint support from the
|
This option allows you to add FlashPoint support to the
|
||||||
BusLogic SCSI driver. The FlashPoint SCCB Manager code is
|
BusLogic SCSI driver. The FlashPoint SCCB Manager code is
|
||||||
substantial, so users of MultiMaster Host Adapters may wish to omit
|
substantial, so users of MultiMaster Host Adapters may not
|
||||||
it.
|
wish to include it.
|
||||||
|
|
||||||
config SCSI_DMX3191D
|
config SCSI_DMX3191D
|
||||||
tristate "DMX3191D SCSI support"
|
tristate "DMX3191D SCSI support"
|
||||||
|
|
Loading…
Reference in New Issue