lkml.org 
[lkml]   [2012]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 15/37] PCI, sysfs: Clean up rescan/remove with scheule_callback
    Date
    Change to use three return according to Bjorn.

    Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    ---
    drivers/pci/pci-sysfs.c | 37 ++++++++++++++++++++-----------------
    1 files changed, 20 insertions(+), 17 deletions(-)

    diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
    index 1794508..4697afe 100644
    --- a/drivers/pci/pci-sysfs.c
    +++ b/drivers/pci/pci-sysfs.c
    @@ -338,17 +338,17 @@ static ssize_t
    dev_bridge_rescan_store(struct device *dev, struct device_attribute *attr,
    const char *buf, size_t count)
    {
    - int ret = 0;
    + int err;
    unsigned long val;

    if (kstrtoul(buf, 0, &val) < 0)
    return -EINVAL;
    + if (!val)
    + return count;

    - if (val)
    - ret = device_schedule_callback(dev, bridge_rescan_callback);
    -
    - if (ret)
    - count = ret;
    + err = device_schedule_callback(dev, bridge_rescan_callback);
    + if (err)
    + return err;

    return count;
    }
    @@ -369,7 +369,7 @@ static ssize_t
    remove_store(struct device *dev, struct device_attribute *dummy,
    const char *buf, size_t count)
    {
    - int ret = 0;
    + int err;
    unsigned long val;

    if (strict_strtoul(buf, 0, &val) < 0)
    @@ -378,10 +378,13 @@ remove_store(struct device *dev, struct device_attribute *dummy,
    /* An attribute cannot be unregistered by one of its own methods,
    * so we have to use this roundabout approach.
    */
    - if (val)
    - ret = device_schedule_callback(dev, remove_callback);
    - if (ret)
    - count = ret;
    + if (!val)
    + return count;
    +
    + err = device_schedule_callback(dev, remove_callback);
    + if (err)
    + return err;
    +
    return count;
    }

    @@ -397,17 +400,17 @@ static ssize_t
    dev_bus_rescan_store(struct device *dev, struct device_attribute *attr,
    const char *buf, size_t count)
    {
    - int ret = 0;
    + int err;
    unsigned long val;

    if (strict_strtoul(buf, 0, &val) < 0)
    return -EINVAL;
    + if (!val)
    + return count;

    - if (val)
    - ret = device_schedule_callback(dev, bus_rescan_callback);
    -
    - if (ret)
    - count = ret;
    + err = device_schedule_callback(dev, bus_rescan_callback);
    + if (err)
    + return err;

    return count;
    }
    --
    1.7.7


    \
     
     \ /
      Last update: 2012-03-10 08:11    [W:0.025 / U:62.668 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site