From: ebiederm@xmission.com (Eric W. Biederman)
To: Greg Kroah-Hartman <gregkh@suse.de>
Cc: "Hans J. Koch" <hjk@linutronix.de>, <linux-kernel@vger.kernel.org>
Subject: [PATCH 3/5] uio: Cleanup irq handling.
Date: Tue, 14 Sep 2010 11:37:36 -0700 [thread overview]
Message-ID: <m1k4mo893j.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <m1y6b48973.fsf@fess.ebiederm.org> (Eric W. Biederman's message of "Tue, 14 Sep 2010 11:35:28 -0700")
Change the value of UIO_IRQ_NONE -2 to 0. 0 is well defined in the rest
of the kernel as the value to indicate an irq has not been assigned.
Update the calls to request_irq and free_irq to only ignore UIO_IRQ_NONE
and UIO_IRQ_CUSTOM allowing the rest of the kernel's possible irq
numbers to be used.
Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
---
drivers/uio/uio.c | 14 +++++++-------
include/linux/uio_driver.h | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index 8132288..0fd2cda 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -512,7 +512,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
struct uio_listener *listener = filep->private_data;
struct uio_device *idev = listener->dev;
- if (idev->info->irq == UIO_IRQ_NONE)
+ if (!idev->info->irq)
return -EIO;
poll_wait(filep, &idev->wait, wait);
@@ -530,7 +530,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
ssize_t retval;
s32 event_count;
- if (idev->info->irq == UIO_IRQ_NONE)
+ if (!idev->info->irq)
return -EIO;
if (count != sizeof(s32))
@@ -578,7 +578,7 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
ssize_t retval;
s32 irq_on;
- if (idev->info->irq == UIO_IRQ_NONE)
+ if (!idev->info->irq)
return -EIO;
if (count != sizeof(s32))
@@ -825,9 +825,9 @@ int __uio_register_device(struct module *owner,
info->uio_dev = idev;
- if (idev->info->irq >= 0) {
- ret = request_irq(idev->info->irq, uio_interrupt,
- idev->info->irq_flags, idev->info->name, idev);
+ if (info->irq && (info->irq != UIO_IRQ_CUSTOM)) {
+ ret = request_irq(info->irq, uio_interrupt,
+ info->irq_flags, info->name, idev);
if (ret)
goto err_request_irq;
}
@@ -863,7 +863,7 @@ void uio_unregister_device(struct uio_info *info)
uio_free_minor(idev);
- if (info->irq >= 0)
+ if (info->irq && (info->irq != UIO_IRQ_CUSTOM))
free_irq(info->irq, idev);
uio_dev_del_attributes(idev);
diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
index 5dcc9ff..d6188e5 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -108,7 +108,7 @@ extern void uio_event_notify(struct uio_info *info);
/* defines for uio_info->irq */
#define UIO_IRQ_CUSTOM -1
-#define UIO_IRQ_NONE -2
+#define UIO_IRQ_NONE 0
/* defines for uio_mem->memtype */
#define UIO_MEM_NONE 0
--
1.7.2.2
next prev parent reply other threads:[~2010-09-14 18:37 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-14 18:35 [PATCH 0/5] Uio enhancements Eric W. Biederman
2010-09-14 18:36 ` [PATCH 1/5] uio: Fix lack of locking in init_uio_class Eric W. Biederman
2010-09-17 20:32 ` Thomas Gleixner
2010-09-17 20:49 ` Hans J. Koch
2010-09-14 18:36 ` [PATCH 2/5] uio: Don't clear driver data Eric W. Biederman
2010-09-17 20:33 ` Thomas Gleixner
2010-09-17 20:50 ` Hans J. Koch
2010-09-14 18:37 ` Eric W. Biederman [this message]
2010-09-17 20:34 ` [PATCH 3/5] uio: Cleanup irq handling Thomas Gleixner
2010-09-17 20:51 ` Hans J. Koch
2010-09-14 18:38 ` [PATCH 4/5] uio: Support 2^MINOR_BITS minors Eric W. Biederman
2010-09-17 20:36 ` Thomas Gleixner
2010-09-17 20:57 ` Hans J. Koch
2010-09-17 21:09 ` Greg KH
2010-09-21 21:08 ` Greg KH
2010-09-21 21:38 ` Thomas Gleixner
2010-09-21 21:56 ` Greg KH
2010-09-21 22:21 ` Eric W. Biederman
2010-09-21 22:26 ` Thomas Gleixner
2010-09-14 18:38 ` [PATCH 5/5] uio: Statically allocate uio_class and use class .dev_attrs Eric W. Biederman
2010-09-17 20:37 ` Thomas Gleixner
2010-09-17 20:57 ` Hans J. Koch
2010-09-17 20:59 ` [PATCH 0/5] Uio enhancements Hans J. Koch
2010-09-20 7:19 ` [PATCH 0/5] uio hotplug support Eric W. Biederman
2010-09-20 7:21 ` [PATCH 1/5] uio: Simplify the lifetime logic of struct uio_device Eric W. Biederman
2010-09-20 7:21 ` [PATCH 2/5] uio: Kill unused vma_count Eric W. Biederman
2010-09-20 7:23 ` [PATCH 3/5] uio: Remove unused uio_info mmap method Eric W. Biederman
2010-09-20 7:23 ` [PATCH 4/5] libunload: A library to help remove open files Eric W. Biederman
2010-09-20 7:24 ` [PATCH 5/5] uio: Implement hotunplug support, using libunload Eric W. Biederman
2010-09-24 10:55 ` Hans J. Koch
2010-09-24 17:11 ` Eric W. Biederman
2010-09-25 2:06 ` [PATCH] uio: Fix accidentally changed return value in uio_read Eric W. Biederman
2010-09-24 10:45 ` [PATCH 0/5] uio hotplug support Hans J. Koch
2010-09-24 17:14 ` Eric W. Biederman
2010-09-24 17:31 ` Hans J. Koch
2010-09-24 18:38 ` Eric W. Biederman
2010-09-25 0:05 ` Eric W. Biederman
2010-09-25 0:33 ` Greg KH
2010-09-25 1:54 ` Eric W. Biederman
2010-09-26 19:21 ` Greg KH
2010-09-26 22:46 ` [PATCH 1/5] uio: Simplify the lifetime logic of struct uio_device Eric W. Biederman
2010-09-30 22:00 ` Hans J. Koch
2010-09-26 22:47 ` [PATCH 2/5] uio: Kill unused vma_count Eric W. Biederman
2010-09-26 22:48 ` [PATCH 3/5] uio: Remove unused uio_info mmap method Eric W. Biederman
2010-10-04 9:26 ` Hans J. Koch
2010-09-26 22:48 ` [PATCH 4/5] libunload: A library to help remove open files Eric W. Biederman
2010-10-04 9:56 ` Hans J. Koch
2010-09-26 22:49 ` [PATCH 5/5] uio: Implement hotunplug support, using libunload Eric W. Biederman
2010-10-04 10:47 ` Hans J. Koch
2010-10-04 12:34 ` Hans J. Koch
2010-10-04 18:19 ` Eric W. Biederman
2010-10-04 18:52 ` Hans J. Koch
2010-09-26 22:49 ` [PATCH 6/5] uio: Fix accidentally changed return value in uio_read Eric W. Biederman
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=m1k4mo893j.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=gregkh@suse.de \
--cc=hjk@linutronix.de \
--cc=linux-kernel@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.