• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vbpf / prevail / 26179926435
87%

Build:
DEFAULT BRANCH: main
Ran 20 May 2026 05:59PM UTC
Jobs 2
Files 77
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 May 2026 05:48PM UTC coverage: 86.64% (+0.01%) from 86.629%
26179926435

push

github

web-flow
Thread CallBtf::module through kfunc resolution (#1114)

* Thread CallBtf::module through kfunc resolution

BTF ids are not unique across kernel modules: two modules may legitimately
use the same id for different kfuncs. Previously the cfg builder forwarded
only `CallBtf::btf_id` to the platform's kfunc resolver, so the resolved
prototype could come from the wrong module when ids collided -- silently
producing unsound or imprecise verification.

Threads `module` through the lowering and resolution path:
  * Adds `int16_t module` to `Call` (only meaningful for `CallKind::kfunc`).
  * Extends `ebpf_resolve_kfunc_call_fn` to take `module` alongside `btf_id`.
  * Updates the Linux kfunc prototype table to key on `(btf_id, module)`,
    with a strict `(btf_id, module)` sort and a binary-search + linear-scan
    lookup.
  * Stamps `Call::module` from the source `CallBtf` in
    `pass_resolve_kfunc_calls` so two kfuncs sharing a BTF id remain
    distinguishable in the lowered IR.

Adds a regression test that resolves the same BTF id under two different
modules to distinct prototypes, and confirms an unknown module surfaces a
module-qualified diagnostic.

Closes #1098.

* Construct lowered kfunc key fully from CallBtf

Per review on #1114: instead of taking the platform-returned Call and
patching in only `module`, build the lowered Call entirely from the
source CallBtf and an explicit `CallKind::kfunc`. The lowered IR's
identity is the pre-resolution (btf_id, module) triple — no field of it
should depend on what a misbehaving resolver returned. Makes the
soundness argument audit-visible and removes a class of mis-keying bugs.

---------

Signed-off-by: Elazar Gershuni <elazarg@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

23 of 23 new or added lines in 5 files covered. (100.0%)

9332 of 10771 relevant lines covered (86.64%)

6274577.93 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-Debug - 26179926435.1 20 May 2026 06:58PM UTC 77
84.66
GitHub Action Run
2 run-Release - 26179926435.2 20 May 2026 05:59PM UTC 77
85.71
GitHub Action Run
Source Files on build 26179926435
  • Tree
  • List 77
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 639c0c41 on github
  • Prev Build on main (#26163647487)
  • Next Build on main (#26218991840)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc