linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PATCH] USB patches for 2.6.17
@ 2006-06-21 22:06 Greg KH
  2006-06-21 22:22 ` Linus Torvalds
  2006-06-22 23:11 ` Linus Torvalds
  0 siblings, 2 replies; 27+ messages in thread
From: Greg KH @ 2006-06-21 22:06 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-usb-devel

Here are a lot of USB patches for 2.6.17.  They do the following:

	 - rework the UHCI driver
	 - lots of new device ids added
	 - EHCI tt fixed (allowing 1.1 devices behind 2.0 hubs to work properly)
	 - new drivers added
	 - endpoint sysfs code redone
	 - lots of other small bugfixes and features added

All of these changes have been in the -mm tree for a number of months.

Please pull from:
	git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/
or if master.kernel.org hasn't synced up yet:
	master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/

The full patches will be sent to the linux-usb-devel mailing list, if
anyone wants to see them.

thanks,

greg k-h

 Documentation/power/swsusp.txt             |   37 -
 Documentation/usb/usbmon.txt               |   32 
 arch/powerpc/sysdev/fsl_soc.c              |   66 --
 arch/ppc/syslib/mpc83xx_devices.c          |    6 
 drivers/block/ub.c                         |   78 --
 drivers/media/video/usbvideo/konicawc.c    |    3 
 drivers/usb/Makefile                       |    2 
 drivers/usb/atm/usbatm.c                   |    2 
 drivers/usb/atm/xusbatm.c                  |    1 
 drivers/usb/class/cdc-acm.c                |   84 +-
 drivers/usb/class/cdc-acm.h                |   16 
 drivers/usb/core/Makefile                  |    3 
 drivers/usb/core/devio.c                   |   38 -
 drivers/usb/core/endpoint.c                |  275 ++++++++
 drivers/usb/core/file.c                    |   79 +-
 drivers/usb/core/hub.c                     |  153 +++-
 drivers/usb/core/message.c                 |  182 +++--
 drivers/usb/core/sysfs.c                   |  201 ------
 drivers/usb/core/usb.c                     |    1 
 drivers/usb/core/usb.h                     |    3 
 drivers/usb/gadget/ether.c                 |   90 +-
 drivers/usb/gadget/inode.c                 |   62 +
 drivers/usb/gadget/net2280.c               |   17 
 drivers/usb/gadget/pxa2xx_udc.c            |   13 
 drivers/usb/gadget/rndis.c                 |  389 +++++------
 drivers/usb/gadget/rndis.h                 |   26 
 drivers/usb/gadget/serial.c                |  105 ---
 drivers/usb/host/Kconfig                   |   20 
 drivers/usb/host/ehci-au1xxx.c             |   21 
 drivers/usb/host/ehci-fsl.c                |   37 -
 drivers/usb/host/ehci-hcd.c                |   50 +
 drivers/usb/host/ehci-pci.c                |   59 -
 drivers/usb/host/ehci-sched.c              |  216 ++++++
 drivers/usb/host/isp116x-hcd.c             |    4 
 drivers/usb/host/sl811-hcd.c               |    2 
 drivers/usb/host/sl811_cs.c                |    2 
 drivers/usb/host/uhci-debug.c              |   45 +
 drivers/usb/host/uhci-hcd.c                |  139 ++--
 drivers/usb/host/uhci-hcd.h                |   81 +-
 drivers/usb/host/uhci-hub.c                |    5 
 drivers/usb/host/uhci-q.c                  |  947 ++++++++++++++++-------------
 drivers/usb/input/acecad.c                 |    4 
 drivers/usb/input/aiptek.c                 |    4 
 drivers/usb/input/appletouch.c             |  117 +++
 drivers/usb/input/ati_remote.c             |    4 
 drivers/usb/input/ati_remote2.c            |    2 
 drivers/usb/input/hid-core.c               |   83 +-
 drivers/usb/input/hid-input.c              |   36 -
 drivers/usb/input/hid.h                    |   11 
 drivers/usb/input/itmtouch.c               |    4 
 drivers/usb/input/kbtab.c                  |    5 
 drivers/usb/input/keyspan_remote.c         |    4 
 drivers/usb/input/mtouchusb.c              |    4 
 drivers/usb/input/powermate.c              |    4 
 drivers/usb/input/touchkitusb.c            |    4 
 drivers/usb/input/usbkbd.c                 |    4 
 drivers/usb/input/usbmouse.c               |    4 
 drivers/usb/input/usbtouchscreen.c         |    2 
 drivers/usb/input/wacom.c                  |    5 
 drivers/usb/input/xpad.c                   |    4 
 drivers/usb/input/yealink.c                |    4 
 drivers/usb/misc/Kconfig                   |   23 
 drivers/usb/misc/Makefile                  |    2 
 drivers/usb/misc/appledisplay.c            |  383 +++++++++++
 drivers/usb/misc/cy7c63.c                  |  244 +++++++
 drivers/usb/misc/phidgetkit.c              |  303 ++++++---
 drivers/usb/misc/sisusbvga/sisusb.c        |  127 +--
 drivers/usb/misc/sisusbvga/sisusb.h        |    6 
 drivers/usb/misc/sisusbvga/sisusb_con.c    |  151 ++--
 drivers/usb/misc/sisusbvga/sisusb_init.c   |    4 
 drivers/usb/misc/sisusbvga/sisusb_init.h   |   20 
 drivers/usb/misc/sisusbvga/sisusb_struct.h |    2 
 drivers/usb/misc/usbtest.c                 |   38 -
 drivers/usb/mon/mon_dma.c                  |    5 
 drivers/usb/mon/mon_main.c                 |   23 
 drivers/usb/mon/mon_stat.c                 |    4 
 drivers/usb/mon/mon_text.c                 |   36 +
 drivers/usb/mon/usb_mon.h                  |    2 
 drivers/usb/net/asix.c                     |    4 
 drivers/usb/net/cdc_ether.c                |   14 
 drivers/usb/net/pegasus.c                  |   29 
 drivers/usb/net/rndis_host.c               |    2 
 drivers/usb/net/zaurus.c                   |   19 
 drivers/usb/serial/Kconfig                 |   18 
 drivers/usb/serial/airprime.c              |    2 
 drivers/usb/serial/console.c               |   56 +
 drivers/usb/serial/cp2101.c                |    1 
 drivers/usb/serial/cyberjack.c             |    2 
 drivers/usb/serial/cypress_m8.c            |    2 
 drivers/usb/serial/empeg.c                 |    2 
 drivers/usb/serial/ftdi_sio.c              |   13 
 drivers/usb/serial/ftdi_sio.h              |    6 
 drivers/usb/serial/garmin_gps.c            |    2 
 drivers/usb/serial/generic.c               |    4 
 drivers/usb/serial/io_edgeport.c           |   48 -
 drivers/usb/serial/ipaq.c                  |    2 
 drivers/usb/serial/ipw.c                   |    2 
 drivers/usb/serial/ir-usb.c                |    2 
 drivers/usb/serial/keyspan.c               |    2 
 drivers/usb/serial/kl5kusb105.c            |    3 
 drivers/usb/serial/omninet.c               |    2 
 drivers/usb/serial/option.c                |  139 +++-
 drivers/usb/serial/pl2303.c                |    4 
 drivers/usb/serial/usb-serial.c            |   58 +
 drivers/usb/serial/usb-serial.h            |    5 
 drivers/usb/serial/visor.c                 |    2 
 drivers/usb/serial/whiteheat.c             |    8 
 drivers/usb/storage/onetouch.c             |    3 
 drivers/usb/storage/scsiglue.c             |    4 
 drivers/usb/storage/shuttle_usbat.c        |  105 ++-
 drivers/usb/storage/shuttle_usbat.h        |    4 
 drivers/usb/storage/transport.c            |   88 +-
 drivers/usb/storage/unusual_devs.h         |   35 -
 drivers/usb/storage/usb.c                  |   51 +
 include/linux/usb.h                        |   22 
 include/linux/usb/cdc.h                    |  205 ++++++
 include/linux/usb/input.h                  |   25 
 include/linux/usb/isp116x.h                |   29 
 include/linux/usb/sl811.h                  |   26 
 include/linux/usb_cdc.h                    |  205 ------
 include/linux/usb_input.h                  |   25 
 include/linux/usb_isp116x.h                |   29 
 include/linux/usb_sl811.h                  |   26 
 123 files changed, 4169 insertions(+), 2440 deletions(-)

---------------

Adrian Bunk:
      USB: sisusbvga: possible cleanups

Alan Stern:
      USB: usbcore: always turn on hub port power
      USB: net2280: add a shutdown routine
      USB: UHCI: store the endpoint type in the QH structure
      USB: UHCI: fix obscure bug in enqueue()
      usbhid: automatically set HID_QUIRK_NOGET for keyboards and mice
      UHCI: Common result routine for Control/Bulk/Interrupt
      UHCI: Remove non-iso TDs as they are used
      UHCI: Move code for cleaning up unlinked URBs
      UHCI: Eliminate the TD-removal list
      UHCI: Reimplement FSBR
      UHCI: Work around old Intel bug
      UHCI: use integer-sized frame numbers
      UHCI: fix race in ISO dequeuing
      UHCI: store the period in the queue header
      UHCI: remove ISO TDs as they are used
      gadgetfs: fix AIO interface bugs
      gadgetfs: fix memory leaks
      usbtest: report errors in iso tests
      usbhid: Remove unneeded blacklist entries
      usbcore: port reset for composite devices
      USB hub: use usb_reset_composite_device
      usb-storage: use usb_reset_composite_device
      usbhid: use usb_reset_composite_device
      usbcore: recovery from Set-Configuration failure
      usb-storage: unusual_devs entry for Nikon DSC D70s
      UHCI: remove hc_inaccessible flag
      UHCI: Improve FSBR-off timing
      USB: unusual_devs entry for Nokia N80

Andrew Morton:
      Driver for Apple Cinema Display

Arjan van de Ven:
      USB: convert the semaphores in the sisusb driver to mutexes

Bart Massey:
      USB HID/HIDBP, INPUT DRIVERS: fix various usb/input/hid-input.c bugs that make Apple Mighty Mouse work poorly

Chris Lund:
      USB: free allocated memory on io_edgeport startup memory failure

Dan Streetman:
      improved TT scheduling for EHCI

Daniel Drake:
      USB shuttle_usbat: hardcode flash detection for now
      USB: usb-storage alauda: Fix transport info mismerge
      USB: print message when device is rejected due to insufficient power

