From: "David S. Miller" I fix three problems below: 1) Build never ever traverses down into drivers/scsi/qla2xxx/ because necessary CONFIG option to cause that is never set. I don't know it is possible for anyone to get this even build tested as a result, let alone used :-) 2) flush_cache_all() is no longer a public interface. The code in the qla2xxx driver using it is using consistent style DMA memory so there is no cache flush needed anyways, just kill it and the comment. 3) Systems can not go from using qlogicfc to qla2xxx because the SCSI target numbering is different. qlogicfc always assigns target 0 to the host adapter port address, the qla2xxx driver does not. I've fixed this by assigning device target IDs starting at '1' instead of '0'. #3 could be a big problem, frankly in the vanilla sources I think it's more important to have device numbering compatability with qlogicfc although I realize this is probably going to break some class of systems out there which have been using the qla2xxx stuff for some time. Please give Andrew/me an nod to push this to Linus. My sparc64 machine that I do all my work on got busted by this move to the new driver so I'd like it fixed fast :) --- drivers/scsi/qla2xxx/Kconfig | 14 +++++++------- drivers/scsi/qla2xxx/qla_init.c | 12 +++--------- 2 files changed, 10 insertions(+), 16 deletions(-) diff -puN drivers/scsi/qla2xxx/Kconfig~qla2xxx-fixes drivers/scsi/qla2xxx/Kconfig --- 25/drivers/scsi/qla2xxx/Kconfig~qla2xxx-fixes 2004-02-04 23:48:31.000000000 -0800 +++ 25-akpm/drivers/scsi/qla2xxx/Kconfig 2004-02-04 23:48:31.000000000 -0800 @@ -1,41 +1,41 @@ -config SCSI_QLA2XXX_CONFIG +config SCSI_QLA2XXX tristate default (SCSI && PCI) depends on SCSI && PCI config SCSI_QLA21XX tristate "QLogic ISP2100 host adapter family support" - depends on SCSI_QLA2XXX_CONFIG + depends on SCSI_QLA2XXX ---help--- This driver supports the QLogic 21xx (ISP2100) host adapter family. config SCSI_QLA22XX tristate "QLogic ISP2200 host adapter family support" - depends on SCSI_QLA2XXX_CONFIG + depends on SCSI_QLA2XXX ---help--- This driver supports the QLogic 22xx (ISP2200) host adapter family. config SCSI_QLA2300 tristate "QLogic ISP2300 host adapter family support" - depends on SCSI_QLA2XXX_CONFIG + depends on SCSI_QLA2XXX ---help--- This driver supports the QLogic 2300 (ISP2300, and ISP2312) host adapter family. config SCSI_QLA2322 tristate "QLogic ISP2322 host adapter family support" - depends on SCSI_QLA2XXX_CONFIG + depends on SCSI_QLA2XXX ---help--- This driver supports the QLogic 2322 (ISP2322) host adapter family. config SCSI_QLA6312 tristate "QLogic ISP6312 host adapter family support" - depends on SCSI_QLA2XXX_CONFIG + depends on SCSI_QLA2XXX ---help--- This driver supports the QLogic 6312 (ISP6312) host adapter family. config SCSI_QLA6322 tristate "QLogic ISP6322 host adapter family support" - depends on SCSI_QLA2XXX_CONFIG + depends on SCSI_QLA2XXX ---help--- This driver supports the QLogic 6322 (ISP6322) host adapter family. diff -puN drivers/scsi/qla2xxx/qla_init.c~qla2xxx-fixes drivers/scsi/qla2xxx/qla_init.c --- 25/drivers/scsi/qla2xxx/qla_init.c~qla2xxx-fixes 2004-02-04 23:48:31.000000000 -0800 +++ 25-akpm/drivers/scsi/qla2xxx/qla_init.c 2004-02-04 23:48:31.000000000 -0800 @@ -690,12 +690,6 @@ qla2x00_setup_chip(scsi_qla_host_t *ha) for (i = 0; i < cnt; i++) req_ring[i] = cpu_to_le16(risc_code[i]); - /* - * Flush written firmware to the ha->request_ring buffer - * before DMA. - */ - flush_cache_all(); - if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) { rval = qla2x00_load_ram(ha, ha->request_dma, risc_address, cnt); @@ -3293,12 +3287,12 @@ qla2x00_fcport_bind(scsi_qla_host_t *ha, /* TODO: honor the ConfigRequired flag */ if (tgt == MAX_TARGETS) { - /* Check if targetID 0 available. */ - tgt = 0; + /* Check if targetID 1 available. */ + tgt = 1; if (TGT_Q(ha, tgt) != NULL) { /* Locate first free target for device. */ - for (tgt = 0; tgt < MAX_TARGETS; tgt++) { + for (tgt = 1; tgt < MAX_TARGETS; tgt++) { if (TGT_Q(ha, tgt) == NULL) { break; } _