All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-scsi@vger.kernel.org
Subject: [Bug 188861] New: Function csio_config_device_caps() does not set error codes on failures
Date: Fri, 25 Nov 2016 11:04:27 +0000	[thread overview]
Message-ID: <bug-188861-11613@https.bugzilla.kernel.org/> (raw)

https://bugzilla.kernel.org/show_bug.cgi?id=188861

            Bug ID: 188861
           Summary: Function csio_config_device_caps() does not set error
                    codes on failures
           Product: SCSI Drivers
           Version: 2.5
    Kernel Version: linux-4.9-rc6
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Other
          Assignee: scsi_drivers-other@kernel-bugs.osdl.org
          Reporter: bianpan2010@ruc.edu.cn
        Regression: No

The function csio_config_device_caps() defined in file
drivers/scsi/csiostor/csio_hw.c returns the value of variable rv at the end. By
reviewing the source code of the caller of csio_config_device_caps(), we can
infer that variable rv should takes a non-zero value on failures. However,
after the check of variable rv at line 1376, its value must be 0. As a result,
0 will be returned even if the subsequent calls to csio_mb_issue() (at line
1389) or csio_mb_fw_retval() (at line 1394) fails. I guess letting rv receives
the return value of csio_hw_validate_caps() at line 1375 may be a typo. Does
the author means "retval" instead of "rv"? Codes related to this bug are
summarised as follows.

csio_config_device_caps @@ drivers/scsi/csiostor/csio_hw.c
1347 static int
1348 csio_config_device_caps(struct csio_hw *hw)
1349 {
1350     struct csio_mb  *mbp;
1351     enum fw_retval retval;
1352     int rv = -EINVAL;
1353 
1354     mbp = mempool_alloc(hw->mb_mempool, GFP_ATOMIC);
1355     if (!mbp) {
1356         CSIO_INC_STATS(hw, n_err_nomem);
1357         return -ENOMEM;
1358     }
         ...
1374     /* Validate device capabilities */
1375     rv = csio_hw_validate_caps(hw, mbp); // use "retval" instead of "rv"?
1376     if (rv != 0)
1377         goto out;
1378 
1379     /* Don't config device capabilities if already configured */
1380     if (hw->fw_state == CSIO_DEV_STATE_INIT) {
1381         rv = 0;
1382         goto out;
1383     }
1384 
1385     /* Write back desired device capabilities */
1386     csio_mb_caps_config(hw, mbp, CSIO_MB_DEFAULT_TMO, true, true,
1387                 false, true, NULL);
1388 
1389     if (csio_mb_issue(hw, mbp)) {
1390         csio_err(hw, "Issue of FW_CAPS_CONFIG_CMD(w) failed!\n");
             // on this error, the return value is 0
1391         goto out;
1392     }
1393 
1394     retval = csio_mb_fw_retval(mbp);
1395     if (retval != FW_SUCCESS) {
1396         csio_err(hw, "FW_CAPS_CONFIG_CMD(w) returned %d!\n", retval);
             // on this error, the return value is 0
1397         goto out;
1398     }
1399 
1400     rv = 0;
1401 out:
1402     mempool_free(mbp, hw->mb_mempool);
1403     return rv;
1404 }

Thanks very much!

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

                 reply	other threads:[~2016-11-25 11:04 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=bug-188861-11613@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-scsi@vger.kernel.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.