CC: linux-kernel(a)vger.kernel.org
TO: Dirk Mueller <dmueller(a)suse.com>
CC: Rob Herring <robh(a)kernel.org>
CC: David Gibson <david(a)gibson.dropbear.id.au>
Hi Dirk,
First bad commit (maybe != root cause):
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 7a56db0299f9d43b4fe076838150c5cc293df131
commit: e33a814e772cdc36436c8c188d8c42d019fda639 scripts/dtc: Remove redundant YYLOC
global declaration
date: 3 weeks ago
config: powerpc-defconfig (attached as .config)
compiler: clang version 11.0.0 (
https://github.com/llvm/llvm-project
40d139c620f83509fe18acbff5ec358298e99def)
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
git checkout e33a814e772cdc36436c8c188d8c42d019fda639
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> drivers/scsi/qla2xxx/qla_nx2.c:3226:1: warning: stack frame size
of 2208 bytes in function 'qla8044_collect_md_data' [-Wframe-larger-than=]
qla8044_collect_md_data(struct scsi_qla_host *vha)
^
1 warning generated.
vim +/qla8044_collect_md_data +3226 drivers/scsi/qla2xxx/qla_nx2.c
804df800256c1f Pratik Mohanty 2014-04-11 3219
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3220 /*
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3221 *
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3222 * qla8044_collect_md_data - Retrieve
firmware minidump data.
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3223 * @ha: pointer to adapter structure
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3224 **/
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3225 int
7ec0effd30bb4b Atul Deshmukh 2013-08-27 @3226 qla8044_collect_md_data(struct
scsi_qla_host *vha)
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3227 {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3228 int num_entry_hdr = 0;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3229 struct qla8044_minidump_entry_hdr
*entry_hdr;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3230 struct qla8044_minidump_template_hdr
*tmplt_hdr;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3231 uint32_t *data_ptr;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3232 uint32_t data_collected = 0,
f_capture_mask;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3233 int i, rval = QLA_FUNCTION_FAILED;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3234 uint64_t now;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3235 uint32_t timestamp, idc_control;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3236 struct qla_hw_data *ha = vha->hw;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3237
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3238 if (!ha->md_dump) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3239 ql_log(ql_log_info, vha, 0xb101,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3240 "%s(%ld) No buffer to
dump\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3241 __func__, vha->host_no);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3242 return rval;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3243 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3244
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3245 if (ha->fw_dumped) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3246 ql_log(ql_log_warn, vha, 0xb10d,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3247 "Firmware has been previously
dumped (%p) "
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3248 "-- ignoring request.\n",
ha->fw_dump);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3249 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3250 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3251
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3252 ha->fw_dumped = 0;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3253
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3254 if (!ha->md_tmplt_hdr ||
!ha->md_dump) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3255 ql_log(ql_log_warn, vha, 0xb10e,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3256 "Memory not allocated for
minidump capture\n");
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3257 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3258 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3259
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3260 qla8044_idc_lock(ha);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3261 idc_control = qla8044_rd_reg(ha,
QLA8044_IDC_DRV_CTRL);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3262 if (idc_control &
GRACEFUL_RESET_BIT1) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3263 ql_log(ql_log_warn, vha, 0xb112,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3264 "Forced reset from application,
"
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3265 "ignore minidump
capture\n");
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3266 qla8044_wr_reg(ha,
QLA8044_IDC_DRV_CTRL,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3267 (idc_control &
~GRACEFUL_RESET_BIT1));
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3268 qla8044_idc_unlock(ha);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3269
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3270 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3271 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3272 qla8044_idc_unlock(ha);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3273
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3274 if
(qla82xx_validate_template_chksum(vha)) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3275 ql_log(ql_log_info, vha, 0xb109,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3276 "Template checksum validation
error\n");
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3277 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3278 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3279
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3280 tmplt_hdr = (struct
qla8044_minidump_template_hdr *)
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3281 ha->md_tmplt_hdr;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3282 data_ptr = (uint32_t *)((uint8_t
*)ha->md_dump);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3283 num_entry_hdr =
tmplt_hdr->num_of_entries;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3284
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3285 ql_dbg(ql_dbg_p3p, vha, 0xb11a,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3286 "Capture Mask obtained:
0x%x\n", tmplt_hdr->capture_debug_level);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3287
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3288 f_capture_mask =
tmplt_hdr->capture_debug_level & 0xFF;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3289
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3290 /* Validate whether required debug level
is set */
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3291 if ((f_capture_mask & 0x3) != 0x3) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3292 ql_log(ql_log_warn, vha, 0xb10f,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3293 "Minimum required capture
mask[0x%x] level not set\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3294 f_capture_mask);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3295
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3296 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3297 tmplt_hdr->driver_capture_mask =
ql2xmdcapmask;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3298 ql_log(ql_log_info, vha, 0xb102,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3299 "[%s]: starting data ptr:
%p\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3300 __func__, data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3301 ql_log(ql_log_info, vha, 0xb10b,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3302 "[%s]: no of entry headers in
Template: 0x%x\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3303 __func__, num_entry_hdr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3304 ql_log(ql_log_info, vha, 0xb10c,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3305 "[%s]: Total_data_size 0x%x, %d
obtained\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3306 __func__, ha->md_dump_size,
ha->md_dump_size);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3307
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3308 /* Update current timestamp before taking
dump */
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3309 now = get_jiffies_64();
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3310 timestamp = (u32)(jiffies_to_msecs(now) /
1000);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3311 tmplt_hdr->driver_timestamp =
timestamp;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3312
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3313 entry_hdr = (struct
qla8044_minidump_entry_hdr *)
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3314 (((uint8_t *)ha->md_tmplt_hdr) +
tmplt_hdr->first_entry_offset);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3315
tmplt_hdr->saved_state_array[QLA8044_SS_OCM_WNDREG_INDEX] =
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3316
tmplt_hdr->ocm_window_reg[ha->portnum];
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3317
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3318 /* Walk through the entry headers -
validate/perform required action */
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3319 for (i = 0; i < num_entry_hdr; i++) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3320 if (data_collected >
ha->md_dump_size) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3321 ql_log(ql_log_info, vha, 0xb103,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3322 "Data collected: [0x%x],
"
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3323 "Total Dump size:
[0x%x]\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3324 data_collected,
ha->md_dump_size);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3325 return rval;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3326 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3327
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3328 if
(!(entry_hdr->d_ctrl.entry_capture_mask &
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3329 ql2xmdcapmask)) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3330 entry_hdr->d_ctrl.driver_flags |=
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3331 QLA82XX_DBG_SKIPPED_FLAG;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3332 goto skip_nxt_entry;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3333 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3334
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3335 ql_dbg(ql_dbg_p3p, vha, 0xb104,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3336 "Data collected: [0x%x], Dump
size left:[0x%x]\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3337 data_collected,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3338 (ha->md_dump_size -
data_collected));
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3339
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3340 /* Decode the entry type and take
required action to capture
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3341 * debug data
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3342 */
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3343 switch (entry_hdr->entry_type) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3344 case QLA82XX_RDEND:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3345 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3346 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3347 case QLA82XX_CNTRL:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3348 rval =
qla8044_minidump_process_control(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3349 entry_hdr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3350 if (rval != QLA_SUCCESS) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3351 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3352 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3353 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3354 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3355 case QLA82XX_RDCRB:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3356 qla8044_minidump_process_rdcrb(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3357 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3358 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3359 case QLA82XX_RDMEM:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3360 rval =
qla8044_minidump_pex_dma_read(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3361 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3362 if (rval != QLA_SUCCESS) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3363 rval =
qla8044_minidump_process_rdmem(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3364 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3365 if (rval != QLA_SUCCESS) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3366 qla8044_mark_entry_skipped(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3367 entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3368 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3369 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3370 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3371 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3372 case QLA82XX_BOARD:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3373 case QLA82XX_RDROM:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3374 rval =
qla8044_minidump_process_rdrom(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3375 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3376 if (rval != QLA_SUCCESS) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3377 qla8044_mark_entry_skipped(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3378 entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3379 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3380 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3381 case QLA82XX_L2DTG:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3382 case QLA82XX_L2ITG:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3383 case QLA82XX_L2DAT:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3384 case QLA82XX_L2INS:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3385 rval =
qla8044_minidump_process_l2tag(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3386 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3387 if (rval != QLA_SUCCESS) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3388 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3389 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3390 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3391 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3392 case QLA8044_L1DTG:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3393 case QLA8044_L1ITG:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3394 case QLA82XX_L1DAT:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3395 case QLA82XX_L1INS:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3396 qla8044_minidump_process_l1cache(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3397 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3398 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3399 case QLA82XX_RDOCM:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3400 qla8044_minidump_process_rdocm(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3401 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3402 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3403 case QLA82XX_RDMUX:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3404 qla8044_minidump_process_rdmux(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3405 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3406 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3407 case QLA82XX_QUEUE:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3408 qla8044_minidump_process_queue(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3409 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3410 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3411 case QLA8044_POLLRD:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3412 rval =
qla8044_minidump_process_pollrd(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3413 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3414 if (rval != QLA_SUCCESS)
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3415 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3416 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3417 case QLA8044_RDMUX2:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3418 qla8044_minidump_process_rdmux2(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3419 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3420 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3421 case QLA8044_POLLRDMWR:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3422 rval =
qla8044_minidump_process_pollrdmwr(vha,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3423 entry_hdr, &data_ptr);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3424 if (rval != QLA_SUCCESS)
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3425 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3426 break;
804df800256c1f Pratik Mohanty 2014-04-11 3427 case QLA8044_RDDFE:
804df800256c1f Pratik Mohanty 2014-04-11 3428 rval =
qla8044_minidump_process_rddfe(vha, entry_hdr,
804df800256c1f Pratik Mohanty 2014-04-11 3429 &data_ptr);
804df800256c1f Pratik Mohanty 2014-04-11 3430 if (rval != QLA_SUCCESS)
804df800256c1f Pratik Mohanty 2014-04-11 3431 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
804df800256c1f Pratik Mohanty 2014-04-11 3432 break;
804df800256c1f Pratik Mohanty 2014-04-11 3433 case QLA8044_RDMDIO:
804df800256c1f Pratik Mohanty 2014-04-11 3434 rval =
qla8044_minidump_process_rdmdio(vha, entry_hdr,
804df800256c1f Pratik Mohanty 2014-04-11 3435 &data_ptr);
804df800256c1f Pratik Mohanty 2014-04-11 3436 if (rval != QLA_SUCCESS)
804df800256c1f Pratik Mohanty 2014-04-11 3437 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
804df800256c1f Pratik Mohanty 2014-04-11 3438 break;
804df800256c1f Pratik Mohanty 2014-04-11 3439 case QLA8044_POLLWR:
804df800256c1f Pratik Mohanty 2014-04-11 3440 rval =
qla8044_minidump_process_pollwr(vha, entry_hdr,
804df800256c1f Pratik Mohanty 2014-04-11 3441 &data_ptr);
804df800256c1f Pratik Mohanty 2014-04-11 3442 if (rval != QLA_SUCCESS)
804df800256c1f Pratik Mohanty 2014-04-11 3443 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
804df800256c1f Pratik Mohanty 2014-04-11 3444 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3445 case QLA82XX_RDNOP:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3446 default:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3447 qla8044_mark_entry_skipped(vha,
entry_hdr, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3448 break;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3449 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3450
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3451 data_collected = (uint8_t *)data_ptr -
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3452 (uint8_t *)((uint8_t
*)ha->md_dump);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3453 skip_nxt_entry:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3454 /*
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3455 * next entry in the template
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3456 */
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3457 entry_hdr = (struct
qla8044_minidump_entry_hdr *)
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3458 (((uint8_t *)entry_hdr) +
entry_hdr->entry_size);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3459 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3460
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3461 if (data_collected !=
ha->md_dump_size) {
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3462 ql_log(ql_log_info, vha, 0xb105,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3463 "Dump data mismatch: Data
collected: "
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3464 "[0x%x],
total_data_size:[0x%x]\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3465 data_collected,
ha->md_dump_size);
edaa5c74177a68 Saurav Kashyap 2014-04-11 3466 rval = QLA_FUNCTION_FAILED;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3467 goto md_failed;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3468 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3469
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3470 ql_log(ql_log_info, vha, 0xb110,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3471 "Firmware dump saved to temp
buffer (%ld/%p %ld/%p).\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3472 vha->host_no, ha->md_tmplt_hdr,
vha->host_no, ha->md_dump);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3473 ha->fw_dumped = 1;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3474 qla2x00_post_uevent_work(vha,
QLA_UEVENT_CODE_FW_DUMP);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3475
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3476
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3477 ql_log(ql_log_info, vha, 0xb106,
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3478 "Leaving fn: %s Last entry:
0x%x\n",
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3479 __func__, i);
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3480 md_failed:
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3481 return rval;
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3482 }
7ec0effd30bb4b Atul Deshmukh 2013-08-27 3483
:::::: The code at line 3226 was first introduced by commit
:::::: 7ec0effd30bb4b1379cd2f5ed1a7bd6b9ec49cfd [SCSI] qla2xxx: Add support for ISP8044.
:::::: TO: Atul Deshmukh <atul.deshmukh(a)qlogic.com>
:::::: CC: James Bottomley <JBottomley(a)Parallels.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org