[PATCH] rocket: Prepare for BKL pushdown

2008-02-20 Thread Alan Cox
Wrap the ioctl code in lock_kernel calls

Signed-off-by: Alan Cox <[EMAIL PROTECTED]>

diff -u --new-file --recursive --exclude-from /usr/src/exclude 
linux.vanilla-2.6.25-rc2-mm1/drivers/char/rocket.c 
linux-2.6.25-rc2-mm1/drivers/char/rocket.c
--- linux.vanilla-2.6.25-rc2-mm1/drivers/char/rocket.c  2008-02-19 
11:03:00.0 +
+++ linux-2.6.25-rc2-mm1/drivers/char/rocket.c  2008-02-20 11:48:44.0 
+
@@ -1432,29 +1432,38 @@
 {
struct r_port *info = (struct r_port *) tty->driver_data;
void __user *argp = (void __user *)arg;
+   int ret = 0;
 
if (cmd != RCKP_GET_PORTS && rocket_paranoia_check(info, "rp_ioctl"))
return -ENXIO;
 
+   lock_kernel();
+
switch (cmd) {
case RCKP_GET_STRUCT:
if (copy_to_user(argp, info, sizeof (struct r_port)))
-   return -EFAULT;
-   return 0;
+   ret = -EFAULT;
+   break;
case RCKP_GET_CONFIG:
-   return get_config(info, argp);
+   ret = get_config(info, argp);
+   break;
case RCKP_SET_CONFIG:
-   return set_config(info, argp);
+   ret = set_config(info, argp);
+   break;
case RCKP_GET_PORTS:
-   return get_ports(info, argp);
+   ret = get_ports(info, argp);
+   break;
case RCKP_RESET_RM2:
-   return reset_rm2(info, argp);
+   ret = reset_rm2(info, argp);
+   break;
case RCKP_GET_VERSION:
-   return get_version(info, argp);
+   ret = get_version(info, argp);
+   break;
default:
-   return -ENOIOCTLCMD;
+   ret = -ENOIOCTLCMD;
}
-   return 0;
+   unlock_kernel();
+   return ret;
 }
 
 static void rp_send_xchar(struct tty_struct *tty, char ch)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] rocket: Prepare for BKL pushdown

2008-02-20 Thread Alan Cox
Wrap the ioctl code in lock_kernel calls

Signed-off-by: Alan Cox [EMAIL PROTECTED]

diff -u --new-file --recursive --exclude-from /usr/src/exclude 
linux.vanilla-2.6.25-rc2-mm1/drivers/char/rocket.c 
linux-2.6.25-rc2-mm1/drivers/char/rocket.c
--- linux.vanilla-2.6.25-rc2-mm1/drivers/char/rocket.c  2008-02-19 
11:03:00.0 +
+++ linux-2.6.25-rc2-mm1/drivers/char/rocket.c  2008-02-20 11:48:44.0 
+
@@ -1432,29 +1432,38 @@
 {
struct r_port *info = (struct r_port *) tty-driver_data;
void __user *argp = (void __user *)arg;
+   int ret = 0;
 
if (cmd != RCKP_GET_PORTS  rocket_paranoia_check(info, rp_ioctl))
return -ENXIO;
 
+   lock_kernel();
+
switch (cmd) {
case RCKP_GET_STRUCT:
if (copy_to_user(argp, info, sizeof (struct r_port)))
-   return -EFAULT;
-   return 0;
+   ret = -EFAULT;
+   break;
case RCKP_GET_CONFIG:
-   return get_config(info, argp);
+   ret = get_config(info, argp);
+   break;
case RCKP_SET_CONFIG:
-   return set_config(info, argp);
+   ret = set_config(info, argp);
+   break;
case RCKP_GET_PORTS:
-   return get_ports(info, argp);
+   ret = get_ports(info, argp);
+   break;
case RCKP_RESET_RM2:
-   return reset_rm2(info, argp);
+   ret = reset_rm2(info, argp);
+   break;
case RCKP_GET_VERSION:
-   return get_version(info, argp);
+   ret = get_version(info, argp);
+   break;
default:
-   return -ENOIOCTLCMD;
+   ret = -ENOIOCTLCMD;
}
-   return 0;
+   unlock_kernel();
+   return ret;
 }
 
 static void rp_send_xchar(struct tty_struct *tty, char ch)
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/