PCI: Fix race condition with driver_override
authorNicolai Stange <nstange@suse.de>
Mon, 11 Sep 2017 07:45:40 +0000 (09:45 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 25 Sep 2017 23:34:54 +0000 (18:34 -0500)
commit9561475db680f7144d2223a409dd3d7e322aca03
tree34aa91f19f3c51bd13402386634f00ac38031371
parentfe59493240169a2cc3f445ae5f2a2308fda06b63
PCI: Fix race condition with driver_override

The driver_override implementation is susceptible to a race condition when
different threads are reading vs. storing a different driver override.  Add
locking to avoid the race condition.

This is in close analogy to commit 6265539776a0 ("driver core: platform:
fix race condition with driver_override") from Adrian Salido.

Fixes: 782a985d7af2 ("PCI: Introduce new device binding path using pci_dev.driver_override")
Signed-off-by: Nicolai Stange <nstange@suse.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org # v3.16+
drivers/pci/pci-sysfs.c