diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/ipr.c | 1 | ||||
-rw-r--r-- | drivers/scsi/lasi700.c | 6 | ||||
-rw-r--r-- | drivers/scsi/qedf/qedf_els.c | 14 | ||||
-rw-r--r-- | drivers/scsi/sg.c | 2 | ||||
-rw-r--r-- | drivers/scsi/zalon.c | 8 |
5 files changed, 17 insertions, 14 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index da5bdbdcce52..f838bd73befa 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -4945,6 +4945,7 @@ static int ipr_slave_configure(struct scsi_device *sdev) } if (ipr_is_vset_device(res)) { sdev->scsi_level = SCSI_SPC_3; + sdev->no_report_opcodes = 1; blk_queue_rq_timeout(sdev->request_queue, IPR_VSET_RW_TIMEOUT); blk_queue_max_hw_sectors(sdev->request_queue, IPR_VSET_MAX_SECTORS); diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c index 5c4ded997265..dc839279bbd9 100644 --- a/drivers/scsi/lasi700.c +++ b/drivers/scsi/lasi700.c @@ -81,7 +81,7 @@ MODULE_LICENSE("GPL"); #define LASI710_CLOCK 40 #define LASI_SCSI_CORE_OFFSET 0x100 -static struct parisc_device_id lasi700_ids[] = { +static const struct parisc_device_id lasi700_ids[] __initconst = { LASI700_ID_TABLE, LASI710_ID_TABLE, { 0 } @@ -164,11 +164,11 @@ lasi700_driver_remove(struct parisc_device *dev) return 0; } -static struct parisc_driver lasi700_driver = { +static struct parisc_driver lasi700_driver __refdata = { .name = "lasi_scsi", .id_table = lasi700_ids, .probe = lasi700_probe, - .remove = lasi700_driver_remove, + .remove = __exit_p(lasi700_driver_remove), }; static int __init diff --git a/drivers/scsi/qedf/qedf_els.c b/drivers/scsi/qedf/qedf_els.c index eb07f1de8afa..59c18ca4cda9 100644 --- a/drivers/scsi/qedf/qedf_els.c +++ b/drivers/scsi/qedf/qedf_els.c @@ -489,7 +489,7 @@ static void qedf_srr_compl(struct qedf_els_cb_arg *cb_arg) /* If a SRR times out, simply free resources */ if (srr_req->event == QEDF_IOREQ_EV_ELS_TMO) - goto out_free; + goto out_put; /* Normalize response data into struct fc_frame */ mp_req = &(srr_req->mp_req); @@ -501,7 +501,7 @@ static void qedf_srr_compl(struct qedf_els_cb_arg *cb_arg) if (!fp) { QEDF_ERR(&(qedf->dbg_ctx), "fc_frame_alloc failure.\n"); - goto out_free; + goto out_put; } /* Copy frame header from firmware into fp */ @@ -526,9 +526,10 @@ static void qedf_srr_compl(struct qedf_els_cb_arg *cb_arg) } fc_frame_free(fp); -out_free: +out_put: /* Put reference for original command since SRR completed */ kref_put(&orig_io_req->refcount, qedf_release_cmd); +out_free: kfree(cb_arg); } @@ -780,7 +781,7 @@ static void qedf_rec_compl(struct qedf_els_cb_arg *cb_arg) /* If a REC times out, free resources */ if (rec_req->event == QEDF_IOREQ_EV_ELS_TMO) - goto out_free; + goto out_put; /* Normalize response data into struct fc_frame */ mp_req = &(rec_req->mp_req); @@ -792,7 +793,7 @@ static void qedf_rec_compl(struct qedf_els_cb_arg *cb_arg) if (!fp) { QEDF_ERR(&(qedf->dbg_ctx), "fc_frame_alloc failure.\n"); - goto out_free; + goto out_put; } /* Copy frame header from firmware into fp */ @@ -884,9 +885,10 @@ static void qedf_rec_compl(struct qedf_els_cb_arg *cb_arg) out_free_frame: fc_frame_free(fp); -out_free: +out_put: /* Put reference for original command since REC completed */ kref_put(&orig_io_req->refcount, qedf_release_cmd); +out_free: kfree(cb_arg); } diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index d7ff71e0c85c..84e782d8e7c3 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -1021,7 +1021,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) read_lock_irqsave(&sfp->rq_list_lock, iflags); val = 0; list_for_each_entry(srp, &sfp->rq_list, entry) { - if (val > SG_MAX_QUEUE) + if (val >= SG_MAX_QUEUE) break; memset(&rinfo[val], 0, SZ_SG_REQ_INFO); rinfo[val].req_state = srp->done + 1; diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c index b2cf1faa819d..4722660958f8 100644 --- a/drivers/scsi/zalon.c +++ b/drivers/scsi/zalon.c @@ -160,14 +160,14 @@ zalon_probe(struct parisc_device *dev) return error; } -static struct parisc_device_id zalon_tbl[] = { +static const struct parisc_device_id zalon_tbl[] __initconst = { { HPHW_A_DMA, HVERSION_REV_ANY_ID, HVERSION_ANY_ID, 0x00089 }, { 0, } }; MODULE_DEVICE_TABLE(parisc, zalon_tbl); -static int zalon_remove(struct parisc_device *dev) +static int __exit zalon_remove(struct parisc_device *dev) { struct Scsi_Host *host = dev_get_drvdata(&dev->dev); @@ -178,11 +178,11 @@ static int zalon_remove(struct parisc_device *dev) return 0; } -static struct parisc_driver zalon_driver = { +static struct parisc_driver zalon_driver __refdata = { .name = "zalon", .id_table = zalon_tbl, .probe = zalon_probe, - .remove = zalon_remove, + .remove = __exit_p(zalon_remove), }; static int __init zalon7xx_init(void) |