vserver 1.9.5.x5
[linux-2.6.git] / drivers / scsi / qla2xxx / qla_mbx.c
index eadc3d4..c04fbcd 100644 (file)
@@ -53,17 +53,18 @@ qla2x00_mbx_sem_timeout(unsigned long data)
  * Context:
  *     Kernel context.
  */
-int
+static int
 qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
 {
        int             rval;
        unsigned long    flags = 0;
-       device_reg_t     *reg       = ha->iobase;
+       device_reg_t __iomem *reg = ha->iobase;
        struct timer_list       tmp_intr_timer;
        uint8_t         abort_active = test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
        uint8_t         io_lock_on = ha->flags.init_done;
        uint16_t        command;
-       uint16_t        *iptr, *optr;
+       uint16_t        *iptr;
+       uint16_t __iomem *optr;
        uint32_t        cnt;
        uint32_t        mboxes;
        unsigned long   mbx_flags = 0;
@@ -101,7 +102,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
        spin_lock_irqsave(&ha->hardware_lock, flags);
 
        /* Load mailbox registers. */
-       optr = (uint16_t *)MAILBOX_REG(ha, reg, 0);
+       optr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 0);
 
        iptr = mcp->mb;
        command = mcp->mb[0];
@@ -109,7 +110,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
 
        for (cnt = 0; cnt < ha->mbx_count; cnt++) {
                if (IS_QLA2200(ha) && cnt == 8)
-                       optr = (uint16_t *)MAILBOX_REG(ha, reg, 8);
+                       optr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 8);
                if (mboxes & BIT_0)
                        WRT_REG_WORD(optr, *iptr);
 
@@ -209,6 +210,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
 
        /* Check whether we timed out */
        if (ha->flags.mbox_int) {
+               uint16_t *iptr2;
 
                DEBUG3_11(printk("qla2x00_mailbox_cmd: cmd %x completed.\n",
                    command);)
@@ -223,15 +225,15 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
                }
 
                /* Load return mailbox registers. */
-               optr = mcp->mb;
+               iptr2 = mcp->mb;
                iptr = (uint16_t *)&ha->mailbox_out[0];
                mboxes = mcp->in_mb;
                for (cnt = 0; cnt < ha->mbx_count; cnt++) {
                        if (mboxes & BIT_0)
-                               *optr = *iptr;
+                               *iptr2 = *iptr;
 
                        mboxes >>= 1;
-                       optr++;
+                       iptr2++;
                        iptr++;
                }
        } else {
@@ -673,135 +675,6 @@ qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
        return rval;
 }
 
-/*
- * qla2x00_read_ram_word
- *
- * Input:
- *     ha = adapter block pointer.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_read_ram_word(scsi_qla_host_t *ha, uint16_t addr, uint16_t *data)
-{
-       int rval;
-       mbx_cmd_t mc;
-       mbx_cmd_t *mcp = &mc;
-
-       DEBUG11(printk("qla2x00_read_ram_word(%ld): entered.\n", ha->host_no);)
-
-       mcp->mb[0] = MBC_READ_RAM_WORD;
-       mcp->mb[1] = addr;
-       mcp->out_mb = MBX_1|MBX_0;
-       mcp->in_mb = MBX_0|MBX_2;
-       mcp->tov = 30;
-       mcp->flags = 0;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               /*EMPTY*/
-               DEBUG2_3_11(printk("qla2x00_read_ram_word(%ld): failed=%x.\n",
-                   ha->host_no, rval);)
-       } else {
-               *data = mcp->mb[2];
-               DEBUG11(printk("qla2x00_read_ram_word(%ld): done.\n",
-                   ha->host_no);)
-       }
-
-       return rval;
-}
-
-/*
- * qla2x00_write_ram_word
- *
- * Input:
- *     ha = adapter block pointer.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_write_ram_word(scsi_qla_host_t *ha, uint16_t addr, uint16_t data)
-{
-       int rval;
-       mbx_cmd_t mc;
-       mbx_cmd_t *mcp = &mc;
-
-       DEBUG11(printk("qla2x00_write_ram_word(%ld): entered.\n",
-           ha->host_no);)
-
-       mcp->mb[0] = MBC_WRITE_RAM_WORD;
-       mcp->mb[1] = addr;
-       mcp->mb[2] = data;
-       mcp->out_mb = MBX_2|MBX_1|MBX_0;
-       mcp->in_mb = MBX_0;
-       mcp->tov = 30;
-       mcp->flags = 0;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               /*EMPTY*/
-               DEBUG2_3_11(printk("qla2x00_write_ram_word(%ld): failed=%x.\n",
-                   ha->host_no, rval);)
-       } else {
-               /*EMPTY*/
-               DEBUG11(printk("qla2x00_write_ram_word(%ld): done.\n",
-                   ha->host_no);)
-       }
-
-       return rval;
-}
-
-/*
- * qla2x00_write_ram_word_ext
- *
- * Input:
- *     ha = adapter block pointer.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_write_ram_word_ext(scsi_qla_host_t *ha, uint32_t addr, uint16_t data)
-{
-       int rval;
-       mbx_cmd_t mc;
-       mbx_cmd_t *mcp = &mc;
-
-       DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
-
-       mcp->mb[0] = MBC_WRITE_RAM_WORD_EXTENDED;
-       mcp->mb[1] = LSW(addr);
-       mcp->mb[2] = data;
-       mcp->mb[8] = MSW(addr);
-       mcp->out_mb = MBX_8|MBX_2|MBX_1|MBX_0;
-       mcp->in_mb = MBX_0;
-       mcp->tov = 30;
-       mcp->flags = 0;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               /*EMPTY*/
-               DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
-                   ha->host_no, rval));
-       } else {
-               /*EMPTY*/
-               DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
-       }
-
-       return rval;
-}
-
 /*
  * qla2x00_mbx_reg_test
  *     Mailbox register wrap test.
@@ -1030,62 +903,6 @@ qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp)
        return rval;
 }
 
-/*
- * qla2x00_abort_device
- *
- * Input:
- *     ha = adapter block pointer.
- *      loop_id  = FC loop ID
- *      lun  = SCSI LUN.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_abort_device(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun)
-{
-       int rval;
-       mbx_cmd_t mc;
-       mbx_cmd_t *mcp = &mc;
-
-       DEBUG11(printk("qla2x00_abort_device(%ld): entered.\n", ha->host_no);)
-
-       mcp->mb[0] = MBC_ABORT_DEVICE;
-       if (HAS_EXTENDED_IDS(ha))
-               mcp->mb[1] = loop_id;
-       else
-               mcp->mb[1] = loop_id << 8;
-       mcp->mb[2] = lun;
-       mcp->out_mb = MBX_2|MBX_1|MBX_0;
-       mcp->in_mb = MBX_0;
-       mcp->tov = 30;
-       mcp->flags = 0;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       /* Issue marker command. */
-       qla2x00_marker(ha, loop_id, lun, MK_SYNC_ID_LUN);
-
-       if (rval != QLA_SUCCESS) {
-               qla_printk(KERN_WARNING, ha,
-                   "Failed Abort Device Mailbox command. Scheduling ISP "
-                   "abort.\n");
-               set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
-               if (ha->dpc_wait && !ha->dpc_active) 
-                       up(ha->dpc_wait);
-               DEBUG2_3_11(printk("qla2x00_abort_device(%ld): failed=%x.\n",
-                   ha->host_no, rval);)
-       } else {
-               /*EMPTY*/
-               DEBUG11(printk("qla2x00_abort_device(%ld): done.\n",
-                   ha->host_no);)
-       }
-
-       return rval;
-}
-
 #if USE_ABORT_TGT
 /*
  * qla2x00_abort_target
@@ -1403,7 +1220,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
        DEBUG11(printk("qla2x00_get_port_database(%ld): entered.\n",
            ha->host_no);)
 
-       pd = pci_alloc_consistent(ha->pdev, PORT_DATABASE_SIZE, &pd_dma);
+       pd = dma_pool_alloc(ha->s_dma_pool, GFP_ATOMIC, &pd_dma);
        if (pd  == NULL) {
                DEBUG2_3_11(printk("qla2x00_get_port_database(%ld): **** "
                    "Mem Alloc Failed ****", ha->host_no);)
@@ -1464,7 +1281,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
                fcport->port_type = FCT_TARGET;
 
 gpd_error_out:
-       pci_free_consistent(ha->pdev, PORT_DATABASE_SIZE, pd, pd_dma);
+       dma_pool_free(ha->s_dma_pool, pd, pd_dma);
 
        if (rval != QLA_SUCCESS) {
                /*EMPTY*/
