提交 194e958c 编写于 作者: J Johan Hovold

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: NJohan Hovold <johan@kernel.org>
Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 028c49f5
...@@ -96,7 +96,8 @@ static int allocate_minors(struct usb_serial *serial, int num_ports) ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册