Dear Alan,
Thanks for your reply ,
We check on 3.2.34 and 3.6.7 on X86 host machine. and result is same
without connecting Bluetooth device.
I am attaching log
On Thu, Nov 22, 2012 at 9:08 PM, Alan Stern <[email protected]> wrote:
> On Thu, 22 Nov 2012, naveen yadav wrote:
>
>> Hi,
>>
>> we are using 3.2.2 version of kernel.
>>
>> When Bluetooth(connected to USB 2.0) is suspended, urb->use_count
>> value does not become zero and eventually there is a continuous wait
>> in wait_event() of usb_kill_urb().
>> wait_event(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0);
>>
>> urb_count is incremented at only one place in usb_hcd_submit_urb() and
>
> That's how it is _supposed_ to work. You have discovered that
> something else increments urb->use_count.
>
>> decremented in usb_hcd_giveback_urb(). (Also, in error case inside
>> usb_hcd_submit_urb()). After taking print of urb->use_count at all
>> these places, I see, even without connecting the Bluetooth device
>> urb_count is incremented while below execution has never been
>> decremented.
>
>> .....
>> [ 3.490000] ====>[usb_hcd_giveback_urb][1626] urb->use_count = 0
>> pipe=2147484032 [vid=0x1d6b] [pid=0x0002][devno=1]
>> [ 3.540000] ====>[usb_hcd_submit_urb][1482] urb->use_count = 2
>> pipe=1077969280 [vid=0x1d6b] [pid=0x0002][devno=1]
>> [ 3.540000] ====>[usb_hcd_giveback_urb][1626] urb->use_count = 1
>> pipe=1077969280 [vid=0x1d6b] [pid=0x0002][devno=1]
>
> Now you need to find out what other code has changed urb->use_count and
> fix it.
>
> Alan Stern
>
On Mon, 26 Nov 2012, naveen yadav wrote:
> Dear Alan,
>
> Thanks for your reply ,
>
> We check on 3.2.34 and 3.6.7 on X86 host machine. and result is same
> without connecting Bluetooth device.
> I am attaching log
Yes, very good. But you still have to do what I mentioned in my
earlier email:
> On Thu, Nov 22, 2012 at 9:08 PM, Alan Stern <[email protected]> wrote:
> > Now you need to find out what other code has changed urb->use_count and
> > fix it.
Alan Stern