diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2018-12-07 15:27:33 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-12-19 10:40:17 +0100 |
commit | e379c1a46068969a2b822a15dbc9a37577e1e04f (patch) | |
tree | 15ab0d59bf6e6e8adbc2b8b968ccbd9548723d4d | |
parent | char: lp: use first unused lp number while registering (diff) | |
download | linux-e379c1a46068969a2b822a15dbc9a37577e1e04f.tar.xz linux-e379c1a46068969a2b822a15dbc9a37577e1e04f.zip |
char: lp: properly count the lp devices
When the parallel port is usb based and the lp attaches to it based on
LP_PARPORT_AUTO, we do get /dev/lp0 and when we remove the usb device
/dev/lp0 is unregistered. If we now reconnect the usb device we get
our /dev/lp0 back. But if we now disconnect and reconnect eight times
we donot get any lp device and dmesg shows:
lp: ignoring parallel port (max. 8)
Decrement the lp_count when the device detaches as this represents the
number of lp devices connected to the system.
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/char/lp.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/char/lp.c b/drivers/char/lp.c index 0e081f521f51..cef2ea386f5e 100644 --- a/drivers/char/lp.c +++ b/drivers/char/lp.c @@ -993,6 +993,7 @@ static void lp_detach(struct parport *port) for (n = 0; n < LP_NO; n++) { if (port_num[n] == port->number) { port_num[n] = -1; + lp_count--; device_destroy(lp_class, MKDEV(LP_MAJOR, n)); parport_unregister_device(lp_table[n].dev); } |