diff --git a/src/runtime/pkg/device/drivers/vfio.go b/src/runtime/pkg/device/drivers/vfio.go index dedaea4429..394edd5848 100644 --- a/src/runtime/pkg/device/drivers/vfio.go +++ b/src/runtime/pkg/device/drivers/vfio.go @@ -141,6 +141,16 @@ func (device *VFIODevice) Detach(ctx context.Context, devReceiver api.DeviceRece deviceLogger().WithError(err).Error("Failed to remove device") return err } + for _, vfio := range device.VfioDevs { + if vfio.IsPCIe { + for ix, dev := range config.PCIeDevicesPerPort[vfio.Port] { + if dev.BDF == vfio.BDF { + config.PCIeDevicesPerPort[vfio.Port] = append(config.PCIeDevicesPerPort[vfio.Port][:ix], config.PCIeDevicesPerPort[vfio.Port][ix+1:]...) + break + } + } + } + } deviceLogger().WithFields(logrus.Fields{ "device-group": device.DeviceInfo.HostPath,