--- 2.2.14/drivers/char/lp.c Sun Apr 2 21:07:48 2000 +++ /tmp/lp.c Wed May 3 02:04:21 2000 @@ -202,7 +202,7 @@ /* Test if the printer is not acking the strobe */ #define LP_NO_ACKING(status) ((status) & LP_PACK) /* Test if the printer has error conditions */ -#define LP_NO_ERROR(status) ((status) & LP_PERRORP) +#define LP_NO_ERROR(minor, status) ((!(LP_F(minor) & LP_CAREFUL)) ? ((status) & LP_PERRORP) : (((status) & (LP_PERRORP|LP_POUTPA|LP_PSELECD)) == (LP_PERRORP|LP_PSELECD))) #undef LP_DEBUG #undef LP_READ_DEBUG @@ -289,7 +289,7 @@ lp_yield(minor); status = r_str(minor); - if (LP_NO_ERROR(status)) + if (LP_NO_ERROR(minor, status)) { if (LP_READY(status)) break;