s390/pci: improve handling of hotplug event 0x301
Hypervisors may deliver event 0x301 not only for standby but also for reserved devices. Just handle event 0x301 regardless of the device's state. Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:

committed by
Martin Schwidefsky

parent
0c36b8ac70
commit
7fc611ff3f
@@ -75,7 +75,13 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
|
|||||||
zpci_err_hex(ccdf, sizeof(*ccdf));
|
zpci_err_hex(ccdf, sizeof(*ccdf));
|
||||||
|
|
||||||
switch (ccdf->pec) {
|
switch (ccdf->pec) {
|
||||||
case 0x0301: /* Standby -> Configured */
|
case 0x0301: /* Reserved|Standby -> Configured */
|
||||||
|
if (!zdev) {
|
||||||
|
ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
|
zdev = get_zdev_by_fid(ccdf->fid);
|
||||||
|
}
|
||||||
if (!zdev || zdev->state != ZPCI_FN_STATE_STANDBY)
|
if (!zdev || zdev->state != ZPCI_FN_STATE_STANDBY)
|
||||||
break;
|
break;
|
||||||
zdev->state = ZPCI_FN_STATE_CONFIGURED;
|
zdev->state = ZPCI_FN_STATE_CONFIGURED;
|
||||||
|
Reference in New Issue
Block a user