summaryrefslogtreecommitdiff
path: root/drivers/uio
diff options
context:
space:
mode:
authorDamian Hobson-Garcia <dhobsong@igel.co.jp>2013-03-26 10:31:22 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-29 09:08:22 -0700
commit5ed0505c713805f89473cdc0bbfb5110dfd840cb (patch)
tree05211aaf1a028936a314a3dcf3584f8cd6c98946 /drivers/uio
parent7f4f2302a11173d0ef84bbab4b887b9b50c31dc6 (diff)
downloadlwn-5ed0505c713805f89473cdc0bbfb5110dfd840cb.tar.gz
lwn-5ed0505c713805f89473cdc0bbfb5110dfd840cb.zip
drivers: uio: Fix UIO device registration failure
Until recently uio_get_minor() returned 0 for success and a negative value on failure. This became non-negative for suceess and negative for failure. Restore the original return value spec so that we can successfully initialize UIO devices with a non-zero minor device number. Cc: "Hans J. Koch" <hjk@hansjkoch.de> Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/uio')
-rw-r--r--drivers/uio/uio.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index c8b926291e28..b645c47501b4 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -374,6 +374,7 @@ static int uio_get_minor(struct uio_device *idev)
retval = idr_alloc(&uio_idr, idev, 0, UIO_MAX_DEVICES, GFP_KERNEL);
if (retval >= 0) {
idev->minor = retval;
+ retval = 0;
} else if (retval == -ENOSPC) {
dev_err(idev->dev, "too many uio devices\n");
retval = -EINVAL;