mirror of
https://github.com/torvalds/linux.git
synced 2024-12-21 10:31:54 +00:00
USB: serial: fix minor-number allocation
Due to a missing upper bound, invalid minor numbers could be assigned to ports. Such devices would later fail to register, but let's catch this early as intended and avoid having devices with only a subset of their ports registered (potentially the empty set). Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
028c49f5e0
commit
194e958c5c
@ -96,7 +96,8 @@ static int allocate_minors(struct usb_serial *serial, int num_ports)
|
|||||||
mutex_lock(&table_lock);
|
mutex_lock(&table_lock);
|
||||||
for (i = 0; i < num_ports; ++i) {
|
for (i = 0; i < num_ports; ++i) {
|
||||||
port = serial->port[i];
|
port = serial->port[i];
|
||||||
minor = idr_alloc(&serial_minors, port, 0, 0, GFP_KERNEL);
|
minor = idr_alloc(&serial_minors, port, 0,
|
||||||
|
USB_SERIAL_TTY_MINORS, GFP_KERNEL);
|
||||||
if (minor < 0)
|
if (minor < 0)
|
||||||
goto error;
|
goto error;
|
||||||
port->minor = minor;
|
port->minor = minor;
|
||||||
|
Loading…
Reference in New Issue
Block a user