浏览代码

s390/pci: set error state for unavailable functions

If we receive a notification that a pci function became unavailable we clean
up by removing the pci device. This can confuse the driver since the function
is already unaccessible. Improve this situation by setting an appropriate
error_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>
Sebastian Ott 12 年之前
父节点
当前提交
0c0c277692
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      arch/s390/pci/pci_event.c

+ 5 - 1
arch/s390/pci/pci_event.c

@@ -102,8 +102,12 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
 
 		break;
 	case 0x0304: /* Configured -> Standby */
-		if (pdev)
+		if (pdev) {
+			/* Give the driver a hint that the function is
+			 * already unusable. */
+			pdev->error_state = pci_channel_io_perm_failure;
 			pci_stop_and_remove_bus_device(pdev);
+		}
 
 		zpci_disable_device(zdev);
 		zdev->state = ZPCI_FN_STATE_STANDBY;