Commit c1a6eac1 authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman

staging: comedi: widen subdevice number argument in ioctl handlers

For the `COMEDI_LOCK`, `COMEDI_UNLOCK`, `COMEDI_CANCEL`, and
`COMEDI_POLL` ioctls the third argument is a comedi subdevice number.
This is passed as an `unsigned long`, but when it is passed down to the
ioctl command-specific handler functions `do_lock_ioctl()`,
`do_unlock_ioctl()`, `do_cancel_ioctl()`, and `do_poll_ioctl()`, the
value has been narrowed to an `unsigned int`.  Pass through the argument
as an `unsigned long` to avoid truncating the value on 64-bit
architectures.
Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7e74783a
...@@ -1641,7 +1641,7 @@ static int do_cmdtest_ioctl(struct comedi_device *dev, ...@@ -1641,7 +1641,7 @@ static int do_cmdtest_ioctl(struct comedi_device *dev,
*/ */
static int do_lock_ioctl(struct comedi_device *dev, unsigned int arg, static int do_lock_ioctl(struct comedi_device *dev, unsigned long arg,
void *file) void *file)
{ {
int ret = 0; int ret = 0;
...@@ -1678,7 +1678,7 @@ static int do_lock_ioctl(struct comedi_device *dev, unsigned int arg, ...@@ -1678,7 +1678,7 @@ static int do_lock_ioctl(struct comedi_device *dev, unsigned int arg,
This function isn't protected by the semaphore, since This function isn't protected by the semaphore, since
we already own the lock. we already own the lock.
*/ */
static int do_unlock_ioctl(struct comedi_device *dev, unsigned int arg, static int do_unlock_ioctl(struct comedi_device *dev, unsigned long arg,
void *file) void *file)
{ {
struct comedi_subdevice *s; struct comedi_subdevice *s;
...@@ -1713,7 +1713,7 @@ static int do_unlock_ioctl(struct comedi_device *dev, unsigned int arg, ...@@ -1713,7 +1713,7 @@ static int do_unlock_ioctl(struct comedi_device *dev, unsigned int arg,
nothing nothing
*/ */
static int do_cancel_ioctl(struct comedi_device *dev, unsigned int arg, static int do_cancel_ioctl(struct comedi_device *dev, unsigned long arg,
void *file) void *file)
{ {
struct comedi_subdevice *s; struct comedi_subdevice *s;
...@@ -1750,7 +1750,7 @@ static int do_cancel_ioctl(struct comedi_device *dev, unsigned int arg, ...@@ -1750,7 +1750,7 @@ static int do_cancel_ioctl(struct comedi_device *dev, unsigned int arg,
nothing nothing
*/ */
static int do_poll_ioctl(struct comedi_device *dev, unsigned int arg, static int do_poll_ioctl(struct comedi_device *dev, unsigned long arg,
void *file) void *file)
{ {
struct comedi_subdevice *s; struct comedi_subdevice *s;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment