On Mon, Dec 14, 2009 at 8:09 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
On Mon, 14 Dec 2009, Linus Torvalds wrote:I'll double-check by reverting it from current -tip, but if you don't hear anything different from me, you can assume that that double-check succeeded and confirms that that commit really is the cause of my printer no longer working.Confirmed. With that commit reverted, everything works fine again. So it's definitely a2582bd478c13c574d4c16ef1209d333f2a25935, although I have no idea _why_ it causes problems. One thing I note is that it literally changed semantics, as per the comment in there. It used to be: This walks the driver device list and returns a pointer to the interface with the matching minor. and after that it is This walks the bus device list and returns a pointer to the interface with the matching minor. Notice the "driver device list" -> "bus device list" change. Also notice that the minor number of my 'lp0' device is zero, so I could easily imagine that some device without a driver at all or whatever will have a zero there, and then it would return the wrong device entirely. So I really think that commit is very suspect. Not matching against the driver that we passed in looks like some total screwup. But I don't know the code or the use. I do know that reverting it fixes it.
Yes, you are right. Sorry for breaking your printer. There is both USB_MAJOR and USB_DEVICE_MAJOR. I haven't investigated it in great detail yet, but that seems likely to be the issue. I'll clean up the patch. And yes, it should definitely not be going into stable yet. Revert for now and I'll resubmit.
Attachment:
signature.asc
Description: OpenPGP digital signature