diff --git a/pkg/plugins/generic/generic_plugin.go b/pkg/plugins/generic/generic_plugin.go index 3502e422f..f8f0e9fb0 100644 --- a/pkg/plugins/generic/generic_plugin.go +++ b/pkg/plugins/generic/generic_plugin.go @@ -124,6 +124,9 @@ func (p *GenericPlugin) Apply() error { } if err := utils.SyncNodeState(p.DesireState, pfsToSkip); err != nil { + if strings.Contains(err.Error(), "cannot allocate memory") { + p.AddToDesiredKernelParams(utils.KernelParamPciRealloc) + } return err } p.LastState = &sriovnetworkv1.SriovNetworkNodeState{} diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 7899cec3d..45e6381b3 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -42,6 +42,7 @@ const ( DeviceBF2 = "a2d6" DeviceBF3 = "a2dc" + KernelParamPciRealloc = "pci=realloc" KernelParamIntelIommu = "intel_iommu=on" KernelParamIommuPt = "iommu=pt" )