Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Feb 2009 11:33:48 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-current@freebsd.org, akbeech@gmail.com
Subject:   Re: lpt stopped working
Message-ID:  <200902091133.48838.jhb@freebsd.org>
In-Reply-To: <200902061231.46516.beech@freebsd.org>
References:  <200902021643.39862.c47g@gmx.at> <200902052203.37792.beech@freebsd.org> <200902061231.46516.beech@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 06 February 2009 4:31:46 pm Beech Rintoul wrote:
> On Thursday 05 February 2009 22:03:37 Beech Rintoul wrote:
> > On Wednesday 04 February 2009 05:14:10 John Baldwin wrote:
> > > On Monday 02 February 2009 10:43:39 am Christian Gusenbauer wrote:
> > > > Hi!
> > > >
> > > > Since the recent update (svn r187576) to the ppbus/ppc code my printer
> > >
> > > stopped
> > >
> > > > working. Every request seems to hang forever in ppb_request_bus waiting
> > > > for ppb->ppc_lock (at least 'top' tells me that it's hanging in state
> > > > 'ppbreq').
> > >
> > > Can you use procstat to get a stack trace of the hung thread?
> >
> > My printer is still showing "device busy" for lpt0 does anyone know offhand
> > when the changes were committed? I need to revert.
> 
> There is regression somewhere in the ppbus code committed two weeks ago. I 
> reverted back to previous code and lpt0 no longer reports "device busy" and 
> printing is working again.

Please help to debug this so we can have working lpt0 in 8.0.  No one tested
the patches months ago when I first posted them, and if folks do not test them
now I will simply remove the driver before 8.0 ships.  I no longer have any
hardware such that I can test this directly, so I am depending on folks to
test things I have asked for and report back.  I believe the last thing I
asked for was for someone to do this when they lpt was hung:

Ok, can you run kgdb against your running kernel (Just run 'kgdb' without any
arguments) and do the following:

(kgdb) p *(struct ppb_data *)ppbus_devclass->devices[0]->softc

Assuming the ppb_owner is not 0, can you then do this:

(kgdb) p *(device_t)((struct ppb_data *)ppbus_devclass->devices[0]->softc)->ppb_owner


-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902091133.48838.jhb>