patch-1.3.77 linux/drivers/char/lp.c
Next file: linux/drivers/scsi/NCR5380.c
Previous file: linux/drivers/char/ftape/Makefile
Back to the patch index
Back to the overall index
-  Lines: 35
 -  Date:
Wed Mar 20 10:50:02 1996
 -  Orig file: 
v1.3.76/linux/drivers/char/lp.c
 -  Orig date: 
Fri Mar 15 16:03:14 1996
 
diff -u --recursive --new-file v1.3.76/linux/drivers/char/lp.c linux/drivers/char/lp.c
@@ -602,6 +602,7 @@
 {
 	int offset = 0;
 	int count = 0;
+	int failed = 0;
 
 	if (register_chrdev(LP_MAJOR,"lp",&lp_fops)) {
 		printk("lp: unable to get major %d\n", LP_MAJOR);
@@ -623,13 +624,25 @@
 		if (specified) {
 			if (lp_probe(offset) <= 0) {
 				printk(KERN_INFO "lp%d: Not found\n", offset);
-				return -EIO;
+				failed++;
 			} else
 				count++;
 		}
 	}
+	/* Successful specified devices increase count
+	 * Unsuccessful specified devices increase failed
+	 */
 	if (count)
 		return 0;
+	if (failed) {
+		printk(KERN_INFO "lp: No override devices found.\n");
+		unregister_chrdev(LP_MAJOR,"lp");
+		return -EIO;
+	}
+	/* Only get here if there were no specified devices. To continue 
+	 * would be silly since the above code has scribbled all over the
+	 * probe list.
+	 */
 #endif
 	/* take on all known port values */
 	for (offset = 0; offset < LP_NO; offset++) {
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this