PCI: Fix race condition with driver_override
authorNicolai Stange <nstange@suse.de>
Mon, 11 Sep 2017 07:45:40 +0000 (09:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Oct 2017 07:44:03 +0000 (09:44 +0200)
commitbb1e06d281a82c75487fb7ddf25e540b82db4306
treefb6b61d98904dda324ca79281c10fba8cec4af9d
parent46f062e05920a4d40dbe32aa4bc622df33db6fb2
PCI: Fix race condition with driver_override

commit 9561475db680f7144d2223a409dd3d7e322aca03 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/pci-sysfs.c