Re: 2.6.9-rc1-mm5 qlogic oops

From: Andrew Vasquez
Date: Mon Sep 13 2004 - 16:30:01 EST


On Mon, 13 Sep 2004, Badari Pulavarty wrote:

>
> I get this Oops with qlogic 2200 FC controllers with 2.6.9-rc1-mm5.
> Is this a known issue ? Any fixes ?
>

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).

Please apply the attached patch which should address the issue.

Regards,
Andrew Vasquez
===== drivers/scsi/qla2xxx/qla_os.c 1.46 vs edited =====
--- 1.46/drivers/scsi/qla2xxx/qla_os.c 2004-09-06 12:07:52 -07:00
+++ edited/drivers/scsi/qla2xxx/qla_os.c 2004-09-13 14:07:23 -07:00
@@ -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,
+ &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,
@@ -2982,21 +2995,6 @@
}
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;