@@ -1596,104 +1413,6 @@ qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name,
        return rval;
 }
 
-/*
- * qla2x00_get_link_status
- *
- * Input:
- *     ha = adapter block pointer.
- *     loop_id = device loop ID.
- *     ret_buf = pointer to link status return buffer.
- *
- * Returns:
- *     0 = success.
- *     BIT_0 = mem alloc error.
- *     BIT_1 = mailbox error.
- */
-uint8_t
-qla2x00_get_link_status(scsi_qla_host_t *ha, uint16_t loop_id,
-    link_stat_t *ret_buf, uint16_t *status)
-{
-       int rval;
-       mbx_cmd_t mc;
-       mbx_cmd_t *mcp = &mc;
-       link_stat_t *stat_buf;
-       dma_addr_t phys_address = 0;
-
-
-       DEBUG11(printk("qla2x00_get_link_status(%ld): entered.\n",
-           ha->host_no);)
-
-       stat_buf = pci_alloc_consistent(ha->pdev, sizeof(link_stat_t),
-           &phys_address);
-       if (stat_buf == NULL) {
-               DEBUG2_3_11(printk("qla2x00_get_link_status(%ld): Failed to "
-                   "allocate memory.\n", ha->host_no));
-               return BIT_0;
-       }
-       memset(stat_buf, 0, sizeof(link_stat_t));
-
-       mcp->mb[0] = MBC_GET_LINK_STATUS;
-       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
-       if (HAS_EXTENDED_IDS(ha)) {
-               mcp->mb[1] = loop_id;
-               mcp->mb[10] = 0;
-               mcp->out_mb |= MBX_10;
-       } else {
-               mcp->mb[1] = loop_id << 8;
-       }
-       mcp->mb[2] = MSW(phys_address);
-       mcp->mb[3] = LSW(phys_address);
-       mcp->mb[6] = MSW(MSD(phys_address));
-       mcp->mb[7] = LSW(MSD(phys_address));
-
-       mcp->in_mb = MBX_0;
-       mcp->tov = 30;
-       mcp->flags = IOCTL_CMD;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval == QLA_SUCCESS) {
-               if (mcp->mb[0] != MBS_COMMAND_COMPLETE) {
-                       DEBUG2_3_11(printk("qla2x00_get_link_status(%ld): cmd "
-                           "failed. mbx0=%x.\n", ha->host_no, mcp->mb[0]);)
-                       status[0] = mcp->mb[0];
-                       rval = BIT_1;
-               } else {
-                       /* copy over data -- firmware data is LE. */
-                       ret_buf->link_fail_cnt =
-                           le32_to_cpu(stat_buf->link_fail_cnt);
-                       ret_buf->loss_sync_cnt =
-                           le32_to_cpu(stat_buf->loss_sync_cnt);
-                       ret_buf->loss_sig_cnt =
-                           le32_to_cpu(stat_buf->loss_sig_cnt);
-                       ret_buf->prim_seq_err_cnt =
-                           le32_to_cpu(stat_buf->prim_seq_err_cnt);
-                       ret_buf->inval_xmit_word_cnt =
-                           le32_to_cpu(stat_buf->inval_xmit_word_cnt);
-                       ret_buf->inval_crc_cnt =
-                           le32_to_cpu(stat_buf->inval_crc_cnt);
-
-                       DEBUG11(printk("qla2x00_get_link_status(%ld): stat "
-                           "dump: fail_cnt=%d loss_sync=%d loss_sig=%d "
-                           "seq_err=%d inval_xmt_word=%d inval_crc=%d.\n",
-                           ha->host_no,
-                           stat_buf->link_fail_cnt, stat_buf->loss_sync_cnt,
-                           stat_buf->loss_sig_cnt, stat_buf->prim_seq_err_cnt,
-                           stat_buf->inval_xmit_word_cnt,
-                           stat_buf->inval_crc_cnt);)
-               }
-       } else {
-               /* Failed. */
-               DEBUG2_3_11(printk("qla2x00_get_link_status(%ld): failed=%x.\n",
-                   ha->host_no, rval);)
-               rval = BIT_1;
-       }
-
-       pci_free_consistent(ha->pdev, sizeof(link_stat_t), stat_buf,
-           phys_address);
-
-       return rval;
-}
-
 /*
  * qla2x00_lip_reset
  *     Issue LIP reset mailbox command.
@@ -2111,227 +1830,6 @@ qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma,
        return rval;
 }
 
-/*
- * qla2x00_lun_reset
- *     Issue lun reset mailbox command.
- *
- * Input:
- *     ha = adapter block pointer.
- *     loop_id = device loop ID.
- *      lun = lun to be reset.
- *     TARGET_QUEUE_LOCK must be released.
- *     ADAPTER_STATE_LOCK must be released.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_lun_reset(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun)
-{
-       int             rval;
-       mbx_cmd_t       mc;
-       mbx_cmd_t       *mcp = &mc;
-
-       mcp->mb[0] = MBC_LUN_RESET;
-       if (HAS_EXTENDED_IDS(ha))
-               mcp->mb[1] = loop_id;
-       else
-               mcp->mb[1] = loop_id << 8;
-       mcp->mb[2] = lun;
-       mcp->out_mb = MBX_2|MBX_1|MBX_0;
-       mcp->in_mb = MBX_0;
-       mcp->tov = 30;
-       mcp->flags = 0;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               /*EMPTY*/
-               printk(KERN_WARNING "qla2x00_lun_reset(%d): failed = %d",
-                   (int)ha->instance, rval);
-       } else {
-               /*EMPTY*/
-       }
-
-       return rval;
-}
-
-/*
- * qla2x00_send_rnid_mbx
- *     Issue RNID ELS using mailbox command
- *
- * Input:
- *     ha = adapter state pointer.
- *     loop_id = loop ID of the target device.
- *     data_fmt = currently supports only 0xDF.
- *     buffer = buffer pointer.
- *     buf_size = size of buffer.
- *     mb_reg = pointer to return mailbox registers.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_send_rnid_mbx(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t data_fmt,
-    dma_addr_t buf_phys_addr, size_t buf_size, uint16_t *mb_reg)
-{
-       int             rval;
-       mbx_cmd_t       mc;
-       mbx_cmd_t       *mcp = &mc;
-
-       DEBUG11(printk("qla2x00_send_rnid_mbx(%ld): entered.\n",
-           ha->host_no);)
-
-       mcp->mb[0] = MBC_SEND_RNID_ELS;
-       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
-       if (HAS_EXTENDED_IDS(ha)) {
-               mcp->mb[1] = loop_id;
-               mcp->mb[10] = data_fmt;
-               mcp->out_mb |= MBX_10;
-       } else {
-               mcp->mb[1] = (loop_id << 8) | data_fmt;
-       }
-       mcp->mb[2] = MSW(buf_phys_addr);
-       mcp->mb[3] = LSW(buf_phys_addr);
-       mcp->mb[6] = MSW(MSD(buf_phys_addr));
-       mcp->mb[7] = LSW(MSD(buf_phys_addr));
-
-       mcp->in_mb = MBX_1|MBX_0;
-       mcp->buf_size = buf_size;
-       mcp->flags = MBX_DMA_IN;
-       mcp->tov = 30;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               memcpy(mb_reg, mcp->mb, 2 * 2); /* 2 status regs */
-
-               DEBUG2_3_11(printk("qla2x00_send_rnid_mbx(%ld): failed=%x "
-                   "mb[1]=%x.\n",
-                   ha->host_no, mcp->mb[0], mcp->mb[1]);)
-       } else {
-               /*EMPTY*/
-               DEBUG11(printk("qla2x00_send_rnid_mbx(%ld): done.\n",
-                    ha->host_no);)
-       }
-
-       return (rval);
-}
-
-/*
- * qla2x00_set_rnid_params_mbx
- *     Set RNID parameters using mailbox command
- *
- * Input:
- *     ha = adapter state pointer.
- *     buffer = buffer pointer.
- *     buf_size = size of buffer.
- *     mb_reg = pointer to return mailbox registers.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_set_rnid_params_mbx(scsi_qla_host_t *ha, dma_addr_t buf_phys_addr,
-    size_t buf_size, uint16_t *mb_reg)
-{
-       int             rval;
-       mbx_cmd_t       mc;
-       mbx_cmd_t       *mcp = &mc;
-
-       DEBUG11(printk("qla2x00_set_rnid_params_mbx(%ld): entered.\n",
-           ha->host_no);)
-
-       mcp->mb[0] = MBC_SET_RNID_PARAMS;
-       mcp->mb[1] = 0;
-       mcp->mb[2] = MSW(buf_phys_addr);
-       mcp->mb[3] = LSW(buf_phys_addr);
-       mcp->mb[6] = MSW(MSD(buf_phys_addr));
-       mcp->mb[7] = LSW(MSD(buf_phys_addr));
-       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
-       mcp->in_mb = MBX_1|MBX_0;
-       mcp->buf_size = buf_size;
-       mcp->flags = MBX_DMA_OUT;
-       mcp->tov = 30;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               memcpy(mb_reg, mcp->mb, 2 * 2); /* 2 status regs */
-
-               DEBUG2_3_11(printk("qla2x00_set_rnid_params_mbx(%ld): "
-                   "failed=%x mb[1]=%x.\n", ha->host_no, mcp->mb[0],
-                   mcp->mb[1]);)
-       } else {
-               /*EMPTY*/
-               DEBUG11(printk("qla2x00_set_rnid_params_mbx(%ld): done.\n",
-                   ha->host_no);)
-       }
-
-       return (rval);
-}
-
-/*
- * qla2x00_get_rnid_params_mbx
- *     Get RNID parameters using mailbox command
- *
- * Input:
- *     ha = adapter state pointer.
- *     buffer = buffer pointer.
- *     buf_size = size of buffer.
- *     mb_reg = pointer to return mailbox registers.
- *
- * Returns:
- *     qla2x00 local function return status code.
- *
- * Context:
- *     Kernel context.
- */
-int
-qla2x00_get_rnid_params_mbx(scsi_qla_host_t *ha, dma_addr_t buf_phys_addr,
-    size_t buf_size, uint16_t *mb_reg)
-{
-       int             rval;
-       mbx_cmd_t       mc;
-       mbx_cmd_t       *mcp = &mc;
-
-       DEBUG11(printk("qla2x00_get_rnid_params_mbx(%ld): entered.\n",
-           ha->host_no);)
-
-       mcp->mb[0] = MBC_GET_RNID_PARAMS;
-       mcp->mb[1] = 0;
-       mcp->mb[2] = MSW(buf_phys_addr);
-       mcp->mb[3] = LSW(buf_phys_addr);
-       mcp->mb[6] = MSW(MSD(buf_phys_addr));
-       mcp->mb[7] = LSW(MSD(buf_phys_addr));
-       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
-       mcp->in_mb = MBX_1|MBX_0;
-       mcp->buf_size = buf_size;
-       mcp->flags = MBX_DMA_IN;
-       mcp->tov = 30;
-       rval = qla2x00_mailbox_command(ha, mcp);
-
-       if (rval != QLA_SUCCESS) {
-               memcpy(mb_reg, mcp->mb, 2 * 2); /* 2 status regs */
-
-               DEBUG2_3_11(printk("qla2x00_get_rnid_params_mbx(%ld): "
-                   "failed=%x mb[1]=%x.\n", ha->host_no, mcp->mb[0],
-                   mcp->mb[1]);)
-       } else {
-               /*EMPTY*/
-               DEBUG11(printk("qla2x00_get_rnid_params_mbx(%ld): done.\n",
-                   ha->host_no);)
-       }
-
-       return (rval);
-}
-
 /*
  * qla2x00_get_resource_cnts
  *     Get current firmware resource counts.
@@ -2409,7 +1907,7 @@ qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map)
        char *pmap;
        dma_addr_t pmap_dma;
 
-       pmap = pci_alloc_consistent(ha->pdev, FCAL_MAP_SIZE, &pmap_dma);
+       pmap = dma_pool_alloc(ha->s_dma_pool, GFP_ATOMIC, &pmap_dma);
        if (pmap  == NULL) {
                DEBUG2_3_11(printk("%s(%ld): **** Mem Alloc Failed ****",
                    __func__, ha->host_no));
@@ -2438,7 +1936,7 @@ qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map)
                if (pos_map)
                        memcpy(pos_map, pmap, FCAL_MAP_SIZE);
        }
-       pci_free_consistent(ha->pdev, FCAL_MAP_SIZE, pmap, pmap_dma);
+       dma_pool_free(ha->s_dma_pool, pmap, pmap_dma);
 
        if (rval != QLA_SUCCESS) {
                DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,