From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v2] scsi: be2iscsi: Replace irq_poll with threaded IRQ handler.
Date: Mon, 01 Nov 2021 04:30:31 +0800 [thread overview]
Message-ID: <202111010455.S6kh9S1E-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 17281 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20211029074902.4fayed6mcltifgdz@linutronix.de>
References: <20211029074902.4fayed6mcltifgdz@linutronix.de>
TO: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
TO: linux-scsi(a)vger.kernel.org
TO: Ketan Mukadam <ketan.mukadam@broadcom.com>
CC: "James E.J. Bottomley" <jejb@linux.ibm.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Thomas Gleixner <tglx@linutronix.de>
Hi Sebastian,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on jejb-scsi/for-next]
[also build test WARNING on mkp-scsi/for-next v5.15-rc7 next-20211029]
[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]
url: https://github.com/0day-ci/linux/commits/Sebastian-Andrzej-Siewior/scsi-be2iscsi-Replace-irq_poll-with-threaded-IRQ-handler/20211029-155031
base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-c001-20211031 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d321548c3ce987f4f21350ba1c81fdb5d4354224)
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/0day-ci/linux/commit/66895bb3d61cae1257df8eb153ea1a6c9dda075a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sebastian-Andrzej-Siewior/scsi-be2iscsi-Replace-irq_poll-with-threaded-IRQ-handler/20211029-155031
git checkout 66895bb3d61cae1257df8eb153ea1a6c9dda075a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
drivers/scsi/be2iscsi/be_main.c:3737:2: note: Loop condition is true. Entering loop body
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++) {
^
drivers/scsi/be2iscsi/be_main.c:3738:7: note: Assuming the condition is false
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3738:3: note: Taking false branch
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^
drivers/scsi/be2iscsi/be_main.c:3737:2: note: Loop condition is true. Entering loop body
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++) {
^
drivers/scsi/be2iscsi/be_main.c:3738:7: note: Assuming the condition is false
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3738:3: note: Taking false branch
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^
drivers/scsi/be2iscsi/be_main.c:3737:2: note: Loop condition is false. Execution continues on line 3774
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++) {
^
drivers/scsi/be2iscsi/be_main.c:3775:6: note: 'status' is equal to 0
if (status != 0) {
^~~~~~
drivers/scsi/be2iscsi/be_main.c:3775:2: note: Taking false branch
if (status != 0) {
^
drivers/scsi/be2iscsi/be_main.c:3782:6: note: 'status' is equal to 0
if (status != 0) {
^~~~~~
drivers/scsi/be2iscsi/be_main.c:3782:2: note: Taking false branch
if (status != 0) {
^
drivers/scsi/be2iscsi/be_main.c:3787:11: note: Calling 'beiscsi_create_wrb_rings'
status = beiscsi_create_wrb_rings(phba, phwi_context, phwi_ctrlr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3363:6: note: Assuming 'pwrb_arr' is non-null
if (!pwrb_arr) {
^~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3363:2: note: Taking false branch
if (!pwrb_arr) {
^
drivers/scsi/be2iscsi/be_main.c:3373:16: note: Assuming 'num' is < field 'cxns_per_ctrl'
for (num = 0; num < phba->params.cxns_per_ctrl; num++) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3373:2: note: Loop condition is true. Entering loop body
for (num = 0; num < phba->params.cxns_per_ctrl; num++) {
^
drivers/scsi/be2iscsi/be_main.c:3374:7: note: Assuming 'num_wrb_rings' is 0
if (num_wrb_rings) {
^~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3374:3: note: Taking false branch
if (num_wrb_rings) {
^
drivers/scsi/be2iscsi/be_main.c:3373:16: note: Assuming 'num' is >= field 'cxns_per_ctrl'
for (num = 0; num < phba->params.cxns_per_ctrl; num++) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3373:2: note: Loop condition is false. Execution continues on line 3401
for (num = 0; num < phba->params.cxns_per_ctrl; num++) {
^
drivers/scsi/be2iscsi/be_main.c:3401:2: note: Loop condition is true. Entering loop body
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++)
^
drivers/scsi/be2iscsi/be_main.c:3402:7: note: Assuming the condition is false
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3402:3: note: Taking false branch
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^
drivers/scsi/be2iscsi/be_main.c:3401:2: note: Loop condition is true. Entering loop body
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++)
^
drivers/scsi/be2iscsi/be_main.c:3402:7: note: Assuming the condition is false
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3402:3: note: Taking false branch
if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) {
^
drivers/scsi/be2iscsi/be_main.c:3401:2: note: Loop condition is false. Execution continues on line 3409
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++)
^
drivers/scsi/be2iscsi/be_main.c:3409:2: note: Loop condition is true. Entering loop body
for (i = 0; i < phba->params.cxns_per_ctrl; i++) {
^
drivers/scsi/be2iscsi/be_main.c:3410:7: note: 'ulp_count' is <= 1
if (ulp_count > 1) {
^~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:3410:3: note: Taking false branch
if (ulp_count > 1) {
^
drivers/scsi/be2iscsi/be_main.c:3421:3: note: Calling 'hwi_build_be_sgl_by_offset'
hwi_build_be_sgl_by_offset(phba, &pwrb_arr[i], &sgl);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:2981:6: note: Branch condition evaluates to a garbage value
if (sgl->va)
^~~~~~~
drivers/scsi/be2iscsi/be_main.c:4843:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = wait_event_interruptible_timeout(
^
drivers/scsi/be2iscsi/be_main.c:4843:3: note: Value stored to 'rc' is never read
>> drivers/scsi/be2iscsi/be_main.c:5392:13: warning: Array subscript is undefined [clang-analyzer-core.uninitialized.ArraySubscript]
pbe_eq = &phwi_context->be_eq[i];
^
drivers/scsi/be2iscsi/be_main.c:5416:9: note: Left side of '&&' is false
phba = container_of(work, struct beiscsi_hba, recover_port.work);
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/scsi/be2iscsi/be_main.c:5416:9: note: Taking false branch
phba = container_of(work, struct beiscsi_hba, recover_port.work);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/scsi/be2iscsi/be_main.c:5416:9: note: Loop condition is false. Exiting loop
phba = container_of(work, struct beiscsi_hba, recover_port.work);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/scsi/be2iscsi/be_main.c:5417:2: note: Calling 'beiscsi_disable_port'
beiscsi_disable_port(phba, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:5377:2: note: 'i' declared without an initial value
unsigned int i;
^~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:5379:6: note: Assuming the condition is false
if (!test_and_clear_bit(BEISCSI_HBA_ONLINE, &phba->state))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:5379:2: note: Taking false branch
if (!test_and_clear_bit(BEISCSI_HBA_ONLINE, &phba->state))
^
drivers/scsi/be2iscsi/be_main.c:5391:7: note: 'unload' is 0
if (!unload && beiscsi_hba_in_error(phba)) {
^~~~~~
drivers/scsi/be2iscsi/be_main.c:5391:6: note: Left side of '&&' is true
if (!unload && beiscsi_hba_in_error(phba)) {
^
drivers/scsi/be2iscsi/be_main.c:5391:17: note: Assuming the condition is true
if (!unload && beiscsi_hba_in_error(phba)) {
^
drivers/scsi/be2iscsi/be_main.h:395:37: note: expanded from macro 'beiscsi_hba_in_error'
#define beiscsi_hba_in_error(phba) ((phba)->state & BEISCSI_HBA_IN_ERR)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/be2iscsi/be_main.c:5391:2: note: Taking true branch
if (!unload && beiscsi_hba_in_error(phba)) {
^
drivers/scsi/be2iscsi/be_main.c:5392:13: note: Array subscript is undefined
pbe_eq = &phwi_context->be_eq[i];
^ ~
Suppressed 5 warnings (4 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:160:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
return ret;
^ ~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:145:2: note: 'ret' declared without an initial value
int ret;
^~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:147:6: note: Assuming 'blob' is non-null
if (!blob)
^~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:147:2: note: Taking false branch
if (!blob)
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:154:7: note: Calling 'intel_guc_is_ready'
if (!intel_guc_is_ready(guc))
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc.h:232:9: note: Left side of '&&' is true
return intel_guc_is_fw_running(guc) && intel_guc_ct_enabled(&guc->ct);
^
drivers/gpu/drm/i915/gt/uc/intel_guc.h:232:2: note: Returning value, which participates in a condition later
return intel_guc_is_fw_running(guc) && intel_guc_ct_enabled(&guc->ct);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:154:7: note: Returning from 'intel_guc_is_ready'
if (!intel_guc_is_ready(guc))
vim +5392 drivers/scsi/be2iscsi/be_main.c
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5363
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5364 /*
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5365 * beiscsi_disable_port()- Disable port and cleanup driver resources.
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5366 * This is called in HBA error handling and driver removal.
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5367 * @phba: Instance Priv structure
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5368 * @unload: indicate driver is unloading
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5369 *
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5370 * Free the OS and HW resources held by the driver
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5371 **/
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5372 static void beiscsi_disable_port(struct beiscsi_hba *phba, int unload)
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5373 {
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5374 struct hwi_context_memory *phwi_context;
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5375 struct hwi_controller *phwi_ctrlr;
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5376 struct be_eq_obj *pbe_eq;
831488669a334e Christoph Hellwig 2017-01-13 5377 unsigned int i;
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5378
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5379 if (!test_and_clear_bit(BEISCSI_HBA_ONLINE, &phba->state))
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5380 return;
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5381
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5382 phwi_ctrlr = phba->phwi_ctrlr;
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5383 phwi_context = phwi_ctrlr->phwi_ctxt;
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5384 hwi_disable_intr(phba);
45371aa398c647 Jitendra Bhivare 2017-10-10 5385 beiscsi_free_irqs(phba);
831488669a334e Christoph Hellwig 2017-01-13 5386 pci_free_irq_vectors(phba->pcidev);
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5387
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5388 cancel_delayed_work_sync(&phba->eqd_update);
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5389 cancel_work_sync(&phba->boot_work);
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5390 /* WQ might be running cancel queued mcc_work if we are not exiting */
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5391 if (!unload && beiscsi_hba_in_error(phba)) {
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 @5392 pbe_eq = &phwi_context->be_eq[i];
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5393 cancel_work_sync(&pbe_eq->mcc_work);
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5394 }
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5395 hwi_cleanup_port(phba);
dd940972f36779 Jitendra Bhivare 2016-12-13 5396 beiscsi_cleanup_port(phba);
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5397 }
d1d5ca887c0ee6 Jitendra Bhivare 2016-08-19 5398
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 43387 bytes --]
next reply other threads:[~2021-10-31 20:30 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-31 20:30 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-10-29 7:49 [PATCH v2] scsi: be2iscsi: Replace irq_poll with threaded IRQ handler Sebastian Andrzej Siewior
2021-10-29 13:41 ` John Garry
2021-10-29 13:46 ` Sebastian Andrzej Siewior
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=202111010455.S6kh9S1E-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.