All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	linux-next@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
	linux-usb@vger.kernel.org, target-devel@vger.kernel.org,
	Felipe Balbi <balbi@ti.com>
Subject: Re: linux-next: Tree for Apr 20 (usb & target)
Date: Sun, 22 Apr 2012 21:01:36 +0200	[thread overview]
Message-ID: <20120422190136.GA31242@linutronix.de> (raw)
In-Reply-To: <20120421153402.GA22953@kroah.com>

* Greg KH | 2012-04-21 08:34:02 [-0700]:

>> > CONFIG_MODULES is not enabled.
>> > CONFIG_TCM_USB_GADGET=y
>> > CONFIG_USB_GADGET=y
>> 
>> Sebastian + Greg-KH (Cc'ed), any ideas why this is the case here..?
>
>I have no idea, sorry.

The short version:
in order to fix this either move the usb-target-gadget to
drivers/usb/gadget/Kconfig and make sure only one gadget can be compiled
at a time or add some kind of depends.

The longer version:
This is a short comming of the gadget framework. We are able to build
multiple UDCs at a time and we can build multiple gadgets _as_ modules.
Since we can not bind & configure via an interface the whole thing works
right now via "modprobe $gadget. There is some infrastructure to accept
multiple UDCs/gadget but the *whole* thing is not complete.
In non-modules mode you can only select one gadget at a time. With the
target gadget living outside of usb/gadget selection it is possible to
select both at the same time which causes the duplicate symbols here.
A "quick" fix is not to define all the functions static and put
maybe_unsued on each function to avoid warnings. This is only duct tape
on top and I would prefer that nobody is sending such a patch. The
result is hardly usefull by a user.
A real fix would to get rid of the "#includes foo.c" and use a helper
module/library instead.
I tried this once and notice that the whole thing relies on
static/global variables which are initialized once on modprobe. So
with the second module loaded (read as rmmod $mod1 && modprobe $mod2)
the gadget framework explodes. Once I noticed that, the patches got out
of Felipe's tree before anyone noticed something. That means we should
first get rid of the global variables and then maybe try again :)

Sebastian

  reply	other threads:[~2012-04-22 19:01 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-20  5:51 linux-next: Tree for Apr 20 Stephen Rothwell
2012-04-20 21:49 ` linux-next: Tree for Apr 20 (usb & target) Randy Dunlap
2012-04-21  9:07   ` Nicholas A. Bellinger
2012-04-21 15:34     ` Greg KH
2012-04-22 19:01       ` Sebastian Andrzej Siewior [this message]
2012-05-04  3:34         ` Nicholas A. Bellinger
2012-05-04  9:41           ` Felipe Balbi
2012-05-04 16:56             ` Nicholas A. Bellinger
2012-05-04 22:15               ` Greg KH
2012-04-23  8:56     ` Felipe Balbi
2012-04-20 22:00 ` linux-next: Tree for Apr 20 (kvm) Randy Dunlap

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=20120422190136.GA31242@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nab@linux-iscsi.org \
    --cc=rdunlap@xenotime.net \
    --cc=sfr@canb.auug.org.au \
    --cc=target-devel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.