David Brownell:
      USB: usbnet, zaurus mtu fixup
      USB: correct the USB info in Documentation/power/swsusp.txt
      USB: more pegasus log spamming removed
      USB: cdc_ether: recognize olympus r1000 (fix regression)
      UHCI: various updates
      USB: whitespace removal from usb/gadget/ether
      USB: move <linux/usb_cdc.h> to <linux/usb/cdc.h>
      USB: move hardware-specific <linux/usb_*.h> to <linux/usb/*.h>
      USB: move <linux/usb_input.h> to <linux/usb/input.h>

Duncan Sands:
      USBATM: remove pointless inline
      USBATM: remove no-longer needed #include

Eduard Warkentin:
      USB: added support for ASIX 88178 chipset USB Gigabit Ethernet adaptor

Eric Sesterhenn:
      USB: negative index in drivers/usb/host/isp116x-hcd.c

Franck Bui-Huu:
      Fix a deadlock in usbtest
      usb-storage: get rid of the timer during URB submission
      USB: gadget-serial: fix a deadlock when closing the serial device
      USB: gadget-serial: do not save/restore IRQ flags in gs_close()

Frank Gevaerts:
      USB Serial: clean tty fields on failed device open

Giridhar Pemmasani:
      usbcore: Fix broken RNDIS config selection

Greg Kroah-Hartman:
      USB: add usb_interrupt_msg() function for api completeness.
      USB: move the endpoint specific sysfs code to it's own file
      USB: make usb_create_ep_files take a struct device
      USB: make endpoints real struct devices
      USB: move usb_device_class class devices to be real devices
      USB: convert usb class devices to real devices
      USB: only make /sys/class/usb show up when there is something in it

Guennadi Liakhovetski:
      USB: console: fix oops
      USB console: fix disconnection issues

Henk Vergonet:
      USB: add YEALINK phones to the HID_QUIRK_IGNORE blacklist

Ian Abbott:
      USB: ftdi_sio: add support for Yost Engineering ServoCenter3.1

Jeremy Fitzhardinge:
      USB: Add Sierra Wireless MC5720 ID to airprime.c

Kumar Gala:
      USB: allow multiple types of EHCI controllers to be built as modules

Luiz Fernando N. Capitulino:
      usbserial: Fixes wrong return values.

Matt Reimer:
      USB: trivial DEBUG message correction in gadget ether driver

Matthias Urlichs:
      USB: new devices for the Option driver

Micah Dowty:
      USB: Remove 4088-byte limit on usbfs control URBs
      USB: Allow high-bandwidth isochronous packets via usbfs

Milan Svoboda:
      usb gadget: allow drivers support speeds higher than full speed
      usb gadget: fix compile errors
      usb gadget: update pxa2xx_udc.c driver to fully support IXP4xx platform

Nicolas Boichat:
      USB: MacBook Pro touchpad support

Oliver Bock:
      USB: new driver for Cypress CY7C63xxx mirco controllers

Oliver Neukum:
      USB: cdc-acm: add a new special case for modems with buggy firmware

Paul Fulghum:
      USB: console: fix cr/lf issues
      USB: console: prevent ENODEV on node

Paul Serice:
      USB: EHCI works again on NVidia controllers with >2GB RAM

Pete Zaitcev:
      USB: clean out an unnecessary NULL check from ub
      usb: io_edgeport, cleanup to unicode handling
      USB serial: encapsulate schedule_work, remove double-calling
      USB: Improve Kconfig comment for mct_u232
      USB: Syntax cleanup for pl2303 (trailing backslash)
      USB: rmmod pl2303 after -28
      ub: atomic add_disk
      ub: random cleanups
      USB: io_edgeport touch-up
      USB: update usbmon, fix glued lines
      USB: implement error event in usbmon
      USB: update usbmon.txt

Peter Chubb:
      USB: shuttle_usbat: Fix handling of scatter-gather buffers
      USB: shuttle_usbat: Hardcode detection of HP CDRW devices

Philippe Retornaz:
      usb: drivers/usb/core/devio.c dereferences a userspace pointer

Ralf Baechle:
      USB: EHCI on non-Au1200 build fix

Rene Rebe:
      USB: Add Apple MacBook product IDs to usbhid

Sean Young:
      USB Phidget InterfaceKit: make inputs pollable and new device support

Stuart MacDonald:
      USB: Whiteheat: fix firmware spurious errors

Timothy Sipples:
      airprime.c: add Kyocera Wireless KPC650/Passport support

Vitja Makarov:
      USB: new cp2101 device


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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-21 22:06 [GIT PATCH] USB patches for 2.6.17 Greg KH
@ 2006-06-21 22:22 ` Linus Torvalds
  2006-06-21 22:51   ` Greg KH
  2006-06-22 23:11 ` Linus Torvalds
  1 sibling, 1 reply; 27+ messages in thread
From: Linus Torvalds @ 2006-06-21 22:22 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-kernel, linux-usb-devel



On Wed, 21 Jun 2006, Greg KH wrote:
>
>  123 files changed, 4169 insertions(+), 2440 deletions(-)

Btw, I get

  119 files changed, 3888 insertions(+), 2159 deletions(-)

Why? Becuause my default pull script has rename detection enabled, and I 
get:

 rename include/linux/{usb_cdc.h => usb/cdc.h} (100%)
 rename include/linux/{usb_input.h => usb/input.h} (100%)
 rename include/linux/{usb_isp116x.h => usb/isp116x.h} (100%)
 rename include/linux/{usb_sl811.h => usb/sl811.h} (71%)

which explains the off-by-four number (and the smaller number of 
lines changed).

Just out of interest, could you enable that in your scripts too, so that 
renames don't show up as huge deletes/creates (well, in this case, thet 
were pretty small files, but you get the idea)?

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-21 22:22 ` Linus Torvalds
@ 2006-06-21 22:51   ` Greg KH
  2006-06-22  0:51     ` Linus Torvalds
  2006-06-22  1:22     ` Linus Torvalds
  0 siblings, 2 replies; 27+ messages in thread
From: Greg KH @ 2006-06-21 22:51 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, linux-usb-devel

On Wed, Jun 21, 2006 at 03:22:19PM -0700, Linus Torvalds wrote:
> 
> 
> On Wed, 21 Jun 2006, Greg KH wrote:
> >
> >  123 files changed, 4169 insertions(+), 2440 deletions(-)
> 
> Btw, I get
> 
>   119 files changed, 3888 insertions(+), 2159 deletions(-)
> 
> Why? Becuause my default pull script has rename detection enabled, and I 
> get:
> 
>  rename include/linux/{usb_cdc.h => usb/cdc.h} (100%)
>  rename include/linux/{usb_input.h => usb/input.h} (100%)
>  rename include/linux/{usb_isp116x.h => usb/isp116x.h} (100%)
>  rename include/linux/{usb_sl811.h => usb/sl811.h} (71%)
> 
> which explains the off-by-four number (and the smaller number of 
> lines changed).
> 
> Just out of interest, could you enable that in your scripts too, so that 
> renames don't show up as huge deletes/creates (well, in this case, thet 
> were pretty small files, but you get the idea)?

Ok, but how?  I'm generating the diffstat in my script with:

	git diff origin..HEAD | diffstat -p1 >> $TMP_FILE

Is there a better way to see these renames?  In playing around with 'git
diff' I didn't see how to do it, but I'm probably just not looking for
the right option...

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-21 22:51   ` Greg KH
@ 2006-06-22  0:51     ` Linus Torvalds
  2006-06-22  1:22     ` Linus Torvalds
  1 sibling, 0 replies; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22  0:51 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-kernel, linux-usb-devel



On Wed, 21 Jun 2006, Greg KH wrote:
> 
> Ok, but how?  I'm generating the diffstat in my script with:
> 
> 	git diff origin..HEAD | diffstat -p1 >> $TMP_FILE
> 
> Is there a better way to see these renames?  In playing around with 'git
> diff' I didn't see how to do it, but I'm probably just not looking for
> the right option...

Look at the "diff-options" documentation. 

It's "-M" for "Detect renames" (or use -C, which actually detects copies 
too, but that will be somewhat more expensive).

That works with any diff output (ie "git log -p -M" will give log output 
with patches and rename detection turned on).

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-21 22:51   ` Greg KH
  2006-06-22  0:51     ` Linus Torvalds
@ 2006-06-22  1:22     ` Linus Torvalds
  2006-06-22 18:18       ` Greg KH
  1 sibling, 1 reply; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22  1:22 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-kernel, linux-usb-devel



On Wed, 21 Jun 2006, Greg KH wrote:
> 
> Ok, but how?  I'm generating the diffstat in my script with:
> 
> 	git diff origin..HEAD | diffstat -p1 >> $TMP_FILE

Btw, with a recent git (ie 1.4.0+), you can just do

	git diff -M --stat origin..HEAD

to do that much more efficiently, and without any external dependency on 
the "diffstat" program (with rename detection, you really need to do this 
using git itself, because "diffstat" doesn't understand rename patches 
being renames).

In fact, in a script, add the "--summary" option too, which gives a 
summary of file creation/deletion/renames at the end.

And as usual, the diff options work fine with "git log" too, so you can do

	git log -M --stat --summary

and it will do the right thing. Look at your ae0dadcf.. commit, for 
example.

Btw, the _one_ thing to be careful about is that when you generate a real 
patch with "-M", if that patch actually has a rename, then only "git 
apply" will be able to apply it correctly, and if somebody uses a regular 
"patch" program to apply it, they'll miss out on the rename, of course.

Some day maybe the git "extended patch format" is so univerally recognized 
to be superior that everybody understands them, in the meantime you may 
not want to use "-M" to generate patches unless you know the other end 
applies them with git.

(Which also explains why "-M" is not the default, of course).

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22  1:22     ` Linus Torvalds
@ 2006-06-22 18:18       ` Greg KH
  2006-06-22 18:30         ` Greg KH
  0 siblings, 1 reply; 27+ messages in thread
From: Greg KH @ 2006-06-22 18:18 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, linux-usb-devel

On Wed, Jun 21, 2006 at 06:22:58PM -0700, Linus Torvalds wrote:
> 
> 
> On Wed, 21 Jun 2006, Greg KH wrote:
> > 
> > Ok, but how?  I'm generating the diffstat in my script with:
> > 
> > 	git diff origin..HEAD | diffstat -p1 >> $TMP_FILE
> 
> Btw, with a recent git (ie 1.4.0+), you can just do
> 
> 	git diff -M --stat origin..HEAD
> 
> to do that much more efficiently, and without any external dependency on 
> the "diffstat" program (with rename detection, you really need to do this 
> using git itself, because "diffstat" doesn't understand rename patches 
> being renames).

Great, thanks, that works fine.  And it's faster :)

> In fact, in a script, add the "--summary" option too, which gives a 
> summary of file creation/deletion/renames at the end.

Ok, will do.  The next pull I send you will have the new format.

> And as usual, the diff options work fine with "git log" too, so you can do
> 
> 	git log -M --stat --summary
> 
> and it will do the right thing. Look at your ae0dadcf.. commit, for 
> example.
> 
> Btw, the _one_ thing to be careful about is that when you generate a real 
> patch with "-M", if that patch actually has a rename, then only "git 
> apply" will be able to apply it correctly, and if somebody uses a regular 
> "patch" program to apply it, they'll miss out on the rename, of course.
> 
> Some day maybe the git "extended patch format" is so univerally recognized 
> to be superior that everybody understands them, in the meantime you may 
> not want to use "-M" to generate patches unless you know the other end 
> applies them with git.
> 
> (Which also explains why "-M" is not the default, of course).

For now I'll leave -M off, as people might want to apply the patches
from email.  Although it might cut down on main bandwidth, and they can
always refer to the git tree or original patch...  I'll think about that
one.

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 18:18       ` Greg KH
@ 2006-06-22 18:30         ` Greg KH
  2006-06-22 18:49           ` Randy.Dunlap
  2006-06-22 19:50           ` Linus Torvalds
  0 siblings, 2 replies; 27+ messages in thread
From: Greg KH @ 2006-06-22 18:30 UTC (permalink / raw)
  Cc: Linus Torvalds, Andrew Morton, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 11:18:26AM -0700, Greg KH wrote:
> On Wed, Jun 21, 2006 at 06:22:58PM -0700, Linus Torvalds wrote:
> > And as usual, the diff options work fine with "git log" too, so you can do
> > 
> > 	git log -M --stat --summary
> > 
> > and it will do the right thing. Look at your ae0dadcf.. commit, for 
> > example.
> > 
> > Btw, the _one_ thing to be careful about is that when you generate a real 
> > patch with "-M", if that patch actually has a rename, then only "git 
> > apply" will be able to apply it correctly, and if somebody uses a regular 
> > "patch" program to apply it, they'll miss out on the rename, of course.
> > 
> > Some day maybe the git "extended patch format" is so univerally recognized 
> > to be superior that everybody understands them, in the meantime you may 
> > not want to use "-M" to generate patches unless you know the other end 
> > applies them with git.
> > 
> > (Which also explains why "-M" is not the default, of course).
> 
> For now I'll leave -M off, as people might want to apply the patches
> from email.  Although it might cut down on main bandwidth, and they can
> always refer to the git tree or original patch...  I'll think about that
> one.

I take that back.  I just used -M for the W1 patch series and I think it
is very helpful as it shows only the lines that change in a rename,
which can easily get lost in the noise of a longer patch.

Very nice stuff, have I mentioned lately how much I love git?

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 18:30         ` Greg KH
@ 2006-06-22 18:49           ` Randy.Dunlap
  2006-06-22 18:54             ` Greg KH
  2006-06-22 19:50           ` Linus Torvalds
  1 sibling, 1 reply; 27+ messages in thread
From: Randy.Dunlap @ 2006-06-22 18:49 UTC (permalink / raw)
  To: Greg KH; +Cc: torvalds, akpm, linux-kernel, linux-usb-devel

On Thu, 22 Jun 2006 11:30:21 -0700 Greg KH wrote:

> On Thu, Jun 22, 2006 at 11:18:26AM -0700, Greg KH wrote:
> > On Wed, Jun 21, 2006 at 06:22:58PM -0700, Linus Torvalds wrote:
> > > And as usual, the diff options work fine with "git log" too, so you can do
> > > 
> > > 	git log -M --stat --summary
> > > 
> > > and it will do the right thing. Look at your ae0dadcf.. commit, for 
> > > example.
> > > 
> > > Btw, the _one_ thing to be careful about is that when you generate a real 
> > > patch with "-M", if that patch actually has a rename, then only "git 
> > > apply" will be able to apply it correctly, and if somebody uses a regular 
> > > "patch" program to apply it, they'll miss out on the rename, of course.
> > > 
> > > Some day maybe the git "extended patch format" is so univerally recognized 
> > > to be superior that everybody understands them, in the meantime you may 
> > > not want to use "-M" to generate patches unless you know the other end 
> > > applies them with git.
> > > 
> > > (Which also explains why "-M" is not the default, of course).
> > 
> > For now I'll leave -M off, as people might want to apply the patches
> > from email.  Although it might cut down on main bandwidth, and they can
> > always refer to the git tree or original patch...  I'll think about that
> > one.
> 
> I take that back.  I just used -M for the W1 patch series and I think it
> is very helpful as it shows only the lines that change in a rename,
> which can easily get lost in the noise of a longer patch.
> 
> Very nice stuff, have I mentioned lately how much I love git?

Um, I was going to say that my patch wasn't listed in the
shortlog that you sent (for W1), but it's there, just mis-attributed
to Evgeniy (#13/14).

---
~Randy

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 18:49           ` Randy.Dunlap
@ 2006-06-22 18:54             ` Greg KH
  2006-06-23  5:52               ` Evgeniy Polyakov
  0 siblings, 1 reply; 27+ messages in thread
From: Greg KH @ 2006-06-22 18:54 UTC (permalink / raw)
  To: Randy.Dunlap, johnpol; +Cc: torvalds, akpm, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 11:49:00AM -0700, Randy.Dunlap wrote:
> 
> Um, I was going to say that my patch wasn't listed in the
> shortlog that you sent (for W1), but it's there, just mis-attributed
> to Evgeniy (#13/14).

I think that happened as Evgeniy sent it to me without the "From:" line
on the top of the email, which would have preserved your attribute.
Evgeniy, care to do that next time?

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 18:30         ` Greg KH
  2006-06-22 18:49           ` Randy.Dunlap
@ 2006-06-22 19:50           ` Linus Torvalds
  2006-06-22 20:01             ` Sam Ravnborg
  1 sibling, 1 reply; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22 19:50 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-kernel, linux-usb-devel



On Thu, 22 Jun 2006, Greg KH wrote:
> 
> I take that back.  I just used -M for the W1 patch series and I think it
> is very helpful as it shows only the lines that change in a rename,
> which can easily get lost in the noise of a longer patch.

Yes. The main reason to do rename detection is not that the patch shrinks 
(although it does), but simply because in many cases it makes the patch a 
hell of a lot more readable. It's often much more obvious what is actually 
going on, when you don't see it as a large "one file got deleted, another 
one added" thing.

> Very nice stuff, have I mentioned lately how much I love git?

It does seem to be working out, doesn't it?

I'm just constantly surprised by how people don't even seem to realize 
what it can do sometimes. Part of it is that development has been pretty 
active (and some of the things it can do simply weren't there three months 
ago), but part of it must be because people don't even expect it to be 
able to do something like that.

The "git log -p" thing is wonderful, but it's even more wonderful when you 
realize that you can ask it to just tell you what changed in a specific 
set of subdirectories. Or when you realize that you can actually have two 
branches, and ask it to show only the commits that are in one and not the 
other (even if the branches are _not_ subsets of each other).

For example, if you track my branch separately (not merging, and not 
rebasing - just doing something like "git fetch linus" to track where I 
am), you can always just do things like

	git log -p ..linus drivers/usb/

to see what _I_ have merged that might touch drivers/usb/, but that isn't 
in your branch because I ended up taking a patch from somebody else (for 
example, you might see some USB change that the MIPS merges brought in).

That kind of thing has, I believe, been the biggest success of the whole 
git model (the "track whole _trees_ rather than individual files").

I realize that some people are used to individual file tracking, and that 
the git model makes "git annotate individual_file.c" pretty inefficient, 
but at least for me, the whole sub-tree tracking is a _lot_ more 
important, and I don't think anybody else can do it as effortlessly and 
efficiently as git does.

The above kind of command line is just _so_ powerful. Maybe it's because 
I'm a top-level maintainer, but I basically _never_ care about a single 
file, but often care about one (or a few) subdirectory.

And Junio has done a stellar job at maintaining git. 

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 19:50           ` Linus Torvalds
@ 2006-06-22 20:01             ` Sam Ravnborg
  2006-06-22 20:52               ` Petr Baudis
  2006-06-22 21:01               ` Linus Torvalds
  0 siblings, 2 replies; 27+ messages in thread
From: Sam Ravnborg @ 2006-06-22 20:01 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Greg KH, Andrew Morton, linux-kernel, linux-usb-devel, git

> I'm just constantly surprised by how people don't even seem to realize 
> what it can do sometimes. Part of it is that development has been pretty 
> active (and some of the things it can do simply weren't there three months 
> ago), but part of it must be because people don't even expect it to be 
> able to do something like that.

Personally I'm still missing two things:
1) A command to let me see what this Linus guy have applied compared to
my tree - without touching anything in my tree. bk changes -R
2) A dry-run of a fetch+pull. I can do that if I really study the man
pages I know. But "git pull --dry-run" would be more convinient.

Other than that I will say that I'm pleased with the funtionality that
I use - that's maybe 10% of the possibilities...

	Sam

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 20:01             ` Sam Ravnborg
@ 2006-06-22 20:52               ` Petr Baudis
  2006-06-22 21:01               ` Linus Torvalds
  1 sibling, 0 replies; 27+ messages in thread
From: Petr Baudis @ 2006-06-22 20:52 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Linus Torvalds, Greg KH, Andrew Morton, linux-kernel,
	linux-usb-devel, git

Dear diary, on Thu, Jun 22, 2006 at 10:01:47PM CEST, I got a letter
where Sam Ravnborg <sam@ravnborg.org> said that...
> Personally I'm still missing two things:
> 1) A command to let me see what this Linus guy have applied compared to
> my tree - without touching anything in my tree. bk changes -R

You can cg-fetch / git fetch and then either "cg-log -m" or
"git log -r ..origin".

> 2) A dry-run of a fetch+pull. I can do that if I really study the man
> pages I know. But "git pull --dry-run" would be more convinient.

What would that involve? Isn't git pull --no-commit enough?

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
A person is just about as big as the things that make them angry.

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 20:01             ` Sam Ravnborg
  2006-06-22 20:52               ` Petr Baudis
@ 2006-06-22 21:01               ` Linus Torvalds
  2006-06-22 21:07                 ` Linus Torvalds
  1 sibling, 1 reply; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22 21:01 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Greg KH, Andrew Morton, linux-kernel, linux-usb-devel, git



On Thu, 22 Jun 2006, Sam Ravnborg wrote:
> 
> Personally I'm still missing two things:
> 1) A command to let me see what this Linus guy have applied compared to
> my tree - without touching anything in my tree. bk changes -R

	git fetch linus
	git log ..linus

Yes, it will fetch the things into your database, unlike BK, but that's 
kind of the point. That's what makes branches so powerful (you can do a 
lot more than "bk changes -R").

> 2) A dry-run of a fetch+pull. I can do that if I really study the man
> pages I know. But "git pull --dry-run" would be more convinient.

Hmm? Again, do

	git fetch <thing-to-be-fetched>

into a local branch first. That gets it into your repo, so that you can do 
things.

After that, I'm not quite sure what you mean by "--dry-run". Do you mean 
to know about file-level conflicts? You do need to do the merge in order 
to know whether the conflicts can be resolved, but even without doing the 
merge you can look for _file_level_ conflicts by other means.

I don't think anybody has done it, but a script like

	OTHER="$1"
	BASE=$(git-merge-base HEAD $OTHER) || exit
	git-merge-tree $BASE HEAD $OTHER | grep -v '^0'

will show if there were file-level conflicts (in a pretty strange format, 
admittedly).

Of course, 99% of the time, a three-way merge will just handle those fine 
(the output from "git-merge-tree" is enough to know to do a three-way 
merge on temp-files, if you want to try that).

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 21:01               ` Linus Torvalds
@ 2006-06-22 21:07                 ` Linus Torvalds
  0 siblings, 0 replies; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22 21:07 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Greg KH, Andrew Morton, linux-kernel, linux-usb-devel, git



On Thu, 22 Jun 2006, Linus Torvalds wrote:
> 
> After that, I'm not quite sure what you mean by "--dry-run". Do you mean 
> to know about file-level conflicts? You do need to do the merge in order 
> to know whether the conflicts can be resolved, but even without doing the 
> merge you can look for _file_level_ conflicts by other means.

Btw, what you can always do is just

	git pull <other-end>
	.. look at the result ..
	git reset --hard ORIG_HEAD

and you should be ok. It's obviously not a dry-run, it's more of a "do it 
and then undo it", but hey, it should _work_.

(Look out for dirty state, though. "git pull" will happily pull into a 
dirty tree if the changes don't actually affect any dirty files. The "git 
reset --hard" thing will undo all dirty state, though).

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-21 22:06 [GIT PATCH] USB patches for 2.6.17 Greg KH
  2006-06-21 22:22 ` Linus Torvalds
@ 2006-06-22 23:11 ` Linus Torvalds
  2006-06-22 23:40   ` Greg KH
  2006-06-23  0:56   ` Greg KH
  1 sibling, 2 replies; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22 23:11 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-kernel, linux-usb-devel



On Wed, 21 Jun 2006, Greg KH wrote:
>
> Here are a lot of USB patches for 2.6.17.  They do the following:

I think these may be responsible for:

	Bluetooth: L2CAP ver 2.8
	Bluetooth: L2CAP socket layer initialized
	Bluetooth: HIDP (Human Interface Emulation) ver 1.1
	Bluetooth: RFCOMM socket layer initialized
	Bluetooth: RFCOMM TTY layer initialized
	Bluetooth: RFCOMM ver 1.7
	BUG: unable to handle kernel paging request at virtual address 5a5a5a5a
	 printing eip:
	c02a58f8
	*pde = 00000000
	Oops: 0000 [#1]
	SMP 
	Modules linked in: rfcomm hidp l2cap hci_usb bluetooth ip_conntrack_netbios_ns ipt_REJECT iptable_filter ip_tables ip6table_filter ip6_tables cpufreq_ondemand lp pcspkr intel_agp agpgart
	CPU:    0
	EIP:    0060:[<c02a58f8>]    Not tainted VLI
	EFLAGS: 00210206   (2.6.17-gd588fcbe #211) 
	EIP is at usbdev_open+0xb4/0x1ec
	eax: 0bd00005   ebx: 5a5a5a5a   ecx: 5a5a58d2   edx: dd991e4c
	esi: de020bdc   edi: c712da68   ebp: c6eeaee8   esp: c6eeaeac
	ds: 007b   es: 007b   ss: 0068
	Process hid2hci (pid: 3719, threadinfo=c6eea000 task=ddfb8570)
	Stack: c854dc28 dd22cd70 00000000 00000005 c6eeaed4 c016bd39 c6eeaf3c 00000001 
	       c6eea000 00000000 dd22cd70 c6eeaee8 00000000 c050b8a0 dd22cd70 c6eeaf04 
	       c01678a4 c854dc28 c6eeaf04 c854dc28 dd22cd70 00000000 c6eeaf20 c015e424 
	Call Trace:
	 <c0103c46> show_stack_log_lvl+0x85/0x8f  <c0103dc3> show_registers+0x13b/0x1af
	 <c0103fac> die+0x175/0x285  <c011a86d> do_page_fault+0x428/0x522
	 <c0103777> error_code+0x4f/0x54  <c01678a4> chrdev_open+0x11a/0x171
	 <c015e424> __dentry_open+0xc8/0x1ab  <c015e575> nameidata_to_filp+0x1c/0x2e
	 <c015e5b5> do_filp_open+0x2e/0x35  <c015e5fc> do_sys_open+0x40/0xba
	 <c015e6a2> sys_open+0x16/0x18  <c0102c0f> sysenter_past_esp+0x54/0x75
	Code: 00 8b 35 cc 77 61 c0 8b 8e 9c 00 00 00 81 e9 88 01 00 00 eb 16 8b 45 d0 0d 00 00 d0 0b 39 81 94 01 00 00 74 81 8d 8b 78 
	fe ff ff <8b> 99 88 01 00 00 0f 18 03 90 8d 91 88 01 00 00 8d 86 9c 00 00 
	EIP: [<c02a58f8>] usbdev_open+0xb4/0x1ec SS:ESP 0068:c6eeaeac

where that 5a5a5a5a is possibly/probably due to SLAB debugging (it's the 
"POISON_INUSE" pattern)

It might have happened before too, of course, I just haven't seen it 
before (even though I've had SLAB debugging on all the time on that 
machine).

It seems to actually be from usbdev_lookup_minor(), which has been inlined 
(damn compiler), and it's the "node.next" access in the

	list_for_each_entry(device, &usb_device_class->devices, node) {

loop.

Any ideas? 

			Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 23:11 ` Linus Torvalds
@ 2006-06-22 23:40   ` Greg KH
  2006-06-22 23:48     ` Linus Torvalds
  2006-06-23  0:05     ` Jeremy Fitzhardinge
  2006-06-23  0:56   ` Greg KH
  1 sibling, 2 replies; 27+ messages in thread
From: Greg KH @ 2006-06-22 23:40 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 04:11:26PM -0700, Linus Torvalds wrote:
> 
> 
> On Wed, 21 Jun 2006, Greg KH wrote:
> >
> > Here are a lot of USB patches for 2.6.17.  They do the following:
> 
> I think these may be responsible for:
> 
> 	Bluetooth: L2CAP ver 2.8
> 	Bluetooth: L2CAP socket layer initialized
> 	Bluetooth: HIDP (Human Interface Emulation) ver 1.1
> 	Bluetooth: RFCOMM socket layer initialized
> 	Bluetooth: RFCOMM TTY layer initialized
> 	Bluetooth: RFCOMM ver 1.7
> 	BUG: unable to handle kernel paging request at virtual address 5a5a5a5a
> 	 printing eip:
> 	c02a58f8
> 	*pde = 00000000
> 	Oops: 0000 [#1]
> 	SMP 
> 	Modules linked in: rfcomm hidp l2cap hci_usb bluetooth ip_conntrack_netbios_ns ipt_REJECT iptable_filter ip_tables ip6table_filter ip6_tables cpufreq_ondemand lp pcspkr intel_agp agpgart
> 	CPU:    0
> 	EIP:    0060:[<c02a58f8>]    Not tainted VLI
> 	EFLAGS: 00210206   (2.6.17-gd588fcbe #211) 
> 	EIP is at usbdev_open+0xb4/0x1ec
> 	eax: 0bd00005   ebx: 5a5a5a5a   ecx: 5a5a58d2   edx: dd991e4c
> 	esi: de020bdc   edi: c712da68   ebp: c6eeaee8   esp: c6eeaeac
> 	ds: 007b   es: 007b   ss: 0068
> 	Process hid2hci (pid: 3719, threadinfo=c6eea000 task=ddfb8570)
> 	Stack: c854dc28 dd22cd70 00000000 00000005 c6eeaed4 c016bd39 c6eeaf3c 00000001 
> 	       c6eea000 00000000 dd22cd70 c6eeaee8 00000000 c050b8a0 dd22cd70 c6eeaf04 
> 	       c01678a4 c854dc28 c6eeaf04 c854dc28 dd22cd70 00000000 c6eeaf20 c015e424 
> 	Call Trace:
> 	 <c0103c46> show_stack_log_lvl+0x85/0x8f  <c0103dc3> show_registers+0x13b/0x1af
> 	 <c0103fac> die+0x175/0x285  <c011a86d> do_page_fault+0x428/0x522
> 	 <c0103777> error_code+0x4f/0x54  <c01678a4> chrdev_open+0x11a/0x171
> 	 <c015e424> __dentry_open+0xc8/0x1ab  <c015e575> nameidata_to_filp+0x1c/0x2e
> 	 <c015e5b5> do_filp_open+0x2e/0x35  <c015e5fc> do_sys_open+0x40/0xba
> 	 <c015e6a2> sys_open+0x16/0x18  <c0102c0f> sysenter_past_esp+0x54/0x75
> 	Code: 00 8b 35 cc 77 61 c0 8b 8e 9c 00 00 00 81 e9 88 01 00 00 eb 16 8b 45 d0 0d 00 00 d0 0b 39 81 94 01 00 00 74 81 8d 8b 78 
> 	fe ff ff <8b> 99 88 01 00 00 0f 18 03 90 8d 91 88 01 00 00 8d 86 9c 00 00 
> 	EIP: [<c02a58f8>] usbdev_open+0xb4/0x1ec SS:ESP 0068:c6eeaeac
> 
> where that 5a5a5a5a is possibly/probably due to SLAB debugging (it's the 
> "POISON_INUSE" pattern)
> 
> It might have happened before too, of course, I just haven't seen it 
> before (even though I've had SLAB debugging on all the time on that 
> machine).
> 
> It seems to actually be from usbdev_lookup_minor(), which has been inlined 
> (damn compiler), and it's the "node.next" access in the
> 
> 	list_for_each_entry(device, &usb_device_class->devices, node) {
> 
> loop.
> 
> Any ideas? 

I saw this once when debugging the usb code, but could never reproduce
it, so I attributed it to an incomplete build at the time, as a reboot
fixed it.

Is this easy to trigger for you?

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 23:40   ` Greg KH
@ 2006-06-22 23:48     ` Linus Torvalds
  2006-06-22 23:52       ` Greg KH
  2006-06-23  0:05     ` Jeremy Fitzhardinge
  1 sibling, 1 reply; 27+ messages in thread
From: Linus Torvalds @ 2006-06-22 23:48 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-kernel, linux-usb-devel



On Thu, 22 Jun 2006, Greg KH wrote:
>
> I saw this once when debugging the usb code, but could never reproduce
> it, so I attributed it to an incomplete build at the time, as a reboot
> fixed it.

I'm pretty sure the build was good, but it may well be timing-related.

> Is this easy to trigger for you?

No. I've never seen it before on this machine (and it's that Mac Mini that 
I've been rebooting several times a day for the last week), so if it's an 
old bug, it's definitely not repeatable. I was thinking it would be 
something new..

I'll let you know if I can repro it.

		Linus

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 23:48     ` Linus Torvalds
@ 2006-06-22 23:52       ` Greg KH
  2006-06-23  0:32         ` Andrew Morton
  0 siblings, 1 reply; 27+ messages in thread
From: Greg KH @ 2006-06-22 23:52 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 04:48:43PM -0700, Linus Torvalds wrote:
> 
> 
> On Thu, 22 Jun 2006, Greg KH wrote:
> >
> > I saw this once when debugging the usb code, but could never reproduce
> > it, so I attributed it to an incomplete build at the time, as a reboot
> > fixed it.
> 
> I'm pretty sure the build was good, but it may well be timing-related.
> 
> > Is this easy to trigger for you?
> 
> No. I've never seen it before on this machine (and it's that Mac Mini that 
> I've been rebooting several times a day for the last week), so if it's an 
> old bug, it's definitely not repeatable. I was thinking it would be 
> something new..

I would think it's something new too, as I did change that very line
that oopsed.  That's why I found it odd that I couldn't reproduce it
anymore.

> I'll let you know if I can repro it.

Thanks, that would help out a lot.

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 23:40   ` Greg KH
  2006-06-22 23:48     ` Linus Torvalds
@ 2006-06-23  0:05     ` Jeremy Fitzhardinge
  2006-06-23  0:17       ` Andrew Morton
  1 sibling, 1 reply; 27+ messages in thread
From: Jeremy Fitzhardinge @ 2006-06-23  0:05 UTC (permalink / raw)
  To: Greg KH; +Cc: Linus Torvalds, Andrew Morton, linux-kernel, linux-usb-devel

Greg KH wrote:
> I saw this once when debugging the usb code, but could never reproduce
> it, so I attributed it to an incomplete build at the time, as a reboot
> fixed it.
>
> Is this easy to trigger for you?
>   

This is the same oops as I posted yesterday: "2.6.17-mm1: oops in 
Bluetooth stuff, usbdev_open".  I haven't seen it since...

    J

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-23  0:05     ` Jeremy Fitzhardinge
@ 2006-06-23  0:17       ` Andrew Morton
  2006-06-23  0:22         ` Greg KH
  0 siblings, 1 reply; 27+ messages in thread
From: Andrew Morton @ 2006-06-23  0:17 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: gregkh, torvalds, linux-kernel, linux-usb-devel

Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
> Greg KH wrote:
> > I saw this once when debugging the usb code, but could never reproduce
> > it, so I attributed it to an incomplete build at the time, as a reboot
> > fixed it.
> >
> > Is this easy to trigger for you?
> >   
> 
> This is the same oops as I posted yesterday: "2.6.17-mm1: oops in 
> Bluetooth stuff, usbdev_open".  I haven't seen it since...
> 

That's a kernel-wide list of USB devices, isn't it?  Which means that some
driver other than the bluetooth one has got itself freed up while still
being on the list.

If so, it could be any driver at all..

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-23  0:17       ` Andrew Morton
@ 2006-06-23  0:22         ` Greg KH
  2006-06-23  0:38           ` Greg KH
  0 siblings, 1 reply; 27+ messages in thread
From: Greg KH @ 2006-06-23  0:22 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Jeremy Fitzhardinge, torvalds, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 05:17:32PM -0700, Andrew Morton wrote:
> Jeremy Fitzhardinge <jeremy@goop.org> wrote:
> >
> > Greg KH wrote:
> > > I saw this once when debugging the usb code, but could never reproduce
> > > it, so I attributed it to an incomplete build at the time, as a reboot
> > > fixed it.
> > >
> > > Is this easy to trigger for you?
> > >   
> > 
> > This is the same oops as I posted yesterday: "2.6.17-mm1: oops in 
> > Bluetooth stuff, usbdev_open".  I haven't seen it since...
> > 
> 
> That's a kernel-wide list of USB devices, isn't it?  Which means that some
> driver other than the bluetooth one has got itself freed up while still
> being on the list.
> 
> If so, it could be any driver at all..

Hopefully we have the list locked properly while we are walking it, so
that should not happen, but I'll go back and verify that I got it all
correct...

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 23:52       ` Greg KH
@ 2006-06-23  0:32         ` Andrew Morton
  2006-06-23  0:41           ` Greg KH
  0 siblings, 1 reply; 27+ messages in thread
From: Andrew Morton @ 2006-06-23  0:32 UTC (permalink / raw)
  To: Greg KH; +Cc: torvalds, linux-kernel, linux-usb-devel

Greg KH <gregkh@suse.de> wrote:
>
> I would think it's something new too, as I did change that very line
> that oopsed.  That's why I found it odd that I couldn't reproduce it
> anymore.

device_destroy() looks wrong.  It alters the class->devices list outside
its lock.

--- 25/drivers/base/core.c~device_destroy-locking-fix	Thu Jun 22 17:29:07 2006
+++ 25-akpm/drivers/base/core.c	Thu Jun 22 17:29:34 2006
@@ -632,14 +632,13 @@ void device_destroy(struct class *class,
 	list_for_each_entry(dev_tmp, &class->devices, node) {
 		if (dev_tmp->devt == devt) {
 			dev = dev_tmp;
+			list_del_init(&dev->node);
 			break;
 		}
 	}
 	up(&class->sem);
 
-	if (dev) {
-		list_del_init(&dev->node);
+	if (dev)
 		device_unregister(dev);
-	}
 }
 EXPORT_SYMBOL_GPL(device_destroy);

That won't be it though.

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-23  0:22         ` Greg KH
@ 2006-06-23  0:38           ` Greg KH
  0 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2006-06-23  0:38 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Jeremy Fitzhardinge, torvalds, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 05:22:30PM -0700, Greg KH wrote:
> On Thu, Jun 22, 2006 at 05:17:32PM -0700, Andrew Morton wrote:
> > Jeremy Fitzhardinge <jeremy@goop.org> wrote:
> > >
> > > Greg KH wrote:
> > > > I saw this once when debugging the usb code, but could never reproduce
> > > > it, so I attributed it to an incomplete build at the time, as a reboot
> > > > fixed it.
> > > >
> > > > Is this easy to trigger for you?
> > > >   
> > > 
> > > This is the same oops as I posted yesterday: "2.6.17-mm1: oops in 
> > > Bluetooth stuff, usbdev_open".  I haven't seen it since...
> > > 
> > 
> > That's a kernel-wide list of USB devices, isn't it?  Which means that some
> > driver other than the bluetooth one has got itself freed up while still
> > being on the list.
> > 
> > If so, it could be any driver at all..
> 
> Hopefully we have the list locked properly while we are walking it, so
> that should not happen, but I'll go back and verify that I got it all
> correct...

Oh crap, that's it.  There's a race when a device switches
configurations and the endpoints disappear.  I was locking in the wrong
functions...  Let me beat on the fix for a bit to make sure I have it
right.

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-23  0:32         ` Andrew Morton
@ 2006-06-23  0:41           ` Greg KH
  0 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2006-06-23  0:41 UTC (permalink / raw)
  To: Andrew Morton; +Cc: torvalds, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 05:32:15PM -0700, Andrew Morton wrote:
> Greg KH <gregkh@suse.de> wrote:
> >
> > I would think it's something new too, as I did change that very line
> > that oopsed.  That's why I found it odd that I couldn't reproduce it
> > anymore.
> 
> device_destroy() looks wrong.  It alters the class->devices list outside
> its lock.
> 
> --- 25/drivers/base/core.c~device_destroy-locking-fix	Thu Jun 22 17:29:07 2006
> +++ 25-akpm/drivers/base/core.c	Thu Jun 22 17:29:34 2006
> @@ -632,14 +632,13 @@ void device_destroy(struct class *class,
>  	list_for_each_entry(dev_tmp, &class->devices, node) {
>  		if (dev_tmp->devt == devt) {
>  			dev = dev_tmp;
> +			list_del_init(&dev->node);
>  			break;
>  		}
>  	}
>  	up(&class->sem);
>  
> -	if (dev) {
> -		list_del_init(&dev->node);
> +	if (dev)
>  		device_unregister(dev);
> -	}
>  }
>  EXPORT_SYMBOL_GPL(device_destroy);
> 
> That won't be it though.

No, and that function doesn't get called for the usb endpoints, it goes
through a different path, that's the problem...  I think I've found it
now, let me reboot a bunch...

thanks,

greg k-h

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 23:11 ` Linus Torvalds
  2006-06-22 23:40   ` Greg KH
@ 2006-06-23  0:56   ` Greg KH
  1 sibling, 0 replies; 27+ messages in thread
From: Greg KH @ 2006-06-23  0:56 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Andrew Morton, linux-kernel, linux-usb-devel, Jeremy Fitzhardinge

On Thu, Jun 22, 2006 at 04:11:26PM -0700, Linus Torvalds wrote:
> 
> 
> On Wed, 21 Jun 2006, Greg KH wrote:
> >
> > Here are a lot of USB patches for 2.6.17.  They do the following:
> 
> I think these may be responsible for:
> 
> 	Bluetooth: L2CAP ver 2.8
> 	Bluetooth: L2CAP socket layer initialized
> 	Bluetooth: HIDP (Human Interface Emulation) ver 1.1
> 	Bluetooth: RFCOMM socket layer initialized
> 	Bluetooth: RFCOMM TTY layer initialized
> 	Bluetooth: RFCOMM ver 1.7
> 	BUG: unable to handle kernel paging request at virtual address 5a5a5a5a
> 	 printing eip:
> 	c02a58f8
> 	*pde = 00000000
> 	Oops: 0000 [#1]
> 	SMP 
> 	Modules linked in: rfcomm hidp l2cap hci_usb bluetooth ip_conntrack_netbios_ns ipt_REJECT iptable_filter ip_tables ip6table_filter ip6_tables cpufreq_ondemand lp pcspkr intel_agp agpgart
> 	CPU:    0
> 	EIP:    0060:[<c02a58f8>]    Not tainted VLI
> 	EFLAGS: 00210206   (2.6.17-gd588fcbe #211) 
> 	EIP is at usbdev_open+0xb4/0x1ec
> 	eax: 0bd00005   ebx: 5a5a5a5a   ecx: 5a5a58d2   edx: dd991e4c
> 	esi: de020bdc   edi: c712da68   ebp: c6eeaee8   esp: c6eeaeac
> 	ds: 007b   es: 007b   ss: 0068
> 	Process hid2hci (pid: 3719, threadinfo=c6eea000 task=ddfb8570)
> 	Stack: c854dc28 dd22cd70 00000000 00000005 c6eeaed4 c016bd39 c6eeaf3c 00000001 
> 	       c6eea000 00000000 dd22cd70 c6eeaee8 00000000 c050b8a0 dd22cd70 c6eeaf04 
> 	       c01678a4 c854dc28 c6eeaf04 c854dc28 dd22cd70 00000000 c6eeaf20 c015e424 
> 	Call Trace:
> 	 <c0103c46> show_stack_log_lvl+0x85/0x8f  <c0103dc3> show_registers+0x13b/0x1af
> 	 <c0103fac> die+0x175/0x285  <c011a86d> do_page_fault+0x428/0x522
> 	 <c0103777> error_code+0x4f/0x54  <c01678a4> chrdev_open+0x11a/0x171
> 	 <c015e424> __dentry_open+0xc8/0x1ab  <c015e575> nameidata_to_filp+0x1c/0x2e
> 	 <c015e5b5> do_filp_open+0x2e/0x35  <c015e5fc> do_sys_open+0x40/0xba
> 	 <c015e6a2> sys_open+0x16/0x18  <c0102c0f> sysenter_past_esp+0x54/0x75
> 	Code: 00 8b 35 cc 77 61 c0 8b 8e 9c 00 00 00 81 e9 88 01 00 00 eb 16 8b 45 d0 0d 00 00 d0 0b 39 81 94 01 00 00 74 81 8d 8b 78 
> 	fe ff ff <8b> 99 88 01 00 00 0f 18 03 90 8d 91 88 01 00 00 8d 86 9c 00 00 
> 	EIP: [<c02a58f8>] usbdev_open+0xb4/0x1ec SS:ESP 0068:c6eeaeac
> 
> where that 5a5a5a5a is possibly/probably due to SLAB debugging (it's the 
> "POISON_INUSE" pattern)
> 
> It might have happened before too, of course, I just haven't seen it 
> before (even though I've had SLAB debugging on all the time on that 
> machine).
> 
> It seems to actually be from usbdev_lookup_minor(), which has been inlined 
> (damn compiler), and it's the "node.next" access in the
> 
> 	list_for_each_entry(device, &usb_device_class->devices, node) {
> 
> loop.
> 
> Any ideas? 

Ok, this was a stupid one on my part, I'm really surprised that it
didn't trigger all the time.  Here's a patch for it.  Sorry about this.

This just survived a lot of unloads and reloads and devices disappearing
and added.

thanks,

greg k-h

---------------------

From: Greg Kroah-Hartman <gregkh@suse.de>
Subject: Driver core: fix locking issues with the devices that are attached to classes

Doh, that was foolish...

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/base/core.c |   19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

--- gregkh-2.6.orig/drivers/base/core.c
+++ gregkh-2.6/drivers/base/core.c
@@ -356,6 +356,13 @@ int device_add(struct device *dev)
 	if (parent)
 		klist_add_tail(&dev->knode_parent, &parent->klist_children);
 
+	if (dev->class) {
+		/* tie the class to the device */
+		down(&dev->class->sem);
+		list_add_tail(&dev->node, &dev->class->devices);
+		up(&dev->class->sem);
+	}
+
 	/* notify platform of device entry */
 	if (platform_notify)
 		platform_notify(dev);
