lkml.org 
[lkml]   [2017]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 64/90] scsi: qla2xxx: dont disable a not previously enabled PCI device
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Johannes Thumshirn <jthumshirn@suse.de>

    commit ddff7ed45edce4a4c92949d3c61cd25d229c4a14 upstream.

    When pci_enable_device() or pci_enable_device_mem() fail in
    qla2x00_probe_one() we bail out but do a call to
    pci_disable_device(). This causes the dev_WARN_ON() in
    pci_disable_device() to trigger, as the device wasn't enabled
    previously.

    So instead of taking the 'probe_out' error path we can directly return
    *iff* one of the pci_enable_device() calls fails.

    Additionally rename the 'probe_out' goto label's name to the more
    descriptive 'disable_device'.

    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Fixes: e315cd28b9ef ("[SCSI] qla2xxx: Code changes for qla data structure refactoring")
    Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Reviewed-by: Giridhar Malavali <giridhar.malavali@cavium.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/scsi/qla2xxx/qla_os.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/drivers/scsi/qla2xxx/qla_os.c
    +++ b/drivers/scsi/qla2xxx/qla_os.c
    @@ -2311,10 +2311,10 @@ qla2x00_probe_one(struct pci_dev *pdev,

    if (mem_only) {
    if (pci_enable_device_mem(pdev))
    - goto probe_out;
    + return ret;
    } else {
    if (pci_enable_device(pdev))
    - goto probe_out;
    + return ret;
    }

    /* This may fail but that's ok */
    @@ -2324,7 +2324,7 @@ qla2x00_probe_one(struct pci_dev *pdev,
    if (!ha) {
    ql_log_pci(ql_log_fatal, pdev, 0x0009,
    "Unable to allocate memory for ha.\n");
    - goto probe_out;
    + goto disable_device;
    }
    ql_dbg_pci(ql_dbg_init, pdev, 0x000a,
    "Memory allocated for ha=%p.\n", ha);
    @@ -2923,7 +2923,7 @@ iospace_config_failed:
    kfree(ha);
    ha = NULL;

    -probe_out:
    +disable_device:
    pci_disable_device(pdev);
    return ret;
    }

    \
     
     \ /
      Last update: 2017-06-12 18:07    [W:5.050 / U:0.680 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site