![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [github.com/containerd/cgroups/v3](https://github.com/containerd/cgroups) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/containerd/cgroups/releases) - [Commits](https://github.com/containerd/cgroups/compare/v3.0.2...v3.0.3) --- updated-dependencies: - dependency-name: github.com/containerd/cgroups/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
27 lines
659 B
Go
27 lines
659 B
Go
package btf
|
|
|
|
// datasecResolveWorkaround ensures that certain vars in a Datasec are added
|
|
// to a Spec before the Datasec. This avoids a bug in kernel BTF validation.
|
|
//
|
|
// See https://lore.kernel.org/bpf/20230302123440.1193507-1-lmb@isovalent.com/
|
|
func datasecResolveWorkaround(b *Builder, ds *Datasec) error {
|
|
for _, vsi := range ds.Vars {
|
|
v, ok := vsi.Type.(*Var)
|
|
if !ok {
|
|
continue
|
|
}
|
|
|
|
switch v.Type.(type) {
|
|
case *Typedef, *Volatile, *Const, *Restrict, *typeTag:
|
|
// NB: We must never call Add on a Datasec, otherwise we risk
|
|
// infinite recursion.
|
|
_, err := b.Add(v.Type)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|