@@ -456,6 +463,9 @@ void device_del(struct device * dev)
 		sysfs_remove_link(&dev->kobj, "device");
 		sysfs_remove_link(&dev->parent->kobj, class_name);
 		kfree(class_name);
+		down(&dev->class->sem);
+		list_del_init(&dev->node);
+		up(&dev->class->sem);
 	}
 	device_remove_file(dev, &dev->uevent_attr);
 
@@ -602,11 +612,6 @@ struct device *device_create(struct clas
 	if (retval)
 		goto error;
 
-	/* tie the class to the device */
-	down(&class->sem);
-	list_add_tail(&dev->node, &class->devices);
-	up(&class->sem);
-
 	return dev;
 
 error:
@@ -637,9 +642,7 @@ void device_destroy(struct class *class,
 	}
 	up(&class->sem);
 
-	if (dev) {
-		list_del_init(&dev->node);
+	if (dev)
 		device_unregister(dev);
-	}
 }
 EXPORT_SYMBOL_GPL(device_destroy);

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-22 18:54             ` Greg KH
@ 2006-06-23  5:52               ` Evgeniy Polyakov
  2006-06-23  6:07                 ` Greg KH
  0 siblings, 1 reply; 27+ messages in thread
From: Evgeniy Polyakov @ 2006-06-23  5:52 UTC (permalink / raw)
  To: Greg KH; +Cc: Randy.Dunlap, torvalds, akpm, linux-kernel, linux-usb-devel

On Thu, Jun 22, 2006 at 11:54:56AM -0700, Greg KH (gregkh@suse.de) wrote:
> On Thu, Jun 22, 2006 at 11:49:00AM -0700, Randy.Dunlap wrote:
> > 
> > Um, I was going to say that my patch wasn't listed in the
> > shortlog that you sent (for W1), but it's there, just mis-attributed
> > to Evgeniy (#13/14).
> 
> I think that happened as Evgeniy sent it to me without the "From:" line
> on the top of the email, which would have preserved your attribute.
> Evgeniy, care to do that next time?

I.e. first line should look like
From: Someone Who Sent be the mail <and address here> ?

Sure will do.

> thanks,
> 
> greg k-h

-- 
	Evgeniy Polyakov

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

* Re: [GIT PATCH] USB patches for 2.6.17
  2006-06-23  5:52               ` Evgeniy Polyakov
