Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 18127
b: refs/heads/master
c: ab14cae
h: refs/heads/master
i:
  18125: 4546a03
  18123: 0dd2cec
  18119: fad733b
  18111: bc3487d
v: v3
  • Loading branch information
Al Viro authored and Linus Torvalds committed Jan 12, 2006
1 parent 5168188 commit f5d9ebe
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2c7af51129161a7a3dc4169c984964912f1f4822
refs/heads/master: ab14caec7a5f0d9569c8a9dd2ad62e89b220c968
19 changes: 9 additions & 10 deletions trunk/drivers/char/amiserial.c
Original file line number Diff line number Diff line change
Expand Up @@ -1089,7 +1089,7 @@ static void rs_unthrottle(struct tty_struct * tty)
*/

static int get_serial_info(struct async_struct * info,
struct serial_struct * retinfo)
struct serial_struct __user * retinfo)
{
struct serial_struct tmp;
struct serial_state *state = info->state;
Expand All @@ -1113,7 +1113,7 @@ static int get_serial_info(struct async_struct * info,
}

static int set_serial_info(struct async_struct * info,
struct serial_struct * new_info)
struct serial_struct __user * new_info)
{
struct serial_struct new_serial;
struct serial_state old_state, *state;
Expand Down Expand Up @@ -1194,7 +1194,7 @@ static int set_serial_info(struct async_struct * info,
* transmit holding register is empty. This functionality
* allows an RS485 driver to be written in user space.
*/
static int get_lsr_info(struct async_struct * info, unsigned int *value)
static int get_lsr_info(struct async_struct * info, unsigned int __user *value)
{
unsigned char status;
unsigned int result;
Expand Down Expand Up @@ -1285,6 +1285,7 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
struct async_struct * info = (struct async_struct *)tty->driver_data;
struct async_icount cprev, cnow; /* kernel counter temps */
struct serial_icounter_struct icount;
void __user *argp = (void __user *)arg;
unsigned long flags;

if (serial_paranoia_check(info, tty->name, "rs_ioctl"))
Expand All @@ -1299,19 +1300,17 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,

switch (cmd) {
case TIOCGSERIAL:
return get_serial_info(info,
(struct serial_struct *) arg);
return get_serial_info(info, argp);
case TIOCSSERIAL:
return set_serial_info(info,
(struct serial_struct *) arg);
return set_serial_info(info, argp);
case TIOCSERCONFIG:
return 0;

case TIOCSERGETLSR: /* Get line status register */
return get_lsr_info(info, (unsigned int *) arg);
return get_lsr_info(info, argp);

case TIOCSERGSTRUCT:
if (copy_to_user((struct async_struct *) arg,
if (copy_to_user(argp,
info, sizeof(struct async_struct)))
return -EFAULT;
return 0;
Expand Down Expand Up @@ -1370,7 +1369,7 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
icount.brk = cnow.brk;
icount.buf_overrun = cnow.buf_overrun;

if (copy_to_user((void *)arg, &icount, sizeof(icount)))
if (copy_to_user(argp, &icount, sizeof(icount)))
return -EFAULT;
return 0;
case TIOCSERGWILD:
Expand Down

0 comments on commit f5d9ebe

Please sign in to comment.