[Kernel-janitors]
Hi.
To be aplied on top of CONFIG_LEDMAN patch, or you'll get -11 lines offsets.
I left one copy_*_user, because locking needs to be fixed around it too. About that s/break/return/ in switch: at end of switch there is a "return 0". Didn't compile test it, since it's a motorola driver.
Domen
drivers/serial/mcfserial.c +22 -48
@@ -880,8 +880,7 @@ static int get_serial_info(struct mcf_se tmp.close_delay = info->close_delay; tmp.closing_wait = info->closing_wait; tmp.custom_divisor = info->custom_divisor; -copy_to_user (retinfo,&tmp,sizeof (*retinfo)); -return 0 ; +return copy_to_user (retinfo,&tmp,sizeof (*retinfo)) ? -EFAULT :0 ; } static int set_serial_info(struct mcf_serial * info,
@@ -893,7 +892,8 @@ static int set_serial_info(struct mcf_seif (!new_info)return -EFAULT ; -copy_from_user (&new_serial,new_info,sizeof (new_serial)); +if (copy_from_user (&new_serial,new_info,sizeof (new_serial))) +return -EFAULT ; old_info = *info;if (!capable (CAP_SYS_ADMIN )) {
@@ -950,8 +950,7 @@ static int get_lsr_info(struct mcf_seria status = (uartp[MCFUART_USR ] &MCFUART_USR_TXEMPTY ) ?TIOCSER_TEMT :0 ;local_irq_restore (flags); -put_user (status,value); -return 0 ; +return put_user (status,value); }/*
@@ -1009,79 +1008,54 @@ static int mcfrs_ioctl(struct tty_structsend_break (info, arg ? arg*(HZ /10 ) :HZ /4 );return 0 ;case TIOCGSOFTCAR : - error =verify_area (VERIFY_WRITE , (void *) arg,sizeof (long ));if (error) -return error; -put_user (C_CLOCAL (tty) ?1 :0 , + error =put_user (C_CLOCAL (tty) ?1 :0 , (unsigned long *) arg); -return 0 ; +return error;case TIOCSSOFTCAR : -get_user (arg, (unsigned long *) arg); +if (get_user (arg, (unsigned long *) arg)) +return -EFAULT ; tty->termios->c_cflag ((tty->termios->c_cflag & ~CLOCAL ) | (arg ?CLOCAL :0 ));return 0 ;case TIOCGSERIAL : - error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (struct serial_struct )); -if (error) -return error;return get_serial_info (info, (struct serial_struct *) arg);case TIOCSSERIAL :return set_serial_info (info, (struct serial_struct *) arg);case TIOCSERGETLSR :/* Get line status register */ - error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (unsigned int )); -if (error) -return error; -else -return get_lsr_info (info, (unsigned int *) arg); +return get_lsr_info (info, (unsigned int *) arg);case TIOCSERGSTRUCT : - error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (struct mcf_serial )); -if (error) -return error; -copy_to_user ((struct mcf_serial *) arg, - info,sizeof (struct mcf_serial )); -return 0 ; +if (copy_to_user ((struct mcf_serial *) arg, + info,sizeof (struct mcf_serial ))) +return -EFAULT ;case TIOCMGET : -if ((error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (unsigned int )))) -return (error); val =mcfrs_getsignals (info); -put_user (val, (unsigned int *) arg); -break ; +return put_user (val, (unsigned int *) arg);case TIOCMBIS : -if ((error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (unsigned int )))) -return (error); - -get_user (val, (unsigned int *) arg); +if (get_user (val, (unsigned int *) arg)) +return -EFAULT ; rts = (val &TIOCM_RTS ) ?1 :-1 ; dtr = (val &TIOCM_DTR ) ?1 :-1 ;mcfrs_setsignals (info, dtr, rts);break ;case TIOCMBIC : -if ((error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (unsigned int )))) -return (error); -get_user (val, (unsigned int *) arg); +if (get_user (val, (unsigned int *) arg)) +return -EFAULT ; rts = (val &TIOCM_RTS ) ?0 :-1 ; dtr = (val &TIOCM_DTR ) ?0 :-1 ;mcfrs_setsignals (info, dtr, rts);break ;case TIOCMSET : -if ((error =verify_area (VERIFY_WRITE , (void *) arg, -sizeof (unsigned int )))) -return (error); -get_user (val, (unsigned int *) arg); +if (get_user (val, (unsigned int *) arg)) +return -EFAULT ; rts = (val &TIOCM_RTS ) ?1 :0 ; dtr = (val &TIOCM_DTR ) ?1 :0 ;mcfrs_setsignals (info, dtr, rts);
@@ -1089,13 +1063,13 @@ static int mcfrs_ioctl(struct tty_struct#ifdef TIOCSET422 case TIOCSET422 : -get_user (val, (unsigned int *) arg); +if (get_user (val, (unsigned int *) arg)) +return -EFAULT ;mcf_setpa (MCFPP_PA11 , (val ?0 :MCFPP_PA11 ));break ;case TIOCGET422 : val = (mcf_getpa () &MCFPP_PA11 ) ?0 :1 ; -put_user (val, (unsigned int *) arg); -break ; +return put_user (val, (unsigned int *) arg);#endif default :
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
I forget the patch :)
Signature · 2 lines
Mickaël GRIGOUZE [email protected] ICQ : 42799256 *** \-/ *** In a World Without Fences Who Needs Gates *** \-/ ***
kj-new.pl renamed from kj.pl +1 -1
@@ -109,7 +109,7 @@ print "$filename:$linenr:$line\n\n"; } - if ($line=~/MOD_{INC,DEC}_USE_COUNT/) { + if ($line=~/MOD_(INC|DEC)_USE_COUNT/) { print "Net drivers should call SET_MODULE_OWNER instead of MOD_{INC,DEC}_USE_COUNT\n"; print "$filename:$linenr:$line\n\n"; }
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors