* Re: [PATCH 4/9] mpi3mr: Graceful handling of surprise removal of PCIe HBA
[not found] <20220908125332.21110-5-sreekanth.reddy@broadcom.com>
@ 2022-09-08 17:44 ` kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-09-08 17:44 UTC (permalink / raw)
To: Sreekanth Reddy, linux-scsi
Cc: llvm, kbuild-all, martin.petersen, Sreekanth Reddy
Hi Sreekanth,
I love your patch! Perhaps something to improve:
[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on jejb-scsi/for-next next-20220908]
[cannot apply to linus/master v6.0-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Sreekanth-Reddy/mpi3mr-Few-Enhancements-and-minor-fixes/20220908-204501
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: i386-randconfig-a013 (https://download.01.org/0day-ci/archive/20220909/202209090112.VUjjlLbL-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/b6e352223dd831f21b9e550698f58fb5a1389004
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Sreekanth-Reddy/mpi3mr-Few-Enhancements-and-minor-fixes/20220908-204501
git checkout b6e352223dd831f21b9e550698f58fb5a1389004
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/scsi/mpi3mr/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/scsi/mpi3mr/mpi3mr_fw.c:4071:13: warning: variable 'pe_timeout' is uninitialized when used here [-Wuninitialized]
} while (--pe_timeout);
^~~~~~~~~~
drivers/scsi/mpi3mr/mpi3mr_fw.c:3949:16: note: initialize the variable 'pe_timeout' to silence this warning
u32 pe_timeout, ioc_status;
^
= 0
1 warning generated.
vim +/pe_timeout +4071 drivers/scsi/mpi3mr/mpi3mr_fw.c
3929
3930 /**
3931 * mpi3mr_reinit_ioc - Re-Initialize the controller
3932 * @mrioc: Adapter instance reference
3933 * @is_resume: Called from resume or reset path
3934 *
3935 * This the controller re-initialization routine, executed from
3936 * the soft reset handler or resume callback. Creates
3937 * operational reply queue pairs, allocate required memory for
3938 * reply pool, sense buffer pool, issue IOC init request to the
3939 * firmware, unmask the events and issue port enable to discover
3940 * SAS/SATA/NVMe devices and RAID volumes.
3941 *
3942 * Return: 0 on success and non-zero on failure.
3943 */
3944 int mpi3mr_reinit_ioc(struct mpi3mr_ioc *mrioc, u8 is_resume)
3945 {
3946 int retval = 0;
3947 u8 retry = 0;
3948 struct mpi3_ioc_facts_data facts_data;
3949 u32 pe_timeout, ioc_status;
3950
3951 retry_init:
3952 dprint_reset(mrioc, "bringing up the controller to ready state\n");
3953 retval = mpi3mr_bring_ioc_ready(mrioc);
3954 if (retval) {
3955 ioc_err(mrioc, "failed to bring to ready state\n");
3956 goto out_failed_noretry;
3957 }
3958
3959 if (is_resume) {
3960 dprint_reset(mrioc, "setting up single ISR\n");
3961 retval = mpi3mr_setup_isr(mrioc, 1);
3962 if (retval) {
3963 ioc_err(mrioc, "failed to setup ISR\n");
3964 goto out_failed_noretry;
3965 }
3966 } else
3967 mpi3mr_ioc_enable_intr(mrioc);
3968
3969 dprint_reset(mrioc, "getting ioc_facts\n");
3970 retval = mpi3mr_issue_iocfacts(mrioc, &facts_data);
3971 if (retval) {
3972 ioc_err(mrioc, "failed to get ioc_facts\n");
3973 goto out_failed;
3974 }
3975
3976 dprint_reset(mrioc, "validating ioc_facts\n");
3977 retval = mpi3mr_revalidate_factsdata(mrioc);
3978 if (retval) {
3979 ioc_err(mrioc, "failed to revalidate ioc_facts data\n");
3980 goto out_failed_noretry;
3981 }
3982
3983 mpi3mr_print_ioc_info(mrioc);
3984
3985 dprint_reset(mrioc, "sending ioc_init\n");
3986 retval = mpi3mr_issue_iocinit(mrioc);
3987 if (retval) {
3988 ioc_err(mrioc, "failed to send ioc_init\n");
3989 goto out_failed;
3990 }
3991
3992 dprint_reset(mrioc, "getting package version\n");
3993 retval = mpi3mr_print_pkg_ver(mrioc);
3994 if (retval) {
3995 ioc_err(mrioc, "failed to get package version\n");
3996 goto out_failed;
3997 }
3998
3999 if (is_resume) {
4000 dprint_reset(mrioc, "setting up multiple ISR\n");
4001 retval = mpi3mr_setup_isr(mrioc, 0);
4002 if (retval) {
4003 ioc_err(mrioc, "failed to re-setup ISR\n");
4004 goto out_failed_noretry;
4005 }
4006 }
4007
4008 dprint_reset(mrioc, "creating operational queue pairs\n");
4009 retval = mpi3mr_create_op_queues(mrioc);
4010 if (retval) {
4011 ioc_err(mrioc, "failed to create operational queue pairs\n");
4012 goto out_failed;
4013 }
4014
4015 if (!mrioc->pel_seqnum_virt) {
4016 dprint_reset(mrioc, "allocating memory for pel_seqnum_virt\n");
4017 mrioc->pel_seqnum_sz = sizeof(struct mpi3_pel_seq);
4018 mrioc->pel_seqnum_virt = dma_alloc_coherent(&mrioc->pdev->dev,
4019 mrioc->pel_seqnum_sz, &mrioc->pel_seqnum_dma,
4020 GFP_KERNEL);
4021 if (!mrioc->pel_seqnum_virt) {
4022 retval = -ENOMEM;
4023 goto out_failed_noretry;
4024 }
4025 }
4026
4027 if (mrioc->shost->nr_hw_queues > mrioc->num_op_reply_q) {
4028 ioc_err(mrioc,
4029 "cannot create minimum number of operational queues expected:%d created:%d\n",
4030 mrioc->shost->nr_hw_queues, mrioc->num_op_reply_q);
4031 goto out_failed_noretry;
4032 }
4033
4034 dprint_reset(mrioc, "enabling events\n");
4035 retval = mpi3mr_enable_events(mrioc);
4036 if (retval) {
4037 ioc_err(mrioc, "failed to enable events\n");
4038 goto out_failed;
4039 }
4040
4041 if (!is_resume) {
4042 mrioc->device_refresh_on = 1;
4043 mpi3mr_add_event_wait_for_device_refresh(mrioc);
4044 }
4045
4046 ioc_info(mrioc, "sending port enable\n");
4047 retval = mpi3mr_issue_port_enable(mrioc, 1);
4048 if (retval) {
4049 ioc_err(mrioc, "failed to issue port enable\n");
4050 goto out_failed;
4051 }
4052 do {
4053 ssleep(MPI3MR_PORTENABLE_POLL_INTERVAL);
4054 if (mrioc->init_cmds.state == MPI3MR_CMD_NOTUSED)
4055 break;
4056 if (!pci_device_is_present(mrioc->pdev))
4057 mrioc->unrecoverable = 1;
4058 if (mrioc->unrecoverable) {
4059 retval = -1;
4060 goto out_failed_noretry;
4061 }
4062 ioc_status = readl(&mrioc->sysif_regs->ioc_status);
4063 if ((ioc_status & MPI3_SYSIF_IOC_STATUS_RESET_HISTORY) ||
4064 (ioc_status & MPI3_SYSIF_IOC_STATUS_FAULT)) {
4065 mpi3mr_print_fault_info(mrioc);
4066 mrioc->init_cmds.is_waiting = 0;
4067 mrioc->init_cmds.callback = NULL;
4068 mrioc->init_cmds.state = MPI3MR_CMD_NOTUSED;
4069 goto out_failed;
4070 }
> 4071 } while (--pe_timeout);
4072
4073 if (!pe_timeout) {
4074 ioc_err(mrioc, "port enable timed out\n");
4075 mpi3mr_check_rh_fault_ioc(mrioc,
4076 MPI3MR_RESET_FROM_PE_TIMEOUT);
4077 mrioc->init_cmds.is_waiting = 0;
4078 mrioc->init_cmds.callback = NULL;
4079 mrioc->init_cmds.state = MPI3MR_CMD_NOTUSED;
4080 goto out_failed;
4081 } else if (mrioc->scan_failed) {
4082 ioc_err(mrioc,
4083 "port enable failed with status=0x%04x\n",
4084 mrioc->scan_failed);
4085 } else
4086 ioc_info(mrioc, "port enable completed successfully\n");
4087
4088 ioc_info(mrioc, "controller %s completed successfully\n",
4089 (is_resume)?"resume":"re-initialization");
4090 return retval;
4091 out_failed:
4092 if (retry < 2) {
4093 retry++;
4094 ioc_warn(mrioc, "retrying controller %s, retry_count:%d\n",
4095 (is_resume)?"resume":"re-initialization", retry);
4096 mpi3mr_memset_buffers(mrioc);
4097 goto retry_init;
4098 }
4099 out_failed_noretry:
4100 ioc_err(mrioc, "controller %s is failed\n",
4101 (is_resume)?"resume":"re-initialization");
4102 mpi3mr_issue_reset(mrioc, MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT,
4103 MPI3MR_RESET_FROM_CTLR_CLEANUP);
4104 mrioc->unrecoverable = 1;
4105 return retval;
4106 }
4107
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-09-08 17:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20220908125332.21110-5-sreekanth.reddy@broadcom.com>
2022-09-08 17:44 ` [PATCH 4/9] mpi3mr: Graceful handling of surprise removal of PCIe HBA kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).