projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a89936c
)
ipack: ipoctal: fix tty registration race
author
Johan Hovold
<johan@kernel.org>
Fri, 17 Sep 2021 11:46:18 +0000
(13:46 +0200)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Mon, 27 Sep 2021 15:38:49 +0000
(17:38 +0200)
Make sure to set the tty class-device driver data before registering the
tty to avoid having a racing open() dereference a NULL pointer.
Fixes: 9c1d784afc6f ("Staging: ipack/devices/ipoctal: Get rid of ipoctal_list.")
Cc: stable@vger.kernel.org # 3.7
Acked-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link:
https://lore.kernel.org/r/20210917114622.5412-3-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/ipack/devices/ipoctal.c
patch
|
blob
|
history
diff --git
a/drivers/ipack/devices/ipoctal.c
b/drivers/ipack/devices/ipoctal.c
index c62fec75987cc6bac4ebbf4feda8ef3aed7235eb..2624513431272f1bb0dde7584f92da3e5d3cf59c 100644
(file)
--- a/
drivers/ipack/devices/ipoctal.c
+++ b/
drivers/ipack/devices/ipoctal.c
@@
-392,13
+392,13
@@
static int ipoctal_inst_slot(struct ipoctal *ipoctal, unsigned int bus_nr,
spin_lock_init(&channel->lock);
channel->pointer_read = 0;
channel->pointer_write = 0;
- tty_dev = tty_port_register_device(&channel->tty_port, tty, i, NULL);
+ tty_dev = tty_port_register_device_attr(&channel->tty_port, tty,
+ i, NULL, channel, NULL);
if (IS_ERR(tty_dev)) {
dev_err(&ipoctal->dev->dev, "Failed to register tty device.\n");
tty_port_destroy(&channel->tty_port);
continue;
}
- dev_set_drvdata(tty_dev, channel);
}
/*