From: Niklas Schnelle Date: Fri, 6 Aug 2021 12:12:11 +0200 Subject: s390/pci: reset zdev->zbus on registration failure Git-commit: 81a076171e72dcb6545a8a508b800aec59d6e82b Patch-mainline: v5.15-rc1 References: jsc#PED-600 On failure to register a struct zpci_dev with a struct zpci_bus we left a dangling pointer in zdev->zbus. As zpci_create_device() bails if zpci_bus_device_register() fails this is of no consequence but still bad practice. Reviewed-by: Matthew Rosato Signed-off-by: Niklas Schnelle Signed-off-by: Heiko Carstens Acked-by: Petr Tesarik --- arch/s390/pci/pci_bus.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/arch/s390/pci/pci_bus.c +++ b/arch/s390/pci/pci_bus.c @@ -343,11 +343,11 @@ static int zpci_bus_add_device(struct zp { int rc = -EINVAL; - zdev->zbus = zbus; if (zbus->function[zdev->devfn]) { pr_err("devfn %04x is already assigned\n", zdev->devfn); return rc; } + zdev->zbus = zbus; zbus->function[zdev->devfn] = zdev; zpci_nb_devices++; @@ -367,6 +367,7 @@ static int zpci_bus_add_device(struct zp error: zbus->function[zdev->devfn] = NULL; + zdev->zbus = NULL; zpci_nb_devices--; return rc; }