浏览代码

s390/pci: obtain function handle in hotplug notifier

When using the CLP interface to enable or disable a pci device a
valid function handle needs to be delivered. So far our assumption
was that we always have an up-to-date version of the function handle
(since it doesn't change when the device is in use). This assumption
is incorrect if the pci device is enabled or disabled outside of our
control. When we are notified about such a change we already receive
the new function handle. Just use it.

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 年之前
父节点
当前提交
fcf2f40293
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      arch/s390/pci/pci_event.c

+ 2 - 0
arch/s390/pci/pci_event.c

@@ -75,6 +75,7 @@ void zpci_event_availability(void *data)
 		if (!zdev || zdev->state == ZPCI_FN_STATE_CONFIGURED)
 		if (!zdev || zdev->state == ZPCI_FN_STATE_CONFIGURED)
 			break;
 			break;
 		zdev->state = ZPCI_FN_STATE_CONFIGURED;
 		zdev->state = ZPCI_FN_STATE_CONFIGURED;
+		zdev->fh = ccdf->fh;
 		ret = zpci_enable_device(zdev);
 		ret = zpci_enable_device(zdev);
 		if (ret)
 		if (ret)
 			break;
 			break;
@@ -101,6 +102,7 @@ void zpci_event_availability(void *data)
 		if (pdev)
 		if (pdev)
 			pci_stop_and_remove_bus_device(pdev);
 			pci_stop_and_remove_bus_device(pdev);
 
 
+		zdev->fh = ccdf->fh;
 		zpci_disable_device(zdev);
 		zpci_disable_device(zdev);
 		zdev->state = ZPCI_FN_STATE_STANDBY;
 		zdev->state = ZPCI_FN_STATE_STANDBY;
 		break;
 		break;