mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-29 18:11:20 +00:00
tty: Fix the digi acceleport driver NULL checks
This now refcounts but doesn't actually check the reference was obtained in all the places it should. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
7479db0701
commit
4287341d4d
1 changed files with 9 additions and 5 deletions
|
@ -609,9 +609,11 @@ static void digi_wakeup_write_lock(struct work_struct *work)
|
||||||
static void digi_wakeup_write(struct usb_serial_port *port)
|
static void digi_wakeup_write(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct tty_struct *tty = tty_port_tty_get(&port->port);
|
struct tty_struct *tty = tty_port_tty_get(&port->port);
|
||||||
|
if (tty) {
|
||||||
tty_wakeup(tty);
|
tty_wakeup(tty);
|
||||||
tty_kref_put(tty);
|
tty_kref_put(tty);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1682,7 +1684,7 @@ static int digi_read_inb_callback(struct urb *urb)
|
||||||
priv->dp_throttle_restart = 1;
|
priv->dp_throttle_restart = 1;
|
||||||
|
|
||||||
/* receive data */
|
/* receive data */
|
||||||
if (opcode == DIGI_CMD_RECEIVE_DATA) {
|
if (tty && opcode == DIGI_CMD_RECEIVE_DATA) {
|
||||||
/* get flag from port_status */
|
/* get flag from port_status */
|
||||||
flag = 0;
|
flag = 0;
|
||||||
|
|
||||||
|
@ -1763,10 +1765,12 @@ static int digi_read_oob_callback(struct urb *urb)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
tty = tty_port_tty_get(&port->port);
|
tty = tty_port_tty_get(&port->port);
|
||||||
|
|
||||||
rts = 0;
|
rts = 0;
|
||||||
|
if (tty)
|
||||||
rts = tty->termios->c_cflag & CRTSCTS;
|
rts = tty->termios->c_cflag & CRTSCTS;
|
||||||
|
|
||||||
if (opcode == DIGI_CMD_READ_INPUT_SIGNALS) {
|
if (tty && opcode == DIGI_CMD_READ_INPUT_SIGNALS) {
|
||||||
spin_lock(&priv->dp_port_lock);
|
spin_lock(&priv->dp_port_lock);
|
||||||
/* convert from digi flags to termiox flags */
|
/* convert from digi flags to termiox flags */
|
||||||
if (val & DIGI_READ_INPUT_SIGNALS_CTS) {
|
if (val & DIGI_READ_INPUT_SIGNALS_CTS) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue