linux/drivers/xen
Konrad Rzeszutek Wilk b1df4a56bf xen/pciback: Restore configuration space when detaching from a guest.
The commit "xen/pciback: Don't deadlock when unbinding." was using
the version of pci_reset_function which would lock the device lock.
That is no good as we can dead-lock. As such we swapped to using
the lock-less version and requiring that the callers
of 'pcistub_put_pci_dev' take the device lock. And as such
this bug got exposed.

Using the lock-less version is  OK, except that we tried to
use 'pci_restore_state' after the lock-less version of
__pci_reset_function_locked - which won't work as 'state_saved'
is set to false. Said 'state_saved' is a toggle boolean that
is to be used by the sequence of a) pci_save_state/pci_restore_state
or b) pci_load_and_free_saved_state/pci_restore_state. We don't
want to use a) as the guest might have messed up the PCI
configuration space and we want it to revert to the state
when the PCI device was binded to us. Therefore we pick
b) to restore the configuration space.

We restore from our 'golden' version of PCI configuration space, when an:
 - Device is unbinded from pciback
 - Device is detached from a guest.

Reported-by:  Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2014-12-04 12:42:02 +00:00
..
events xen/events: support threaded irqs for interdomain event channels 2014-09-23 13:36:19 +00:00
xen-pciback xen/pciback: Restore configuration space when detaching from a guest. 2014-12-04 12:42:02 +00:00
xenbus xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
xenfs xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
acpi.c xen / ACPI: notify xen when reduced hardware sleep is available 2013-07-31 14:22:35 +02:00
balloon.c xen/balloon: Don't continue ballooning when BP_ECANCELED is encountered 2014-10-23 16:24:01 +01:00
biomerge.c
cpu_hotplug.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
dbgp.c xen: Use dev_is_pci() to check whether it is pci device 2014-01-07 09:53:33 -05:00
efi.c xen/efi: Directly include needed headers 2014-09-23 13:36:20 +00:00
evtchn.c xen/evtchn: support more than 4096 ports 2014-01-06 10:07:50 -05:00
fallback.c xen-pciback: notify hypervisor about devices intended to be assigned to guests 2013-03-22 10:20:55 -04:00
features.c
gntalloc.c xen/gntalloc: safely delete grefs in add_grefs() undo path 2014-09-04 13:14:05 +01:00
gntdev.c Revert "xen/grant-table: Avoid m2p_override during mapping" 2014-02-03 06:44:49 -05:00
grant-table.c xen/grant-table: refactor error cleanup in grow_gnttab_list() 2014-09-23 13:36:18 +00:00
Kconfig xen-scsiback: Add Xen PV SCSI backend driver 2014-09-23 13:36:19 +00:00
Makefile xen-scsiback: Add Xen PV SCSI backend driver 2014-09-23 13:36:19 +00:00
manage.c xen/manage: Always freeze/thaw processes when suspend/resuming 2014-09-02 15:36:59 +01:00
mcelog.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
pci.c xen/pci: Allocate memory for physdev_pci_device_add's optarr 2014-10-23 16:24:02 +01:00
pcpu.c drivers: xen: Include appropriate header file in pcpu.c 2014-02-28 15:26:08 -05:00
platform-pci.c drivers: xen: Mark function as static in platform-pci.c 2014-02-28 15:26:04 -05:00
privcmd.c xen: privcmd: do not return pages which we have failed to unmap 2013-12-06 17:55:56 +00:00
privcmd.h
swiotlb-xen.c swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single 2014-12-04 12:41:57 +00:00
sys-hypervisor.c xen: sysfs: fix build warning. 2012-10-19 15:17:51 -04:00
tmem.c Bug-fixes: 2013-07-03 13:12:42 -07:00
xen-acpi-cpuhotplug.c ACPI: Drop acpi_evaluate_hotplug_ost() and ACPI_HOTPLUG_OST 2014-02-22 00:50:49 +01:00
xen-acpi-memhotplug.c ACPI: Drop acpi_evaluate_hotplug_ost() and ACPI_HOTPLUG_OST 2014-02-22 00:50:49 +01:00
xen-acpi-pad.c ACPI / PAD / xen: use acpi_evaluate_ost() to replace open-coded version 2014-02-21 00:27:47 +01:00
xen-acpi-processor.c xen-acpi-processor: Don't display errors when we get -ENOSYS 2014-05-23 12:34:00 -04:00
xen-balloon.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-scsiback.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
xen-selfballoon.c drivers:xen-selfballoon:reset 'frontswap_inertia_counter' after frontswap_shrink 2014-02-28 15:26:12 -05:00
xen-stub.c xen/acpi: remove redundant acpi/acpi_drivers.h include 2013-03-11 13:53:02 -04:00