[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.0901020820500.22914-100000@netrider.rowland.org>
Date: Fri, 2 Jan 2009 08:23:03 -0500 (EST)
From: Alan Stern <stern@...land.harvard.edu>
To: Mark Lord <lkml@....ca>, Jan Scholz <scholz@...s.uni-frankfurt.de>
cc: Greg KH <gregkh@...e.de>,
Linux Kernel <linux-kernel@...r.kernel.org>,
USB list <linux-usb@...r.kernel.org>
Subject: Re: libusb broken on 2.6.28 x86_64 ?
On Fri, 2 Jan 2009, Mark Lord wrote:
> Greg KH wrote:
> ..
> > Hm, care to run 'git bisect'?
> ..
>
> No, thanks. But the number of USB core changes in 2.6.28 is rather small,
> so I just ended up looking at each of them in more detail.
>
> This patch, below, FIXES it for me, by undoing a change from 2.6.28.
>
> Signed-off-by: Mark Lord <mlord@...ox.com>
>
> --- old/drivers/usb/core/driver.c 2008-12-24 18:26:37.000000000 -0500
> +++ linux/drivers/usb/core/driver.c 2009-01-02 04:34:11.000000000 -0500
> @@ -279,9 +279,7 @@
> * altsetting means creating new endpoint device entries).
> * When either of these happens, defer the Set-Interface.
> */
> - if (intf->cur_altsetting->desc.bAlternateSetting == 0)
> - ; /* Already in altsetting 0 so skip Set-Interface */
> - else if (!error && intf->dev.power.status == DPM_ON)
> + if (!error && intf->dev.power.status == DPM_ON)
> usb_set_interface(udev, intf->altsetting[0].
> desc.bInterfaceNumber, 0);
> else
For a proper fix, see
http://bugzilla.kernel.org/show_bug.cgi?id=12301#c13
A corresponding patch has been posted to linux-usb here:
http://marc.info/?l=linux-usb&m=123074111001861&w=2
I have no idea what's going on with the 64-bit vs. 32-bit stuff,
though.
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists