Re: linux-next: build failure after merge of the usb and usb-gadget trees

Felipe Balbi
2019-07-04T11:06:17Z

Hi,

Greg KH <greg@kroah.com> writes:

> On Thu, Jul 04, 2019 at 12:44:08PM +0300, Felipe Balbi wrote:
>>
>> Hi,
>>
>> Pawel Laszczak <pawell@cadence.com> writes:
>>
>> >>
>> >>
>> >>Hi,
>> >>
>> >>Pawel Laszczak <pawell@cadence.com> writes:
>> >>
>> >>>>
>> >>>>Hi,
>> >>>>
>> >>>>On Thu, Jul 4, 2019 at 9:59 AM Greg KH <greg@kroah.com> wrote:
>> >>>>>
>> >>>>> On Thu, Jul 04, 2019 at 04:34:58PM +1000, Stephen Rothwell wrote:
>> >>>>> > Hi all,
>> >>>>> >
>> >>>>> > After merging the usb tree, today's linux-next build (arm
>> >>>>> > multi_v7_defconfig) failed like this:
>> >>>>> >
>> >>>>> > arm-linux-gnueabi-ld: drivers/usb/dwc3/trace.o: in function `trace_raw_output_dwc3_log_ctrl':
>> >>>>> > trace.c:(.text+0x119c): undefined reference to `usb_decode_ctrl'
>> >>>>> >
>> >>>>> > Caused by commit
>> >>>>> >
>> >>>>> > 3db1b636c07e ("usb:gadget Separated decoding functions from dwc3 driver.")
>> >>>>> >
>> >>>>> > I have used the usb tree from next-20190703 for today.
>> >>>>> >
>> >>>>> > This also occurs in the usb-gadget tree so I have used the version of
>> >>>>> > that from next-20190703 as well.
>> >>>>>
>> >>>>> Odd, I thought I pulled the usb-gadget tree into mine. Felipe, can you
>> >>>>> take a look at this to see if I messed something up?
>> >>>>
>> >>>>This looks like it was caused by Pawel's patches.
>> >>>>
>> >>>>I'll try to reproduce here and see what's causing it.
>> >>>
>> >>> Problem is in my Patch. I reproduced it, but I don't understand why compiler
>> >>> complains about usb_decode_ctrl. It's compiled into libcomposite.ko and
>> >>> declaration is in drivers/usb/gadget.h.
>> >>
>> >>That's because in multi_v7_defconfig dwc3 is built-in while libcomposite
>> >>is a module:
>> >>
>> >>CONFIG_USB_DWC3=y
>> >>CONFIG_USB_LIBCOMPOSITE=m
>> >>
>> >>
>> >>I remember that when you were doing this work, I asked you to move
>> >>functions to usb/common. Why did you deviate from that suggestion? It's
>> >>clear that decoding a ctrl request can be used by peripheral and host
>> >>and we wouldn't have to deal with this problem if you had just followed
>> >>the suggestion.
>> >
>> > Some time ago Greg wrote:
>> > " It's nice to have these in a common place, but you just bloated all of
>> > the USB-enabled systems in the world for the use of 2 odd-ball system
>> > controllers that almost no one has :) "
>> >
>> > So I moved these functions to gadget directory.
>> >
>> > It was mistake that I added debug.c file to libcomposite.ko.
>>
>> The plan is to use this decoding function for xHCI as well. Other host
>> controllers can use it as well.
>>
>> The biggest mistake was to put this under gadget. What you should have
>> done was create a file under usb/common that only gets compile in if
>> tracing is enabled.
>>
>> Then there's no bloating unless you have a kernel purposefuly built for
>> debugging and tracing.
>>
>> Greg, does that work for you?
>
> I guess, but I'd like to see patches before answering that :)

Sure, understandable. I should've done a better job at filtering that
out. Sorry about htat

--
balbi