linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
@ 2008-10-19 11:26 Justin Piszcz
  2008-10-19 11:28 ` Justin Piszcz
  0 siblings, 1 reply; 24+ messages in thread
From: Justin Piszcz @ 2008-10-19 11:26 UTC (permalink / raw)
  To: linux-kernel, linux-usb

With kernel 2.6.27.2, any processes attempting to use USB hang and go into 
D-state, I have never had a problem like this before until 2.6.27.2 (I 
have not tried 2.6.27.1 or 2.6.27)

# lsusb -v
<hangs>

open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0
getdents(3, /* 7 entries */, 4096)      = 112
getdents(3, /* 0 entries */, 4096)      = 0
close(3)                                = 0
open("/dev/bus/usb/001", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
getdents(3, /* 4 entries */, 4096)      = 64
open("/dev/bus/usb/001/004", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO

nut (for UPS) does not start.

nut       4078  0.0  0.0   1964   856 pts/8    D    07:09   0:00 /lib/nut/usbhid-ups -a belkin
root      4170  0.0  0.0   2204  1072 pts/8    D+   07:11   0:00 lsusb -v

Processes go directly to D-state with 2.6.27.2 for USB.

Booting back to 2.6.26.5 now to see if everything works again.

Back to 2.6.25.5, everything works fine:

# lsusb 
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 2040:7501 Hauppauge 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 050d:1100 Belkin Components 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Relevant configuration files and dmesg output:

http://home.comcast.net/~jpiszcz/2.6.25.5-usb-working.txt
http://home.comcast.net/~jpiszcz/2.6.27.2-usb-broken.txt

http://home.comcast.net/~jpiszcz/linux-2.6.25.5-config
http://home.comcast.net/~jpiszcz/linux-2.6.27.2-config


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
  2008-10-19 11:26 Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE) Justin Piszcz
@ 2008-10-19 11:28 ` Justin Piszcz
  2008-10-19 15:34   ` Oliver Neukum
  2008-10-19 15:34   ` Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE) Alan Stern
  0 siblings, 2 replies; 24+ messages in thread
From: Justin Piszcz @ 2008-10-19 11:28 UTC (permalink / raw)
  To: linux-kernel, linux-usb



On Sun, 19 Oct 2008, Justin Piszcz wrote:

> With kernel 2.6.27.2, any processes attempting to use USB hang and go into 
> D-state, I have never had a problem like this before until 2.6.27.2 (I have 
> not tried 2.6.27.1 or 2.6.27)
>
> # lsusb -v
> <hangs>
>
> open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 
> 3
> fstat64(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0
> getdents(3, /* 7 entries */, 4096)      = 112
> getdents(3, /* 0 entries */, 4096)      = 0
> close(3)                                = 0
> open("/dev/bus/usb/001", 
> O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
> fstat64(3, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
> getdents(3, /* 4 entries */, 4096)      = 64
> open("/dev/bus/usb/001/004", O_RDWR)    = 4
> ioctl(4, USBDEVFS_CONNECTINFO
>
> nut (for UPS) does not start.
>
> nut       4078  0.0  0.0   1964   856 pts/8    D    07:09   0:00 
> /lib/nut/usbhid-ups -a belkin
> root      4170  0.0  0.0   2204  1072 pts/8    D+   07:11   0:00 lsusb -v
>
> Processes go directly to D-state with 2.6.27.2 for USB.
>
> Booting back to 2.6.26.5 now to see if everything works again.
>
> Back to 2.6.25.5, everything works fine:
>
> # lsusb Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 001 Device 004: ID 2040:7501 Hauppauge Bus 001 Device 001: ID 1d6b:0002 
> Linux Foundation 2.0 root hub
> Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 003 Device 002: ID 050d:1100 Belkin Components Bus 003 Device 001: ID 
> 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 002 Device 002: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
> Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
>
> Relevant configuration files and dmesg output:
>

http://home.comcast.net/~jpiszcz/20081019/2.6.25.5-usb-working.txt
http://home.comcast.net/~jpiszcz/20081019/2.6.27.2-usb-broken.txt
http://home.comcast.net/~jpiszcz/20081019/linux-2.6.25.5-config.txt
http://home.comcast.net/~jpiszcz/20081019/linux-2.6.27.2-config.txt


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
  2008-10-19 11:28 ` Justin Piszcz
@ 2008-10-19 15:34   ` Oliver Neukum
  2008-10-19 16:51     ` Justin Piszcz
  2008-10-19 15:34   ` Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE) Alan Stern
  1 sibling, 1 reply; 24+ messages in thread
From: Oliver Neukum @ 2008-10-19 15:34 UTC (permalink / raw)
  To: Justin Piszcz; +Cc: linux-kernel, linux-usb

Am Sonntag, 19. Oktober 2008 13:28:24 schrieb Justin Piszcz:
> 
> On Sun, 19 Oct 2008, Justin Piszcz wrote:
> 
> > With kernel 2.6.27.2, any processes attempting to use USB hang and go into 
> > D-state, I have never had a problem like this before until 2.6.27.2 (I have 
> > not tried 2.6.27.1 or 2.6.27)

Please get sysrq-t of a hang.

	Regards
		Oliver

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
  2008-10-19 11:28 ` Justin Piszcz
  2008-10-19 15:34   ` Oliver Neukum
@ 2008-10-19 15:34   ` Alan Stern
  1 sibling, 0 replies; 24+ messages in thread
From: Alan Stern @ 2008-10-19 15:34 UTC (permalink / raw)
  To: Justin Piszcz; +Cc: linux-kernel, linux-usb

On Sun, 19 Oct 2008, Justin Piszcz wrote:

> On Sun, 19 Oct 2008, Justin Piszcz wrote:
> 
> > With kernel 2.6.27.2, any processes attempting to use USB hang and go into 
> > D-state, I have never had a problem like this before until 2.6.27.2 (I have 
> > not tried 2.6.27.1 or 2.6.27)
> >
> > # lsusb -v
> > <hangs>
> >
> > open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 
> > 3
> > fstat64(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0
> > getdents(3, /* 7 entries */, 4096)      = 112
> > getdents(3, /* 0 entries */, 4096)      = 0
> > close(3)                                = 0
> > open("/dev/bus/usb/001", 
> > O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
> > fstat64(3, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
> > getdents(3, /* 4 entries */, 4096)      = 64
> > open("/dev/bus/usb/001/004", O_RDWR)    = 4
> > ioctl(4, USBDEVFS_CONNECTINFO
> >
> > nut (for UPS) does not start.
> >
> > nut       4078  0.0  0.0   1964   856 pts/8    D    07:09   0:00 
> > /lib/nut/usbhid-ups -a belkin
> > root      4170  0.0  0.0   2204  1072 pts/8    D+   07:11   0:00 lsusb -v
> >
> > Processes go directly to D-state with 2.6.27.2 for USB.
> >
> > Booting back to 2.6.26.5 now to see if everything works again.
> >
> > Back to 2.6.25.5, everything works fine:
> >
> > # lsusb Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> > Bus 001 Device 004: ID 2040:7501 Hauppauge Bus 001 Device 001: ID 1d6b:0002 
> > Linux Foundation 2.0 root hub
> > Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> > Bus 003 Device 002: ID 050d:1100 Belkin Components Bus 003 Device 001: ID 
> > 1d6b:0001 Linux Foundation 1.1 root hub
> > Bus 002 Device 002: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
> > Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> >
> > Relevant configuration files and dmesg output:
> >
> 
> http://home.comcast.net/~jpiszcz/20081019/2.6.25.5-usb-working.txt
> http://home.comcast.net/~jpiszcz/20081019/2.6.27.2-usb-broken.txt
> http://home.comcast.net/~jpiszcz/20081019/linux-2.6.25.5-config.txt
> http://home.comcast.net/~jpiszcz/20081019/linux-2.6.27.2-config.txt

You should turn on the usbfs_snoop module parameter for usbcore and see
what shows up in the system log.

Alan Stern


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
  2008-10-19 15:34   ` Oliver Neukum
@ 2008-10-19 16:51     ` Justin Piszcz
  2008-10-20 14:02       ` Alan Stern
  0 siblings, 1 reply; 24+ messages in thread
From: Justin Piszcz @ 2008-10-19 16:51 UTC (permalink / raw)
  To: Oliver Neukum, Alan Stern; +Cc: linux-kernel, linux-usb



On Sun, 19 Oct 2008, Oliver Neukum wrote:

> You should turn on the usbfs_snoop module parameter for usbcore and see
> what shows up in the system log.

> Alan Stern

Tried this, kernel would not boot up any further when I had that enabled
alongside the 'extra' debugging options in the kernel:

http://home.comcast.net/~jpiszcz/20081019/2.6.27.2-usb-extra-debug.txt

My netconsole is not working right at the moment either so I was not
able to pull a sysrq-of this, but it hung twice, once on one device, rebooted
then it hung on another device the second time.

>
> Please get sysrq-t of a hang.
>
> 	Regards
> 		Oliver
>

Before I tried the above, I was able to get a sysrq-t of the hang:

http://home.comcast.net/~jpiszcz/20081019/trace_before_trigger.txt
http://home.comcast.net/~jpiszcz/20081019/trace_after_trigger.txt

Justin.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
  2008-10-19 16:51     ` Justin Piszcz
@ 2008-10-20 14:02       ` Alan Stern
  2008-10-20 15:21         ` Justin Piszcz
  0 siblings, 1 reply; 24+ messages in thread
From: Alan Stern @ 2008-10-20 14:02 UTC (permalink / raw)
  To: Justin Piszcz; +Cc: Oliver Neukum, linux-kernel, linux-usb

On Sun, 19 Oct 2008, Justin Piszcz wrote:

> > You should turn on the usbfs_snoop module parameter for usbcore and see
> > what shows up in the system log.
> 
> > Alan Stern
> 
> Tried this, kernel would not boot up any further when I had that enabled
> alongside the 'extra' debugging options in the kernel:
> 
> http://home.comcast.net/~jpiszcz/20081019/2.6.27.2-usb-extra-debug.txt

I'm not interested in your config file; I need to see the dmesg log.

> > Please get sysrq-t of a hang.
> >
> > 	Regards
> > 		Oliver
> >
> 
> Before I tried the above, I was able to get a sysrq-t of the hang:
> 
> http://home.comcast.net/~jpiszcz/20081019/trace_before_trigger.txt
> http://home.comcast.net/~jpiszcz/20081019/trace_after_trigger.txt

Your trace is incomplete.  You might need to increase the size of the 
kernel log buffer (CONFIG_LOG_BUF_SHIFT) or the size of the buffer used 
by dmesg (the -s option).

Alan Stern


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)
  2008-10-20 14:02       ` Alan Stern
@ 2008-10-20 15:21         ` Justin Piszcz
  2008-10-20 16:17           ` Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)] Alan Stern
  0 siblings, 1 reply; 24+ messages in thread
From: Justin Piszcz @ 2008-10-20 15:21 UTC (permalink / raw)
  To: Alan Stern; +Cc: Oliver Neukum, linux-kernel, linux-usb



On Mon, 20 Oct 2008, Alan Stern wrote:

> On Sun, 19 Oct 2008, Justin Piszcz wrote:
>
>>> You should turn on the usbfs_snoop module parameter for usbcore and see
>>> what shows up in the system log.
>>
>>> Alan Stern
>>
>> Tried this, kernel would not boot up any further when I had that enabled
>> alongside the 'extra' debugging options in the kernel:
>>
>> http://home.comcast.net/~jpiszcz/20081019/2.6.27.2-usb-extra-debug.txt
>
> I'm not interested in your config file; I need to see the dmesg log.
>
>>> Please get sysrq-t of a hang.
>>>
>>> 	Regards
>>> 		Oliver
>>>
>>
>> Before I tried the above, I was able to get a sysrq-t of the hang:
>>
>> http://home.comcast.net/~jpiszcz/20081019/trace_before_trigger.txt
>> http://home.comcast.net/~jpiszcz/20081019/trace_after_trigger.txt
>
> Your trace is incomplete.  You might need to increase the size of the
> kernel log buffer (CONFIG_LOG_BUF_SHIFT) or the size of the buffer used
> by dmesg (the -s option).
>
> Alan Stern
>

You're right, I set it to 128 KiB and here is the full log, including the 
initial dmesg:

http://home.comcast.net/~jpiszcz/20081019/kern.log

Justin.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 15:21         ` Justin Piszcz
@ 2008-10-20 16:17           ` Alan Stern
  2008-10-20 16:21             ` Mike Isely
  2008-10-20 16:37             ` Mike Isely
  0 siblings, 2 replies; 24+ messages in thread
From: Alan Stern @ 2008-10-20 16:17 UTC (permalink / raw)
  To: Justin Piszcz
  Cc: Oliver Neukum, Mike Isely, Kernel development list, USB list

On Mon, 20 Oct 2008, Justin Piszcz wrote:

> >> http://home.comcast.net/~jpiszcz/20081019/trace_before_trigger.txt
> >> http://home.comcast.net/~jpiszcz/20081019/trace_after_trigger.txt
> >
> > Your trace is incomplete.  You might need to increase the size of the
> > kernel log buffer (CONFIG_LOG_BUF_SHIFT) or the size of the buffer used
> > by dmesg (the -s option).
> >
> > Alan Stern
> >
> 
> You're right, I set it to 128 KiB and here is the full log, including the 
> initial dmesg:
> 
> http://home.comcast.net/~jpiszcz/20081019/kern.log

Okay, I see the problem. It's the same as we saw with the speedtouch
driver last week: The pvrusb2 driver resets its device but doesn't
define a pre_reset or a post_reset method.  As a result it gets
disconnected during the reset, and the recursive call causes it to
hang.

This patch should fix the problem.  It's not entirely correct, but it 
should at least allow the driver to work like it did in 2.6.26.

Alan Stern



Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
===================================================================
--- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
+++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
@@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
 #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
 }
 
