Re: [PATCH 06/25] qla2xxx: Reduce excessive debug print during 27xx fwdump.

2017-05-21 Thread kbuild test robot
Hi Joe,

[auto build test WARNING on scsi/for-next]
[also build test WARNING on v4.12-rc1 next-20170519]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Himanshu-Madhani/qla2xxx-Bug-fixes-and-cleanups/20170521-131406
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
wget 
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=xtensa 

All warnings (new ones prefixed by >>):

   drivers/scsi/qla2xxx/qla_init.c: In function 'qla24xx_load_risc_flash':
>> drivers/scsi/qla2xxx/qla_init.c:6360:7: warning: format '%lx' expects 
>> argument of type 'long unsigned int', but argument 5 has type 'uint32_t' 
>> [-Wformat=]
  dlen - risc_size * sizeof(*dcode));
  ^
   drivers/scsi/qla2xxx/qla_init.c: In function 'qla24xx_load_risc_blob':
   drivers/scsi/qla2xxx/qla_init.c:6662:7: warning: format '%lx' expects 
argument of type 'long unsigned int', but argument 5 has type 'uint32_t' 
[-Wformat=]
  dlen - risc_size * sizeof(*fwcode));
  ^

vim +6360 drivers/scsi/qla2xxx/qla_init.c

  6344  qla24xx_read_flash_data(vha, dcode, faddr, risc_size);
  6345  for (i = 0; i < risc_size; i++)
  6346  dcode[i] = le32_to_cpu(dcode[i]);
  6347  
  6348  if (!qla27xx_fwdt_template_valid(dcode)) {
  6349  ql_log(ql_log_warn, vha, 0x0165,
  6350  "Failed fwdump template validate\n");
  6351  goto default_template;
  6352  }
  6353  
  6354  dlen = qla27xx_fwdt_template_size(dcode);
  6355  ql_dbg(ql_dbg_init, vha, 0x0166,
  6356  "-> template size %x bytes\n", dlen);
  6357  if (dlen > risc_size * sizeof(*dcode)) {
  6358  ql_log(ql_log_warn, vha, 0x0167,
  6359  "Failed fwdump template exceeds array by %lx 
bytes\n",
> 6360  dlen - risc_size * sizeof(*dcode));
  6361  goto default_template;
  6362  }
  6363  ha->fw_dump_template_len = dlen;
  6364  return rval;
  6365  
  6366  default_template:
  6367  ql_log(ql_log_warn, vha, 0x0168, "Using default fwdump 
template\n");
  6368  if (ha->fw_dump_template)

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip


Re: [PATCH 06/25] qla2xxx: Reduce excessive debug print during 27xx fwdump.

2017-05-21 Thread kbuild test robot
Hi Joe,

[auto build test WARNING on scsi/for-next]
[also build test WARNING on v4.12-rc1 next-20170519]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Himanshu-Madhani/qla2xxx-Bug-fixes-and-cleanups/20170521-131406
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 

All warnings (new ones prefixed by >>):

   drivers/scsi/qla2xxx/qla_init.c: In function 'qla24xx_load_risc_flash':
>> drivers/scsi/qla2xxx/qla_init.c:6359:50: warning: format '%lx' expects 
>> argument of type 'long unsigned int', but argument 5 has type 'uint32_t {aka 
>> unsigned int}' [-Wformat=]
  "Failed fwdump template exceeds array by %lx bytes\n",
 ^
   drivers/scsi/qla2xxx/qla_init.c: In function 'qla24xx_load_risc_blob':
   drivers/scsi/qla2xxx/qla_init.c:6661:50: warning: format '%lx' expects 
argument of type 'long unsigned int', but argument 5 has type 'uint32_t {aka 
unsigned int}' [-Wformat=]
  "Failed fwdump template exceeds array by %lx bytes\n",
 ^

