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.

scsi: qla2xxx: Report invalid mailbox status codes

It is easy to mix up the QLA_* and the MBS_* status codes. Complain loudly
if that happens.

Cc: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Tested-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Bart Van Assche and committed by
Martin K. Petersen
72436192 1a20719e

+14
+5
drivers/scsi/qla2xxx/qla_def.h
··· 990 990 #define MBS_LINK_DOWN_ERROR 0x400B 991 991 #define MBS_DIAG_ECHO_TEST_ERROR 0x400C 992 992 993 + static inline bool qla2xxx_is_valid_mbs(unsigned int mbs) 994 + { 995 + return MBS_COMMAND_COMPLETE <= mbs && mbs <= MBS_DIAG_ECHO_TEST_ERROR; 996 + } 997 + 993 998 /* 994 999 * ISP mailbox asynchronous event status codes 995 1000 */
+9
drivers/scsi/qla2xxx/qla_init.c
··· 477 477 fcport->fw_login_state, ea->rc, fcport->login_gen, ea->sp->gen2, 478 478 fcport->rscn_gen, ea->sp->gen1, fcport->loop_id); 479 479 480 + WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", 481 + ea->data[0]); 482 + 480 483 if (ea->data[0] != MBS_COMMAND_COMPLETE) { 481 484 ql_dbg(ql_dbg_disc, vha, 0x2066, 482 485 "%s %8phC: adisc fail: post delete\n", ··· 1896 1893 static void 1897 1894 qla24xx_handle_prli_done_event(struct scsi_qla_host *vha, struct event_arg *ea) 1898 1895 { 1896 + WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", 1897 + ea->data[0]); 1898 + 1899 1899 switch (ea->data[0]) { 1900 1900 case MBS_COMMAND_COMPLETE: 1901 1901 ql_dbg(ql_dbg_disc, vha, 0x2118, ··· 1983 1977 qlt_schedule_sess_for_deletion(fcport); 1984 1978 return; 1985 1979 } 1980 + 1981 + WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", 1982 + ea->data[0]); 1986 1983 1987 1984 switch (ea->data[0]) { 1988 1985 case MBS_COMMAND_COMPLETE: