diff options
author | Madhuranath Iyengar <madhuranath.iyengar@qlogic.com> | 2010-07-23 06:28:24 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-28 10:06:08 -0400 |
commit | 2f0f3f4f06f7cfadebf58b70bd9e7f71d8fd96e4 (patch) | |
tree | a830ea66f0f4aca7da0e915d30dca8c1be6cfe28 /drivers/scsi/qla2xxx/qla_bsg.c | |
parent | d94d10e7277069801b4e31b40770314a8421f996 (diff) |
[SCSI] qla2xxx: Appropriately log FCP priority data messages
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_bsg.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_bsg.c | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c index 20eaa1c42ae2..d551ae19d4e1 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.c +++ b/drivers/scsi/qla2xxx/qla_bsg.c | |||
@@ -41,13 +41,28 @@ qla24xx_fcp_prio_cfg_valid(struct qla_fcp_prio_cfg *pri_cfg, uint8_t flag) | |||
41 | int i, ret, num_valid; | 41 | int i, ret, num_valid; |
42 | uint8_t *bcode; | 42 | uint8_t *bcode; |
43 | struct qla_fcp_prio_entry *pri_entry; | 43 | struct qla_fcp_prio_entry *pri_entry; |
44 | uint32_t *bcode_val_ptr, bcode_val; | ||
44 | 45 | ||
45 | ret = 1; | 46 | ret = 1; |
46 | num_valid = 0; | 47 | num_valid = 0; |
47 | bcode = (uint8_t *)pri_cfg; | 48 | bcode = (uint8_t *)pri_cfg; |
49 | bcode_val_ptr = (uint32_t *)pri_cfg; | ||
50 | bcode_val = (uint32_t)(*bcode_val_ptr); | ||
48 | 51 | ||
49 | if (bcode[0x0] != 'H' || bcode[0x1] != 'Q' || bcode[0x2] != 'O' || | 52 | if (bcode_val == 0xFFFFFFFF) { |
50 | bcode[0x3] != 'S') { | 53 | /* No FCP Priority config data in flash */ |
54 | DEBUG2(printk(KERN_INFO | ||
55 | "%s: No FCP priority config data.\n", | ||
56 | __func__)); | ||
57 | return 0; | ||
58 | } | ||
59 | |||
60 | if (bcode[0] != 'H' || bcode[1] != 'Q' || bcode[2] != 'O' || | ||
61 | bcode[3] != 'S') { | ||
62 | /* Invalid FCP priority data header*/ | ||
63 | DEBUG2(printk(KERN_ERR | ||
64 | "%s: Invalid FCP Priority data header. bcode=0x%x\n", | ||
65 | __func__, bcode_val)); | ||
51 | return 0; | 66 | return 0; |
52 | } | 67 | } |
53 | if (flag != 1) | 68 | if (flag != 1) |
@@ -60,8 +75,18 @@ qla24xx_fcp_prio_cfg_valid(struct qla_fcp_prio_cfg *pri_cfg, uint8_t flag) | |||
60 | pri_entry++; | 75 | pri_entry++; |
61 | } | 76 | } |
62 | 77 | ||
63 | if (num_valid == 0) | 78 | if (num_valid == 0) { |
79 | /* No valid FCP priority data entries */ | ||
80 | DEBUG2(printk(KERN_ERR | ||
81 | "%s: No valid FCP Priority data entries.\n", | ||
82 | __func__)); | ||
64 | ret = 0; | 83 | ret = 0; |
84 | } else { | ||
85 | /* FCP priority data is valid */ | ||
86 | DEBUG2(printk(KERN_INFO | ||
87 | "%s: Valid FCP priority data. num entries = %d\n", | ||
88 | __func__, num_valid)); | ||
89 | } | ||
65 | 90 | ||
66 | return ret; | 91 | return ret; |
67 | } | 92 | } |
@@ -78,6 +103,11 @@ qla24xx_proc_fcp_prio_cfg_cmd(struct fc_bsg_job *bsg_job) | |||
78 | 103 | ||
79 | bsg_job->reply->reply_payload_rcv_len = 0; | 104 | bsg_job->reply->reply_payload_rcv_len = 0; |
80 | 105 | ||
106 | if (!IS_QLA24XX_TYPE(ha) || !IS_QLA25XX(ha)) { | ||
107 | ret = -EINVAL; | ||
108 | goto exit_fcp_prio_cfg; | ||
109 | } | ||
110 | |||
81 | if (test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags) || | 111 | if (test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags) || |
82 | test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) || | 112 | test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) || |
83 | test_bit(ISP_ABORT_RETRY, &vha->dpc_flags)) { | 113 | test_bit(ISP_ABORT_RETRY, &vha->dpc_flags)) { |