2006-01-06 06:25:47

by Patrick Read

[permalink] [raw]
Subject: PROBLEM: Oops in Kernel 2.6.15 usbhid

[1.] Oops in Kernel 2.6.15 usbhid

[2.] Compiled 2.6.15 downloaded from kernel.org. Configured, made,
and installed. During reboot, I get an Oops in the USB HID module.
This does not occur with a nearly-identical config on the same
computer with kernel 2.6.14.5.

[3.] USB, HID, kernel, 2.6.15, module

[4.] 2.6.15

[5.] 2.6.14.5

[6.] Syslog available online at
http://www.cs.txstate.edu/~patrick/kernel-debug/syslog-2.6.15-DEBUG.txt

[7.] N/A

[8.] N/A

[8.1] Output of ver_linux script available online at
http://www.cs.txstate.edu/~patrick/kernel-debug/ver_linux_output.txt

[8.2] CPU information (/proc/cpuinfo) available online at
http://www.cs.txstate.edu/~patrick/kernel-debug/cpuinfo-DEBUG.txt

[8.3] Module information (/proc/modules) available online at
http://www.cs.txstate.edu/~patrick/kernel-debug/modulesinfo-DEBUG.txt

[8.4] Information regarding I/O Ports/Memory available online at
http://www.cs.txstate.edu/~patrick/kernel-debug/ioports-DEBUG.txt and
http://www.cs.txstate.edu/~patrick/kernel-debug/iomem-DEBUG.txt

[8.5] PCI information available online at
http://www.cs.txstate.edu/~patrick/kernel-debug/lspci-vvv-as-root-DEBUG.txt

[8.6] SCSI devices: None
patrick@pr01:~$ cat /proc/scsi/scsi
Attached devices:
patrick@pr01:~$

[8.7] Other information: None

[X.] I copied everything over to text files (plain ASCII) and posted
them online in the interest of saving space in this e-mail. The
entire directory is browseable at
http://www.cs.txstate.edu/~patrick/kernel-debug/

Thank you,
Patrick A. Read


2006-01-10 05:54:54

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: PROBLEM: Oops in Kernel 2.6.15 usbhid

On Friday 06 January 2006 01:25, Patrick Read wrote:
> [1.] Oops in Kernel 2.6.15 usbhid
>
> [2.] Compiled 2.6.15 downloaded from kernel.org. Configured, made,
> and installed. During reboot, I get an Oops in the USB HID module.
> This does not occur with a nearly-identical config on the same
> computer with kernel 2.6.14.5.
>
> [3.] USB, HID, kernel, 2.6.15, module
>

Could you please try the patch below? Thanks!

--
Dmitry

Signed-off-by: Dmitry Torokhov <[email protected]>
---

drivers/usb/input/pid.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

Index: work/drivers/usb/input/pid.c
===================================================================
--- work.orig/drivers/usb/input/pid.c
+++ work/drivers/usb/input/pid.c
@@ -259,7 +259,7 @@ static int hid_pid_upload_effect(struct
int hid_pid_init(struct hid_device *hid)
{
struct hid_ff_pid *private;
- struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);
+ struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
struct input_dev *input_dev = hidinput->input;

private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL);

2006-01-11 08:21:22

by Patrick Read

[permalink] [raw]
Subject: Re: PROBLEM: Oops in Kernel 2.6.15 usbhid

On 1/9/06, Dmitry Torokhov <[email protected]> wrote:
> On Friday 06 January 2006 01:25, Patrick Read wrote:
> > [1.] Oops in Kernel 2.6.15 usbhid
> >
> > [2.] Compiled 2.6.15 downloaded from kernel.org. Configured, made,
> > and installed. During reboot, I get an Oops in the USB HID module.
> > This does not occur with a nearly-identical config on the same
> > computer with kernel 2.6.14.5.
> >
> > [3.] USB, HID, kernel, 2.6.15, module
> >
>
> Could you please try the patch below? Thanks!
>
> --
> Dmitry
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> ---
>
> drivers/usb/input/pid.c | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> Index: work/drivers/usb/input/pid.c
> ===================================================================
> --- work.orig/drivers/usb/input/pid.c
> +++ work/drivers/usb/input/pid.c
> @@ -259,7 +259,7 @@ static int hid_pid_upload_effect(struct
> int hid_pid_init(struct hid_device *hid)
> {
> struct hid_ff_pid *private;
> - struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);
> + struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
> struct input_dev *input_dev = hidinput->input;
>
> private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL);
>

The above fix works like a charm. 2.6.15 is running on this very
computer that I'm typing on.

Thank you for your good work. Please ensure that this fix gets
incorporated in the mainline kernel.

Patrick

2006-01-11 14:31:34

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: PROBLEM: Oops in Kernel 2.6.15 usbhid

