Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
[SCSI] qla2xxx: Update version number to 8.03.00-k3.
[SCSI] qla2xxx: Mask out 'reserved' bits while processing FLT regions.
[SCSI] qla2xxx: Correct slab-error overwrite during vport creation and deletion.
[SCSI] qla2xxx: Properly acknowledge IDC notification messages.
[SCSI] qla2xxx: Remove interrupt request bit check in the response processing path in multiq mode.
[SCSI] lpfc: introduce missing kfree
[SCSI] libiscsi: Fix scsi command timeout oops in iscsi_eh_timed_out
[SCSI] qla2xxx: fix Kernel Panic with Qlogic 2472 Card.
[SCSI] ibmvfc: Increase cancel timeout
[SCSI] ibmvfc: Fix rport relogin
[SCSI] ibmvfc: Fix command timeout errors
[SCSI] sg: fix device number in blktrace data
[SCSI] scsi_scan: add missing interim SDEV_DEL state if slave_alloc fails
[SCSI] ibmvscsi: Correct DMA mapping leak

+131 -62
+11 -4
drivers/scsi/ibmvscsi/ibmvfc.c
··· 1573 1573 vfc_cmd->resp_len = sizeof(vfc_cmd->rsp); 1574 1574 vfc_cmd->cancel_key = (unsigned long)cmnd->device->hostdata; 1575 1575 vfc_cmd->tgt_scsi_id = rport->port_id; 1576 - if ((rport->supported_classes & FC_COS_CLASS3) && 1577 - (fc_host_supported_classes(vhost->host) & FC_COS_CLASS3)) 1578 - vfc_cmd->flags = IBMVFC_CLASS_3_ERR; 1579 1576 vfc_cmd->iu.xfer_len = scsi_bufflen(cmnd); 1580 1577 int_to_scsilun(cmnd->device->lun, &vfc_cmd->iu.lun); 1581 1578 memcpy(vfc_cmd->iu.cdb, cmnd->cmnd, cmnd->cmd_len); ··· 3263 3266 return -ENOMEM; 3264 3267 } 3265 3268 3269 + memset(tgt, 0, sizeof(*tgt)); 3266 3270 tgt->scsi_id = scsi_id; 3267 3271 tgt->new_scsi_id = scsi_id; 3268 3272 tgt->vhost = vhost; ··· 3574 3576 static void ibmvfc_tgt_add_rport(struct ibmvfc_target *tgt) 3575 3577 { 3576 3578 struct ibmvfc_host *vhost = tgt->vhost; 3577 - struct fc_rport *rport; 3579 + struct fc_rport *rport = tgt->rport; 3578 3580 unsigned long flags; 3581 + 3582 + if (rport) { 3583 + tgt_dbg(tgt, "Setting rport roles\n"); 3584 + fc_remote_port_rolechg(rport, tgt->ids.roles); 3585 + spin_lock_irqsave(vhost->host->host_lock, flags); 3586 + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); 3587 + spin_unlock_irqrestore(vhost->host->host_lock, flags); 3588 + return; 3589 + } 3579 3590 3580 3591 tgt_dbg(tgt, "Adding rport\n"); 3581 3592 rport = fc_remote_port_add(vhost->host, 0, &tgt->ids);
+1 -1
drivers/scsi/ibmvscsi/ibmvfc.h
··· 32 32 #define IBMVFC_DRIVER_VERSION "1.0.4" 33 33 #define IBMVFC_DRIVER_DATE "(November 14, 2008)" 34 34 35 - #define IBMVFC_DEFAULT_TIMEOUT 15 35 + #define IBMVFC_DEFAULT_TIMEOUT 60 36 36 #define IBMVFC_INIT_TIMEOUT 120 37 37 #define IBMVFC_MAX_REQUESTS_DEFAULT 100 38 38
+1
drivers/scsi/ibmvscsi/ibmvscsi.c
··· 432 432 sdev_printk(KERN_ERR, cmd->device, 433 433 "Can't allocate memory " 434 434 "for indirect table\n"); 435 + scsi_dma_unmap(cmd); 435 436 return 0; 436 437 } 437 438 }
+2 -1
drivers/scsi/libiscsi.c
··· 1998 1998 if (!shost->can_queue) 1999 1999 shost->can_queue = ISCSI_DEF_XMIT_CMDS_MAX; 2000 2000 2001 + if (!shost->transportt->eh_timed_out) 2002 + shost->transportt->eh_timed_out = iscsi_eh_cmd_timed_out; 2001 2003 return scsi_add_host(shost, pdev); 2002 2004 } 2003 2005 EXPORT_SYMBOL_GPL(iscsi_host_add); ··· 2022 2020 shost = scsi_host_alloc(sht, sizeof(struct iscsi_host) + dd_data_size); 2023 2021 if (!shost) 2024 2022 return NULL; 2025 - shost->transportt->eh_timed_out = iscsi_eh_cmd_timed_out; 2026 2023 2027 2024 if (qdepth > ISCSI_MAX_CMD_PER_LUN || qdepth < 1) { 2028 2025 if (qdepth != 0)
+1
drivers/scsi/lpfc/lpfc_els.c
··· 5258 5258 sizeof(struct lpfc_name)); 5259 5259 break; 5260 5260 default: 5261 + kfree(els_data); 5261 5262 return; 5262 5263 } 5263 5264 memcpy(els_data->wwpn, &ndlp->nlp_portname, sizeof(struct lpfc_name));
+6 -7
drivers/scsi/qla2xxx/qla_attr.c
··· 1265 1265 test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags)) 1266 1266 msleep(1000); 1267 1267 1268 - if (ha->mqenable) { 1269 - if (qla25xx_delete_queues(vha, 0) != QLA_SUCCESS) 1270 - qla_printk(KERN_WARNING, ha, 1271 - "Queue delete failed.\n"); 1272 - vha->req_ques[0] = ha->req_q_map[0]->id; 1273 - } 1274 - 1275 1268 qla24xx_disable_vp(vha); 1276 1269 1277 1270 fc_remove_host(vha->host); ··· 1285 1292 "has stopped\n", 1286 1293 vha->host_no, vha->vp_idx, vha)); 1287 1294 } 1295 + 1296 + if (ha->mqenable) { 1297 + if (qla25xx_delete_queues(vha, 0) != QLA_SUCCESS) 1298 + qla_printk(KERN_WARNING, ha, 1299 + "Queue delete failed.\n"); 1300 + } 1288 1301 1289 1302 scsi_host_put(vha->host); 1290 1303 qla_printk(KERN_INFO, ha, "vport %d deleted\n", id);
+5
drivers/scsi/qla2xxx/qla_def.h
··· 2135 2135 /* Work events. */ 2136 2136 enum qla_work_type { 2137 2137 QLA_EVT_AEN, 2138 + QLA_EVT_IDC_ACK, 2138 2139 }; 2139 2140 2140 2141 ··· 2150 2149 enum fc_host_event_code code; 2151 2150 u32 data; 2152 2151 } aen; 2152 + struct { 2153 + #define QLA_IDC_ACK_REGS 7 2154 + uint16_t mb[QLA_IDC_ACK_REGS]; 2155 + } idc_ack; 2153 2156 } u; 2154 2157 }; 2155 2158
+1 -1
drivers/scsi/qla2xxx/qla_devtbl.h
··· 72 72 "QLA2462", "Sun PCI-X 2.0 to 4Gb FC, Dual Channel", /* 0x141 */ 73 73 "QLE2460", "Sun PCI-Express to 2Gb FC, Single Channel", /* 0x142 */ 74 74 "QLE2462", "Sun PCI-Express to 4Gb FC, Single Channel", /* 0x143 */ 75 - "QEM2462" "Server I/O Module 4Gb FC, Dual Channel", /* 0x144 */ 75 + "QEM2462", "Server I/O Module 4Gb FC, Dual Channel", /* 0x144 */ 76 76 "QLE2440", "PCI-Express to 4Gb FC, Single Channel", /* 0x145 */ 77 77 "QLE2464", "PCI-Express to 4Gb FC, Quad Channel", /* 0x146 */ 78 78 "QLA2440", "PCI-X 2.0 to 4Gb FC, Single Channel", /* 0x147 */
+2
drivers/scsi/qla2xxx/qla_fw.h
··· 1402 1402 #define MBA_IDC_NOTIFY 0x8101 1403 1403 #define MBA_IDC_TIME_EXT 0x8102 1404 1404 1405 + #define MBC_IDC_ACK 0x101 1406 + 1405 1407 struct nvram_81xx { 1406 1408 /* NVRAM header. */ 1407 1409 uint8_t id[4];
+5 -4
drivers/scsi/qla2xxx/qla_gbl.h
··· 72 72 extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int); 73 73 extern int qla2x00_post_aen_work(struct scsi_qla_host *, enum 74 74 fc_host_event_code, u32); 75 + extern int qla2x00_post_idc_ack_work(struct scsi_qla_host *, uint16_t *); 75 76 76 77 extern void qla2x00_abort_fcport_cmds(fc_port_t *); 77 78 extern struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *, ··· 267 266 268 267 extern int qla84xx_verify_chip(struct scsi_qla_host *, uint16_t *); 269 268 269 + extern int qla81xx_idc_ack(scsi_qla_host_t *, uint16_t *); 270 + 270 271 /* 271 272 * Global Function Prototypes in qla_isr.c source file. 272 273 */ ··· 379 376 380 377 /* Globa function prototypes for multi-q */ 381 378 extern int qla25xx_request_irq(struct rsp_que *); 382 - extern int qla25xx_init_req_que(struct scsi_qla_host *, struct req_que *, 383 - uint8_t); 384 - extern int qla25xx_init_rsp_que(struct scsi_qla_host *, struct rsp_que *, 385 - uint8_t); 379 + extern int qla25xx_init_req_que(struct scsi_qla_host *, struct req_que *); 380 + extern int qla25xx_init_rsp_que(struct scsi_qla_host *, struct rsp_que *); 386 381 extern int qla25xx_create_req_que(struct qla_hw_data *, uint16_t, uint8_t, 387 382 uint16_t, uint8_t, uint8_t); 388 383 extern int qla25xx_create_rsp_que(struct qla_hw_data *, uint16_t, uint8_t,
+3 -4
drivers/scsi/qla2xxx/qla_init.c
··· 1226 1226 icb->firmware_options_2 |= 1227 1227 __constant_cpu_to_le32(BIT_18); 1228 1228 1229 - icb->firmware_options_2 |= __constant_cpu_to_le32(BIT_22); 1229 + icb->firmware_options_2 &= __constant_cpu_to_le32(~BIT_22); 1230 1230 icb->firmware_options_2 |= __constant_cpu_to_le32(BIT_23); 1231 - ha->rsp_q_map[0]->options = icb->firmware_options_2; 1232 1231 1233 1232 WRT_REG_DWORD(&reg->isp25mq.req_q_in, 0); 1234 1233 WRT_REG_DWORD(&reg->isp25mq.req_q_out, 0); ··· 3492 3493 rsp = ha->rsp_q_map[i]; 3493 3494 if (rsp) { 3494 3495 rsp->options &= ~BIT_0; 3495 - ret = qla25xx_init_rsp_que(base_vha, rsp, rsp->options); 3496 + ret = qla25xx_init_rsp_que(base_vha, rsp); 3496 3497 if (ret != QLA_SUCCESS) 3497 3498 DEBUG2_17(printk(KERN_WARNING 3498 3499 "%s Rsp que:%d init failed\n", __func__, ··· 3506 3507 if (req) { 3507 3508 /* Clear outstanding commands array. */ 3508 3509 req->options &= ~BIT_0; 3509 - ret = qla25xx_init_req_que(base_vha, req, req->options); 3510 + ret = qla25xx_init_req_que(base_vha, req); 3510 3511 if (ret != QLA_SUCCESS) 3511 3512 DEBUG2_17(printk(KERN_WARNING 3512 3513 "%s Req que:%d init failed\n", __func__,
+35 -23
drivers/scsi/qla2xxx/qla_isr.c
··· 266 266 } 267 267 } 268 268 269 + static void 270 + qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr) 271 + { 272 + static char *event[] = 273 + { "Complete", "Request Notification", "Time Extension" }; 274 + int rval; 275 + struct device_reg_24xx __iomem *reg24 = &vha->hw->iobase->isp24; 276 + uint16_t __iomem *wptr; 277 + uint16_t cnt, timeout, mb[QLA_IDC_ACK_REGS]; 278 + 279 + /* Seed data -- mailbox1 -> mailbox7. */ 280 + wptr = (uint16_t __iomem *)&reg24->mailbox1; 281 + for (cnt = 0; cnt < QLA_IDC_ACK_REGS; cnt++, wptr++) 282 + mb[cnt] = RD_REG_WORD(wptr); 283 + 284 + DEBUG2(printk("scsi(%ld): Inter-Driver Commucation %s -- " 285 + "%04x %04x %04x %04x %04x %04x %04x.\n", vha->host_no, 286 + event[aen & 0xff], 287 + mb[0], mb[1], mb[2], mb[3], mb[4], mb[5], mb[6])); 288 + 289 + /* Acknowledgement needed? [Notify && non-zero timeout]. */ 290 + timeout = (descr >> 8) & 0xf; 291 + if (aen != MBA_IDC_NOTIFY || !timeout) 292 + return; 293 + 294 + DEBUG2(printk("scsi(%ld): Inter-Driver Commucation %s -- " 295 + "ACK timeout=%d.\n", vha->host_no, event[aen & 0xff], timeout)); 296 + 297 + rval = qla2x00_post_idc_ack_work(vha, mb); 298 + if (rval != QLA_SUCCESS) 299 + qla_printk(KERN_WARNING, vha->hw, 300 + "IDC failed to post ACK.\n"); 301 + } 302 + 269 303 /** 270 304 * qla2x00_async_event() - Process aynchronous events. 271 305 * @ha: SCSI driver HA context ··· 748 714 "%04x %04x %04x\n", vha->host_no, mb[1], mb[2], mb[3])); 749 715 break; 750 716 case MBA_IDC_COMPLETE: 751 - DEBUG2(printk("scsi(%ld): Inter-Driver Commucation " 752 - "Complete -- %04x %04x %04x\n", vha->host_no, mb[1], mb[2], 753 - mb[3])); 754 - break; 755 717 case MBA_IDC_NOTIFY: 756 - DEBUG2(printk("scsi(%ld): Inter-Driver Commucation " 757 - "Request Notification -- %04x %04x %04x\n", vha->host_no, 758 - mb[1], mb[2], mb[3])); 759 - /**** Mailbox registers 4 - 7 valid!!! */ 760 - break; 761 718 case MBA_IDC_TIME_EXT: 762 - DEBUG2(printk("scsi(%ld): Inter-Driver Commucation " 763 - "Time Extension -- %04x %04x %04x\n", vha->host_no, mb[1], 764 - mb[2], mb[3])); 765 - /**** Mailbox registers 4 - 7 valid!!! */ 719 + qla81xx_idc_event(vha, mb[0], mb[1]); 766 720 break; 767 721 } 768 722 ··· 1729 1707 struct qla_hw_data *ha; 1730 1708 struct rsp_que *rsp; 1731 1709 struct device_reg_24xx __iomem *reg; 1732 - uint16_t msix_disabled_hccr = 0; 1733 1710 1734 1711 rsp = (struct rsp_que *) dev_id; 1735 1712 if (!rsp) { ··· 1741 1720 1742 1721 spin_lock_irq(&ha->hardware_lock); 1743 1722 1744 - msix_disabled_hccr = rsp->options; 1745 - if (!rsp->id) 1746 - msix_disabled_hccr &= __constant_cpu_to_le32(BIT_22); 1747 - else 1748 - msix_disabled_hccr &= __constant_cpu_to_le32(BIT_6); 1749 - 1750 1723 qla24xx_process_response_queue(rsp); 1751 - 1752 - if (!msix_disabled_hccr) 1753 - WRT_REG_DWORD(&reg->hccr, HCCRX_CLR_RISC_INT); 1754 1724 1755 1725 spin_unlock_irq(&ha->hardware_lock); 1756 1726
+32 -8
drivers/scsi/qla2xxx/qla_mbx.c
··· 3090 3090 } 3091 3091 3092 3092 int 3093 - qla25xx_init_req_que(struct scsi_qla_host *vha, struct req_que *req, 3094 - uint8_t options) 3093 + qla25xx_init_req_que(struct scsi_qla_host *vha, struct req_que *req) 3095 3094 { 3096 3095 int rval; 3097 3096 unsigned long flags; ··· 3100 3101 struct qla_hw_data *ha = vha->hw; 3101 3102 3102 3103 mcp->mb[0] = MBC_INITIALIZE_MULTIQ; 3103 - mcp->mb[1] = options; 3104 + mcp->mb[1] = req->options; 3104 3105 mcp->mb[2] = MSW(LSD(req->dma)); 3105 3106 mcp->mb[3] = LSW(LSD(req->dma)); 3106 3107 mcp->mb[6] = MSW(MSD(req->dma)); ··· 3127 3128 mcp->tov = 60; 3128 3129 3129 3130 spin_lock_irqsave(&ha->hardware_lock, flags); 3130 - if (!(options & BIT_0)) { 3131 + if (!(req->options & BIT_0)) { 3131 3132 WRT_REG_DWORD(&reg->req_q_in, 0); 3132 3133 WRT_REG_DWORD(&reg->req_q_out, 0); 3133 3134 } ··· 3141 3142 } 3142 3143 3143 3144 int 3144 - qla25xx_init_rsp_que(struct scsi_qla_host *vha, struct rsp_que *rsp, 3145 - uint8_t options) 3145 + qla25xx_init_rsp_que(struct scsi_qla_host *vha, struct rsp_que *rsp) 3146 3146 { 3147 3147 int rval; 3148 3148 unsigned long flags; ··· 3151 3153 struct qla_hw_data *ha = vha->hw; 3152 3154 3153 3155 mcp->mb[0] = MBC_INITIALIZE_MULTIQ; 3154 - mcp->mb[1] = options; 3156 + mcp->mb[1] = rsp->options; 3155 3157 mcp->mb[2] = MSW(LSD(rsp->dma)); 3156 3158 mcp->mb[3] = LSW(LSD(rsp->dma)); 3157 3159 mcp->mb[6] = MSW(MSD(rsp->dma)); ··· 3176 3178 mcp->tov = 60; 3177 3179 3178 3180 spin_lock_irqsave(&ha->hardware_lock, flags); 3179 - if (!(options & BIT_0)) { 3181 + if (!(rsp->options & BIT_0)) { 3180 3182 WRT_REG_DWORD(&reg->rsp_q_out, 0); 3181 3183 WRT_REG_DWORD(&reg->rsp_q_in, 0); 3182 3184 } ··· 3191 3193 return rval; 3192 3194 } 3193 3195 3196 + int 3197 + qla81xx_idc_ack(scsi_qla_host_t *vha, uint16_t *mb) 3198 + { 3199 + int rval; 3200 + mbx_cmd_t mc; 3201 + mbx_cmd_t *mcp = &mc; 3202 + 3203 + DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); 3204 + 3205 + mcp->mb[0] = MBC_IDC_ACK; 3206 + memcpy(&mcp->mb[1], mb, QLA_IDC_ACK_REGS * sizeof(uint16_t)); 3207 + mcp->out_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 3208 + mcp->in_mb = MBX_0; 3209 + mcp->tov = MBX_TOV_SECONDS; 3210 + mcp->flags = 0; 3211 + rval = qla2x00_mailbox_command(vha, mcp); 3212 + 3213 + if (rval != QLA_SUCCESS) { 3214 + DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__, 3215 + vha->host_no, rval, mcp->mb[0])); 3216 + } else { 3217 + DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no)); 3218 + } 3219 + 3220 + return rval; 3221 + }
+6 -6
drivers/scsi/qla2xxx/qla_mid.c
··· 396 396 397 397 qla2x00_start_timer(vha, qla2x00_timer, WATCH_INTERVAL); 398 398 399 - memset(vha->req_ques, 0, sizeof(vha->req_ques) * QLA_MAX_HOST_QUES); 399 + memset(vha->req_ques, 0, sizeof(vha->req_ques)); 400 400 vha->req_ques[0] = ha->req_q_map[0]->id; 401 401 host->can_queue = ha->req_q_map[0]->length + 128; 402 402 host->this_id = 255; ··· 471 471 472 472 if (req) { 473 473 req->options |= BIT_0; 474 - ret = qla25xx_init_req_que(vha, req, req->options); 474 + ret = qla25xx_init_req_que(vha, req); 475 475 } 476 476 if (ret == QLA_SUCCESS) 477 477 qla25xx_free_req_que(vha, req); ··· 486 486 487 487 if (rsp) { 488 488 rsp->options |= BIT_0; 489 - ret = qla25xx_init_rsp_que(vha, rsp, rsp->options); 489 + ret = qla25xx_init_rsp_que(vha, rsp); 490 490 } 491 491 if (ret == QLA_SUCCESS) 492 492 qla25xx_free_rsp_que(vha, rsp); ··· 502 502 503 503 req->options |= BIT_3; 504 504 req->qos = qos; 505 - ret = qla25xx_init_req_que(vha, req, req->options); 505 + ret = qla25xx_init_req_que(vha, req); 506 506 if (ret != QLA_SUCCESS) 507 507 DEBUG2_17(printk(KERN_WARNING "%s failed\n", __func__)); 508 508 /* restore options bit */ ··· 632 632 req->max_q_depth = ha->req_q_map[0]->max_q_depth; 633 633 mutex_unlock(&ha->vport_lock); 634 634 635 - ret = qla25xx_init_req_que(base_vha, req, options); 635 + ret = qla25xx_init_req_que(base_vha, req); 636 636 if (ret != QLA_SUCCESS) { 637 637 qla_printk(KERN_WARNING, ha, "%s failed\n", __func__); 638 638 mutex_lock(&ha->vport_lock); ··· 710 710 if (ret) 711 711 goto que_failed; 712 712 713 - ret = qla25xx_init_rsp_que(base_vha, rsp, options); 713 + ret = qla25xx_init_rsp_que(base_vha, rsp); 714 714 if (ret != QLA_SUCCESS) { 715 715 qla_printk(KERN_WARNING, ha, "%s failed\n", __func__); 716 716 mutex_lock(&ha->vport_lock);
+16
drivers/scsi/qla2xxx/qla_os.c
··· 2522 2522 return qla2x00_post_work(vha, e, 1); 2523 2523 } 2524 2524 2525 + int 2526 + qla2x00_post_idc_ack_work(struct scsi_qla_host *vha, uint16_t *mb) 2527 + { 2528 + struct qla_work_evt *e; 2529 + 2530 + e = qla2x00_alloc_work(vha, QLA_EVT_IDC_ACK, 1); 2531 + if (!e) 2532 + return QLA_FUNCTION_FAILED; 2533 + 2534 + memcpy(e->u.idc_ack.mb, mb, QLA_IDC_ACK_REGS * sizeof(uint16_t)); 2535 + return qla2x00_post_work(vha, e, 1); 2536 + } 2537 + 2525 2538 static void 2526 2539 qla2x00_do_work(struct scsi_qla_host *vha) 2527 2540 { ··· 2551 2538 case QLA_EVT_AEN: 2552 2539 fc_host_post_event(vha->host, fc_get_event_number(), 2553 2540 e->u.aen.code, e->u.aen.data); 2541 + break; 2542 + case QLA_EVT_IDC_ACK: 2543 + qla81xx_idc_ack(vha, e->u.idc_ack.mb); 2554 2544 break; 2555 2545 } 2556 2546 if (e->flags & QLA_EVT_FLAG_FREE)
+1 -1
drivers/scsi/qla2xxx/qla_sup.c
··· 684 684 "end=0x%x size=0x%x.\n", le32_to_cpu(region->code), start, 685 685 le32_to_cpu(region->end) >> 2, le32_to_cpu(region->size))); 686 686 687 - switch (le32_to_cpu(region->code)) { 687 + switch (le32_to_cpu(region->code) & 0xff) { 688 688 case FLT_REG_FW: 689 689 ha->flt_region_fw = start; 690 690 break;
+1 -1
drivers/scsi/qla2xxx/qla_version.h
··· 7 7 /* 8 8 * Driver version 9 9 */ 10 - #define QLA2XXX_VERSION "8.03.00-k2" 10 + #define QLA2XXX_VERSION "8.03.00-k3" 11 11 12 12 #define QLA_DRIVER_MAJOR_VER 8 13 13 #define QLA_DRIVER_MINOR_VER 3
+1
drivers/scsi/scsi_scan.c
··· 317 317 return sdev; 318 318 319 319 out_device_destroy: 320 + scsi_device_set_state(sdev, SDEV_DEL); 320 321 transport_destroy_device(&sdev->sdev_gendev); 321 322 put_device(&sdev->sdev_gendev); 322 323 out:
+1 -1
drivers/scsi/sg.c
··· 1078 1078 case BLKTRACESETUP: 1079 1079 return blk_trace_setup(sdp->device->request_queue, 1080 1080 sdp->disk->disk_name, 1081 - sdp->device->sdev_gendev.devt, 1081 + MKDEV(SCSI_GENERIC_MAJOR, sdp->index), 1082 1082 (char *)arg); 1083 1083 case BLKTRACESTART: 1084 1084 return blk_trace_startstop(sdp->device->request_queue, 1);