From: kernel test robot <lkp@intel.com>
To: Yinbo Zhu <zhuyinbo@loongson.cn>, Jiri Kosina <jikos@kernel.org>,
Benjamin Tissoires <benjamin.tissoires@redhat.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
Mathias Nyman <mathias.nyman@linux.intel.com>,
Alan Stern <stern@rowland.harvard.edu>,
Rajat Jain <rajatja@google.com>,
Chris Chiu <chris.chiu@canonical.com>,
linux-usb@vger.kernel.org, linux-input@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [PATCH v1 2/2] usb: core: enable remote wakeup function for usb controller
Date: Wed, 8 Dec 2021 22:10:49 +0800 [thread overview]
Message-ID: <202112082256.02orEkq6-lkp@intel.com> (raw)
In-Reply-To: <1638956391-20149-2-git-send-email-zhuyinbo@loongson.cn>
Hi Yinbo,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on hid/for-next v5.16-rc4 next-20211208]
[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/Yinbo-Zhu/HID-usbhid-enable-remote-wakeup-function-for-usbhid-device/20211208-174035
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: hexagon-randconfig-r045-20211207 (https://download.01.org/0day-ci/archive/20211208/202112082256.02orEkq6-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
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/e900e8c9eb7fd4fda123036095e7e7ec87439547
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yinbo-Zhu/HID-usbhid-enable-remote-wakeup-function-for-usbhid-device/20211208-174035
git checkout e900e8c9eb7fd4fda123036095e7e7ec87439547
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/usb/core/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/usb/core/hub.c:2550:10: error: implicit declaration of function 'usb_enable_remote_wakeup' [-Werror,-Wimplicit-function-declaration]
err = usb_enable_remote_wakeup(udev);
^
1 error generated.
vim +/usb_enable_remote_wakeup +2550 drivers/usb/core/hub.c
2488
2489 /**
2490 * usb_new_device - perform initial device setup (usbcore-internal)
2491 * @udev: newly addressed device (in ADDRESS state)
2492 *
2493 * This is called with devices which have been detected but not fully
2494 * enumerated. The device descriptor is available, but not descriptors
2495 * for any device configuration. The caller must have locked either
2496 * the parent hub (if udev is a normal device) or else the
2497 * usb_bus_idr_lock (if udev is a root hub). The parent's pointer to
2498 * udev has already been installed, but udev is not yet visible through
2499 * sysfs or other filesystem code.
2500 *
2501 * This call is synchronous, and may not be used in an interrupt context.
2502 *
2503 * Only the hub driver or root-hub registrar should ever call this.
2504 *
2505 * Return: Whether the device is configured properly or not. Zero if the
2506 * interface was registered with the driver core; else a negative errno
2507 * value.
2508 *
2509 */
2510 int usb_new_device(struct usb_device *udev)
2511 {
2512 struct usb_host_config *config;
2513 int ncfg;
2514 int err;
2515
2516 if (udev->parent) {
2517 /* Initialize non-root-hub device wakeup to disabled;
2518 * device (un)configuration controls wakeup capable
2519 * sysfs power/wakeup controls wakeup enabled/disabled
2520 */
2521 device_init_wakeup(&udev->dev, 0);
2522 }
2523
2524 /* Tell the runtime-PM framework the device is active */
2525 pm_runtime_set_active(&udev->dev);
2526 pm_runtime_get_noresume(&udev->dev);
2527 pm_runtime_use_autosuspend(&udev->dev);
2528 pm_runtime_enable(&udev->dev);
2529
2530 /* By default, forbid autosuspend for all devices. It will be
2531 * allowed for hubs during binding.
2532 */
2533 usb_disable_autosuspend(udev);
2534
2535 err = usb_enumerate_device(udev); /* Read descriptors */
2536 if (err < 0)
2537 goto fail;
2538 dev_dbg(&udev->dev, "udev %d, busnum %d, minor = %d\n",
2539 udev->devnum, udev->bus->busnum,
2540 (((udev->bus->busnum-1) * 128) + (udev->devnum-1)));
2541 /* export the usbdev device-node for libusb */
2542 udev->dev.devt = MKDEV(USB_DEVICE_MAJOR,
2543 (((udev->bus->busnum-1) * 128) + (udev->devnum-1)));
2544
2545 for (ncfg = 0; ncfg < udev->descriptor.bNumConfigurations; ncfg++) {
2546 config = &udev->config[ncfg];
2547 if ((config->desc.bmAttributes & (1 << 5)) == 0)
2548 break;
2549 if (ncfg + 1 == udev->descriptor.bNumConfigurations) {
> 2550 err = usb_enable_remote_wakeup(udev);
2551 if (err)
2552 dev_dbg(&udev->dev,
2553 "won't remote wakeup, err %d\n", err);
2554 }
2555 }
2556
2557 /* Tell the world! */
2558 announce_device(udev);
2559
2560 if (udev->serial)
2561 add_device_randomness(udev->serial, strlen(udev->serial));
2562 if (udev->product)
2563 add_device_randomness(udev->product, strlen(udev->product));
2564 if (udev->manufacturer)
2565 add_device_randomness(udev->manufacturer,
2566 strlen(udev->manufacturer));
2567
2568 device_enable_async_suspend(&udev->dev);
2569
2570 /* check whether the hub or firmware marks this port as non-removable */
2571 set_usb_port_removable(udev);
2572
2573 /* Register the device. The device driver is responsible
2574 * for configuring the device and invoking the add-device
2575 * notifier chain (used by usbfs and possibly others).
2576 */
2577 err = device_add(&udev->dev);
2578 if (err) {
2579 dev_err(&udev->dev, "can't device_add, error %d\n", err);
2580 goto fail;
2581 }
2582
2583 /* Create link files between child device and usb port device. */
2584 if (udev->parent) {
2585 struct usb_hub *hub = usb_hub_to_struct_hub(udev->parent);
2586 int port1 = udev->portnum;
2587 struct usb_port *port_dev = hub->ports[port1 - 1];
2588
2589 err = sysfs_create_link(&udev->dev.kobj,
2590 &port_dev->dev.kobj, "port");
2591 if (err)
2592 goto fail;
2593
2594 err = sysfs_create_link(&port_dev->dev.kobj,
2595 &udev->dev.kobj, "device");
2596 if (err) {
2597 sysfs_remove_link(&udev->dev.kobj, "port");
2598 goto fail;
2599 }
2600
2601 if (!test_and_set_bit(port1, hub->child_usage_bits))
2602 pm_runtime_get_sync(&port_dev->dev);
2603 }
2604
2605 (void) usb_create_ep_devs(&udev->dev, &udev->ep0, udev);
2606 usb_mark_last_busy(udev);
2607 pm_runtime_put_sync_autosuspend(&udev->dev);
2608 return err;
2609
2610 fail:
2611 usb_set_device_state(udev, USB_STATE_NOTATTACHED);
2612 pm_runtime_disable(&udev->dev);
2613 pm_runtime_set_suspended(&udev->dev);
2614 return err;
2615 }
2616
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v1 2/2] usb: core: enable remote wakeup function for usb controller
Date: Wed, 08 Dec 2021 22:10:49 +0800 [thread overview]
Message-ID: <202112082256.02orEkq6-lkp@intel.com> (raw)
In-Reply-To: <1638956391-20149-2-git-send-email-zhuyinbo@loongson.cn>
[-- Attachment #1: Type: text/plain, Size: 7170 bytes --]
Hi Yinbo,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on hid/for-next v5.16-rc4 next-20211208]
[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/Yinbo-Zhu/HID-usbhid-enable-remote-wakeup-function-for-usbhid-device/20211208-174035
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: hexagon-randconfig-r045-20211207 (https://download.01.org/0day-ci/archive/20211208/202112082256.02orEkq6-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
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/e900e8c9eb7fd4fda123036095e7e7ec87439547
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yinbo-Zhu/HID-usbhid-enable-remote-wakeup-function-for-usbhid-device/20211208-174035
git checkout e900e8c9eb7fd4fda123036095e7e7ec87439547
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/usb/core/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/usb/core/hub.c:2550:10: error: implicit declaration of function 'usb_enable_remote_wakeup' [-Werror,-Wimplicit-function-declaration]
err = usb_enable_remote_wakeup(udev);
^
1 error generated.
vim +/usb_enable_remote_wakeup +2550 drivers/usb/core/hub.c
2488
2489 /**
2490 * usb_new_device - perform initial device setup (usbcore-internal)
2491 * @udev: newly addressed device (in ADDRESS state)
2492 *
2493 * This is called with devices which have been detected but not fully
2494 * enumerated. The device descriptor is available, but not descriptors
2495 * for any device configuration. The caller must have locked either
2496 * the parent hub (if udev is a normal device) or else the
2497 * usb_bus_idr_lock (if udev is a root hub). The parent's pointer to
2498 * udev has already been installed, but udev is not yet visible through
2499 * sysfs or other filesystem code.
2500 *
2501 * This call is synchronous, and may not be used in an interrupt context.
2502 *
2503 * Only the hub driver or root-hub registrar should ever call this.
2504 *
2505 * Return: Whether the device is configured properly or not. Zero if the
2506 * interface was registered with the driver core; else a negative errno
2507 * value.
2508 *
2509 */
2510 int usb_new_device(struct usb_device *udev)
2511 {
2512 struct usb_host_config *config;
2513 int ncfg;
2514 int err;
2515
2516 if (udev->parent) {
2517 /* Initialize non-root-hub device wakeup to disabled;
2518 * device (un)configuration controls wakeup capable
2519 * sysfs power/wakeup controls wakeup enabled/disabled
2520 */
2521 device_init_wakeup(&udev->dev, 0);
2522 }
2523
2524 /* Tell the runtime-PM framework the device is active */
2525 pm_runtime_set_active(&udev->dev);
2526 pm_runtime_get_noresume(&udev->dev);
2527 pm_runtime_use_autosuspend(&udev->dev);
2528 pm_runtime_enable(&udev->dev);
2529
2530 /* By default, forbid autosuspend for all devices. It will be
2531 * allowed for hubs during binding.
2532 */
2533 usb_disable_autosuspend(udev);
2534
2535 err = usb_enumerate_device(udev); /* Read descriptors */
2536 if (err < 0)
2537 goto fail;
2538 dev_dbg(&udev->dev, "udev %d, busnum %d, minor = %d\n",
2539 udev->devnum, udev->bus->busnum,
2540 (((udev->bus->busnum-1) * 128) + (udev->devnum-1)));
2541 /* export the usbdev device-node for libusb */
2542 udev->dev.devt = MKDEV(USB_DEVICE_MAJOR,
2543 (((udev->bus->busnum-1) * 128) + (udev->devnum-1)));
2544
2545 for (ncfg = 0; ncfg < udev->descriptor.bNumConfigurations; ncfg++) {
2546 config = &udev->config[ncfg];
2547 if ((config->desc.bmAttributes & (1 << 5)) == 0)
2548 break;
2549 if (ncfg + 1 == udev->descriptor.bNumConfigurations) {
> 2550 err = usb_enable_remote_wakeup(udev);
2551 if (err)
2552 dev_dbg(&udev->dev,
2553 "won't remote wakeup, err %d\n", err);
2554 }
2555 }
2556
2557 /* Tell the world! */
2558 announce_device(udev);
2559
2560 if (udev->serial)
2561 add_device_randomness(udev->serial, strlen(udev->serial));
2562 if (udev->product)
2563 add_device_randomness(udev->product, strlen(udev->product));
2564 if (udev->manufacturer)
2565 add_device_randomness(udev->manufacturer,
2566 strlen(udev->manufacturer));
2567
2568 device_enable_async_suspend(&udev->dev);
2569
2570 /* check whether the hub or firmware marks this port as non-removable */
2571 set_usb_port_removable(udev);
2572
2573 /* Register the device. The device driver is responsible
2574 * for configuring the device and invoking the add-device
2575 * notifier chain (used by usbfs and possibly others).
2576 */
2577 err = device_add(&udev->dev);
2578 if (err) {
2579 dev_err(&udev->dev, "can't device_add, error %d\n", err);
2580 goto fail;
2581 }
2582
2583 /* Create link files between child device and usb port device. */
2584 if (udev->parent) {
2585 struct usb_hub *hub = usb_hub_to_struct_hub(udev->parent);
2586 int port1 = udev->portnum;
2587 struct usb_port *port_dev = hub->ports[port1 - 1];
2588
2589 err = sysfs_create_link(&udev->dev.kobj,
2590 &port_dev->dev.kobj, "port");
2591 if (err)
2592 goto fail;
2593
2594 err = sysfs_create_link(&port_dev->dev.kobj,
2595 &udev->dev.kobj, "device");
2596 if (err) {
2597 sysfs_remove_link(&udev->dev.kobj, "port");
2598 goto fail;
2599 }
2600
2601 if (!test_and_set_bit(port1, hub->child_usage_bits))
2602 pm_runtime_get_sync(&port_dev->dev);
2603 }
2604
2605 (void) usb_create_ep_devs(&udev->dev, &udev->ep0, udev);
2606 usb_mark_last_busy(udev);
2607 pm_runtime_put_sync_autosuspend(&udev->dev);
2608 return err;
2609
2610 fail:
2611 usb_set_device_state(udev, USB_STATE_NOTATTACHED);
2612 pm_runtime_disable(&udev->dev);
2613 pm_runtime_set_suspended(&udev->dev);
2614 return err;
2615 }
2616
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2021-12-08 14:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 9:39 [PATCH v1 1/2] HID: usbhid: enable remote wakeup function for usbhid device Yinbo Zhu
2021-12-08 9:39 ` [PATCH v1 2/2] usb: core: enable remote wakeup function for usb controller Yinbo Zhu
2021-12-08 14:10 ` kernel test robot [this message]
2021-12-08 14:10 ` kernel test robot
2021-12-08 22:04 ` Alan Stern
2021-12-10 9:27 ` zhuyinbo
2021-12-10 16:35 ` Alan Stern
2021-12-08 10:03 ` [PATCH v1 1/2] HID: usbhid: enable remote wakeup function for usbhid device Oliver Neukum
2021-12-10 9:50 ` zhuyinbo
2021-12-14 14:21 ` Oliver Neukum
2021-12-16 10:59 ` zhuyinbo
2021-12-16 12:42 ` Oliver Neukum
2022-01-04 11:44 ` zhuyinbo
2021-12-08 11:55 ` Greg Kroah-Hartman
2021-12-10 9:54 ` zhuyinbo
2021-12-10 10:45 ` Greg Kroah-Hartman
2021-12-16 11:40 ` zhuyinbo
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=202112082256.02orEkq6-lkp@intel.com \
--to=lkp@intel.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=benjamin.tissoires@redhat.com \
--cc=chris.chiu@canonical.com \
--cc=gregkh@linuxfoundation.org \
--cc=jikos@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mathias.nyman@linux.intel.com \
--cc=rajatja@google.com \
--cc=stern@rowland.harvard.edu \
--cc=zhuyinbo@loongson.cn \
/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.