]> git.karo-electronics.de Git - karo-tx-linux.git/commit
s390/pci: remove pdev pointer from arch data
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Fri, 29 Jan 2016 14:13:30 +0000 (15:13 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 2 Feb 2016 07:56:38 +0000 (08:56 +0100)
commit684c4c448637b3fa6589b47d145e9de1b9522515
tree6d7268301f5ec4d33eb1bbe5ec64f8e8d632a633
parent34229b277480f46c1e9a19f027f30b074512e68b
s390/pci: remove pdev pointer from arch data

For each PCI function we need to maintain arch specific data in
struct zpci_dev which also contains a pointer to struct pci_dev.

When a function is registered or deregistered (which is triggered by PCI
common code) we need to adjust that pointer which could interfere with
the machine check handler (triggered by FW) using zpci_dev->pdev.

Since multiple instances of the same pdev could exist at a time this can't
be solved with locking.

Fix that by ditching the pdev pointer and use a bus walk to reach
struct pci_dev (only one instance of a pdev can be registered at the bus
at a time).

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/pci.h
arch/s390/pci/pci.c
arch/s390/pci/pci_debug.c
arch/s390/pci/pci_dma.c
arch/s390/pci/pci_event.c
drivers/pci/hotplug/s390_pci_hpc.c