um: virtio/pci: enable suspend/resume
authorJohannes Berg <johannes.berg@intel.com>
Fri, 5 Mar 2021 12:19:59 +0000 (13:19 +0100)
committerRichard Weinberger <richard@nod.at>
Thu, 17 Jun 2021 19:45:44 +0000 (21:45 +0200)
commit43c590cb86665be702c0af0231a10ec813df9cfd
treedc1c8389fce0e298bf113e880eb457e0bd69de5e
parent68f5d3f3b6543266b29e047cfaf9842333019b4c
um: virtio/pci: enable suspend/resume

The UM virtual PCI devices currently cannot be suspended properly
since the virtio driver already disables VQs well before the PCI
bus's suspend_noirq wants to complete the transition by writing to
PCI config space.

After trying around for a long time with moving the devices on the
DPM list, trying to create dependencies between them, etc. I gave
up and instead added UML specific cross-driver API that lets the
virt-pci code enable not suspending/resuming VQs for its devices.

This then allows the PCI bus suspend_noirq to still talk to the
device, and suspend/resume works properly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/virt-pci.c
arch/um/drivers/virtio_uml.c
arch/um/include/linux/virtio-uml.h [new file with mode: 0644]