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;
|
||||
IO_Address = BaseAddress0 = pci_resource_start(PCI_Device, 0);
|
||||
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) {
|
||||
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);
|
||||
|
@ -1006,6 +1006,9 @@ static void __init BusLogic_InitializeProbeInfoList(struct BusLogic_HostAdapter
|
|||
}
|
||||
|
||||
|
||||
#else
|
||||
#define BusLogic_InitializeProbeInfoList(adapter) \
|
||||
BusLogic_InitializeProbeInfoListISA(adapter)
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
|
||||
|
|
|
@ -33,23 +33,6 @@
|
|||
#define PACKED __attribute__((packed))
|
||||
#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.
|
||||
*/
|
||||
|
@ -178,7 +161,7 @@ static int BusLogic_HostAdapterAddressCount[3] = { 0, BusLogic_MultiMasterAddres
|
|||
Define macros for testing the Host Adapter Type.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
||||
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||
|
||||
#define BusLogic_MultiMasterHostAdapterP(HostAdapter) \
|
||||
(HostAdapter->HostAdapterType == BusLogic_MultiMaster)
|
||||
|
@ -871,7 +854,7 @@ struct BusLogic_CCB {
|
|||
void (*CallbackFunction) (struct BusLogic_CCB *); /* Bytes 40-43 */
|
||||
u32 BaseAddress; /* Bytes 44-47 */
|
||||
enum BusLogic_CompletionCode CompletionCode; /* Byte 48 */
|
||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
||||
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||
unsigned char:8; /* Byte 49 */
|
||||
unsigned short OS_Flags; /* Bytes 50-51 */
|
||||
unsigned char Private[48]; /* Bytes 52-99 */
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*/
|
||||
|
||||
|
||||
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
|
||||
#ifdef CONFIG_SCSI_FLASHPOINT
|
||||
|
||||
#define MAX_CARDS 8
|
||||
#undef BUSTYPE_PCI
|
||||
|
@ -7626,7 +7626,7 @@ FlashPoint__HandleInterrupt(FlashPoint_CardHandle_T CardHandle)
|
|||
#define FlashPoint_InterruptPending FlashPoint__InterruptPending
|
||||
#define FlashPoint_HandleInterrupt FlashPoint__HandleInterrupt
|
||||
|
||||
#else /* CONFIG_SCSI_OMIT_FLASHPOINT */
|
||||
#else /* !CONFIG_SCSI_FLASHPOINT */
|
||||
|
||||
/*
|
||||
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 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
|
||||
<file:Documentation/scsi/BusLogic.txt> and
|
||||
<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
|
||||
module will be called BusLogic.
|
||||
|
||||
config SCSI_OMIT_FLASHPOINT
|
||||
bool "Omit FlashPoint support"
|
||||
depends on SCSI_BUSLOGIC
|
||||
config SCSI_FLASHPOINT
|
||||
bool "FlashPoint support"
|
||||
depends on SCSI_BUSLOGIC && PCI && X86_32
|
||||
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
|
||||
substantial, so users of MultiMaster Host Adapters may wish to omit
|
||||
it.
|
||||
substantial, so users of MultiMaster Host Adapters may not
|
||||
wish to include it.
|
||||
|
||||
config SCSI_DMX3191D
|
||||
tristate "DMX3191D SCSI support"
|
||||
|
|
Loading…
Reference in New Issue