Re: [BUG] object: is not initialized, yet kobject_put() is being called

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 12, 2010 at 02:57:57PM +0200, Jiri Kosina wrote:
> On Thu, 12 Aug 2010, Jiri Kosina wrote:
> 
> > > > > > > > Guys, could you please send me your .config with which you are 
> > > > > > > > experiencing the problem, so that I can try to reproduce it with it?
> > > > > > > 
> > > > > > > Attached.
> > > > > > 
> > > > > > So I had to add support for HW of mine (SATA_VIA, PATA_VIA, disabled the 
> > > > > > radeon firmware stuff, and, most importantly, enabled UHCI, which is what 
> > > > > > is on machine I am using now for testing), and disconnect-connect cycle 
> > > > > > works nicely:
> > > > > > 
> > > > > > usb 3-2: USB disconnect, address 3
> > > > > > usb 3-2: new low speed USB device using uhci_hcd and address 4
> > > > > > input: mouse USB mouse with wheel as /devices/pci0000:00/0000:00:10.1/usb3/3-2/3-2:1.0/input/input6
> > > > > > generic-usb 0003:05B8:3091.0004: input,hidraw0: USB HID v1.10 Mouse [mouse USB mouse with wheel] on usb-0000:00:10.1-2/input0
> > > > > > input: mouse USB mouse with wheel as /devices/pci0000:00/0000:00:10.1/usb3/3-2/3-2:1.1/input/input7
> > > > > > generic-usb 0003:05B8:3091.0005: input,hidraw1: USB HID v1.10 Keyboard [mouse USB mouse with wheel] on usb-0000:00:10.1-2/input1
> > > > > > 
> > > > > > so still no BUG from kobject refcounting, and the hidraw numbers are the 
> > > > > > same. The major difference seems to be that I am using UHCI and you have 
> > > > > > your HID devices connected through OHCI, is that correct?
> > > > > 
> > > > > Correct. And I should add that it very easy to reproduce here; just
> > > > > disconnecting the usb receiver triggers the WARNING.
> > > > 
> > > > Disabling USB_HIDDEV in my .config solves the problem (there is no
> > > > WARNING anymore when disconnecting the receiver).
> > > 
> > > Reverting bd25f4dd6972755579d0ea50d1a5ace2e9b00d1a with USB_HIDDEV
> > > enabled also solves the problem. So there must be a bug in that patch:
> > > 
> > > commit bd25f4dd6972755579d0ea50d1a5ace2e9b00d1a
> > > Author: Arnd Bergmann <arnd@xxxxxxxx>
> > > Date:   Sun Jul 11 15:34:05 2010 +0200
> > > 
> > >     HID: hiddev: use usb_find_interface, get rid of BKL
> > >     
> > >     This removes the private hiddev_table in the usbhid
> > >     driver and changes it to use usb_find_interface
> > >     instead.
> > >     
> > >     The advantage is that we can avoid the race between
> > >     usb_register_dev and usb_open and no longer need the
> > >     big kernel lock.
> > >     
> > >     This doesn't introduce race condition -- the intf pointer could be
> > >     invalidated only in hiddev_disconnect() through usb_deregister_dev(),
> > >     but that will block on minor_rwsem and not actually remove the device
> > >     until usb_open().
> > >     
> > >     Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> > >     Cc: Jiri Kosina <jkosina@xxxxxxx>
> > >     Cc: "Greg Kroah-Hartman" <gregkh@xxxxxxx>
> > >     Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
> > 
> > Thanks, I had my suspicion about this commit (that's why I asked to you 
> > verify with CONFIG_USB_HIDDEV turned off as well).
> > 
> > Adding Arnd to CC and will look into it myself as well soon.
> > 
> > Arnd, the complete thread can be found at 
> > http://lkml.org/lkml/2010/8/10/280
> 
> Could please those of you, who are able to reproduce the problem, verify 
> whether the patch below (completely untested) makes everything behave 
> again? Thanks.

Yes, everything behaves again. Thanks Jiri.

-- 
»A man who doesn't know he is in prison can never escape.«
William S. Burroughs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux