From 0edf39d2c7dbb4947358dd102b6ff35eaaa92d68 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 7 Dec 2018 14:27:30 +0000 Subject: char: lp: introduce list to save port number When we are registering lp in LP_PARPORT_AUTO mode, we are not keeping any record of the parallel port number to which lp is connecting. Add an array to save the port number to it. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/char/lp.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'drivers/char') diff --git a/drivers/char/lp.c b/drivers/char/lp.c index e0a92d764eee..7e207ff0f2fe 100644 --- a/drivers/char/lp.c +++ b/drivers/char/lp.c @@ -141,6 +141,7 @@ static DEFINE_MUTEX(lp_mutex); static struct lp_struct lp_table[LP_NO]; +static int port_num[LP_NO]; static unsigned int lp_count = 0; static struct class *lp_class; @@ -938,6 +939,7 @@ static int lp_register(int nr, struct parport *port) CONSOLE_LP, port->name); } #endif + port_num[nr] = port->number; return 0; } @@ -1013,6 +1015,7 @@ static int __init lp_init(void) init_waitqueue_head(&lp_table[i].dataq); mutex_init(&lp_table[i].port_mutex); lp_table[i].timeout = 10 * HZ; + port_num[i] = -1; } if (register_chrdev(LP_MAJOR, "lp", &lp_fops)) { @@ -1091,6 +1094,7 @@ static void lp_cleanup_module(void) for (offset = 0; offset < LP_NO; offset++) { if (lp_table[offset].dev == NULL) continue; + port_num[offset] = -1; parport_unregister_device(lp_table[offset].dev); device_destroy(lp_class, MKDEV(LP_MAJOR, offset)); } -- cgit v1.2.3