vim +6359 drivers/scsi/qla2xxx/qla_init.c

  6343  dcode = ha->fw_dump_template;
  6344  qla24xx_read_flash_data(vha, dcode, faddr, risc_size);
  6345  for (i = 0; i < risc_size; i++)
  6346  dcode[i] = le32_to_cpu(dcode[i]);
  6347  
  6348  if (!qla27xx_fwdt_template_valid(dcode)) {
  6349  ql_log(ql_log_warn, vha, 0x0165,
  6350  "Failed fwdump template validate\n");
  6351  goto default_template;
  6352  }
  6353  
  6354  dlen = qla27xx_fwdt_template_size(dcode);
  6355  ql_dbg(ql_dbg_init, vha, 0x0166,
  6356  "-> template size %x bytes\n", dlen);
  6357  if (dlen > risc_size * sizeof(*dcode)) {
  6358  ql_log(ql_log_warn, vha, 0x0167,
> 6359  "Failed fwdump template exceeds array by %lx 
> bytes\n",
  6360  dlen - risc_size * sizeof(*dcode));
  6361  goto default_template;
  6362  }
  6363  ha->fw_dump_template_len = dlen;
  6364  return rval;
  6365  
  6366  default_template:
  6367  ql_log(ql_log_warn, vha, 0x0168, "Using default fwdump 
template\n");

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip


[PATCH 06/25] qla2xxx: Reduce excessive debug print during 27xx fwdump.

2017-05-19 Thread Himanshu Madhani
From: Joe Carnuccio 

Retain loop test for fwdump length exceeding buffer length.

Cc: 
Signed-off-by: Joe Carnuccio 
Signed-off-by: Himanshu Madhani 
---
 drivers/scsi/qla2xxx/qla_init.c |  8 
 drivers/scsi/qla2xxx/qla_tmpl.c | 16 +---
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index f6130e8b1ca1..eaaf73fd23d9 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -6356,8 +6356,8 @@ qla24xx_load_risc_flash(scsi_qla_host_t *vha, uint32_t 
*srisc_addr,
"-> template size %x bytes\n", dlen);
if (dlen > risc_size * sizeof(*dcode)) {
ql_log(ql_log_warn, vha, 0x0167,
-   "Failed fwdump template exceeds array by %x bytes\n",
-   (uint32_t)(dlen - risc_size * sizeof(*dcode)));
+   "Failed fwdump template exceeds array by %lx bytes\n",
+   dlen - risc_size * sizeof(*dcode));
goto default_template;
}
ha->fw_dump_template_len = dlen;
@@ -6658,8 +6658,8 @@ qla24xx_load_risc_blob(scsi_qla_host_t *vha, uint32_t 
*srisc_addr)
"-> template size %x bytes\n", dlen);
if (dlen > risc_size * sizeof(*fwcode)) {
ql_log(ql_log_warn, vha, 0x0177,
-   "Failed fwdump template exceeds array by %x bytes\n",
-   (uint32_t)(dlen - risc_size * sizeof(*fwcode)));
+   "Failed fwdump template exceeds array by %lx bytes\n",
+   dlen - risc_size * sizeof(*fwcode));
goto default_template;
}
ha->fw_dump_template_len = dlen;
diff --git a/drivers/scsi/qla2xxx/qla_tmpl.c b/drivers/scsi/qla2xxx/qla_tmpl.c
index 8a58ef3adab4..2f2633a8c4ad 100644
--- a/drivers/scsi/qla2xxx/qla_tmpl.c
+++ b/drivers/scsi/qla2xxx/qla_tmpl.c
@@ -219,8 +219,6 @@ qla27xx_skip_entry(struct qla27xx_fwdt_entry *ent, void 
*buf)
 {
if (buf)
ent->hdr.driver_flags |= DRIVER_FLAG_SKIP_ENTRY;
-   ql_dbg(ql_dbg_misc + ql_dbg_verbose, NULL, 0xd011,
-   "Skipping entry %d\n", ent->hdr.entry_type);
 }
 
 static int
@@ -818,6 +816,8 @@ qla27xx_walk_template(struct scsi_qla_host *vha,
ql_dbg(ql_dbg_misc, vha, 0xd01a,
"%s: entry count %lx\n", __func__, count);
while (count--) {
+   if (buf && *len >= vha->hw->fw_dump_len)
+   break;
if (qla27xx_find_entry(ent->hdr.entry_type)(vha, ent, buf, len))
break;
ent = qla27xx_next_entry(ent);
@@ -825,18 +825,20 @@ qla27xx_walk_template(struct scsi_qla_host *vha,
 
if (count)
ql_dbg(ql_dbg_misc, vha, 0xd018,
-   "%s: residual count (%lx)\n", __func__, count);
+   "%s: entry residual count (%lx)\n", __func__, count);
 
if (ent->hdr.entry_type != ENTRY_TYPE_TMP_END)
ql_dbg(ql_dbg_misc, vha, 0xd019,
-   "%s: missing end (%lx)\n", __func__, count);
+   "%s: missing end entry (%lx)\n", __func__, count);
 
-   ql_dbg(ql_dbg_misc, vha, 0xd01b,
-   "%s: len=%lx\n", __func__, *len);
+   if (buf && *len != vha->hw->fw_dump_len)
+   ql_dbg(ql_dbg_misc, vha, 0xd01b,
+   "%s: length=%#lx residual=%+ld\n",
+   __func__, *len, vha->hw->fw_dump_len - *len);
 
if (buf) {
ql_log(ql_log_warn, vha, 0xd015,
-   "Firmware dump saved to temp buffer (%ld/%p)\n",
+   "Firmware dump saved to temp buffer (%lu/%p)\n",
vha->host_no, vha->hw->fw_dump);
qla2x00_post_uevent_work(vha, QLA_UEVENT_CODE_FW_DUMP);
}
-- 
2.12.0