Skip to content

Commit f606b3e

Browse files
Pierre MorelVasily Gorbik
authored andcommitted
s390/pci: adapt events for zbus
Simplify the event handling. Set the zpci state explicitly. Signed-off-by: Pierre Morel <[email protected]> Reviewed-by: Niklas Schnelle <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
1 parent 05bc1be commit f606b3e

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

arch/s390/pci/pci_event.c

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -89,25 +89,19 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
8989
switch (ccdf->pec) {
9090
case 0x0301: /* Reserved|Standby -> Configured */
9191
if (!zdev) {
92-
ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
93-
if (ret)
94-
break;
95-
zdev = get_zdev_by_fid(ccdf->fid);
96-
}
97-
if (!zdev || zdev->state != ZPCI_FN_STATE_STANDBY)
92+
ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 1);
9893
break;
99-
zdev->state = ZPCI_FN_STATE_CONFIGURED;
94+
}
10095
zdev->fh = ccdf->fh;
101-
ret = zpci_enable_device(zdev);
102-
if (ret)
103-
break;
104-
pci_lock_rescan_remove();
105-
pci_rescan_bus(zdev->zbus->bus);
106-
pci_unlock_rescan_remove();
96+
zdev->state = ZPCI_FN_STATE_CONFIGURED;
97+
zpci_create_device(zdev);
10798
break;
10899
case 0x0302: /* Reserved -> Standby */
109-
if (!zdev)
100+
if (!zdev) {
110101
clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
102+
break;
103+
}
104+
zdev->fh = ccdf->fh;
111105
break;
112106
case 0x0303: /* Deconfiguration requested */
113107
if (!zdev)
@@ -135,8 +129,6 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
135129
pci_stop_and_remove_bus_device_locked(pdev);
136130
}
137131

138-
zdev->fh = ccdf->fh;
139-
zpci_disable_device(zdev);
140132
zdev->state = ZPCI_FN_STATE_STANDBY;
141133
if (!clp_get_state(ccdf->fid, &state) &&
142134
state == ZPCI_FN_STATE_RESERVED) {

0 commit comments

Comments
 (0)