summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/class/printer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/usb/class/printer.c b/drivers/usb/class/printer.c
index 06f256f0c2db..7689c3e9caed 100644
--- a/drivers/usb/class/printer.c
+++ b/drivers/usb/class/printer.c
@@ -418,7 +418,8 @@ static int usblp_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
{
struct usblp *usblp = file->private_data;
int length, err, i;
- unsigned char status, newChannel;
+ unsigned char lpstatus, newChannel;
+ int status;
int twoints[2];
int retval = 0;
@@ -569,12 +570,13 @@ static int usblp_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
switch (cmd) {
case LPGETSTATUS:
- if (usblp_read_status(usblp, &status)) {
+ if (usblp_read_status(usblp, &lpstatus)) {
err("usblp%d: failed reading printer status", usblp->minor);
retval = -EIO;
goto done;
}
- if (copy_to_user ((unsigned char *)arg, &status, 1))
+ status = lpstatus;
+ if (copy_to_user ((int *)arg, &status, sizeof(int)))
retval = -EFAULT;
break;