Hi Kishon, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on usb/usb-testing] [also build test WARNING on v5.14-rc7 next-20210824] [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/Kishon-Vijay-Abraham-I/Fix-cold-plugged-USB-device-on-certain-PCIe-USB-cards/20210824-185502 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: x86_64-randconfig-a016-20210824 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d26000e4cc2bc65e207a84fa26cb6e374d60aa12) 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/fd3b9b5ae10e49551c8b9635c004d54e8cf085ae git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Kishon-Vijay-Abraham-I/Fix-cold-plugged-USB-device-on-certain-PCIe-USB-cards/20210824-185502 git checkout fd3b9b5ae10e49551c8b9635c004d54e8cf085ae # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/usb/core/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/usb/core/hcd-pci.c:177: warning: expecting prototype for usb_hcd_pci_probe(). Prototype was for __usb_hcd_pci_probe() instead vim +177 drivers/usb/core/hcd-pci.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 157 ^1da177e4c3f41 Linus Torvalds 2005-04-16 158 /** ^1da177e4c3f41 Linus Torvalds 2005-04-16 159 * usb_hcd_pci_probe - initialize PCI-based HCDs ^1da177e4c3f41 Linus Torvalds 2005-04-16 160 * @dev: USB Host Controller being probed ^1da177e4c3f41 Linus Torvalds 2005-04-16 161 * @id: pci hotplug id connecting controller to HCD framework ff4c65ca48f08f Vinod Koul 2020-05-14 162 * @driver: USB HC driver handle fd3b9b5ae10e49 Kishon Vijay Abraham I 2021-08-24 163 * @register_hub: Flag to indicate of roothub has to be registered or not 41631d3616c363 Ahmed S. Darwish 2020-10-19 164 * 41631d3616c363 Ahmed S. Darwish 2020-10-19 165 * Context: task context, might sleep ^1da177e4c3f41 Linus Torvalds 2005-04-16 166 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 167 * Allocates basic PCI resources for this USB host controller, and ^1da177e4c3f41 Linus Torvalds 2005-04-16 168 * then invokes the start() method for the HCD associated with it ^1da177e4c3f41 Linus Torvalds 2005-04-16 169 * through the hotplug entry's driver_data. ^1da177e4c3f41 Linus Torvalds 2005-04-16 170 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 171 * Store this function in the HCD's struct pci_driver as probe(). 626f090c5cbbe5 Yacine Belkadi 2013-08-02 172 * 626f090c5cbbe5 Yacine Belkadi 2013-08-02 173 * Return: 0 if successful. ^1da177e4c3f41 Linus Torvalds 2005-04-16 174 */ fd3b9b5ae10e49 Kishon Vijay Abraham I 2021-08-24 175 int __usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id, fd3b9b5ae10e49 Kishon Vijay Abraham I 2021-08-24 176 const struct hc_driver *driver, bool register_hub) ^1da177e4c3f41 Linus Torvalds 2005-04-16 @177 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 178 struct usb_hcd *hcd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 179 int retval; 00eed9c814cb8f Hannes Reinecke 2013-03-04 180 int hcd_irq = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 181 ^1da177e4c3f41 Linus Torvalds 2005-04-16 182 if (usb_disabled()) ^1da177e4c3f41 Linus Torvalds 2005-04-16 183 return -ENODEV; ^1da177e4c3f41 Linus Torvalds 2005-04-16 184 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 185 if (!id) 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 186 return -EINVAL; ff4c65ca48f08f Vinod Koul 2020-05-14 187 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 188 if (!driver) ^1da177e4c3f41 Linus Torvalds 2005-04-16 189 return -EINVAL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 190 ^1da177e4c3f41 Linus Torvalds 2005-04-16 191 if (pci_enable_device(dev) < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 192 return -ENODEV; ^1da177e4c3f41 Linus Torvalds 2005-04-16 193 00eed9c814cb8f Hannes Reinecke 2013-03-04 194 /* 00eed9c814cb8f Hannes Reinecke 2013-03-04 195 * The xHCI driver has its own irq management 00eed9c814cb8f Hannes Reinecke 2013-03-04 196 * make sure irq setup is not touched for xhci in generic hcd code 68d07f64b8a11a Sarah Sharp 2012-02-13 197 */ 8a1b2725a60d32 Mathias Nyman 2015-12-10 198 if ((driver->flags & HCD_MASK) < HCD_USB3) { 306c54d0edb6ba Andy Shevchenko 2020-07-02 199 retval = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_LEGACY | PCI_IRQ_MSI); 306c54d0edb6ba Andy Shevchenko 2020-07-02 200 if (retval < 0) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 201 dev_err(&dev->dev, ^1da177e4c3f41 Linus Torvalds 2005-04-16 202 "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", ^1da177e4c3f41 Linus Torvalds 2005-04-16 203 pci_name(dev)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 204 retval = -ENODEV; 8766c815607e57 Sarah Sharp 2010-10-15 205 goto disable_pci; ^1da177e4c3f41 Linus Torvalds 2005-04-16 206 } 306c54d0edb6ba Andy Shevchenko 2020-07-02 207 hcd_irq = pci_irq_vector(dev, 0); 00eed9c814cb8f Hannes Reinecke 2013-03-04 208 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 209 ^1da177e4c3f41 Linus Torvalds 2005-04-16 210 hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 211 if (!hcd) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 212 retval = -ENOMEM; 306c54d0edb6ba Andy Shevchenko 2020-07-02 213 goto free_irq_vectors; ^1da177e4c3f41 Linus Torvalds 2005-04-16 214 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 215 7868943db1668f Huang Rui 2013-09-16 216 hcd->amd_resume_bug = (usb_hcd_amd_remote_wakeup_quirk(dev) && 7868943db1668f Huang Rui 2013-09-16 217 driver->flags & (HCD_USB11 | HCD_USB3)) ? 1 : 0; 7868943db1668f Huang Rui 2013-09-16 218 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 219 if (driver->flags & HCD_MEMORY) { 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 220 /* EHCI, OHCI */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 221 hcd->rsrc_start = pci_resource_start(dev, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 222 hcd->rsrc_len = pci_resource_len(dev, 0); 76da906ad72704 Schmid, Carsten 2019-08-23 223 if (!devm_request_mem_region(&dev->dev, hcd->rsrc_start, 76da906ad72704 Schmid, Carsten 2019-08-23 224 hcd->rsrc_len, driver->description)) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 225 dev_dbg(&dev->dev, "controller already in use\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 226 retval = -EBUSY; 05768918b9a122 Alan Stern 2013-03-28 227 goto put_hcd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 228 } 4bdc0d676a6431 Christoph Hellwig 2020-01-06 229 hcd->regs = devm_ioremap(&dev->dev, hcd->rsrc_start, 76da906ad72704 Schmid, Carsten 2019-08-23 230 hcd->rsrc_len); ^1da177e4c3f41 Linus Torvalds 2005-04-16 231 if (hcd->regs == NULL) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 232 dev_dbg(&dev->dev, "error mapping memory\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 233 retval = -EFAULT; 76da906ad72704 Schmid, Carsten 2019-08-23 234 goto put_hcd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 235 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 236 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 237 } else { 34bbe4c16ca06c Greg Kroah-Hartman 2008-01-30 238 /* UHCI */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 239 int region; ^1da177e4c3f41 Linus Torvalds 2005-04-16 240 c9c13ba428ef90 Denis Efremov 2019-09-28 241 for (region = 0; region < PCI_STD_NUM_BARS; region++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 242 if (!(pci_resource_flags(dev, region) & ^1da177e4c3f41 Linus Torvalds 2005-04-16 243 IORESOURCE_IO)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 244 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 245 ^1da177e4c3f41 Linus Torvalds 2005-04-16 246 hcd->rsrc_start = pci_resource_start(dev, region); ^1da177e4c3f41 Linus Torvalds 2005-04-16 247 hcd->rsrc_len = pci_resource_len(dev, region); 76da906ad72704 Schmid, Carsten 2019-08-23 248 if (devm_request_region(&dev->dev, hcd->rsrc_start, 76da906ad72704 Schmid, Carsten 2019-08-23 249 hcd->rsrc_len, driver->description)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 250 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 251 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 252 if (region == PCI_ROM_RESOURCE) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 253 dev_dbg(&dev->dev, "no i/o regions available\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 254 retval = -EBUSY; 05768918b9a122 Alan Stern 2013-03-28 255 goto put_hcd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 256 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 257 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 258 ^1da177e4c3f41 Linus Torvalds 2005-04-16 259 pci_set_master(dev); ^1da177e4c3f41 Linus Torvalds 2005-04-16 260 05768918b9a122 Alan Stern 2013-03-28 261 /* Note: dev_set_drvdata must be called while holding the rwsem */ 05768918b9a122 Alan Stern 2013-03-28 262 if (dev->class == CL_EHCI) { 05768918b9a122 Alan Stern 2013-03-28 263 down_write(&companions_rwsem); 05768918b9a122 Alan Stern 2013-03-28 264 dev_set_drvdata(&dev->dev, hcd); 05768918b9a122 Alan Stern 2013-03-28 265 for_each_companion(dev, hcd, ehci_pre_add); fd3b9b5ae10e49 Kishon Vijay Abraham I 2021-08-24 266 retval = __usb_add_hcd(hcd, hcd_irq, IRQF_SHARED, register_hub); 05768918b9a122 Alan Stern 2013-03-28 267 if (retval != 0) 05768918b9a122 Alan Stern 2013-03-28 268 dev_set_drvdata(&dev->dev, NULL); 05768918b9a122 Alan Stern 2013-03-28 269 for_each_companion(dev, hcd, ehci_post_add); 05768918b9a122 Alan Stern 2013-03-28 270 up_write(&companions_rwsem); 05768918b9a122 Alan Stern 2013-03-28 271 } else { 05768918b9a122 Alan Stern 2013-03-28 272 down_read(&companions_rwsem); 05768918b9a122 Alan Stern 2013-03-28 273 dev_set_drvdata(&dev->dev, hcd); fd3b9b5ae10e49 Kishon Vijay Abraham I 2021-08-24 274 retval = __usb_add_hcd(hcd, hcd_irq, IRQF_SHARED, register_hub); 05768918b9a122 Alan Stern 2013-03-28 275 if (retval != 0) 05768918b9a122 Alan Stern 2013-03-28 276 dev_set_drvdata(&dev->dev, NULL); 05768918b9a122 Alan Stern 2013-03-28 277 else 05768918b9a122 Alan Stern 2013-03-28 278 for_each_companion(dev, hcd, non_ehci_add); 05768918b9a122 Alan Stern 2013-03-28 279 up_read(&companions_rwsem); 05768918b9a122 Alan Stern 2013-03-28 280 } 05768918b9a122 Alan Stern 2013-03-28 281 ^1da177e4c3f41 Linus Torvalds 2005-04-16 282 if (retval != 0) 76da906ad72704 Schmid, Carsten 2019-08-23 283 goto put_hcd; 3c9740a117d40a Peter Chen 2013-11-05 284 device_wakeup_enable(hcd->self.controller); 3da7cff4e79e4a Alan Stern 2010-06-25 285 3da7cff4e79e4a Alan Stern 2010-06-25 286 if (pci_dev_run_wake(dev)) 3da7cff4e79e4a Alan Stern 2010-06-25 287 pm_runtime_put_noidle(&dev->dev); ^1da177e4c3f41 Linus Torvalds 2005-04-16 288 return retval; ^1da177e4c3f41 Linus Torvalds 2005-04-16 289 05768918b9a122 Alan Stern 2013-03-28 290 put_hcd: ^1da177e4c3f41 Linus Torvalds 2005-04-16 291 usb_put_hcd(hcd); 306c54d0edb6ba Andy Shevchenko 2020-07-02 292 free_irq_vectors: 306c54d0edb6ba Andy Shevchenko 2020-07-02 293 if ((driver->flags & HCD_MASK) < HCD_USB3) 306c54d0edb6ba Andy Shevchenko 2020-07-02 294 pci_free_irq_vectors(dev); 8766c815607e57 Sarah Sharp 2010-10-15 295 disable_pci: ^1da177e4c3f41 Linus Torvalds 2005-04-16 296 pci_disable_device(dev); ^1da177e4c3f41 Linus Torvalds 2005-04-16 297 dev_err(&dev->dev, "init %s fail, %d\n", pci_name(dev), retval); ^1da177e4c3f41 Linus Torvalds 2005-04-16 298 return retval; ^1da177e4c3f41 Linus Torvalds 2005-04-16 299 } fd3b9b5ae10e49 Kishon Vijay Abraham I 2021-08-24 300 EXPORT_SYMBOL_GPL(__usb_hcd_pci_probe); ^1da177e4c3f41 Linus Torvalds 2005-04-16 301 ^1da177e4c3f41 Linus Torvalds 2005-04-16 302 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org