On Sunday 05 June 2005 1:55 pm, Mark Richards wrote:
> I have been bitten by a possible bug in hc_crisv10.c, 

Make that "certain".  Oopsing is not allowed, even if you manage
to trick Linux into showing a nice Blue Screen Of Death.  And on
an embedded board like that, a BSOD would be some trick!  


> which is in the linux 
> kernel distribution that comes with the Axis Devboard 83+.  It's based on
> the 2.6.11 kernel. (note that it's build under the cris compiler).
> 
> The ksymoops output is pasted below.
> 
> I am seeking some guidance as to where I should go from here (please don't
> say "go to USB hell" as I am already there).  

I think you've got some kernel debugging in front of you ... :)

One small hint:  2.6 kernels shouldn't need a separate ksymoops
program to analyse the oopses; the kernel should print the stack
trace directly.  (Though maybe CRIS doesn't do that yet??)

In this case it's oopsing in the IRQ handler, and that should be
straightforward to track down.  Annoying and maybe painful, sure;
but amenable to brute force since there are only so many pointers
the code is dereferencing, and they probably won't all be null.
In this case maybe it's a pointer to a chip register...


> I've spoken to Axis, and they say that perhaps a patch has been posted for
> the linux usb driver, but I cannot locate one.  Also, since the driver may
> be modified by Axis, applying a fix might break something else.  I am
> somewhat on my own, as Axis may not be able to look at this for some time.

Well, get the code they're using it and just "diff" to see if they changed
it.  I'd have remembered someone posting a patch for that here (see below).

Also have a look at the rtl8150.c driver, in case they've changed that
too; that's the Ethernet adapter you're using, as I understand.


> Reading the debug output did not give me much of a clue as to what happened,
> other than it appears that an interrupt was not properly handled.

I don't know that you'll be able to get much help from anyone on
this driver.  You're the first person I recall asking any questions
about it over the last several years ... maybe that means that if you
get it working, more folk will come out of the woodwork!  (This isn't
exactly a CRIS discussion list, after all, Linux for industrial apps.)

The CRIS HCD has probably been suffering from usbcore updates that
have been made over the past few years.  It's the last "old school"
driver left in the kernel tree -- using raw usb_bus instead of the
newer HCD glue -- and it's probably been suffering some bit rot.

I would not be surprised to learn that it doesn't do everything
that a 2.6 HCD is supposed to do ... once you get past this oops
problem, it'd be worth seeing how well it copes with the standard
HCD tests as shown at

   http://www.linux-usb.org/usbtest/

Another small bug that'd be worth fixing is to have the Kconfig for
that HCD sit in the USB tree, rather than somewhere over in the
CRIS subtree.

- Dave




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to