Skip to content

Commit 741e9d6

Browse files
committed
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley: "Only a couple of driver updates this time (lpfc and mpt3sas) plus the usual assorted minor fixes and updates. The major core update is a set of patches moving retries out of the drivers and into the core" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (84 commits) scsi: core: Constify the struct device_type usage scsi: libfc: replace deprecated strncpy() with memcpy() scsi: lpfc: Replace deprecated strncpy() with strscpy() scsi: bfa: Fix function pointer type mismatch for state machines scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn scsi: bfa: Remove additional unnecessary struct declarations scsi: csiostor: Avoid function pointer casts scsi: qla1280: Remove redundant assignment to variable 'mr' scsi: core: Make scsi_bus_type const scsi: core: Really include kunit tests with SCSI_LIB_KUNIT_TEST scsi: target: tcm_loop: Make tcm_loop_lld_bus const scsi: scsi_debug: Make pseudo_lld_bus const scsi: iscsi: Make iscsi_flashnode_bus const scsi: fcoe: Make fcoe_bus_type const scsi: lpfc: Copyright updates for 14.4.0.0 patches scsi: lpfc: Update lpfc version to 14.4.0.0 scsi: lpfc: Change lpfc_vport load_flag member into a bitmask scsi: lpfc: Change lpfc_vport fc_flag member into a bitmask scsi: lpfc: Protect vport fc_nodes list with an explicit spin lock scsi: lpfc: Change nlp state statistic counters into atomic_t ...
2 parents 342d965 + 517bcc2 commit 741e9d6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+2746
-1835
lines changed

drivers/message/fusion/mptfc.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,7 +1401,6 @@ static struct pci_driver mptfc_driver = {
14011401
static int
14021402
mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
14031403
{
1404-
MPT_SCSI_HOST *hd;
14051404
u8 event = le32_to_cpu(pEvReply->Event) & 0xFF;
14061405
unsigned long flags;
14071406
int rc=1;
@@ -1412,8 +1411,7 @@ mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
14121411
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n",
14131412
ioc->name, event));
14141413

1415-
if (ioc->sh == NULL ||
1416-
((hd = shost_priv(ioc->sh)) == NULL))
1414+
if (ioc->sh == NULL || shost_priv(ioc->sh) == NULL)
14171415
return 1;
14181416