@ 2006-06-23  6:07                 ` Greg KH
  0 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2006-06-23  6:07 UTC (permalink / raw)
  To: Evgeniy Polyakov
  Cc: Randy.Dunlap, torvalds, akpm, linux-kernel, linux-usb-devel

On Fri, Jun 23, 2006 at 09:52:41AM +0400, Evgeniy Polyakov wrote:
> On Thu, Jun 22, 2006 at 11:54:56AM -0700, Greg KH (gregkh@suse.de) wrote:
> > On Thu, Jun 22, 2006 at 11:49:00AM -0700, Randy.Dunlap wrote:
> > > 
> > > Um, I was going to say that my patch wasn't listed in the
> > > shortlog that you sent (for W1), but it's there, just mis-attributed
> > > to Evgeniy (#13/14).
> > 
> > I think that happened as Evgeniy sent it to me without the "From:" line
> > on the top of the email, which would have preserved your attribute.
> > Evgeniy, care to do that next time?
> 
> I.e. first line should look like
> From: Someone Who Sent be the mail <and address here> ?

Yes, that's the correct format.

thanks,

greg k-h

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

end of thread, other threads:[~2006-06-23  6:10 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-21 22:06 [GIT PATCH] USB patches for 2.6.17 Greg KH
2006-06-21 22:22 ` Linus Torvalds
2006-06-21 22:51   ` Greg KH
2006-06-22  0:51     ` Linus Torvalds
2006-06-22  1:22     ` Linus Torvalds
2006-06-22 18:18       ` Greg KH
2006-06-22 18:30         ` Greg KH
2006-06-22 18:49           ` Randy.Dunlap
2006-06-22 18:54             ` Greg KH
2006-06-23  5:52               ` Evgeniy Polyakov
2006-06-23  6:07                 ` Greg KH
2006-06-22 19:50           ` Linus Torvalds
2006-06-22 20:01             ` Sam Ravnborg
2006-06-22 20:52               ` Petr Baudis
2006-06-22 21:01               ` Linus Torvalds
2006-06-22 21:07                 ` Linus Torvalds
2006-06-22 23:11 ` Linus Torvalds
2006-06-22 23:40   ` Greg KH
2006-06-22 23:48     ` Linus Torvalds
2006-06-22 23:52       ` Greg KH
2006-06-23  0:32         ` Andrew Morton
2006-06-23  0:41           ` Greg KH
2006-06-23  0:05     ` Jeremy Fitzhardinge
2006-06-23  0:17       ` Andrew Morton
2006-06-23  0:22         ` Greg KH
2006-06-23  0:38           ` Greg KH
2006-06-23  0:56   ` Greg KH

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).