All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/scsi/mpi3mr/mpi3mr_fw.c:1209 mpi3mr_issue_reset() error: uninitialized symbol 'host_diagnostic'.
Date: Wed, 01 Jun 2022 21:27:14 +0800	[thread overview]
Message-ID: <202206012127.c8MQO8d8-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 11311 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   700170bf6b4d773e328fa54ebb70ba444007c702
commit: b64845a7d4039ab9667bafff9d7bb59365f17c0f scsi: mpi3mr: Detect async reset that occurred in firmware
date:   5 months ago
:::::: branch date: 13 hours ago
:::::: commit date: 5 months ago
config: microblaze-randconfig-m031-20220529 (https://download.01.org/0day-ci/archive/20220601/202206012127.c8MQO8d8-lkp(a)intel.com/config)
compiler: microblaze-linux-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/scsi/mpi3mr/mpi3mr_fw.c:1209 mpi3mr_issue_reset() error: uninitialized symbol 'host_diagnostic'.

Old smatch warnings:
drivers/scsi/mpi3mr/mpi3mr_fw.c:1691 mpi3mr_create_op_reply_q() error: we previously assumed 'op_reply_q->q_segments' could be null (see line 1662)
drivers/scsi/mpi3mr/mpi3mr_fw.c:1796 mpi3mr_create_op_req_q() error: we previously assumed 'op_req_q->q_segments' could be null (see line 1769)

vim +/host_diagnostic +1209 drivers/scsi/mpi3mr/mpi3mr_fw.c

824a156633dfdb0 Kashyap Desai   2021-05-20  1167  
824a156633dfdb0 Kashyap Desai   2021-05-20  1168  /**
824a156633dfdb0 Kashyap Desai   2021-05-20  1169   * mpi3mr_issue_reset - Issue reset to the controller
824a156633dfdb0 Kashyap Desai   2021-05-20  1170   * @mrioc: Adapter reference
824a156633dfdb0 Kashyap Desai   2021-05-20  1171   * @reset_type: Reset type
824a156633dfdb0 Kashyap Desai   2021-05-20  1172   * @reset_reason: Reset reason code
824a156633dfdb0 Kashyap Desai   2021-05-20  1173   *
f061178e076210a Kashyap Desai   2021-05-20  1174   * Unlock the host diagnostic registers and write the specific
f061178e076210a Kashyap Desai   2021-05-20  1175   * reset type to that, wait for reset acknowledgment from the
f061178e076210a Kashyap Desai   2021-05-20  1176   * controller, if the reset is not successful retry for the
f061178e076210a Kashyap Desai   2021-05-20  1177   * predefined number of times.
824a156633dfdb0 Kashyap Desai   2021-05-20  1178   *
824a156633dfdb0 Kashyap Desai   2021-05-20  1179   * Return: 0 on success, non-zero on failure.
824a156633dfdb0 Kashyap Desai   2021-05-20  1180   */
824a156633dfdb0 Kashyap Desai   2021-05-20  1181  static int mpi3mr_issue_reset(struct mpi3mr_ioc *mrioc, u16 reset_type,
824a156633dfdb0 Kashyap Desai   2021-05-20  1182  	u32 reset_reason)
824a156633dfdb0 Kashyap Desai   2021-05-20  1183  {
f061178e076210a Kashyap Desai   2021-05-20  1184  	int retval = -1;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1185  	u8 unlock_retry_count = 0;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1186  	u32 host_diagnostic, ioc_status, ioc_config;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1187  	u32 timeout = MPI3MR_RESET_ACK_TIMEOUT * 10;
f061178e076210a Kashyap Desai   2021-05-20  1188  
f061178e076210a Kashyap Desai   2021-05-20  1189  	if ((reset_type != MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET) &&
f061178e076210a Kashyap Desai   2021-05-20  1190  	    (reset_type != MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT))
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1191  		return retval;
f061178e076210a Kashyap Desai   2021-05-20  1192  	if (mrioc->unrecoverable)
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1193  		return retval;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1194  	if (reset_reason == MPI3MR_RESET_FROM_FIRMWARE) {
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1195  		retval = 0;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1196  		return retval;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1197  	}
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1198  
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1199  	ioc_info(mrioc, "%s reset due to %s(0x%x)\n",
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1200  	    mpi3mr_reset_type_name(reset_type),
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1201  	    mpi3mr_reset_rc_name(reset_reason), reset_reason);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1202  
f061178e076210a Kashyap Desai   2021-05-20  1203  	mpi3mr_clear_reset_history(mrioc);
f061178e076210a Kashyap Desai   2021-05-20  1204  	do {
f061178e076210a Kashyap Desai   2021-05-20  1205  		ioc_info(mrioc,
f061178e076210a Kashyap Desai   2021-05-20  1206  		    "Write magic sequence to unlock host diag register (retry=%d)\n",
f061178e076210a Kashyap Desai   2021-05-20  1207  		    ++unlock_retry_count);
f061178e076210a Kashyap Desai   2021-05-20  1208  		if (unlock_retry_count >= MPI3MR_HOSTDIAG_UNLOCK_RETRY_COUNT) {
b64845a7d4039ab Sreekanth Reddy 2021-12-20 @1209  			ioc_err(mrioc,
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1210  			    "%s reset failed due to unlock failure, host_diagnostic(0x%08x)\n",
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1211  			    mpi3mr_reset_type_name(reset_type),
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1212  			    host_diagnostic);
f061178e076210a Kashyap Desai   2021-05-20  1213  			mrioc->unrecoverable = 1;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1214  			return retval;
f061178e076210a Kashyap Desai   2021-05-20  1215  		}
f061178e076210a Kashyap Desai   2021-05-20  1216  
f061178e076210a Kashyap Desai   2021-05-20  1217  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_FLUSH,
f061178e076210a Kashyap Desai   2021-05-20  1218  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1219  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_1ST,
f061178e076210a Kashyap Desai   2021-05-20  1220  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1221  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_2ND,
f061178e076210a Kashyap Desai   2021-05-20  1222  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1223  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_3RD,
f061178e076210a Kashyap Desai   2021-05-20  1224  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1225  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_4TH,
f061178e076210a Kashyap Desai   2021-05-20  1226  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1227  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_5TH,
f061178e076210a Kashyap Desai   2021-05-20  1228  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1229  		writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_6TH,
f061178e076210a Kashyap Desai   2021-05-20  1230  		    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1231  		usleep_range(1000, 1100);
f061178e076210a Kashyap Desai   2021-05-20  1232  		host_diagnostic = readl(&mrioc->sysif_regs->host_diagnostic);
f061178e076210a Kashyap Desai   2021-05-20  1233  		ioc_info(mrioc,
f061178e076210a Kashyap Desai   2021-05-20  1234  		    "wrote magic sequence: retry_count(%d), host_diagnostic(0x%08x)\n",
f061178e076210a Kashyap Desai   2021-05-20  1235  		    unlock_retry_count, host_diagnostic);
f061178e076210a Kashyap Desai   2021-05-20  1236  	} while (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_DIAG_WRITE_ENABLE));
f061178e076210a Kashyap Desai   2021-05-20  1237  
f061178e076210a Kashyap Desai   2021-05-20  1238  	writel(reset_reason, &mrioc->sysif_regs->scratchpad[0]);
f061178e076210a Kashyap Desai   2021-05-20  1239  	writel(host_diagnostic | reset_type,
f061178e076210a Kashyap Desai   2021-05-20  1240  	    &mrioc->sysif_regs->host_diagnostic);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1241  	switch (reset_type) {
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1242  	case MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET:
f061178e076210a Kashyap Desai   2021-05-20  1243  		do {
f061178e076210a Kashyap Desai   2021-05-20  1244  			ioc_status = readl(&mrioc->sysif_regs->ioc_status);
f061178e076210a Kashyap Desai   2021-05-20  1245  			ioc_config =
f061178e076210a Kashyap Desai   2021-05-20  1246  			    readl(&mrioc->sysif_regs->ioc_configuration);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1247  			if ((ioc_status & MPI3_SYSIF_IOC_STATUS_RESET_HISTORY)
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1248  			    && mpi3mr_soft_reset_success(ioc_status, ioc_config)
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1249  			    ) {
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1250  				mpi3mr_clear_reset_history(mrioc);
f061178e076210a Kashyap Desai   2021-05-20  1251  				retval = 0;
f061178e076210a Kashyap Desai   2021-05-20  1252  				break;
f061178e076210a Kashyap Desai   2021-05-20  1253  			}
f061178e076210a Kashyap Desai   2021-05-20  1254  			msleep(100);
f061178e076210a Kashyap Desai   2021-05-20  1255  		} while (--timeout);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1256  		mpi3mr_print_fault_info(mrioc);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1257  		break;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1258  	case MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT:
f061178e076210a Kashyap Desai   2021-05-20  1259  		do {
f061178e076210a Kashyap Desai   2021-05-20  1260  			ioc_status = readl(&mrioc->sysif_regs->ioc_status);
f061178e076210a Kashyap Desai   2021-05-20  1261  			if (mpi3mr_diagfault_success(mrioc, ioc_status)) {
f061178e076210a Kashyap Desai   2021-05-20  1262  				retval = 0;
f061178e076210a Kashyap Desai   2021-05-20  1263  				break;
f061178e076210a Kashyap Desai   2021-05-20  1264  			}
f061178e076210a Kashyap Desai   2021-05-20  1265  			msleep(100);
f061178e076210a Kashyap Desai   2021-05-20  1266  		} while (--timeout);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1267  		break;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1268  	default:
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1269  		break;
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1270  	}
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1271  
f061178e076210a Kashyap Desai   2021-05-20  1272  	writel(MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_2ND,
f061178e076210a Kashyap Desai   2021-05-20  1273  	    &mrioc->sysif_regs->write_sequence);
f061178e076210a Kashyap Desai   2021-05-20  1274  
f061178e076210a Kashyap Desai   2021-05-20  1275  	ioc_config = readl(&mrioc->sysif_regs->ioc_configuration);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1276  	ioc_status = readl(&mrioc->sysif_regs->ioc_status);
f061178e076210a Kashyap Desai   2021-05-20  1277  	ioc_info(mrioc,
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1278  	    "ioc_status/ioc_onfig after %s reset is (0x%x)/(0x%x)\n",
f061178e076210a Kashyap Desai   2021-05-20  1279  	    (!retval)?"successful":"failed", ioc_status,
f061178e076210a Kashyap Desai   2021-05-20  1280  	    ioc_config);
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1281  	if (retval)
b64845a7d4039ab Sreekanth Reddy 2021-12-20  1282  		mrioc->unrecoverable = 1;
f061178e076210a Kashyap Desai   2021-05-20  1283  	return retval;
824a156633dfdb0 Kashyap Desai   2021-05-20  1284  }
824a156633dfdb0 Kashyap Desai   2021-05-20  1285  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

             reply	other threads:[~2022-06-01 13:27 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-01 13:27 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-12-17  1:28 drivers/scsi/mpi3mr/mpi3mr_fw.c:1209 mpi3mr_issue_reset() error: uninitialized symbol 'host_diagnostic' kernel test robot
2022-02-14 23:47 kernel test robot
2022-02-17 13:03 ` Dan Carpenter
2022-02-17 13:03 ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202206012127.c8MQO8d8-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.