On 7/24/2023 8:54 PM, Nirmal Patel wrote: > The hotplug functionality is broken in various combinations of guest > OSes i.e. RHEL, SLES and hypervisors i.e. KVM and ESXI. > > During the VMD rootport creation, VMD honors ACPI settings and assigns > respective values to Hotplug, AER, DPC, PM etc which works in case of > Host OS. But these have been restored back to the power on default > state in Guest OSes, which puts the root port hot plug enable to > default OFF. > > When BIOS boots, all root ports under VMD is inaccessible by BIOS and > they maintain their power on default states. The VMD UEFI driver loads > and configure all devices under VMD. This is how AER, power management, > DPC and hotplug gets enabled in UEFI, since the BIOS pci driver cannot > access the root ports. With the absence of VMD UEFI driver in Guest, > Hotplug stays Disabled. > > This change will cause the hot plug to start working again in guest, > as the settings implemented by the UEFI VMD DXE driver will remain in > effect in the Guest OS. > > Signed-off-by: Nirmal Patel <nirmal.patel@xxxxxxxxxxxxxxx> > --- > drivers/pci/controller/vmd.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c > index 769eedeb8802..52c2461b4761 100644 > --- a/drivers/pci/controller/vmd.c > +++ b/drivers/pci/controller/vmd.c > @@ -701,8 +701,6 @@ static int vmd_alloc_irqs(struct vmd_dev *vmd) > static void vmd_copy_host_bridge_flags(struct pci_host_bridge *root_bridge, > struct pci_host_bridge *vmd_bridge) > { > - vmd_bridge->native_pcie_hotplug = root_bridge->native_pcie_hotplug; > - vmd_bridge->native_shpc_hotplug = root_bridge->native_shpc_hotplug; > vmd_bridge->native_aer = root_bridge->native_aer; > vmd_bridge->native_pme = root_bridge->native_pme; > vmd_bridge->native_ltr = root_bridge->native_ltr; Gentle ping! Thanks.