Blob Blame History Raw
From: Pierre Morel <pmorel@linux.ibm.com>
Date: Thu, 26 Mar 2020 12:07:03 -0400
Subject: s390/pci: Do not disable PF when VFs exist
Git-commit: 53dd462ac4dc3fc61ee90ad03d96202e17589156
Patch-mainline: v5.8-rc1
References: jsc#SLE-13818 bsc#1177117 LTC#186574

The Physical function should not be disabled until no virtual
functions depends on it.
Let's force the user to first use echo 0 > sriov_numfs before
allowing to disable the PF with echo 0 > power.

Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/pci/hotplug/s390_pci_hpc.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/pci/hotplug/s390_pci_hpc.c
+++ b/drivers/pci/hotplug/s390_pci_hpc.c
@@ -91,6 +91,9 @@ static int disable_slot(struct hotplug_s
 
 	pdev = pci_get_slot(zbus->bus, zdev->devfn);
 	if (pdev) {
+		if (pci_num_vf(pdev))
+			return -EBUSY;
+
 		pci_stop_and_remove_bus_device_locked(pdev);
 		pci_dev_put(pdev);
 	}