Re: [PATCH] usb: hub: port: add sysfs entry to switch port power

kernel test robot
2022-05-11T08:36:16Z

Hi Michael,

I love your patch! Yet something to improve:

[auto build test ERROR on usb/usb-testing]
[also build test ERROR on v5.18-rc6 next-20220510]
[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/intel-lab-lkp/linux/commits/Michael-Grzeschik/usb-hub-port-add-sysfs-entry-to-switch-port-power/20220511-071411
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: arc-vdk_hs38_smp_defconfig (https://download.01.org/0day-ci/archive/20220511/202205111601.PmB3PwmE-lkp@intel.com/config)
compiler: arc-elf-gcc (GCC) 11.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/intel-lab-lkp/linux/commit/19efde40be7597697c54241a120f812d5864b677
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Michael-Grzeschik/usb-hub-port-add-sysfs-entry-to-switch-port-power/20220511-071411
git checkout 19efde40be7597697c54241a120f812d5864b677
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arc 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/port.c: In function 'port_power_store':
>> drivers/usb/core/port.c:42:17: error: implicit declaration of function 'usb_remote_wakeup' [-Werror=implicit-function-declaration]
42 | usb_remote_wakeup(hdev);
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/usb_remote_wakeup +42 drivers/usb/core/port.c

19
20 static ssize_t port_power_store(struct device *dev, struct device_attribute *attr,
21 const char *buf, size_t count)
22 {
23 struct usb_port *port_dev = to_usb_port(dev);
24 struct usb_device *udev = port_dev->child;
25 struct usb_device *hdev = to_usb_device(dev->parent->parent);
26 struct usb_hub *hub = usb_hub_to_struct_hub(hdev);
27 int port1 = port_dev->portnum;
28 bool value;
29 int rc = 0;
30
31 if (!hub)
32 return -EINVAL;
33
34 if (hub->in_reset)
35 return -EBUSY;
36
37 rc = strtobool(buf, &value);
38 if (rc)
39 return rc;
40
41 if (value)
> 42 usb_remote_wakeup(hdev);
43
44 rc = usb_hub_set_port_power(hdev, hub, port1, value);
45 if (rc)
46 return rc;
47
48 if (!value) {
49 usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_CONNECTION);
50 if (!port_dev->is_superspeed)
51 usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_ENABLE);
52
53 if (udev) {
54 port_dev->child = NULL;
55 usb_disconnect(&udev);
56 }
57 }
58
59 if (!rc)
60 rc = count;
61
62 return rc;
63 }
64 static DEVICE_ATTR_WO(port_power);
65

--
0-DAY CI Kernel Test Service