Commit 81a07617 authored by Niklas Schnelle's avatar Niklas Schnelle Committed by Heiko Carstens

s390/pci: reset zdev->zbus on registration failure

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: default avatarMatthew Rosato <mjrosato@linux.ibm.com>
Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 02368b7c
...@@ -343,11 +343,11 @@ static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev) ...@@ -343,11 +343,11 @@ static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev)
{ {
int rc = -EINVAL; int rc = -EINVAL;
zdev->zbus = zbus;
if (zbus->function[zdev->devfn]) { if (zbus->function[zdev->devfn]) {
pr_err("devfn %04x is already assigned\n", zdev->devfn); pr_err("devfn %04x is already assigned\n", zdev->devfn);
return rc; return rc;
} }
zdev->zbus = zbus;
zbus->function[zdev->devfn] = zdev; zbus->function[zdev->devfn] = zdev;
zpci_nb_devices++; zpci_nb_devices++;
...@@ -367,6 +367,7 @@ static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev) ...@@ -367,6 +367,7 @@ static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev)
error: error:
zbus->function[zdev->devfn] = NULL; zbus->function[zdev->devfn] = NULL;
zdev->zbus = NULL;
zpci_nb_devices--; zpci_nb_devices--;
return rc; return rc;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment