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-...
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/fd3b9b5ae10e49551c8b9635c004d54e8...
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 <lkp(a)intel.com>
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@lists.01.org