Messages in this thread | | | From | campbell@tirian ... | Date | Fri, 2 May 1997 08:04:23 +0000 | Subject | Re: patch-2.0.30, lp.c - bad patch |
| |
> From: "Karl M. Hegbloom" <karlheg@inetarena.com> > 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.
| |