From: Ivaylo Dimitrov <ivo.g.dimitrov.75-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: "Felipe Balbi"
<felipe.balbi-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
"Tony Lindgren" <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
"Bin Liu" <b-liu-l0cyMroinI0@public.gmane.org>,
"pali Rohár" <pali.rohar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"Greg Kroah-Hartman"
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
"Robert Baldyga"
<r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
"Andrzej Pietrasiewicz"
<andrzej.p-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Subject: Re: USB gadgets with configfs hang reboot
Date: Thu, 31 Mar 2016 19:32:44 +0300 [thread overview]
Message-ID: <56FD512C.2070108@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1603301509180.2194-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
On 30.03.2016 22:25, Alan Stern wrote:
> On Wed, 30 Mar 2016, Ivaylo Dimitrov wrote:
>
>>>>> seems to be created twice :). Maybe the problem is that the first time
>>>>> musb-hdrc is probed it fails with -EPROBE_DEFER, however that failure is
>>>>> after gadget drivers got loaded and noone unloads them.
>>>>
>>>> gadget drivers will get added to a pending list, then later they'll
>>>> bind. But they shouldn't bind() twice, unless there are multiple
>>>> interfaces for them.
>>>>
>>>
>>> Well, then it seems we have problem, as the 2 unbind() calls are with
>>> one and the same "common" pointer (again, from memory).
>>>
>>>>> Just some wild guesses based on my memories as I've lost the logs (power
>>>>> outage). For sure I can recreate them if needed.
>>>>
>>>> okay.
>>>
>>> I will redo dump_stack() and printks and will provide logs as soon as I
>>> have some time, so to stop counting on my memories.
>>>
>>
>> Please find attached the relevant logs. It really seems that g_nokia is
>> probed twice, with all the gadgets in it created two times. I am
>> starting to suspect 855ed04a3758b205e84b269f92d26ab36ed8e2f7 ("usb:
>> gadget: udc-core: independent registration of gadgets and gadget
>> drivers") has something to do with the problem, though reverting it
>> resulted in g_nokia not being probed at all :)
>
> The problem is not caused by nokia_bind() getting called twice. The
> log clearly shows that nokia_bind() is called only once, but it calls
> usb_add_config() from two different places:
>
> Jan 1 02:00:10 Nokia-N900 kernel: [ 8.002838] [<c040c5b4>] (usb_add_config) from [<c041b274>] (nokia_bind+0x160/0x2f0)
> Jan 1 02:00:10 Nokia-N900 kernel: [ 8.014526] [<c041b274>] (nokia_bind) from [<c040e128>] (composite_bind+0x68/0x1a0)
> ...
> Jan 1 02:00:10 Nokia-N900 kernel: [ 8.381286] [<c040c5b4>] (usb_add_config) from [<c041b28c>] (nokia_bind+0x178/0x2f0)
> Jan 1 02:00:10 Nokia-N900 kernel: [ 8.394348] [<c041b28c>] (nokia_bind) from [<c040e128>] (composite_bind+0x68/0x1a0)
>
> Everything else along the two pathways is the same, so this is where
> the multiple binds come from. And indeed, looking at the code in
> nokia_bind() you can see the two calls:
>
> /* finally register the configuration */
> status = usb_add_config(cdev, &nokia_config_500ma_driver,
> nokia_bind_config);
> if (status < 0)
> goto err_msg_luns;
>
> status = usb_add_config(cdev, &nokia_config_100ma_driver,
> nokia_bind_config);
>
Right, somehow I've overslept there are two different nokia_bind+XXX values.
> This isn't supposed to cause any problems. The two instances should
> never run at the same time, because they belong to different configs.
>
The problem seems to be that fsg driver creates a thread for every
fsg_bind() call, which overwrites common->thread_task without first
checking if a thread is already created. I don't know the idea behind -
should it have only one thread for all instances, or there should be a
thread per instance, but anyway the current implementation looks wrong.
Ivo
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-03-31 16:32 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-15 22:48 USB gadgets with configfs hang reboot Tony Lindgren
[not found] ` <20160115224839.GA19432-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-01-16 0:09 ` Tony Lindgren
2016-01-16 10:40 ` Ivaylo Dimitrov
[not found] ` <569A1E32.1020502-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-01-18 16:16 ` Tony Lindgren
2016-03-23 18:24 ` Ivaylo Dimitrov
[not found] ` <56F2DF79.6010903-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-24 6:50 ` Felipe Balbi
[not found] ` <87fuvgxtc3.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-24 7:03 ` Ivaylo Dimitrov
[not found] ` <56F3914B.4010206-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-24 7:11 ` Felipe Balbi
[not found] ` <87a8loxsdm.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-24 18:46 ` Ivaylo Dimitrov
[not found] ` <56F4361C.9040907-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-30 10:22 ` Felipe Balbi
[not found] ` <877fgkqn8c.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-30 13:29 ` Ivaylo Dimitrov
[not found] ` <56FBD4BF.6090905-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-30 13:38 ` Felipe Balbi
[not found] ` <87h9fohyr1.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-30 14:01 ` Ivaylo Dimitrov
[not found] ` <56FBDC51.9020602-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-30 14:33 ` Pali Rohár
2016-03-30 18:50 ` Ivaylo Dimitrov
[not found] ` <56FC1FD8.6090003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-30 18:54 ` Ivaylo Dimitrov
2016-03-30 19:25 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1603301509180.2194-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-03-30 19:41 ` Tony Lindgren
2016-03-31 16:32 ` Ivaylo Dimitrov [this message]
[not found] ` <56FD512C.2070108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-31 17:00 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1603311255560.1516-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-04-01 17:02 ` Michal Nazarewicz
[not found] ` <xa1tmvpdz2h4.fsf-deATy8a+UHjQT0dZR+AlfA@public.gmane.org>
2016-04-01 19:18 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1604011452580.1957-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-04-01 22:16 ` Michal Nazarewicz
[not found] ` <xa1tbn5tynyp.fsf-deATy8a+UHjQT0dZR+AlfA@public.gmane.org>
2016-04-02 14:55 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1604021031030.19366-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-04-04 12:57 ` Michal Nazarewicz
[not found] ` <xa1ty48tilai.fsf-deATy8a+UHjQT0dZR+AlfA@public.gmane.org>
2016-04-04 15:04 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1604041038510.1704-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-04-04 18:18 ` Michal Nazarewicz
[not found] ` <xa1ttwjhi6fo.fsf-deATy8a+UHjQT0dZR+AlfA@public.gmane.org>
2016-04-04 19:37 ` Alan Stern
2016-04-04 16:18 ` Ivaylo Dimitrov
[not found] ` <570293E8.2060406-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-04-04 18:48 ` Michal Nazarewicz
2016-04-05 15:18 ` Michal Nazarewicz
2016-04-04 4:45 ` Felipe Balbi
2016-04-04 4:41 ` Felipe Balbi
2016-04-08 20:13 ` Ivaylo Dimitrov
[not found] ` <57081105.2050206-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-04-18 7:02 ` Ivaylo Dimitrov
[not found] ` <571486A1.2060006-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-06 12:32 ` Pali Rohár
2016-04-18 7:55 ` Felipe Balbi
[not found] ` <87oa97gxkw.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-25 19:00 ` Ivaylo Dimitrov
[not found] ` <571E6943.30305-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-04-26 6:22 ` Felipe Balbi
[not found] ` <87a8kgrisz.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-26 15:03 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1604261102000.2038-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-04-26 16:44 ` Ivaylo Dimitrov
[not found] ` <571F9AD4.8010900-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-04-26 16:49 ` Tony Lindgren
[not found] ` <20160426164918.GA5995-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-04-26 18:13 ` Ivaylo Dimitrov
2016-01-22 10:35 ` Andrzej Pietrasiewicz
[not found] ` <56A205E4.6050305-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-01-22 18:28 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56FD512C.2070108@gmail.com \
--to=ivo.g.dimitrov.75-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=andrzej.p-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=b-liu-l0cyMroinI0@public.gmane.org \
--cc=felipe.balbi-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=pali.rohar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
--cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).