On 1/11/06, Patrick Read <[email protected]> wrote:
> On 1/9/06, Dmitry Torokhov <[email protected]> wrote:
> > On Friday 06 January 2006 01:25, Patrick Read wrote:
> > > [1.] Oops in Kernel 2.6.15 usbhid
> > >
> > > [2.] Compiled 2.6.15 downloaded from kernel.org. Configured, made,
> > > and installed. During reboot, I get an Oops in the USB HID module.
> > > This does not occur with a nearly-identical config on the same
> > > computer with kernel 2.6.14.5.
> > >
> > > [3.] USB, HID, kernel, 2.6.15, module
> > >
> >
> > Could you please try the patch below? Thanks!
> >
> > --
> > Dmitry
> >
> > Signed-off-by: Dmitry Torokhov <[email protected]>
> > ---
> >
> > drivers/usb/input/pid.c | 2 +-
> > 1 files changed, 1 insertion(+), 1 deletion(-)
> >
> > Index: work/drivers/usb/input/pid.c
> > ===================================================================
> > --- work.orig/drivers/usb/input/pid.c
> > +++ work/drivers/usb/input/pid.c
> > @@ -259,7 +259,7 @@ static int hid_pid_upload_effect(struct
> > int hid_pid_init(struct hid_device *hid)
> > {
> > struct hid_ff_pid *private;
> > - struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);
> > + struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
> > struct input_dev *input_dev = hidinput->input;
> >
> > private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL);
> >
>
> The above fix works like a charm. 2.6.15 is running on this very
> computer that I'm typing on.
>
> Thank you for your good work. Please ensure that this fix gets
> incorporated in the mainline kernel.
>

Thank you for testing it, I will forward it to Linus.

--
Dmitry

2006-01-12 01:11:28

by Adrian Bunk

[permalink] [raw]
Subject: Re: PROBLEM: Oops in Kernel 2.6.15 usbhid

On Wed, Jan 11, 2006 at 09:31:32AM -0500, Dmitry Torokhov wrote:
> On 1/11/06, Patrick Read <[email protected]> wrote:
> > On 1/9/06, Dmitry Torokhov <[email protected]> wrote:
> > > ===================================================================
> > > --- work.orig/drivers/usb/input/pid.c
> > > +++ work/drivers/usb/input/pid.c
> > > @@ -259,7 +259,7 @@ static int hid_pid_upload_effect(struct
> > > int hid_pid_init(struct hid_device *hid)
> > > {
> > > struct hid_ff_pid *private;
> > > - struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);
> > > + struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
> > > struct input_dev *input_dev = hidinput->input;
> > >
> > > private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL);
> > >
> >
> > The above fix works like a charm. 2.6.15 is running on this very
> > computer that I'm typing on.
> >
> > Thank you for your good work. Please ensure that this fix gets
> > incorporated in the mainline kernel.
> >
>
> Thank you for testing it, I will forward it to Linus.

Could you also forward it [email protected] for inclusion in 2.6.15.x?

> Dmitry

TIA
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2006-01-13 18:57:47

by Chuck Ebbert

[permalink] [raw]
Subject: Re: PROBLEM: Oops in Kernel 2.6.15 usbhid

In-Reply-To: <[email protected]>

On Thu, 12 Jan 2006, Adrian Bunk wrote:

> On Wed, Jan 11, 2006 at 09:31:32AM -0500, Dmitry Torokhov wrote:
> > On 1/11/06, Patrick Read <[email protected]> wrote:
> > > On 1/9/06, Dmitry Torokhov <[email protected]> wrote:
> > > > ===================================================================
> > > > --- work.orig/drivers/usb/input/pid.c
> > > > +++ work/drivers/usb/input/pid.c
> > > > @@ -259,7 +259,7 @@ static int hid_pid_upload_effect(struct
> > > > int hid_pid_init(struct hid_device *hid)
> > > > {
> > > > struct hid_ff_pid *private;
> > > > - struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);
> > > > + struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
> > > > struct input_dev *input_dev = hidinput->input;
> > > >
> > > > private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL);
> > > >
> > >
> > > The above fix works like a charm. 2.6.15 is running on this very
> > > computer that I'm typing on.
> > >
> > > Thank you for your good work. Please ensure that this fix gets
> > > incorporated in the mainline kernel.
> > >
> >
> > Thank you for testing it, I will forward it to Linus.
>
> Could you also forward it [email protected] for inclusion in 2.6.15.x?


I don't see it in Linus's tree yet.

Could it still be put into 2.6.15.1?

--

From: Dmitry Torokhov <[email protected]>

Fix oops in usbhid.

--- work.orig/drivers/usb/input/pid.c
+++ work/drivers/usb/input/pid.c
@@ -259,7 +259,7 @@ static int hid_pid_upload_effect(struct
int hid_pid_init(struct hid_device *hid)
{
struct hid_ff_pid *private;
- struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);
+ struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
struct input_dev *input_dev = hidinput->input;

private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL);
--
Chuck
Currently reading: _Olympos_ by Dan Simmons

2006-01-13 19:09:28

by Chris Wright

[permalink] [raw]
Subject: Re: [stable] Re: PROBLEM: Oops in Kernel 2.6.15 usbhid

* Chuck Ebbert ([email protected]) wrote:
> I don't see it in Linus's tree yet.
>
> Could it still be put into 2.6.15.1?

I'd rather queue it to 2.6.15.2.
-chris