Skip to content

Commit

Permalink
staging: usbip: simplified errorhandling
Browse files Browse the repository at this point in the history
In each errorcase spin_unlock_irq is called and -EINVAL is returned.
To simplify that I created a label called "err" doing that.
On Success count will be returned.

Signed-off-by: Kurt Kanzenbach <ly80toro@cip.cs.fau.de>
Signed-off-by: Stefan Reif <ke42caxa@cip.cs.fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Kurt Kanzenbach authored and Greg Kroah-Hartman committed Apr 5, 2013
1 parent ca9fb17 commit 31398f6
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions drivers/staging/usbip/stub_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ static ssize_t store_sockfd(struct device *dev, struct device_attribute *attr,
struct stub_device *sdev = dev_get_drvdata(dev);
int sockfd = 0;
struct socket *socket;
ssize_t err = -EINVAL;

if (!sdev) {
dev_err(dev, "sdev is null\n");
Expand All @@ -101,15 +102,13 @@ static ssize_t store_sockfd(struct device *dev, struct device_attribute *attr,

if (sdev->ud.status != SDEV_ST_AVAILABLE) {
dev_err(dev, "not ready\n");
spin_unlock_irq(&sdev->ud.lock);
return -EINVAL;
goto err;
}

socket = sockfd_to_socket(sockfd);
if (!socket) {
spin_unlock_irq(&sdev->ud.lock);
return -EINVAL;
}
if (!socket)
goto err;

sdev->ud.tcp_socket = socket;

spin_unlock_irq(&sdev->ud.lock);
Expand All @@ -127,16 +126,19 @@ static ssize_t store_sockfd(struct device *dev, struct device_attribute *attr,
dev_info(dev, "stub down\n");

spin_lock_irq(&sdev->ud.lock);
if (sdev->ud.status != SDEV_ST_USED) {
spin_unlock_irq(&sdev->ud.lock);
return -EINVAL;
}
if (sdev->ud.status != SDEV_ST_USED)
goto err;

spin_unlock_irq(&sdev->ud.lock);

usbip_event_add(&sdev->ud, SDEV_EVENT_DOWN);
}

return count;

err:
spin_unlock_irq(&sdev->ud.lock);
return err;
}
static DEVICE_ATTR(usbip_sockfd, S_IWUSR, NULL, store_sockfd);

Expand Down

0 comments on commit 31398f6

Please sign in to comment.