diff options
author | Dexuan Cui <[email protected]> | 2018-03-15 14:20:53 +0000 |
---|---|---|
committer | Lorenzo Pieralisi <[email protected]> | 2018-03-16 18:18:50 +0000 |
commit | 021ad274d7dc31611d4f47f7dd4ac7a224526f30 (patch) | |
tree | ef52bced693966979b90669ef4866c683eb1dc03 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 7928b2cbe55b2a410a0f5c1f154610059c57b1b2 (diff) |
PCI: hv: Serialize the present and eject work items
When we hot-remove the device, we first receive a PCI_EJECT message and
then receive a PCI_BUS_RELATIONS message with bus_rel->device_count == 0.
The first message is offloaded to hv_eject_device_work(), and the second
is offloaded to pci_devices_present_work(). Both the paths can be running
list_del(&hpdev->list_entry), causing general protection fault, because
system_wq can run them concurrently.
The patch eliminates the race condition.
Since access to present/eject work items is serialized, we do not need the
hbus->enum_sem anymore, so remove it.
Fixes: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs")
Link: https://lkml.kernel.org/r/KL1P15301MB00064DA6B4D221123B5241CFBFD70@KL1P15301MB0006.APCP153.PROD.OUTLOOK.COM
Tested-by: Adrian Suhov <[email protected]>
Tested-by: Chris Valean <[email protected]>
Signed-off-by: Dexuan Cui <[email protected]>
[[email protected]: squashed semaphore removal patch]
Signed-off-by: Lorenzo Pieralisi <[email protected]>
Reviewed-by: Michael Kelley <[email protected]>
Acked-by: Haiyang Zhang <[email protected]>
Cc: <[email protected]> # v4.6+
Cc: Vitaly Kuznetsov <[email protected]>
Cc: Jack Morgenstein <[email protected]>
Cc: Stephen Hemminger <[email protected]>
Cc: K. Y. Srinivasan <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions