[PATCH v2 2/2] pci/iov: fix kobject_uevent() ordering in sriov_enable()

From: Jim Harris
Date: Fri Feb 09 2024 - 18:52:52 EST


Wait to call kobject_uevent() until all of the associated changes are done,
including updating the num_VFs value. This avoids any possibility of
userspace responding to the event and getting a stale value (although
probably impossible to actually happen).

Suggested-by: Leon Romanovsky <leonro@xxxxxxxxxx>
Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>
Signed-off-by: Jim Harris <jim.harris@xxxxxxxxxxx>
---
drivers/pci/iov.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index 0ca20cd518d5..c00b0f822526 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -677,8 +677,8 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn)
if (rc)
goto err_pcibios;

- kobject_uevent(&dev->dev.kobj, KOBJ_CHANGE);
iov->num_VFs = nr_virtfn;
+ kobject_uevent(&dev->dev.kobj, KOBJ_CHANGE);

return 0;