2001-03-06 17:01:41

by Tim Waugh

[permalink] [raw]
Subject: [patch] 2.4.3-pre2: fix lp_read

This patch should make printer status readback a little less broken
than before.

2001-06-03 Tim Waugh <[email protected]>

* drivers/char/lp.c (lp_read): The loop is broken. Remove it,
and restore 2.2.x behaviour.

--- linux/drivers/char/lp.c.readback Tue Mar 6 16:47:08 2001
+++ linux/drivers/char/lp.c Tue Mar 6 16:47:31 2001
@@ -344,26 +344,7 @@
return -EINTR;

parport_claim_or_block (lp_table[minor].dev);
-
- for (;;) {
- retval = parport_read (port, kbuf, count);
-
- if (retval)
- break;
-
- if (file->f_flags & O_NONBLOCK)
- break;
-
- /* Wait for an interrupt. */
- interruptible_sleep_on_timeout (&lp_table[minor].waitq,
- LP_TIMEOUT_POLLED);
-
- if (signal_pending (current)) {
- retval = -EINTR;
- break;
- }
- }
-
+ retval = parport_read (port, kbuf, count);
parport_release (lp_table[minor].dev);

if (retval > 0 && copy_to_user (buf, kbuf, retval))