Re: patch-2.0.30, lp.c - bad patch
Fri, 2 May 1997 08:04:23 +0000

> From: "Karl M. Hegbloom" <>
> While I was testing the parport patch and new ppa.o [1], by running
> the printer and listing the Zip drive at the same time, I got kernel
> messages saying Aiee: Scheduling in interrupt. Looking at the
> patch-2.0.30, I find that it says:

The parport lp driver is based on the existing lp driver, just a few
minor modifications made to fit the parport model (I did the original
conversion approx 3 months back).

At this stage there were some issues that needed resolving such as
dealing with printer offline and paper out conditions without locking
out other parallel port devices which may be sharing the port, such
as the ZIP drive.

I have been extremely busy for the last few months and during the
last weekend spent in excess of 24 hours in front of a linux box
chasing down a problem with the ZIP drive (now fixed).

My feeling is that the lp driver may need a complete rewrite for
robust parallel port sharing, the previous driver makes some implicit
assumptions that it is the only device using the parallel port. The
conversion implemented was the use of sleep_on() / wake_up() to pause
the lp driver until the parallel port was freed by another device.

Perhaps another locking mechanism should be used in preference....,
if anyone has any suggestions please mail me. I have noticed the
down() / up() semaphore locking as used in the mid level scsi driver.

Does anyone know which driver locking / sleep method should be used
under which circumstances???

David Campbell.