+static int pvr_pre_reset(struct usb_interface *intf)
+{
+	return 0;
+}
+
+static int pvr_post_reset(struct usb_interface *intf)
+{
+	return 0;
+}
+
 static int pvr_probe(struct usb_interface *intf,
 		     const struct usb_device_id *devid)
 {
@@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
 	.name =         "pvrusb2",
 	.id_table =     pvr2_device_table,
 	.probe =        pvr_probe,
-	.disconnect =   pvr_disconnect
+	.disconnect =   pvr_disconnect,
+	.pre_reset =	pvr_pre_reset,
+	.post_reset =	pvr_post_reset,
 };
 
 /*


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:17           ` Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)] Alan Stern
@ 2008-10-20 16:21             ` Mike Isely
  2008-10-20 16:33               ` Justin Piszcz
  2008-10-20 16:37             ` Mike Isely
  1 sibling, 1 reply; 24+ messages in thread
From: Mike Isely @ 2008-10-20 16:21 UTC (permalink / raw)
  To: Alan Stern
  Cc: Justin Piszcz, Oliver Neukum, Kernel development list, USB list,
	Mike Isely at pobox


There's already a patch coming up through v4l-dvb that should remove the 
need for the reset completely for the pvrusb2 driver.  The reset had 
been there as "chicken soup" previously - it didn't hurt but its 
utility wasn't really that great at the time.  Now that it is hurting, 
I just removed it.

  -Mike


On Mon, 20 Oct 2008, Alan Stern wrote:

> On Mon, 20 Oct 2008, Justin Piszcz wrote:
> 
> > >> http://home.comcast.net/~jpiszcz/20081019/trace_before_trigger.txt
> > >> http://home.comcast.net/~jpiszcz/20081019/trace_after_trigger.txt
> > >
> > > Your trace is incomplete.  You might need to increase the size of the
> > > kernel log buffer (CONFIG_LOG_BUF_SHIFT) or the size of the buffer used
> > > by dmesg (the -s option).
> > >
> > > Alan Stern
> > >
> > 
> > You're right, I set it to 128 KiB and here is the full log, including the 
> > initial dmesg:
> > 
> > http://home.comcast.net/~jpiszcz/20081019/kern.log
> 
> Okay, I see the problem. It's the same as we saw with the speedtouch
> driver last week: The pvrusb2 driver resets its device but doesn't
> define a pre_reset or a post_reset method.  As a result it gets
> disconnected during the reset, and the recursive call causes it to
> hang.
> 
> This patch should fix the problem.  It's not entirely correct, but it 
> should at least allow the driver to work like it did in 2.6.26.
> 
> Alan Stern
> 
> 
> 
> Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> ===================================================================
> --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
> +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
>  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
>  }
>  
> +static int pvr_pre_reset(struct usb_interface *intf)
> +{
> +	return 0;
> +}
> +
> +static int pvr_post_reset(struct usb_interface *intf)
> +{
> +	return 0;
> +}
> +
>  static int pvr_probe(struct usb_interface *intf,
>  		     const struct usb_device_id *devid)
>  {
> @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
>  	.name =         "pvrusb2",
>  	.id_table =     pvr2_device_table,
>  	.probe =        pvr_probe,
> -	.disconnect =   pvr_disconnect
> +	.disconnect =   pvr_disconnect,
> +	.pre_reset =	pvr_pre_reset,
> +	.post_reset =	pvr_post_reset,
>  };
>  
>  /*
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:21             ` Mike Isely
@ 2008-10-20 16:33               ` Justin Piszcz
  2008-10-20 16:50                 ` Mike Isely
  0 siblings, 1 reply; 24+ messages in thread
From: Justin Piszcz @ 2008-10-20 16:33 UTC (permalink / raw)
  To: Mike Isely; +Cc: Alan Stern, Oliver Neukum, Kernel development list, USB list



On Mon, 20 Oct 2008, Mike Isely wrote:

>
> There's already a patch coming up through v4l-dvb that should remove the
> need for the reset completely for the pvrusb2 driver.  The reset had
> been there as "chicken soup" previously - it didn't hurt but its
> utility wasn't really that great at the time.  Now that it is hurting,
> I just removed it.
>
>  -Mike
>

Should I wait for the patch coming up through v4l-dvb or test Alan's patch?
2.6.27.2 has quite a few issues:

1. xfs is broken w/barrier (there is a patch for this)
2. usb hangs (patch below)
3. abit-guru (comsetic issue only, doesn't find mobo) (there is a patch 
for this now as well)

So I am sticking with 2.6.26.5 right now, let me know if you need me
to test Alan's patch to see if it fixes the issue.

Justin.

>>
>> Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
>> ===================================================================
>> --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
>> +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
>> @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
>>  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
>>  }
>>
>> +static int pvr_pre_reset(struct usb_interface *intf)
>> +{
>> +	return 0;
>> +}
>> +
>> +static int pvr_post_reset(struct usb_interface *intf)
>> +{
>> +	return 0;
>> +}
>> +
>>  static int pvr_probe(struct usb_interface *intf,
>>  		     const struct usb_device_id *devid)
>>  {
>> @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
>>  	.name =         "pvrusb2",
>>  	.id_table =     pvr2_device_table,
>>  	.probe =        pvr_probe,
>> -	.disconnect =   pvr_disconnect
>> +	.disconnect =   pvr_disconnect,
>> +	.pre_reset =	pvr_pre_reset,
>> +	.post_reset =	pvr_post_reset,
>>  };
>>
>>  /*


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:17           ` Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)] Alan Stern
  2008-10-20 16:21             ` Mike Isely
@ 2008-10-20 16:37             ` Mike Isely
  2008-10-20 17:29               ` Greg KH
  1 sibling, 1 reply; 24+ messages in thread
From: Mike Isely @ 2008-10-20 16:37 UTC (permalink / raw)
  To: Alan Stern
  Cc: Justin Piszcz, Oliver Neukum, Kernel development list, USB list,
	Mike Isely at pobox


I was incomplete in my previous response.  See further below for nack 
and another patch...


On Mon, 20 Oct 2008, Alan Stern wrote:

   [...]

> 
> Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> ===================================================================
> --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
> +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
>  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
>  }
>  
> +static int pvr_pre_reset(struct usb_interface *intf)
> +{
> +	return 0;
> +}
> +
> +static int pvr_post_reset(struct usb_interface *intf)
> +{
> +	return 0;
> +}
> +
>  static int pvr_probe(struct usb_interface *intf,
>  		     const struct usb_device_id *devid)
>  {
> @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
>  	.name =         "pvrusb2",
>  	.id_table =     pvr2_device_table,
>  	.probe =        pvr_probe,
> -	.disconnect =   pvr_disconnect
> +	.disconnect =   pvr_disconnect,
> +	.pre_reset =	pvr_pre_reset,
> +	.post_reset =	pvr_post_reset,
>  };
>  
>  /*
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Nacked-by: Mike Isely <isely@pobox.com>

There is already another patch ready to go which eliminates the reset 
entirely.  It can be found here:

http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4

  -Mike


-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:33               ` Justin Piszcz
@ 2008-10-20 16:50                 ` Mike Isely
  2008-10-20 17:03                   ` Justin Piszcz
  2008-10-20 17:16                   ` Alan Stern
  0 siblings, 2 replies; 24+ messages in thread
From: Mike Isely @ 2008-10-20 16:50 UTC (permalink / raw)
  To: Justin Piszcz
  Cc: Alan Stern, Oliver Neukum, Kernel development list, USB list,
	Mike Isely at pobox

On Mon, 20 Oct 2008, Justin Piszcz wrote:

> 
> 
> On Mon, 20 Oct 2008, Mike Isely wrote:
> 
> > 
> > There's already a patch coming up through v4l-dvb that should remove the
> > need for the reset completely for the pvrusb2 driver.  The reset had
> > been there as "chicken soup" previously - it didn't hurt but its
> > utility wasn't really that great at the time.  Now that it is hurting,
> > I just removed it.
> > 
> >  -Mike
> > 
> 
> Should I wait for the patch coming up through v4l-dvb or test Alan's patch?
> 2.6.27.2 has quite a few issues:
> 
> 1. xfs is broken w/barrier (there is a patch for this)
> 2. usb hangs (patch below)
> 3. abit-guru (comsetic issue only, doesn't find mobo) (there is a patch for
> this now as well)
> 
> So I am sticking with 2.6.26.5 right now, let me know if you need me
> to test Alan's patch to see if it fixes the issue.

I'm sorry I didn't post my patch immediately in my previous response.  
It is however posted as a link in a followup, and for the record here it 
is again:

http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4

I have tested it, and it works as expected.  I've done all I can 
according to the process there to ready it for kernel inclusion and I've 
asked in my pull request there to get this patch into the next 2.6.27.x 
stable release.

The driver really didn't "need" the reset anyway, and so from where I'm 
sitting the simplest thing is just to remove it which is what my patch 
does.  (I had put in that reset a long time ago when working on 
improving hardware stability.  I had never positively established that 
this actually helped during initialization, but it didn't hurt either so 
I left it in place.  Now that it is causing pain, it's best just to get 
it out of there.)  I don't see much point in testing Alan's patch.

  -Mike


-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:50                 ` Mike Isely
@ 2008-10-20 17:03                   ` Justin Piszcz
  2008-10-20 17:16                   ` Alan Stern
  1 sibling, 0 replies; 24+ messages in thread
From: Justin Piszcz @ 2008-10-20 17:03 UTC (permalink / raw)
  To: Mike Isely; +Cc: Alan Stern, Oliver Neukum, Kernel development list, USB list



On Mon, 20 Oct 2008, Mike Isely wrote:

> On Mon, 20 Oct 2008, Justin Piszcz wrote:
>
>>
>>
>> On Mon, 20 Oct 2008, Mike Isely wrote:
>>
>>>
>>> There's already a patch coming up through v4l-dvb that should remove the
>>> need for the reset completely for the pvrusb2 driver.  The reset had
>>> been there as "chicken soup" previously - it didn't hurt but its
>>> utility wasn't really that great at the time.  Now that it is hurting,
>>> I just removed it.
>>>
>>>  -Mike
>>>
>>
>> Should I wait for the patch coming up through v4l-dvb or test Alan's patch?
>> 2.6.27.2 has quite a few issues:
>>
>> 1. xfs is broken w/barrier (there is a patch for this)
>> 2. usb hangs (patch below)
>> 3. abit-guru (comsetic issue only, doesn't find mobo) (there is a patch for
>> this now as well)
>>
>> So I am sticking with 2.6.26.5 right now, let me know if you need me
>> to test Alan's patch to see if it fixes the issue.
>
> I'm sorry I didn't post my patch immediately in my previous response.
> It is however posted as a link in a followup, and for the record here it
> is again:
>
> http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4
>
> I have tested it, and it works as expected.  I've done all I can
> according to the process there to ready it for kernel inclusion and I've
> asked in my pull request there to get this patch into the next 2.6.27.x
> stable release.
>
> The driver really didn't "need" the reset anyway, and so from where I'm
> sitting the simplest thing is just to remove it which is what my patch
> does.  (I had put in that reset a long time ago when working on
> improving hardware stability.  I had never positively established that
> this actually helped during initialization, but it didn't hurt either so
> I left it in place.  Now that it is causing pain, it's best just to get
> it out of there.)  I don't see much point in testing Alan's patch.

Ok, so the following patche are what I have applied to 2.6.27.2:

1. http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4

--

1. aw9d-max-dmi-detection.diff
2. pvrusb2-hdw.patch
3. xfs-fix-remount-rw-with-unrecognized-options.patch

Rebooting 2.6.27.2 with applied patches (all 3) and will check to make 
sure everything is back to normal.

Done, after reboot with the [3] applied patches above, it has fixed all 
the problems I was having.

Justin.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:50                 ` Mike Isely
  2008-10-20 17:03                   ` Justin Piszcz
@ 2008-10-20 17:16                   ` Alan Stern
  1 sibling, 0 replies; 24+ messages in thread
From: Alan Stern @ 2008-10-20 17:16 UTC (permalink / raw)
  To: Justin Piszcz, Mike Isely
  Cc: Oliver Neukum, Kernel development list, USB list

On Mon, 20 Oct 2008, Mike Isely wrote:

> > Should I wait for the patch coming up through v4l-dvb or test Alan's patch?
> > 2.6.27.2 has quite a few issues:
> > 
> > 1. xfs is broken w/barrier (there is a patch for this)
> > 2. usb hangs (patch below)
> > 3. abit-guru (comsetic issue only, doesn't find mobo) (there is a patch for
> > this now as well)
> > 
> > So I am sticking with 2.6.26.5 right now, let me know if you need me
> > to test Alan's patch to see if it fixes the issue.
> 
> I'm sorry I didn't post my patch immediately in my previous response.  
> It is however posted as a link in a followup, and for the record here it 
> is again:
> 
> http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4
> 
> I have tested it, and it works as expected.  I've done all I can 
> according to the process there to ready it for kernel inclusion and I've 
> asked in my pull request there to get this patch into the next 2.6.27.x 
> stable release.
> 
> The driver really didn't "need" the reset anyway, and so from where I'm 
> sitting the simplest thing is just to remove it which is what my patch 
> does.  (I had put in that reset a long time ago when working on 
> improving hardware stability.  I had never positively established that 
> this actually helped during initialization, but it didn't hurt either so 
> I left it in place.  Now that it is causing pain, it's best just to get 
> it out of there.)  I don't see much point in testing Alan's patch.

I agree with Mike.  His changes make the patch I sent totally 
irrelevant, and they should fix the problem you're facing.

Alan Stern


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 16:37             ` Mike Isely
@ 2008-10-20 17:29               ` Greg KH
  2008-10-20 18:01                 ` Michael Krufky
  2008-10-23 16:27                 ` Mike Isely
  0 siblings, 2 replies; 24+ messages in thread
From: Greg KH @ 2008-10-20 17:29 UTC (permalink / raw)
  To: Mike Isely
  Cc: Alan Stern, Justin Piszcz, Oliver Neukum,
	Kernel development list, USB list

On Mon, Oct 20, 2008 at 11:37:41AM -0500, Mike Isely wrote:
> 
> I was incomplete in my previous response.  See further below for nack 
> and another patch...
> 
> 
> On Mon, 20 Oct 2008, Alan Stern wrote:
> 
>    [...]
> 
> > 
> > Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> > ===================================================================
> > --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
> > +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> > @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
> >  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
> >  }
> >  
> > +static int pvr_pre_reset(struct usb_interface *intf)
> > +{
> > +	return 0;
> > +}
> > +
> > +static int pvr_post_reset(struct usb_interface *intf)
> > +{
> > +	return 0;
> > +}
> > +
> >  static int pvr_probe(struct usb_interface *intf,
> >  		     const struct usb_device_id *devid)
> >  {
> > @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
> >  	.name =         "pvrusb2",
> >  	.id_table =     pvr2_device_table,
> >  	.probe =        pvr_probe,
> > -	.disconnect =   pvr_disconnect
> > +	.disconnect =   pvr_disconnect,
> > +	.pre_reset =	pvr_pre_reset,
> > +	.post_reset =	pvr_post_reset,
> >  };
> >  
> >  /*
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 
> Nacked-by: Mike Isely <isely@pobox.com>
> 
> There is already another patch ready to go which eliminates the reset 
> entirely.  It can be found here:
> 
> http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4

Will this patch be sent to the -stable group, to fix this regression in
2.6.27?  Or should they take Alan's fix instead?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 17:29               ` Greg KH
@ 2008-10-20 18:01                 ` Michael Krufky
  2008-10-23 16:27                 ` Mike Isely
  1 sibling, 0 replies; 24+ messages in thread
From: Michael Krufky @ 2008-10-20 18:01 UTC (permalink / raw)
  To: Greg KH
  Cc: Mike Isely, Alan Stern, Justin Piszcz, Oliver Neukum,
	Kernel development list, USB list

On Mon, Oct 20, 2008 at 1:29 PM, Greg KH <greg@kroah.com> wrote:
> On Mon, Oct 20, 2008 at 11:37:41AM -0500, Mike Isely wrote:
>>
>> I was incomplete in my previous response.  See further below for nack
>> and another patch...
>>
>>
>> On Mon, 20 Oct 2008, Alan Stern wrote:
>>
>>    [...]
>>
>> >
>> > Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
>> > ===================================================================
>> > --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
>> > +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
>> > @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
>> >  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
>> >  }
>> >
>> > +static int pvr_pre_reset(struct usb_interface *intf)
>> > +{
>> > +   return 0;
>> > +}
>> > +
>> > +static int pvr_post_reset(struct usb_interface *intf)
>> > +{
>> > +   return 0;
>> > +}
>> > +
>> >  static int pvr_probe(struct usb_interface *intf,
>> >                  const struct usb_device_id *devid)
>> >  {
>> > @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
>> >     .name =         "pvrusb2",
>> >     .id_table =     pvr2_device_table,
>> >     .probe =        pvr_probe,
>> > -   .disconnect =   pvr_disconnect
>> > +   .disconnect =   pvr_disconnect,
>> > +   .pre_reset =    pvr_pre_reset,
>> > +   .post_reset =   pvr_post_reset,
>> >  };
>> >
>> >  /*
>> >
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >
>>
>> Nacked-by: Mike Isely <isely@pobox.com>
>>
>> There is already another patch ready to go which eliminates the reset
>> entirely.  It can be found here:
>>
>> http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4
>
> Will this patch be sent to the -stable group, to fix this regression in
> 2.6.27?  Or should they take Alan's fix instead?

Greg,

Please queue the patch that Mike Isely sent for 2.6.27.y -- It's not
in Mauro's tree yet, but it will get there eventually.  (it might take
him some before he does his next sync to git)

Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>

Regards,

Mike Krufky

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-20 17:29               ` Greg KH
  2008-10-20 18:01                 ` Michael Krufky
@ 2008-10-23 16:27                 ` Mike Isely
  2008-10-23 19:15                   ` Greg KH
  1 sibling, 1 reply; 24+ messages in thread
From: Mike Isely @ 2008-10-23 16:27 UTC (permalink / raw)
  To: Greg KH
  Cc: Alan Stern, Justin Piszcz, Oliver Neukum,
	Kernel development list, USB list, Mike Isely at pobox

On Mon, 20 Oct 2008, Greg KH wrote:

> On Mon, Oct 20, 2008 at 11:37:41AM -0500, Mike Isely wrote:
> > 
> > I was incomplete in my previous response.  See further below for nack 
> > and another patch...
> > 
> > 
> > On Mon, 20 Oct 2008, Alan Stern wrote:
> > 
> >    [...]
> > 
> > > 
> > > Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> > > ===================================================================
> > > --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
> > > +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> > > @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
> > >  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
> > >  }
> > >  
> > > +static int pvr_pre_reset(struct usb_interface *intf)
> > > +{
> > > +	return 0;
> > > +}
> > > +
> > > +static int pvr_post_reset(struct usb_interface *intf)
> > > +{
> > > +	return 0;
> > > +}
> > > +
> > >  static int pvr_probe(struct usb_interface *intf,
> > >  		     const struct usb_device_id *devid)
> > >  {
> > > @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
> > >  	.name =         "pvrusb2",
> > >  	.id_table =     pvr2_device_table,
> > >  	.probe =        pvr_probe,
> > > -	.disconnect =   pvr_disconnect
> > > +	.disconnect =   pvr_disconnect,
> > > +	.pre_reset =	pvr_pre_reset,
> > > +	.post_reset =	pvr_post_reset,
> > >  };
> > >  
> > >  /*
> > > 
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > > 
> > 
> > Nacked-by: Mike Isely <isely@pobox.com>
> > 
> > There is already another patch ready to go which eliminates the reset 
> > entirely.  It can be found here:
> > 
> > http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4
> 
> Will this patch be sent to the -stable group, to fix this regression in
> 2.6.27?  Or should they take Alan's fix instead?
> 

Greg:

I didn't directly answer your question here because I had figured it was 
answered in a previous post on this thread, that Mike Krufky had already 
explicitly asked that it be queued (and added his Reviewed-By tag), and 
that I figured it best not to add yet more noise to an already noisy 
group.

However now I see that this patch didn't get into 2.6.27.3.  It's a 
pretty important fix; without it the pvrusb2 driver is worse than 
useless (unless one adds initusbreset=0 as a module option).

My POV for this process in the past is that I generate a stable fix at 
linuxtv.org, ensure that Mike Krufky and Mauro see the incoming change, 
and then it gets into the next stable release.  This is what I thought I 
did here, but the results are different - 2.6.27.3 still has the driver 
in a totally broken state.  Quite likely I missed something that caused 
the fix not to be pulled.  Is there anything I can do to ensure this get 
into 2.6.27.4?

  -Mike


-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-23 16:27                 ` Mike Isely
@ 2008-10-23 19:15                   ` Greg KH
  2008-10-23 19:54                     ` Mike Isely
  0 siblings, 1 reply; 24+ messages in thread
From: Greg KH @ 2008-10-23 19:15 UTC (permalink / raw)
  To: Mike Isely
  Cc: Alan Stern, Justin Piszcz, Oliver Neukum,
	Kernel development list, USB list

On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
> On Mon, 20 Oct 2008, Greg KH wrote:
> 
> > On Mon, Oct 20, 2008 at 11:37:41AM -0500, Mike Isely wrote:
> > > 
> > > I was incomplete in my previous response.  See further below for nack 
> > > and another patch...
> > > 
> > > 
> > > On Mon, 20 Oct 2008, Alan Stern wrote:
> > > 
> > >    [...]
> > > 
> > > > 
> > > > Index: usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> > > > ===================================================================
> > > > --- usb-2.6.orig/drivers/media/video/pvrusb2/pvrusb2-main.c
> > > > +++ usb-2.6/drivers/media/video/pvrusb2/pvrusb2-main.c
> > > > @@ -68,6 +68,16 @@ static void pvr_setup_attach(struct pvr2
> > > >  #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
> > > >  }
> > > >  
> > > > +static int pvr_pre_reset(struct usb_interface *intf)
> > > > +{
> > > > +	return 0;
> > > > +}
> > > > +
> > > > +static int pvr_post_reset(struct usb_interface *intf)
> > > > +{
> > > > +	return 0;
> > > > +}
> > > > +
> > > >  static int pvr_probe(struct usb_interface *intf,
> > > >  		     const struct usb_device_id *devid)
> > > >  {
> > > > @@ -109,7 +119,9 @@ static struct usb_driver pvr_driver = {
> > > >  	.name =         "pvrusb2",
> > > >  	.id_table =     pvr2_device_table,
> > > >  	.probe =        pvr_probe,
> > > > -	.disconnect =   pvr_disconnect
> > > > +	.disconnect =   pvr_disconnect,
> > > > +	.pre_reset =	pvr_pre_reset,
> > > > +	.post_reset =	pvr_post_reset,
> > > >  };
> > > >  
> > > >  /*
> > > > 
> > > > --
> > > > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > > > the body of a message to majordomo@vger.kernel.org
> > > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > > > 
> > > 
> > > Nacked-by: Mike Isely <isely@pobox.com>
> > > 
> > > There is already another patch ready to go which eliminates the reset 
> > > entirely.  It can be found here:
> > > 
> > > http://linuxtv.org/hg/~mcisely/pvrusb2/rev/0bb411d8d2e4
> > 
> > Will this patch be sent to the -stable group, to fix this regression in
> > 2.6.27?  Or should they take Alan's fix instead?
> > 
> 
> Greg:
> 
> I didn't directly answer your question here because I had figured it was 
> answered in a previous post on this thread, that Mike Krufky had already 
> explicitly asked that it be queued (and added his Reviewed-By tag), and 
> that I figured it best not to add yet more noise to an already noisy 
> group.
> 
> However now I see that this patch didn't get into 2.6.27.3.  It's a 
> pretty important fix; without it the pvrusb2 driver is worse than 
> useless (unless one adds initusbreset=0 as a module option).

As we were discussing this on Monday, and the review cycle for 2.6.27.3
started last Saturday, it would have been pretty hard to get it into
2.6.27.3 :)

I need to see the patch in Linus's tree first, before it can go into any
stable release.  Is it in there yet?  If so, please send me the git
commit id and I'll queue it up for the next -stable round.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-23 19:15                   ` Greg KH
@ 2008-10-23 19:54                     ` Mike Isely
  2008-10-23 22:04                       ` Michael Krufky
  0 siblings, 1 reply; 24+ messages in thread
From: Mike Isely @ 2008-10-23 19:54 UTC (permalink / raw)
  To: Greg KH
  Cc: Alan Stern, Justin Piszcz, Oliver Neukum,
	Kernel development list, USB list, Mike Isely at pobox

On Thu, 23 Oct 2008, Greg KH wrote:

> On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
> > On Mon, 20 Oct 2008, Greg KH wrote:
> > 

   [...]

> > > 
> > > Will this patch be sent to the -stable group, to fix this regression in
> > > 2.6.27?  Or should they take Alan's fix instead?
> > > 
> > 
> > Greg:
> > 
> > I didn't directly answer your question here because I had figured it was 
> > answered in a previous post on this thread, that Mike Krufky had already 
> > explicitly asked that it be queued (and added his Reviewed-By tag), and 
> > that I figured it best not to add yet more noise to an already noisy 
> > group.
> > 
> > However now I see that this patch didn't get into 2.6.27.3.  It's a 
> > pretty important fix; without it the pvrusb2 driver is worse than 
> > useless (unless one adds initusbreset=0 as a module option).
> 
> As we were discussing this on Monday, and the review cycle for 2.6.27.3
> started last Saturday, it would have been pretty hard to get it into
> 2.6.27.3 :)
> 
> I need to see the patch in Linus's tree first, before it can go into any
> stable release.  Is it in there yet?  If so, please send me the git
> commit id and I'll queue it up for the next -stable round.
> 

OK, I understand.

As far as I know, Linus has not yet pulled the changes from Mauro (part 
of a larger set).  But that information is a few hours old.  I or Mike 
Krufky will let you know if/when one of us finds out.

Thanks for following up.

  -Mike


-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-23 19:54                     ` Mike Isely
@ 2008-10-23 22:04                       ` Michael Krufky
  2008-10-23 22:11                         ` Justin Piszcz
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Krufky @ 2008-10-23 22:04 UTC (permalink / raw)
  To: Mike Isely
  Cc: Greg KH, Alan Stern, Justin Piszcz, Oliver Neukum,
	Kernel development list, USB list

On Thu, Oct 23, 2008 at 3:54 PM, Mike Isely <isely@isely.net> wrote:
> On Thu, 23 Oct 2008, Greg KH wrote:
>
>> On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
>> > On Mon, 20 Oct 2008, Greg KH wrote:
>> >
>
>   [...]
>
>> > >
>> > > Will this patch be sent to the -stable group, to fix this regression in
>> > > 2.6.27?  Or should they take Alan's fix instead?
>> > >
>> >
>> > Greg:
>> >
>> > I didn't directly answer your question here because I had figured it was
>> > answered in a previous post on this thread, that Mike Krufky had already
>> > explicitly asked that it be queued (and added his Reviewed-By tag), and
>> > that I figured it best not to add yet more noise to an already noisy
>> > group.
>> >
>> > However now I see that this patch didn't get into 2.6.27.3.  It's a
>> > pretty important fix; without it the pvrusb2 driver is worse than
>> > useless (unless one adds initusbreset=0 as a module option).
>>
>> As we were discussing this on Monday, and the review cycle for 2.6.27.3
>> started last Saturday, it would have been pretty hard to get it into
>> 2.6.27.3 :)
>>
>> I need to see the patch in Linus's tree first, before it can go into any
>> stable release.  Is it in there yet?  If so, please send me the git
>> commit id and I'll queue it up for the next -stable round.
>>
>
> OK, I understand.
>
> As far as I know, Linus has not yet pulled the changes from Mauro (part
> of a larger set).  But that information is a few hours old.  I or Mike
> Krufky will let you know if/when one of us finds out.
>
> Thanks for following up.
>
>  -Mike

Mike,

Have you tested to confirm that FX2 firmware download without USB
reset still leaves the DTV firmware commands operable?

In other words, I'm not entirely sure about this fix.  If both Digital
and Analog still work with the patch included, then as far as I am
concerned, its fine for stable.

Greg, this is already in Linus' tree as of a few hours ago.  I had
already cherry-picked it and had planned to send it off to you after
testing it myself, but I probably wont get to that until Saturday or
Sunday.

If Mike Isely can confirm that Digital modes still work on the HVR1950
after a firmware download without an FX2 reset, then we don't need to
wait for my own testing.

The changeset in Linus tree is: c82732a42896364296599b0f73f01c5e3fd781ae

Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>

Please wait on test results from Mike Isely or I confirming that
digital mode still works properly before queuing this one.

Thanks,

Mike Krufky

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-23 22:04                       ` Michael Krufky
@ 2008-10-23 22:11                         ` Justin Piszcz
  2008-10-24  5:43                           ` Mike Isely
  0 siblings, 1 reply; 24+ messages in thread
From: Justin Piszcz @ 2008-10-23 22:11 UTC (permalink / raw)
  To: Michael Krufky
  Cc: Mike Isely, Greg KH, Alan Stern, Oliver Neukum,
	Kernel development list, USB list



On Thu, 23 Oct 2008, Michael Krufky wrote:

> On Thu, Oct 23, 2008 at 3:54 PM, Mike Isely <isely@isely.net> wrote:
>> On Thu, 23 Oct 2008, Greg KH wrote:
>>
>>> On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
>>>> On Mon, 20 Oct 2008, Greg KH wrote:
>>>>
>>
>>   [...]
>>
>>>>>
>>>>> Will this patch be sent to the -stable group, to fix this regression in
>>>>> 2.6.27?  Or should they take Alan's fix instead?
>>>>>
>>>>
>>>> Greg:

[ .. ]

> The changeset in Linus tree is: c82732a42896364296599b0f73f01c5e3fd781ae
>
> Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
>
> Please wait on test results from Mike Isely or I confirming that
> digital mode still works properly before queuing this one.
>
> Thanks,
>
> Mike Krufky
>

I only tested analog here for the 1950 FYI.

Justin.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-23 22:11                         ` Justin Piszcz
@ 2008-10-24  5:43                           ` Mike Isely
  2008-10-24 15:29                             ` Michael Krufky
  0 siblings, 1 reply; 24+ messages in thread
From: Mike Isely @ 2008-10-24  5:43 UTC (permalink / raw)
  To: Justin Piszcz
  Cc: Michael Krufky, Greg KH, Alan Stern, Oliver Neukum,
	Kernel development list, USB list, Mike Isely at pobox

On Thu, 23 Oct 2008, Justin Piszcz wrote:

> 
> 
> On Thu, 23 Oct 2008, Michael Krufky wrote:
> 
> > On Thu, Oct 23, 2008 at 3:54 PM, Mike Isely <isely@isely.net> wrote:
> > > On Thu, 23 Oct 2008, Greg KH wrote:
> > > 
> > > > On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
> > > > > On Mon, 20 Oct 2008, Greg KH wrote:
> > > > > 
> > > 
> > >   [...]
> > > 
> > > > > > 
> > > > > > Will this patch be sent to the -stable group, to fix this regression
> > > > > > in
> > > > > > 2.6.27?  Or should they take Alan's fix instead?
> > > > > > 
> > > > > 
> > > > > Greg:
> 
> [ .. ]
> 
> > The changeset in Linus tree is: c82732a42896364296599b0f73f01c5e3fd781ae
> > 
> > Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
> > 
> > Please wait on test results from Mike Isely or I confirming that
> > digital mode still works properly before queuing this one.
> > 
> > Thanks,
> > 
> > Mike Krufky
> > 
> 
> I only tested analog here for the 1950 FYI.
> 
> Justin.

Analog and digital HVR-1950 operation are unaffected by the reset fix 
here.  This is safe.

  -Mike

-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-24  5:43                           ` Mike Isely
@ 2008-10-24 15:29                             ` Michael Krufky
  2008-10-24 21:30                               ` Greg KH
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Krufky @ 2008-10-24 15:29 UTC (permalink / raw)
  To: Mike Isely
  Cc: Justin Piszcz, Greg KH, Alan Stern, Oliver Neukum,
	Kernel development list, USB list

[-- Attachment #1: Type: text/plain, Size: 1545 bytes --]

On Fri, Oct 24, 2008 at 1:43 AM, Mike Isely <isely@isely.net> wrote:
> On Thu, 23 Oct 2008, Justin Piszcz wrote:
>
>>
>>
>> On Thu, 23 Oct 2008, Michael Krufky wrote:
>>
>> > On Thu, Oct 23, 2008 at 3:54 PM, Mike Isely <isely@isely.net> wrote:
>> > > On Thu, 23 Oct 2008, Greg KH wrote:
>> > >
>> > > > On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
>> > > > > On Mon, 20 Oct 2008, Greg KH wrote:
>> > > > >
>> > >
>> > >   [...]
>> > >
>> > > > > >
>> > > > > > Will this patch be sent to the -stable group, to fix this regression
>> > > > > > in
>> > > > > > 2.6.27?  Or should they take Alan's fix instead?
>> > > > > >
>> > > > >
>> > > > > Greg:
>>
>> [ .. ]
>>
>> > The changeset in Linus tree is: c82732a42896364296599b0f73f01c5e3fd781ae
>> >
>> > Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
>> >
>> > Please wait on test results from Mike Isely or I confirming that
>> > digital mode still works properly before queuing this one.
>> >
>> > Thanks,
>> >
>> > Mike Krufky
>> >
>>
>> I only tested analog here for the 1950 FYI.
>>
>> Justin.
>
> Analog and digital HVR-1950 operation are unaffected by the reset fix
> here.  This is safe.
>
>  -Mike
>
> --
>
> Mike Isely
> isely @ pobox (dot) com
> PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
>

I concur.  This patch is fine for -stable.  (I tested digital myself
last night / this morning and its fine)

Greg -- any chance you can slip this in to 2.6.27.4 ?  The driver is
entirely broken otherwise.

cherry-picked changeset attached...

Thanks,

Mike Krufky

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-V4L-pvrusb2-Fix-deadlock-problem.patch --]
[-- Type: text/x-diff; name=0001-V4L-pvrusb2-Fix-deadlock-problem.patch, Size: 2856 bytes --]

From ac36d2de0e2187f322ce085618c3ddc2954a0c2e Mon Sep 17 00:00:00 2001
From: Mike Isely <isely@pobox.com>
Date: Sun, 19 Oct 2008 16:26:05 -0300
Subject: [PATCH] V4L: pvrusb2: Fix deadlock problem

Fix deadlock problem in 2.6.27 caused by new USB core behavior in
response to a USB device reset request.  With older kernels, the USB
device reset was "in line"; the reset simply took place and the driver
retained its association with the hardware.  However now this reset
triggers a disconnect, and worse still the disconnect callback happens
in the context of the caller who asked for the device reset.  This
results in an attempt by the pvrusb2 driver to recursively take a
mutex it already has, which deadlocks the driver's worker thread.
(Even if the disconnect callback were to happen on a different thread
we'd still have problems however - because while the driver should
survive and correctly disconnect / reconnect, it will then trigger
another device reset during the repeated initialization, which will
then cause another disconect, etc, forever.)  The fix here is simply
to not attempt the device reset (it was of marginal value anyway).

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
(cherry picked from commit c82732a42896364296599b0f73f01c5e3fd781ae)
---
 drivers/media/video/pvrusb2/pvrusb2-hdw.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index f051c6a..7412258 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -60,7 +60,6 @@ static struct pvr2_hdw *unit_pointers[PVR_NUM] = {[ 0 ... PVR_NUM-1 ] = NULL};
 static DEFINE_MUTEX(pvr2_unit_mtx);
 
 static int ctlchg;
-static int initusbreset = 1;
 static int procreload;
 static int tuner[PVR_NUM] = { [0 ... PVR_NUM-1] = -1 };
 static int tolerance[PVR_NUM] = { [0 ... PVR_NUM-1] = 0 };
@@ -71,8 +70,6 @@ module_param(ctlchg, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(ctlchg, "0=optimize ctl change 1=always accept new ctl value");
 module_param(init_pause_msec, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(init_pause_msec, "hardware initialization settling delay");
-module_param(initusbreset, int, S_IRUGO|S_IWUSR);
-MODULE_PARM_DESC(initusbreset, "Do USB reset device on probe");
 module_param(procreload, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(procreload,
 		 "Attempt init failure recovery with firmware reload");
@@ -1698,9 +1695,6 @@ static void pvr2_hdw_setup_low(struct pvr2_hdw *hdw)
 	}
 	hdw->fw1_state = FW1_STATE_OK;
 
-	if (initusbreset) {
-		pvr2_hdw_device_reset(hdw);
-	}
 	if (!pvr2_hdw_dev_ok(hdw)) return;
 
 	for (idx = 0; idx < hdw->hdw_desc->client_modules.cnt; idx++) {
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)]
  2008-10-24 15:29                             ` Michael Krufky
@ 2008-10-24 21:30                               ` Greg KH
  0 siblings, 0 replies; 24+ messages in thread
From: Greg KH @ 2008-10-24 21:30 UTC (permalink / raw)
  To: Michael Krufky
  Cc: Mike Isely, Justin Piszcz, Alan Stern, Oliver Neukum,
	Kernel development list, USB list

On Fri, Oct 24, 2008 at 11:29:36AM -0400, Michael Krufky wrote:
> On Fri, Oct 24, 2008 at 1:43 AM, Mike Isely <isely@isely.net> wrote:
> > On Thu, 23 Oct 2008, Justin Piszcz wrote:
> >
> >>
> >>
> >> On Thu, 23 Oct 2008, Michael Krufky wrote:
> >>
> >> > On Thu, Oct 23, 2008 at 3:54 PM, Mike Isely <isely@isely.net> wrote:
> >> > > On Thu, 23 Oct 2008, Greg KH wrote:
> >> > >
> >> > > > On Thu, Oct 23, 2008 at 11:27:11AM -0500, Mike Isely wrote:
> >> > > > > On Mon, 20 Oct 2008, Greg KH wrote:
> >> > > > >
> >> > >
> >> > >   [...]
> >> > >
> >> > > > > >
> >> > > > > > Will this patch be sent to the -stable group, to fix this regression
> >> > > > > > in
> >> > > > > > 2.6.27?  Or should they take Alan's fix instead?
> >> > > > > >
> >> > > > >
> >> > > > > Greg:
> >>
> >> [ .. ]
> >>
> >> > The changeset in Linus tree is: c82732a42896364296599b0f73f01c5e3fd781ae
> >> >
> >> > Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
> >> >
> >> > Please wait on test results from Mike Isely or I confirming that
> >> > digital mode still works properly before queuing this one.
> >> >
> >> > Thanks,
> >> >
> >> > Mike Krufky
> >> >
> >>
> >> I only tested analog here for the 1950 FYI.
> >>
> >> Justin.
> >
> > Analog and digital HVR-1950 operation are unaffected by the reset fix
> > here.  This is safe.
> >
> >  -Mike
> >
> > --
> >
> > Mike Isely
> > isely @ pobox (dot) com
> > PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
> >
> 
> I concur.  This patch is fine for -stable.  (I tested digital myself
> last night / this morning and its fine)
> 
> Greg -- any chance you can slip this in to 2.6.27.4 ?  The driver is
> entirely broken otherwise.

Yes, I will add it right now.

thanks for your persistance.

greg k-h

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2008-10-24 21:44 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-19 11:26 Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE) Justin Piszcz
2008-10-19 11:28 ` Justin Piszcz
2008-10-19 15:34   ` Oliver Neukum
2008-10-19 16:51     ` Justin Piszcz
2008-10-20 14:02       ` Alan Stern
2008-10-20 15:21         ` Justin Piszcz
2008-10-20 16:17           ` Bug fix for pvrusb2 driver [was: Re: Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE)] Alan Stern
2008-10-20 16:21             ` Mike Isely
2008-10-20 16:33               ` Justin Piszcz
2008-10-20 16:50                 ` Mike Isely
2008-10-20 17:03                   ` Justin Piszcz
2008-10-20 17:16                   ` Alan Stern
2008-10-20 16:37             ` Mike Isely
2008-10-20 17:29               ` Greg KH
2008-10-20 18:01                 ` Michael Krufky
2008-10-23 16:27                 ` Mike Isely
2008-10-23 19:15                   ` Greg KH
2008-10-23 19:54                     ` Mike Isely
2008-10-23 22:04                       ` Michael Krufky
2008-10-23 22:11                         ` Justin Piszcz
2008-10-24  5:43                           ` Mike Isely
2008-10-24 15:29                             ` Michael Krufky
2008-10-24 21:30                               ` Greg KH
2008-10-19 15:34   ` Kernel 2.6.26.5 -> 2.6.27.2 [USB REGRESSION] (USB -> D_STATE) Alan Stern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).