* usb dc2xx quirk
@ 2001-01-03 18:17 josh
2001-01-03 19:23 ` Randy Dunlap
0 siblings, 1 reply; 5+ messages in thread
From: josh @ 2001-01-03 18:17 UTC (permalink / raw)
To: linux-kernel
Kernel Version: 2.4.0-test11 - 2.4.0-prerelease
Platform: ix86 (PIII)
Problem Hardware: Kodac DC280, firmware 1.01
Ever since test10 or after, removing my dc280 from the usb
bus causes khubd to crash. I have tried both UHCI drivers
and they produce the same effect.
dmesg, syslog, messages, and .config can be found at:
http://mammoth.org/~skulcap/usb-problem
I have looked throug the archives and havent found anything
like this, so I'm sorry if it has been covered already.
Thanks in advance!
mammoth.org/~skulcap
**********************************************BEGIN GEEK CODE BLOCK************
"Sometimes, if you're perfectly * GCS d- s: a-- C++ ULSC++++$ P+ L+++ E---
still, you can hear the virgin * W+(++) N++ o+ K- w--(---) O- M- V- PS--
weeping for the savior of your will."* PE Y+ PGP t+ 5 X+ R !tv b+>+++ DI++ D++
--DreamTheater, "Lines in the Sand" * G e h+ r-- y- (www.geekcode.com)
**********************************************END GEEK CODE BLOCK**************
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: usb dc2xx quirk
2001-01-03 18:17 usb dc2xx quirk josh
@ 2001-01-03 19:23 ` Randy Dunlap
2001-01-04 0:12 ` David Brownell
0 siblings, 1 reply; 5+ messages in thread
From: Randy Dunlap @ 2001-01-03 19:23 UTC (permalink / raw)
To: josh; +Cc: linux-kernel, david-b, l-u-d
[-- Attachment #1: Type: text/plain, Size: 1028 bytes --]
Hi,
Looks like dc2xx.c shouldn't use __devinit/__devexit
[patch attached]
or you should enable CONFIG_HOTPLUG under General Setup.
David?
The ov511 (usb) driver is the only other USB device driver
that uses __devinit/__devexit.
~Randy
josh wrote:
>
> Kernel Version: 2.4.0-test11 - 2.4.0-prerelease
> Platform: ix86 (PIII)
> Problem Hardware: Kodac DC280, firmware 1.01
>
> Ever since test10 or after, removing my dc280 from the usb
> bus causes khubd to crash. I have tried both UHCI drivers
> and they produce the same effect.
>
> dmesg, syslog, messages, and .config can be found at:
> http://mammoth.org/~skulcap/usb-problem
>
> I have looked throug the archives and havent found anything
> like this, so I'm sorry if it has been covered already.
>
> Thanks in advance!
--
_______________________________________________
|randy.dunlap_at_intel.com 503-677-5408|
|NOTE: Any views presented here are mine alone|
|& may not represent the views of my employer.|
-----------------------------------------------
[-- Attachment #2: dc2xx-dev.patch --]
[-- Type: text/plain, Size: 580 bytes --]
--- linux/drivers/usb/dc2xx.c.org Sun Nov 12 20:40:42 2000
+++ linux/drivers/usb/dc2xx.c Wed Jan 3 11:15:11 2001
@@ -353,7 +353,7 @@
-static void * __devinit
+static void *
camera_probe (struct usb_device *dev, unsigned int ifnum, const struct usb_device_id *camera_info)
{
int i;
@@ -451,7 +451,7 @@
return camera;
}
-static void __devexit camera_disconnect(struct usb_device *dev, void *ptr)
+static void camera_disconnect(struct usb_device *dev, void *ptr)
{
struct camera_state *camera = (struct camera_state *) ptr;
int subminor = camera->subminor;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: usb dc2xx quirk
2001-01-03 19:23 ` Randy Dunlap
@ 2001-01-04 0:12 ` David Brownell
0 siblings, 0 replies; 5+ messages in thread
From: David Brownell @ 2001-01-04 0:12 UTC (permalink / raw)
To: Randy Dunlap, josh; +Cc: linux-kernel, l-u-d
If this makes it go away, then by all means apply this patch;
though I don't quite see what the failure mode would be.
The proximate cause of that Oops looked to be in one of the
UHCI drivers, but of course it's also possible that it was
triggered by driver misbehavior.
Have we identified anything that actually does anything with
code labeled __dev{in,ex}it (or data), beyond putting it into
a different section? If so, what's it doing?
I just tried plug/unplug of a dc-240, albeit on a kernel
with HOTPLUG defined (and using OHCI) and it worked without
any Oops.
- Dave
----- Original Message -----
From: Randy Dunlap <randy.dunlap@intel.com>
To: josh <skulcap@mammoth.org>
Cc: <linux-kernel@vger.kernel.org>; <david-b@pacbell.net>; l-u-d
<linux-usb-devel@lists.sourceforge.net>
Sent: Wednesday, January 03, 2001 11:23 AM
Subject: Re: usb dc2xx quirk
> Hi,
>
> Looks like dc2xx.c shouldn't use __devinit/__devexit
> [patch attached]
> or you should enable CONFIG_HOTPLUG under General Setup.
>
> David?
>
> The ov511 (usb) driver is the only other USB device driver
> that uses __devinit/__devexit.
>
> ~Randy
>
> josh wrote:
> >
> > Kernel Version: 2.4.0-test11 - 2.4.0-prerelease
> > Platform: ix86 (PIII)
> > Problem Hardware: Kodac DC280, firmware 1.01
> >
> > Ever since test10 or after, removing my dc280 from the usb
> > bus causes khubd to crash. I have tried both UHCI drivers
> > and they produce the same effect.
> >
> > dmesg, syslog, messages, and .config can be found at:
> > http://mammoth.org/~skulcap/usb-problem
> >
> > I have looked throug the archives and havent found anything
> > like this, so I'm sorry if it has been covered already.
> >
> > Thanks in advance!
> --
> _______________________________________________
> |randy.dunlap_at_intel.com 503-677-5408|
> |NOTE: Any views presented here are mine alone|
> |& may not represent the views of my employer.|
> -----------------------------------------------
--------------------------------------------------------------------------------
> --- linux/drivers/usb/dc2xx.c.org Sun Nov 12 20:40:42 2000
> +++ linux/drivers/usb/dc2xx.c Wed Jan 3 11:15:11 2001
> @@ -353,7 +353,7 @@
>
>
>
> -static void * __devinit
> +static void *
> camera_probe (struct usb_device *dev, unsigned int ifnum, const struct usb_device_id
*camera_info)
> {
> int i;
> @@ -451,7 +451,7 @@
> return camera;
> }
>
> -static void __devexit camera_disconnect(struct usb_device *dev, void *ptr)
> +static void camera_disconnect(struct usb_device *dev, void *ptr)
> {
> struct camera_state *camera = (struct camera_state *) ptr;
> int subminor = camera->subminor;
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: usb dc2xx quirk
@ 2001-01-04 1:05 Dunlap, Randy
2001-01-04 2:11 ` David Brownell
0 siblings, 1 reply; 5+ messages in thread
From: Dunlap, Randy @ 2001-01-04 1:05 UTC (permalink / raw)
To: 'David Brownell', josh; +Cc: linux-kernel, l-u-d
> From: David Brownell [mailto:david-b@pacbell.net]
>
> If this makes it go away, then by all means apply this patch;
> though I don't quite see what the failure mode would be.
Josh didn't have HOTPLUG defined and he has
confirmed to me that this patch fixes the oops.
I'll forward it again.
> The proximate cause of that Oops looked to be in one of the
> UHCI drivers, but of course it's also possible that it was
> triggered by driver misbehavior.
You didn't look hard enough. 8;)
hub_thread got a disconnect event, called usb_disconnect,
which tried to call driver->disconnect, which wasn't there
due to using __devexit without CONFIG_HOTPLUG defined.
> Have we identified anything that actually does anything with
> code labeled __dev{in,ex}it (or data), beyond putting it into
> a different section? If so, what's it doing?
That's a great question. I'd like to know the answer also.
Then we can see what the correct fixes should be.
This patch could just be a short-lived 2.4.0-prerel
fix-the-oops patch.
> I just tried plug/unplug of a dc-240, albeit on a kernel
> with HOTPLUG defined (and using OHCI) and it worked without
> any Oops.
Yes, HOTPLUG (and #define of __devexit) is the key.
~Randy
> - Dave
>
>
> ----- Original Message -----
> From: Randy Dunlap <randy.dunlap@intel.com>
> To: josh <skulcap@mammoth.org>
> Cc: <linux-kernel@vger.kernel.org>; <david-b@pacbell.net>; l-u-d
> <linux-usb-devel@lists.sourceforge.net>
> Sent: Wednesday, January 03, 2001 11:23 AM
> Subject: Re: usb dc2xx quirk
>
>
> > Hi,
> >
> > Looks like dc2xx.c shouldn't use __devinit/__devexit
> > [patch attached]
> > or you should enable CONFIG_HOTPLUG under General Setup.
> >
> > David?
> >
> > The ov511 (usb) driver is the only other USB device driver
> > that uses __devinit/__devexit.
> >
> > ~Randy
> >
> > josh wrote:
> > >
> > > Kernel Version: 2.4.0-test11 - 2.4.0-prerelease
> > > Platform: ix86 (PIII)
> > > Problem Hardware: Kodac DC280, firmware 1.01
> > >
> > > Ever since test10 or after, removing my dc280 from the usb
> > > bus causes khubd to crash. I have tried both UHCI drivers
> > > and they produce the same effect.
> > >
> > > dmesg, syslog, messages, and .config can be found at:
> > > http://mammoth.org/~skulcap/usb-problem
> > >
> > > I have looked throug the archives and havent found anything
> > > like this, so I'm sorry if it has been covered already.
> > >
> > > Thanks in advance!
> > --
> > _______________________________________________
> > |randy.dunlap_at_intel.com 503-677-5408|
> > |NOTE: Any views presented here are mine alone|
> > |& may not represent the views of my employer.|
> > -----------------------------------------------
>
>
> --------------------------------------------------------------
> ------------------
>
>
> > --- linux/drivers/usb/dc2xx.c.org Sun Nov 12 20:40:42 2000
> > +++ linux/drivers/usb/dc2xx.c Wed Jan 3 11:15:11 2001
> > @@ -353,7 +353,7 @@
> >
> >
> >
> > -static void * __devinit
> > +static void *
> > camera_probe (struct usb_device *dev, unsigned int ifnum,
> const struct usb_device_id
> *camera_info)
> > {
> > int i;
> > @@ -451,7 +451,7 @@
> > return camera;
> > }
> >
> > -static void __devexit camera_disconnect(struct usb_device
> *dev, void *ptr)
> > +static void camera_disconnect(struct usb_device *dev, void *ptr)
> > {
> > struct camera_state *camera = (struct camera_state *) ptr;
> > int subminor = camera->subminor;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: usb dc2xx quirk
2001-01-04 1:05 Dunlap, Randy
@ 2001-01-04 2:11 ` David Brownell
0 siblings, 0 replies; 5+ messages in thread
From: David Brownell @ 2001-01-04 2:11 UTC (permalink / raw)
To: Dunlap, Randy, josh; +Cc: linux-kernel, l-u-d
> > The proximate cause of that Oops looked to be in one of the
> > UHCI drivers, but of course it's also possible that it was
> > triggered by driver misbehavior.
>
> You didn't look hard enough. 8;)
I suspected you had ... :-)
> hub_thread got a disconnect event, called usb_disconnect,
> which tried to call driver->disconnect, which wasn't there
> due to using __devexit without CONFIG_HOTPLUG defined.
Ah, and <linux/init.h> moved the __devexit code into the
"__exit" segment, which got removed because clearly such
devices could never get removed (no hotplugging).
> > Have we identified anything that actually does anything with
> > code labeled __dev{in,ex}it (or data), beyond putting it into
> > a different section? If so, what's it doing?
>
> That's a great question. I'd like to know the answer also.
(Calling it and oopsing ... sorry, wrong answer! :-)
> Then we can see what the correct fixes should be.
> This patch could just be a short-lived 2.4.0-prerel
> fix-the-oops patch.
Put it into 2.4.0-next, sure.
I suspect the simplest thing is to say that no USB devices
should use those __dev{in,ex}it #defines ... we'd suspected
they were harmless; evidently not.
- Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2001-01-04 2:23 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-01-03 18:17 usb dc2xx quirk josh
2001-01-03 19:23 ` Randy Dunlap
2001-01-04 0:12 ` David Brownell
-- strict thread matches above, loose matches on Subject: below --
2001-01-04 1:05 Dunlap, Randy
2001-01-04 2:11 ` David Brownell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox