patch-2.2.14 linux/drivers/char/lp.c
Next file: linux/drivers/char/mem.c
Previous file: linux/drivers/char/joystick/joystick.c
Back to the patch index
Back to the overall index
- Lines: 50
- Date:
Tue Jan 4 10:12:14 2000
- Orig file:
v2.2.13/linux/drivers/char/lp.c
- Orig date:
Tue Jan 4 11:10:33 2000
diff -u --recursive --new-file v2.2.13/linux/drivers/char/lp.c linux/drivers/char/lp.c
@@ -424,7 +424,7 @@
{
unsigned int last = lp_table[minor].last_error;
unsigned char status = r_str(minor);
- if (status & LP_PERRORP)
+ if ((status & LP_PERRORP) && !(LP_F(minor) & LP_CAREFUL))
/* No error. */
last = 0;
else if ((status & LP_POUTPA)) {
@@ -437,11 +437,14 @@
last = LP_PSELECD;
printk(KERN_INFO "lp%d off-line\n", minor);
}
- } else {
+ } else if (!(status & LP_PERRORP)) {
if (last != LP_PERRORP) {
last = LP_PERRORP;
printk(KERN_INFO "lp%d on fire\n", minor);
}
+ } else {
+ last = 0; /* Come here if LP_CAREFUL is set and no
+ errors are reported. */
}
lp_table[minor].last_error = last;
@@ -787,14 +790,12 @@
else
LP_F(minor) &= ~LP_ABORTOPEN;
break;
-#ifdef OBSOLETED
case LPCAREFUL:
if (arg)
LP_F(minor) |= LP_CAREFUL;
else
LP_F(minor) &= ~LP_CAREFUL;
break;
-#endif
case LPTRUSTIRQ:
if (arg)
LP_F(minor) |= LP_TRUST_IRQ;
@@ -971,7 +972,8 @@
return -EIO;
}
} else {
- printk(KERN_INFO "lp: driver loaded but no devices found\n");
+ printk(KERN_INFO "lp: no devices found\n");
+ return -ENODEV;
}
return 0;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)