All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Kaehlcke <mka@chromium.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: kernel test robot <lkp@intel.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	Rob Herring <robh+dt@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Mathias Nyman <mathias.nyman@intel.com>,
	kbuild-all@lists.01.org, Michal Simek <monstr@monstr.eu>,
	Ravi Chandra Sadineni <ravisadineni@chromium.org>,
	linux-usb@vger.kernel.org, Bastien Nocera <hadess@hadess.net>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v11 2/5] USB: misc: Add onboard_usb_hub driver
Date: Tue, 8 Jun 2021 13:54:55 -0700	[thread overview]
Message-ID: <YL/ZHyvnRlS4AC5N@google.com> (raw)
In-Reply-To: <YL8wqCQZvim7iB02@kroah.com>

On Tue, Jun 08, 2021 at 10:56:08AM +0200, Greg Kroah-Hartman wrote:
> On Mon, Jun 07, 2021 at 11:32:31AM -0700, Matthias Kaehlcke wrote:
> > On Mon, Jun 07, 2021 at 08:23:43PM +0200, Greg Kroah-Hartman wrote:
> > > On Mon, Jun 07, 2021 at 10:51:57AM -0700, Matthias Kaehlcke wrote:
> > > > On Sat, Jun 05, 2021 at 07:18:38AM +0800, kernel test robot wrote:
> > > > > Hi Matthias,
> > > > > 
> > > > > I love your patch! Perhaps something to improve:
> > > > > 
> > > > > [auto build test WARNING on next-20210604]
> > > > > [also build test WARNING on v5.13-rc4]
> > > > > [cannot apply to usb/usb-testing robh/for-next char-misc/char-misc-testing driver-core/driver-core-testing linus/master v5.13-rc4 v5.13-rc3 v5.13-rc2]
> > > > > [If your patch is applied to the wrong git tree, kindly drop us a note.
> > > > > And when submitting patch, we suggest to use '--base' as documented in
> > > > > https://git-scm.com/docs/git-format-patch]
> > > > > 
> > > > > url:    https://github.com/0day-ci/linux/commits/Matthias-Kaehlcke/USB-misc-Add-onboard_usb_hub-driver/20210605-054213
> > > > > base:    ccc252d2e818f6a479441119ad453c3ce7c7c461
> > > > > config: arc-allyesconfig (attached as .config)
> > > > > compiler: arceb-elf-gcc (GCC) 9.3.0
> > > > > reproduce (this is a W=1 build):
> > > > >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > > >         chmod +x ~/bin/make.cross
> > > > >         # https://github.com/0day-ci/linux/commit/7107f99a12058b7147342c6f763d026102bd6606
> > > > >         git remote add linux-review https://github.com/0day-ci/linux
> > > > >         git fetch --no-tags linux-review Matthias-Kaehlcke/USB-misc-Add-onboard_usb_hub-driver/20210605-054213
> > > > >         git checkout 7107f99a12058b7147342c6f763d026102bd6606
> > > > >         # save the attached .config to linux build tree
> > > > >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc 
> > > > > 
> > > > > If you fix the issue, kindly add following tag as appropriate
> > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > > 
> > > > > All warnings (new ones prefixed by >>):
> > > > > 
> > > > > >> drivers/usb/misc/onboard_usb_hub.c:400:6: warning: no previous prototype for 'onboard_hub_create_pdevs' [-Wmissing-prototypes]
> > > > >      400 | void onboard_hub_create_pdevs(struct usb_device *parent_hub, struct list_head *pdev_list)
> > > > >          |      ^~~~~~~~~~~~~~~~~~~~~~~~
> > > > > >> drivers/usb/misc/onboard_usb_hub.c:458:6: warning: no previous prototype for 'onboard_hub_destroy_pdevs' [-Wmissing-prototypes]
> > > > >      458 | void onboard_hub_destroy_pdevs(struct list_head *pdev_list)
> > > > >          |      ^~~~~~~~~~~~~~~~~~~~~~~~~
> > > > 
> > > > Oh, I wasn't aware that prototypes are required for public functions.
> > > 
> > > How else can they be called?
> > 
> > Well, there are prototypes in include/linux/usb/onboard_hub.h, however this
> > header isn't included (anymore) by the driver itself to avoid conflicts
> > when COMPILE_TEST=y (see https://lkml.org/lkml/2021/5/25/975).
> 
> Then that needs to be resolved please.

I already sent at least two versions exclusively to deal with related
issues, but there are still configurations that cause trouble, I
would appreciate some guidance here.

The latest issue was:

> I get a build error when I apply this series to my tree:
> 
> drivers/usb/misc/onboard_usb_hub.c:273:6: error: redefinition of ‘of_is_onboard_usb_hub’
>   273 | bool of_is_onboard_usb_hub(const struct device_node *np)
>       |      ^~~~~~~~~~~~~~~~~~~~~
> In file included from drivers/usb/misc/onboard_usb_hub.c:21:
> ./include/linux/usb/onboard_hub.h:9:20: note: previous definition of ‘of_is_onboard_usb_hub’ with type ‘bool(const struct device_node *)’ {aka ‘_Bool(const struct device_node *)’}
>     9 | static inline bool of_is_onboard_usb_hub(const struct device_node *np)
>       |                    ^~~~~~~~~~~~~~~~~~~~~

This was with the following declaration in the header:

  #ifdef CONFIG_USB_ONBOARD_HUB
  bool of_is_onboard_usb_hub(const struct device_node *np);
  #else
  static inline bool of_is_onboard_usb_hub(const struct device_node *np)
  {
    return false;
  }
  #endif

My initial assumption was that in this case the configuration was
COMPILE_TEST=y and USB_ONBOARD_HUB=n, however should onboard_usb_hub.c
even be compiled with USB_ONBOARD_HUB=n? IIUC COMPILE_TEST=y allows
to compile certain drivers even when they couldn't actually run/be
loaded on the target platform, but the config option would still need
to be enabled.

Then again, there was apparently an attempt to compile onboard_usb_hub.c,
however the static inline from the header was picked, which suggests
CONFIG_USB_ONBOARD_HUB=n.

Also please let me know if you have other comments besides the prototype
question, I'd prefer to avoid version churn if possible, this series
already had a bit of that primarily due to the prototype issue.

Thanks

Matthias

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Kaehlcke <mka@chromium.org>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v11 2/5] USB: misc: Add onboard_usb_hub driver
Date: Tue, 08 Jun 2021 13:54:55 -0700	[thread overview]
Message-ID: <YL/ZHyvnRlS4AC5N@google.com> (raw)
In-Reply-To: <YL8wqCQZvim7iB02@kroah.com>

[-- Attachment #1: Type: text/plain, Size: 5125 bytes --]

On Tue, Jun 08, 2021 at 10:56:08AM +0200, Greg Kroah-Hartman wrote:
> On Mon, Jun 07, 2021 at 11:32:31AM -0700, Matthias Kaehlcke wrote:
> > On Mon, Jun 07, 2021 at 08:23:43PM +0200, Greg Kroah-Hartman wrote:
> > > On Mon, Jun 07, 2021 at 10:51:57AM -0700, Matthias Kaehlcke wrote:
> > > > On Sat, Jun 05, 2021 at 07:18:38AM +0800, kernel test robot wrote:
> > > > > Hi Matthias,
> > > > > 
> > > > > I love your patch! Perhaps something to improve:
> > > > > 
> > > > > [auto build test WARNING on next-20210604]
> > > > > [also build test WARNING on v5.13-rc4]
> > > > > [cannot apply to usb/usb-testing robh/for-next char-misc/char-misc-testing driver-core/driver-core-testing linus/master v5.13-rc4 v5.13-rc3 v5.13-rc2]
> > > > > [If your patch is applied to the wrong git tree, kindly drop us a note.
> > > > > And when submitting patch, we suggest to use '--base' as documented in
> > > > > https://git-scm.com/docs/git-format-patch]
> > > > > 
> > > > > url:    https://github.com/0day-ci/linux/commits/Matthias-Kaehlcke/USB-misc-Add-onboard_usb_hub-driver/20210605-054213
> > > > > base:    ccc252d2e818f6a479441119ad453c3ce7c7c461
> > > > > config: arc-allyesconfig (attached as .config)
> > > > > compiler: arceb-elf-gcc (GCC) 9.3.0
> > > > > reproduce (this is a W=1 build):
> > > > >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > > >         chmod +x ~/bin/make.cross
> > > > >         # https://github.com/0day-ci/linux/commit/7107f99a12058b7147342c6f763d026102bd6606
> > > > >         git remote add linux-review https://github.com/0day-ci/linux
> > > > >         git fetch --no-tags linux-review Matthias-Kaehlcke/USB-misc-Add-onboard_usb_hub-driver/20210605-054213
> > > > >         git checkout 7107f99a12058b7147342c6f763d026102bd6606
> > > > >         # save the attached .config to linux build tree
> > > > >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc 
> > > > > 
> > > > > If you fix the issue, kindly add following tag as appropriate
> > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > > 
> > > > > All warnings (new ones prefixed by >>):
> > > > > 
> > > > > >> drivers/usb/misc/onboard_usb_hub.c:400:6: warning: no previous prototype for 'onboard_hub_create_pdevs' [-Wmissing-prototypes]
> > > > >      400 | void onboard_hub_create_pdevs(struct usb_device *parent_hub, struct list_head *pdev_list)
> > > > >          |      ^~~~~~~~~~~~~~~~~~~~~~~~
> > > > > >> drivers/usb/misc/onboard_usb_hub.c:458:6: warning: no previous prototype for 'onboard_hub_destroy_pdevs' [-Wmissing-prototypes]
> > > > >      458 | void onboard_hub_destroy_pdevs(struct list_head *pdev_list)
> > > > >          |      ^~~~~~~~~~~~~~~~~~~~~~~~~
> > > > 
> > > > Oh, I wasn't aware that prototypes are required for public functions.
> > > 
> > > How else can they be called?
> > 
> > Well, there are prototypes in include/linux/usb/onboard_hub.h, however this
> > header isn't included (anymore) by the driver itself to avoid conflicts
> > when COMPILE_TEST=y (see https://lkml.org/lkml/2021/5/25/975).
> 
> Then that needs to be resolved please.

I already sent at least two versions exclusively to deal with related
issues, but there are still configurations that cause trouble, I
would appreciate some guidance here.

The latest issue was:

> I get a build error when I apply this series to my tree:
> 
> drivers/usb/misc/onboard_usb_hub.c:273:6: error: redefinition of ‘of_is_onboard_usb_hub’
>   273 | bool of_is_onboard_usb_hub(const struct device_node *np)
>       |      ^~~~~~~~~~~~~~~~~~~~~
> In file included from drivers/usb/misc/onboard_usb_hub.c:21:
> ./include/linux/usb/onboard_hub.h:9:20: note: previous definition of ‘of_is_onboard_usb_hub’ with type ‘bool(const struct device_node *)’ {aka ‘_Bool(const struct device_node *)’}
>     9 | static inline bool of_is_onboard_usb_hub(const struct device_node *np)
>       |                    ^~~~~~~~~~~~~~~~~~~~~

This was with the following declaration in the header:

  #ifdef CONFIG_USB_ONBOARD_HUB
  bool of_is_onboard_usb_hub(const struct device_node *np);
  #else
  static inline bool of_is_onboard_usb_hub(const struct device_node *np)
  {
    return false;
  }
  #endif

My initial assumption was that in this case the configuration was
COMPILE_TEST=y and USB_ONBOARD_HUB=n, however should onboard_usb_hub.c
even be compiled with USB_ONBOARD_HUB=n? IIUC COMPILE_TEST=y allows
to compile certain drivers even when they couldn't actually run/be
loaded on the target platform, but the config option would still need
to be enabled.

Then again, there was apparently an attempt to compile onboard_usb_hub.c,
however the static inline from the header was picked, which suggests
CONFIG_USB_ONBOARD_HUB=n.

Also please let me know if you have other comments besides the prototype
question, I'd prefer to avoid version churn if possible, this series
already had a bit of that primarily due to the prototype issue.

Thanks

Matthias

  reply	other threads:[~2021-06-08 20:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-04 21:40 [PATCH v11 0/5] USB: misc: Add onboard_usb_hub driver Matthias Kaehlcke
2021-06-04 21:40 ` [PATCH v11 1/5] dt-bindings: usb: Add binding for Realtek RTS5411 hub controller Matthias Kaehlcke
2021-06-04 21:40 ` [PATCH v11 2/5] USB: misc: Add onboard_usb_hub driver Matthias Kaehlcke
2021-06-04 23:18   ` kernel test robot
2021-06-04 23:18     ` kernel test robot
2021-06-07 17:51     ` Matthias Kaehlcke
2021-06-07 17:51       ` Matthias Kaehlcke
2021-06-07 18:23       ` Greg Kroah-Hartman
2021-06-07 18:23         ` Greg Kroah-Hartman
2021-06-07 18:32         ` Matthias Kaehlcke
2021-06-07 18:32           ` Matthias Kaehlcke
2021-06-08  8:56           ` Greg Kroah-Hartman
2021-06-08  8:56             ` Greg Kroah-Hartman
2021-06-08 20:54             ` Matthias Kaehlcke [this message]
2021-06-08 20:54               ` Matthias Kaehlcke
2021-06-09  4:47               ` Greg Kroah-Hartman
2021-06-09  4:47                 ` Greg Kroah-Hartman
2021-06-04 21:40 ` [PATCH v11 3/5] of/platform: Add stubs for of_platform_device_create/destroy() Matthias Kaehlcke
2021-06-04 21:41 ` [PATCH v11 4/5] usb: host: xhci-plat: Create platform device for onboard hubs in probe() Matthias Kaehlcke
2021-06-04 21:41 ` [PATCH v11 5/5] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub Matthias Kaehlcke
2021-06-05  7:01 ` [PATCH v11 0/5] USB: misc: Add onboard_usb_hub driver Greg Kroah-Hartman

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=YL/ZHyvnRlS4AC5N@google.com \
    --to=mka@chromium.org \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hadess@hadess.net \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mathias.nyman@intel.com \
    --cc=monstr@monstr.eu \
    --cc=ravisadineni@chromium.org \
    --cc=robh+dt@kernel.org \
    --cc=stern@rowland.harvard.edu \
    /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.