Bug 65071
Summary: | lockdep warning in pci_enable_sriov() path | ||
---|---|---|---|
Product: | Drivers | Reporter: | Bjorn Helgaas (bjorn) |
Component: | PCI | Assignee: | drivers_pci (drivers_pci) |
Status: | NEW --- | ||
Severity: | normal | ||
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | http://lkml.kernel.org/r/CAE9FiQXYQEAZ=0sG6+2OdffBqfLS9MpoN1xviRR9aDbxPxcKxQ@mail.gmail.com | ||
Kernel Version: | 3.10-rc1 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Bjorn Helgaas
2013-11-16 00:00:37 UTC
This problem occurs when drivers call pci_enable_sriov() from their .probe() method, via this path: pci_call_probe work_on_cpu(cpu, local_pci_probe, ...) # .probe for PF driver .probe pci_enable_sriov ... pci_bus_add_device # add new VF ... pci_call_probe work_on_cpu(cpu, local_pci_probe, ...) # .probe() for VF Drivers that support SR-IOV should implement the .sriov_configure() method and enable SR-IOV there, because then users can use the sysfs interface to configure each instance of a PF differently. But some drivers enable SR-IOV in .probe() so they can continue supporting module parameters for the number of VFs. Drivers that use SR-IOV but don't yet implement .sriov_configure() include: be, cxgb4, efx, enic, mlx4, and vxge. |