SCSI QLA not working on latest *-mm SN2
Subsystems (2)
Andrew Vasquez,
[My inbox had a message recommending a copy linux-scsi as well,
so resending to include that list as well. ]
Jeremy Higdon recommended I send this to you. I am running into a fatal problem with SCSI QLA2, unable to boot using the latest *-mm on SGI's SN2 hardware (don't know if other hardware involved or not).
This is on 2.6.9-rc1-mm5, and more recent variants of *-mm.
$ grep QLA2XXX_VERSION drivers/scsi/qla2xxx/qla_version.h #define QLA2XXX_VERSION "8.00.00b21-k"
My source currently includes the patch of Monday that begins:
======================================================================
===== drivers/scsi/qla2xxx/qla_os.c 1.46 vs edited =====
drivers/scsi/qla2xxx/qla_os.c +2 -0
@@ -2892,6 +2892,19 @@continue ; } +/* get consistent memory allocated for init control block */ + ha->init_cb = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
...
======================================================================
I am pretty sure that I also saw this problem earlier Monday morning, before this patch.
Beginning with 2.6.9-rc1-mm5, I have had to comment out some of the QLA config options in order to boot on an SN2. That is, unless I make the following edit to my .config:
========================================
.config.disable_qla 2004-09-14 23:02:50.000000000 -0700 renamed from .config 2004-09-14 23:03:21.000000000 -0700 +3 -3
@@ -315,9 +315,9 @@ CONFIG_SCSI_SATA_VITESSE=y CONFIG_SCSI_QLOGIC_1280=y CONFIG_SCSI_QLA2XXX=y # CONFIG_SCSI_QLA21XX is not set -CONFIG_SCSI_QLA22XX=y -CONFIG_SCSI_QLA2300=y -CONFIG_SCSI_QLA2322=y +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set # CONFIG_SCSI_QLA6312 is not set # CONFIG_SCSI_QLA6322 is not set # CONFIG_SCSI_DC395x is not set
========================================
my boot fails with the following output:
========================================
Uniform CD-ROM driver Revision: 3.20
qla1280: QLA12160 found on PCI bus 1, dev 3
ACPI: PCI interrupt 0000:01:03.0[A]: no GSI scsi(0): Enabling SN2 PCI DMA dual channel lockup workaround scsi(0): Enabling SN2 PCI DMA workaround scsi(0:0): Resetting SCSI BUS
scsi(0:1): Resetting SCSI BUS
scsi0 : QLogic QLA12160 PCI to SCSI Host Adapter
Firmware version: 10.04.32, Driver version 3.24.4
Vendor: SGI Model: ST336753LC Rev: 2741
Type: Direct-Access ANSI SCSI revision: 03
scsi(0:0:1:0): Sync: period 9, offset 14, Wide, DT, Tagged queuing: depth 255
Vendor: SGI Model: ST336753LC Rev: 2741
Type: Direct-Access ANSI SCSI revision: 03
scsi(0:0:2:0): Sync: period 9, offset 14, Wide, DT, Tagged queuing: depth 255 QLogic Fibre Channel HBA Driver (a0000001007ab1d0)
ACPI: PCI interrupt 0000:02:01.0[A]: no GSI
qla2200 0000:02:01.0: Found an ISP2200, irq 58, iobase 0xc00000080cc00000 qla2200 0000:02:01.0: Configuring PCI space...
PCI: slot 0000:02:01.0 has incorrect PCI cache line size of 0 bytes, correcting to 128 POD entered via OS requested halt, using Cac mode
========================================
This is on a couple of small (4 and 8 cpu) SN2 systems, that boot with earlier kernels just fine.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.650.933.1373Quoted 4 lines · Paul Jackson
Jeremy Higdon recommended I send this to you. I am running into a fatal problem with SCSI QLA2, unable to boot using the latest *-mm on SGI's SN2 hardware (don't know if other hardware involved or not).
Do you have this?
From: Andrew Vasquez <[email protected]>
Hmm, there seems to be some merging problems in changeset 1.44 for qla_os.c -- the 'DMA pool/api usage' patch I sent is not completely integrated (appears to be massaging problems while attempting to apply on top off 1.43).
---
25-akpm/drivers/scsi/qla2xxx/qla_os.c | 28 +++++++++++++--------------- 1 files changed, 13 insertions(+), 15 deletions(-)
drivers/scsi/qla2xxx/qla_os.c renamed from drivers/scsi/qla2xxx/qla_os.c~qlogic-oops-fix +13 -15
@@ -2892,6 +2892,19 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)continue ; } +/* get consistent memory allocated for init control block */ + ha->init_cb =dma_pool_alloc (ha->s_dma_pool,GFP_KERNEL , + &ha->init_cb_dma); +if (ha->init_cb ==NULL ) { +qla_printk (KERN_WARNING , ha, +"Memory Allocation failed - init_cb\n" ); + +qla2x00_mem_free (ha); +msleep (100 ); + +continue ; + } +memset (ha->init_cb,0 ,sizeof (init_cb_t));/* Get consistent memory allocated for Get Port Database cmd */ ha->iodesc_pd = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
@@ -2983,21 +2996,6 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)memset (ha->ct_sns,0 ,sizeof (struct ct_sns_pkt )); } -/* Get consistent memory allocated for Get Port Database cmd */ - ha->iodesc_pd =pci_alloc_consistent (ha->pdev, -PORT_DATABASE_SIZE , &ha->iodesc_pd_dma); -if (ha->iodesc_pd ==NULL ) { -/* error */ -qla_printk (KERN_WARNING , ha, -"Memory Allocation failed - iodesc_pd\n" ); - -qla2x00_mem_free (ha); -msleep (100 ); - -continue ; - } -memset (ha->iodesc_pd,0 ,PORT_DATABASE_SIZE ); -/* Done all allocations without any error. */ status =0 ;
_