aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/mos7840.c
diff options
context:
space:
mode:
authorAlan Cox <alan@redhat.com>2009-01-02 13:48:56 +0000
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-02 10:19:42 -0800
commit6b447f04a9aecdf2a30c1a97e4b034ac7931bb70 (patch)
tree61a92b936c0c8e42ebf93e01acbc15aceb9bd864 /drivers/usb/serial/mos7840.c
parenteeb4613436f0f19a38f667ea3078821040559c68 (diff)
downloadkernel_samsung_smdk4412-6b447f04a9aecdf2a30c1a97e4b034ac7931bb70.zip
kernel_samsung_smdk4412-6b447f04a9aecdf2a30c1a97e4b034ac7931bb70.tar.gz
kernel_samsung_smdk4412-6b447f04a9aecdf2a30c1a97e4b034ac7931bb70.tar.bz2
tty: Drop the lock_kernel in the private ioctl hook
We don't need the BKL here any more so it can go. In a couple of spots the driver requirements are not clear so push the lock down into the driver. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/usb/serial/mos7840.c')
-rw-r--r--drivers/usb/serial/mos7840.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c
index fda4a64..96a8c77 100644
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -1343,6 +1343,7 @@ static void mos7840_break(struct tty_struct *tty, int break_state)
else
data = mos7840_port->shadowLCR & ~LCR_SET_BREAK;
+ /* FIXME: no locking on shadowLCR anywhere in driver */
mos7840_port->shadowLCR = data;
dbg("mcs7840_break mos7840_port->shadowLCR is %x\n",
mos7840_port->shadowLCR);
@@ -2214,10 +2215,12 @@ static int mos7840_set_modem_info(struct moschip_port *mos7840_port,
break;
}
+ lock_kernel();
mos7840_port->shadowMCR = mcr;
Data = mos7840_port->shadowMCR;
status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER, Data);
+ unlock_kernel();
if (status < 0) {
dbg("setting MODEM_CONTROL_REGISTER Failed\n");
return -1;