14191417
switch (event) {

drivers/scsi/3w-9xxx.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -161,28 +161,28 @@ static ssize_t twa_show_stats(struct device *dev,
161161
ssize_t len;
162162

163163
spin_lock_irqsave(tw_dev->host->host_lock, flags);
164-
len = snprintf(buf, PAGE_SIZE, "3w-9xxx Driver version: %s\n"
165-
"Current commands posted: %4d\n"
166-
"Max commands posted: %4d\n"
167-
"Current pending commands: %4d\n"
168-
"Max pending commands: %4d\n"
169-
"Last sgl length: %4d\n"
170-
"Max sgl length: %4d\n"
171-
"Last sector count: %4d\n"
172-
"Max sector count: %4d\n"
173-
"SCSI Host Resets: %4d\n"
174-
"AEN's: %4d\n",
175-
TW_DRIVER_VERSION,
176-
tw_dev->posted_request_count,
177-
tw_dev->max_posted_request_count,
178-
tw_dev->pending_request_count,
179-
tw_dev->max_pending_request_count,
180-
tw_dev->sgl_entries,
181-
tw_dev->max_sgl_entries,
182-
tw_dev->sector_count,
183-
tw_dev->max_sector_count,
184-
tw_dev->num_resets,
185-
tw_dev->aen_count);
164+
len = sysfs_emit(buf, "3w-9xxx Driver version: %s\n"
165+
"Current commands posted: %4d\n"
166+
"Max commands posted: %4d\n"
167+
"Current pending commands: %4d\n"
168+
"Max pending commands: %4d\n"
169+
"Last sgl length: %4d\n"
170+
"Max sgl length: %4d\n"
171+
"Last sector count: %4d\n"
172+
"Max sector count: %4d\n"
173+
"SCSI Host Resets: %4d\n"
174+
"AEN's: %4d\n",
175+
TW_DRIVER_VERSION,
176+
tw_dev->posted_request_count,
177+
tw_dev->max_posted_request_count,
178+
tw_dev->pending_request_count,
179+
tw_dev->max_pending_request_count,
180+
tw_dev->sgl_entries,
181+
tw_dev->max_sgl_entries,
182+
tw_dev->sector_count,
183+
tw_dev->max_sector_count,
184+
tw_dev->num_resets,
185+
tw_dev->aen_count);
186186
spin_unlock_irqrestore(tw_dev->host->host_lock, flags);
187187
return len;
188188
} /* End twa_show_stats() */

drivers/scsi/3w-sas.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -166,24 +166,24 @@ static ssize_t twl_show_stats(struct device *dev,
166166
ssize_t len;
167167

168168
spin_lock_irqsave(tw_dev->host->host_lock, flags);
169-
len = snprintf(buf, PAGE_SIZE, "3w-sas Driver version: %s\n"
170-
"Current commands posted: %4d\n"
171-
"Max commands posted: %4d\n"
172-
"Last sgl length: %4d\n"
173-
"Max sgl length: %4d\n"
174-
"Last sector count: %4d\n"
175-
"Max sector count: %4d\n"
176-
"SCSI Host Resets: %4d\n"
177-
"AEN's: %4d\n",
178-
TW_DRIVER_VERSION,
179-
tw_dev->posted_request_count,
180-
tw_dev->max_posted_request_count,
181-
tw_dev->sgl_entries,
182-
tw_dev->max_sgl_entries,
183-
tw_dev->sector_count,
184-
tw_dev->max_sector_count,
185-
tw_dev->num_resets,
186-
tw_dev->aen_count);
169+
len = sysfs_emit(buf, "3w-sas Driver version: %s\n"
170+
"Current commands posted: %4d\n"
171+
"Max commands posted: %4d\n"
172+
"Last sgl length: %4d\n"
173+
"Max sgl length: %4d\n"
174+
"Last sector count: %4d\n"
175+
"Max sector count: %4d\n"
176+
"SCSI Host Resets: %4d\n"
177+
"AEN's: %4d\n",
178+
TW_DRIVER_VERSION,
179+
tw_dev->posted_request_count,
180+
tw_dev->max_posted_request_count,
181+
tw_dev->sgl_entries,
182+
tw_dev->max_sgl_entries,
183+
tw_dev->sector_count,
184+
tw_dev->max_sector_count,
185+
tw_dev->num_resets,
186+
tw_dev->aen_count);
187187
spin_unlock_irqrestore(tw_dev->host->host_lock, flags);
188188
return len;
189189
} /* End twl_show_stats() */

drivers/scsi/3w-xxxx.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -496,28 +496,28 @@ static ssize_t tw_show_stats(struct device *dev, struct device_attribute *attr,
496496
ssize_t len;
497497

498498
spin_lock_irqsave(tw_dev->host->host_lock, flags);
499-
len = snprintf(buf, PAGE_SIZE, "3w-xxxx Driver version: %s\n"
500-
"Current commands posted: %4d\n"
501-
"Max commands posted: %4d\n"
502-
"Current pending commands: %4d\n"
503-
"Max pending commands: %4d\n"
504-
"Last sgl length: %4d\n"
505-
"Max sgl length: %4d\n"
506-
"Last sector count: %4d\n"
507-
"Max sector count: %4d\n"
508-
"SCSI Host Resets: %4d\n"
509-
"AEN's: %4d\n",
510-
TW_DRIVER_VERSION,
511-
tw_dev->posted_request_count,
512-
tw_dev->max_posted_request_count,
513-
tw_dev->pending_request_count,
514-
tw_dev->max_pending_request_count,
515-
tw_dev->sgl_entries,
516-
tw_dev->max_sgl_entries,
517-
tw_dev->sector_count,
518-
tw_dev->max_sector_count,
519-
tw_dev->num_resets,
520-
tw_dev->aen_count);
499+
len = sysfs_emit(buf, "3w-xxxx Driver version: %s\n"
500+
"Current commands posted: %4d\n"
501+
"Max commands posted: %4d\n"
502+
"Current pending commands: %4d\n"
503+
"Max pending commands: %4d\n"
504+
"Last sgl length: %4d\n"
505+
"Max sgl length: %4d\n"
506+
"Last sector count: %4d\n"
507+
"Max sector count: %4d\n"
508+
"SCSI Host Resets: %4d\n"
509+
"AEN's: %4d\n",
510+
TW_DRIVER_VERSION,
511+
tw_dev->posted_request_count,
512+
tw_dev->max_posted_request_count,
513+
tw_dev->pending_request_count,
514+
tw_dev->max_pending_request_count,
515+
tw_dev->sgl_entries,
516+
tw_dev->max_sgl_entries,
517+
tw_dev->sector_count,
518+
tw_dev->max_sector_count,
519+
tw_dev->num_resets,
520+
tw_dev->aen_count);
521521
spin_unlock_irqrestore(tw_dev->host->host_lock, flags);
522522
return len;
523523
} /* End tw_show_stats() */

drivers/scsi/53c700.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2071,7 +2071,7 @@ NCR_700_show_active_tags(struct device *dev, struct device_attribute *attr, char
20712071
{
20722072
struct scsi_device *SDp = to_scsi_device(dev);
20732073

2074-
return snprintf(buf, 20, "%d\n", NCR_700_get_depth(SDp));
2074+
return sysfs_emit(buf, "%d\n", NCR_700_get_depth(SDp));
20752075
}
20762076

20772077
static struct device_attribute NCR_700_active_tags_attr = {

drivers/scsi/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,15 @@ config SCSI_PROC_FS
6767

6868
If unsure say Y.
6969

70+
config SCSI_LIB_KUNIT_TEST
71+
tristate "KUnit tests for SCSI Mid Layer's scsi_lib" if !KUNIT_ALL_TESTS
72+
depends on KUNIT
73+
default KUNIT_ALL_TESTS
74+
help
75+
Run SCSI Mid Layer's KUnit tests for scsi_lib.
76+
77+
If unsure say N.
78+
7079
comment "SCSI support type (disk, tape, CD-ROM)"
7180
depends on SCSI
7281

drivers/scsi/aacraid/aachba.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,7 @@ static void get_container_serial_callback(void *context, struct fib * fibptr)
10991099
sp[0] = INQD_PDT_DA;
11001100
sp[1] = scsicmd->cmnd[2];
11011101
sp[2] = 0;
1102-
sp[3] = snprintf(sp+4, sizeof(sp)-4, "%08X",
1102+
sp[3] = scnprintf(sp+4, sizeof(sp)-4, "%08X",
11031103
le32_to_cpu(get_serial_reply->uid));
11041104
scsi_sg_copy_from_buffer(scsicmd, sp,
11051105
sizeof(sp));
@@ -1169,8 +1169,8 @@ static int setinqserial(struct aac_dev *dev, void *data, int cid)
11691169
/*
11701170
* This breaks array migration.
11711171
*/
1172-
return snprintf((char *)(data), sizeof(struct scsi_inq) - 4, "%08X%02X",
1173-
le32_to_cpu(dev->adapter_info.serial[0]), cid);
1172+
return scnprintf((char *)(data), sizeof(struct scsi_inq) - 4, "%08X%02X",
1173+
le32_to_cpu(dev->adapter_info.serial[0]), cid);
11741174
}
11751175

11761176
static inline void set_sense(struct sense_data *sense_data, u8 sense_key,

drivers/scsi/bfa/bfa.h

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
struct bfa_s;
2121

2222
typedef void (*bfa_isr_func_t) (struct bfa_s *bfa, struct bfi_msg_s *m);
23-
typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status);
2423

2524
/*
2625
* Interrupt message handlers
@@ -216,8 +215,27 @@ struct bfa_faa_args_s {
216215
bfa_boolean_t busy;
217216
};
218217

218+
/*
219+
* IOCFC state machine definitions/declarations
220+
*/
221+
enum iocfc_event {
222+
IOCFC_E_INIT = 1, /* IOCFC init request */
223+
IOCFC_E_START = 2, /* IOCFC mod start request */
224+
IOCFC_E_STOP = 3, /* IOCFC stop request */
225+
IOCFC_E_ENABLE = 4, /* IOCFC enable request */
226+
IOCFC_E_DISABLE = 5, /* IOCFC disable request */
227+
IOCFC_E_IOC_ENABLED = 6, /* IOC enabled message */
228+
IOCFC_E_IOC_DISABLED = 7, /* IOC disabled message */
229+
IOCFC_E_IOC_FAILED = 8, /* failure notice by IOC sm */
230+
IOCFC_E_DCONF_DONE = 9, /* dconf read/write done */
231+
IOCFC_E_CFG_DONE = 10, /* IOCFC config complete */
232+
};
233+
234+
struct bfa_iocfc_s;
235+
typedef void (*bfa_iocfs_fsm_t)(struct bfa_iocfc_s *, enum iocfc_event);
236+
219237
struct bfa_iocfc_s {
220-
bfa_fsm_t fsm;
238+
bfa_iocfs_fsm_t fsm;
221239
struct bfa_s *bfa;
222240
struct bfa_iocfc_cfg_s cfg;
223241
u32 req_cq_pi[BFI_IOC_MAX_CQS];
@@ -437,4 +455,12 @@ struct bfa_cb_pending_q_s {
437455
(__qe)->data = (__data); \
438456
} while (0)
439457

458+
#define bfa_pending_q_init_status(__qe, __cbfn, __cbarg, __data) do { \
459+
bfa_q_qe_init(&((__qe)->hcb_qe.qe)); \
460+
(__qe)->hcb_qe.cbfn_status = (__cbfn); \
461+
(__qe)->hcb_qe.cbarg = (__cbarg); \
462+
(__qe)->hcb_qe.pre_rmv = BFA_TRUE; \
463+
(__qe)->data = (__data); \
464+
} while (0)
465+
440466
#endif /* __BFA_H__ */

drivers/scsi/bfa/bfa_core.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1907,15 +1907,13 @@ bfa_comp_process(struct bfa_s *bfa, struct list_head *comp_q)
19071907
struct list_head *qe;
19081908
struct list_head *qen;
19091909
struct bfa_cb_qe_s *hcb_qe;
1910-
bfa_cb_cbfn_status_t cbfn;
19111910

19121911
list_for_each_safe(qe, qen, comp_q) {
19131912
hcb_qe = (struct bfa_cb_qe_s *) qe;
19141913
if (hcb_qe->pre_rmv) {
19151914
/* qe is invalid after return, dequeue before cbfn() */
19161915
list_del(qe);
1917-
cbfn = (bfa_cb_cbfn_status_t)(hcb_qe->cbfn);
1918-
cbfn(hcb_qe->cbarg, hcb_qe->fw_status);
1916+
hcb_qe->cbfn_status(hcb_qe->cbarg, hcb_qe->fw_status);
19191917
} else
19201918
hcb_qe->cbfn(hcb_qe->cbarg, BFA_TRUE);
19211919
}

drivers/scsi/bfa/bfa_cs.h

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,10 @@ typedef void (*bfa_sm_t)(void *sm, int event);
187187
#define bfa_sm_state_decl(oc, st, otype, etype) \
188188
static void oc ## _sm_ ## st(otype * fsm, etype event)
189189

190-
#define bfa_sm_set_state(_sm, _state) ((_sm)->sm = (bfa_sm_t)(_state))
190+
#define bfa_sm_set_state(_sm, _state) ((_sm)->sm = (_state))
191191
#define bfa_sm_send_event(_sm, _event) ((_sm)->sm((_sm), (_event)))
192192
#define bfa_sm_get_state(_sm) ((_sm)->sm)
193-
#define bfa_sm_cmp_state(_sm, _state) ((_sm)->sm == (bfa_sm_t)(_state))
193+
#define bfa_sm_cmp_state(_sm, _state) ((_sm)->sm == (_state))
194194

195195
/*
196196
* For converting from state machine function to state encoding.
@@ -200,7 +200,7 @@ struct bfa_sm_table_s {
200200
int state; /* state machine encoding */
201201
char *name; /* state name for display */
202202
};
203-
#define BFA_SM(_sm) ((bfa_sm_t)(_sm))
203+
#define BFA_SM(_sm) (_sm)
204204

205205
/*
206206
* State machine with entry actions.
@@ -218,24 +218,13 @@ typedef void (*bfa_fsm_t)(void *fsm, int event);
218218
static void oc ## _sm_ ## st ## _entry(otype * fsm)
219219

220220
#define bfa_fsm_set_state(_fsm, _state) do { \
221-
(_fsm)->fsm = (bfa_fsm_t)(_state); \
221+
(_fsm)->fsm = (_state); \
222222
_state ## _entry(_fsm); \
223223
} while (0)
224224

225225
#define bfa_fsm_send_event(_fsm, _event) ((_fsm)->fsm((_fsm), (_event)))
226226
#define bfa_fsm_get_state(_fsm) ((_fsm)->fsm)
227-
#define bfa_fsm_cmp_state(_fsm, _state) \
228-
((_fsm)->fsm == (bfa_fsm_t)(_state))
229-
230-
static inline int
231-
bfa_sm_to_state(struct bfa_sm_table_s *smt, bfa_sm_t sm)
232-
{
233-
int i = 0;
234-
235-
while (smt[i].sm && smt[i].sm != sm)
236-
i++;
237-
return smt[i].state;
238-
}
227+
#define bfa_fsm_cmp_state(_fsm, _state) ((_fsm)->fsm == (_state))
239228

240229
/*
241230
* @ Generic wait counter.

0 commit comments

Comments
 (0)