From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Felipe Balbi <balbi@kernel.org>, linux-usb@vger.kernel.org
Cc: Greg KH <greg@kroah.com>, Joel Stanley <joel@jms.id.au>,
Andrew Jeffery <andrew@aj.id.au>
Subject: [v6,2/2] usb/gadget: Add driver for Aspeed SoC virtual hub
Date: Sat, 24 Mar 2018 12:19:39 +1100 [thread overview]
Message-ID: <1521854379.16434.356.camel@kernel.crashing.org> (raw)
On Fri, 2018-03-23 at 09:54 +0200, Felipe Balbi wrote:
> Hi,
>
> Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
>
> > The Aspeed BMC SoCs support a "virtual hub" function. It provides some
> > HW support for a top-level USB2 hub behind which sit 5 gadget "ports".
> >
> > This driver adds support for the full functionality, emulating the
> > hub standard requests and exposing 5 UDC gadget drivers corresponding
> > to the ports.
> >
> > The hub itself has HW provided dedicated EP0 and EP1 (the latter for
> > hub interrupts). It also has dedicated EP0s for each function. For
> > other endpoints, there's a pool of 15 "generic" endpoints that are
> > shared among the ports.
> >
> > The driver relies on my previous patch adding a "dispose" EP op to
> > handle EP allocation between ports. EPs are allocated from the shared
> > pool in the UDC "match_ep" callback and assigned to the UDC instance
> > (added to the gadget ep_list).
> >
> > When the composite driver gets unbound, the new hook will allow the UDC
> > to clean things up and return those EPs to the shared pool.
> >
> > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > ---
>
> doesn't compile:
>
> In file included from ./include/linux/bitmap.h:9:0,
> from ./include/linux/cpumask.h:12,
> from ./arch/x86/include/asm/cpumask.h:5,
> from ./arch/x86/include/asm/msr.h:11,
> from ./arch/x86/include/asm/processor.h:21,
> from ./arch/x86/include/asm/cpufeature.h:5,
> from ./arch/x86/include/asm/thread_info.h:53,
> from ./include/linux/thread_info.h:38,
> from ./arch/x86/include/asm/preempt.h:7,
> from ./include/linux/preempt.h:81,
> from ./include/linux/spinlock.h:51,
> from ./include/linux/seqlock.h:36,
> from ./include/linux/time.h:6,
> from ./include/linux/stat.h:19,
> from ./include/linux/module.h:10,
> from drivers/usb/gadget/udc/aspeed-vhub/hub.c:16:
> In function ‘memcpy’,
> inlined from ‘ast_vhub_rep_desc’ at drivers/usb/gadget/udc/aspeed-vhub/hub.c:276:2:
> ./include/linux/string.h:341:4: error: call to ‘__read_overflow2’ declared with attribute error: detected read beyond size of object passed as 2nd parameter
> __read_overflow2();
That's really odd... some new gcc thing ? I don't understand where the
overflow would occur... Do you see anything ? Unless my brain is acting
up, there is no overflow and gcc is bogus:
I just hand counted the size of the 3 possible structures "desc" can
point to and compared to the constants used for the size, and it all
fits.
Unfortunately, I can't seem to reproduce with the version of cross
compiler I'm using here, so I'm not sure what construct to use to
make gcc stop erroneously barfing...
Cheers,
Ben.
> ^~~~~~~~~~~~~~~~~~
> make[4]: *** [scripts/Makefile.build:316: drivers/usb/gadget/udc/aspeed-vhub/hub.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> make[3]: *** [scripts/Makefile.build:575: drivers/usb/gadget/udc/aspeed-vhub] Error 2
> make[3]: *** Waiting for unfinished jobs....
> make[2]: *** [scripts/Makefile.build:575: drivers/usb/gadget/udc] Error 2
> make[1]: *** [scripts/Makefile.build:575: drivers/usb/gadget] Error 2
> make: *** [Makefile:1722: drivers/usb/] Error 2
>
>
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2018-03-24 1:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-24 1:19 Benjamin Herrenschmidt [this message]
-- strict thread matches above, loose matches on Subject: below --
2018-03-26 0:25 [v6,2/2] usb/gadget: Add driver for Aspeed SoC virtual hub Benjamin Herrenschmidt
2018-03-25 1:25 Benjamin Herrenschmidt
2018-03-23 7:54 Felipe Balbi
2018-03-23 2:44 Benjamin Herrenschmidt
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=1521854379.16434.356.camel@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=andrew@aj.id.au \
--cc=balbi@kernel.org \
--cc=greg@kroah.com \
--cc=joel@jms.id.au \
--cc=linux-usb@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.