bpfloader: Allow overriding kernel version
This allows devices to pretend that they are on a different kernel version, in order to support different bpf features when kernel backports are in place.
Test: set ro.bpf.kver_override=5.10.239 in product.prop on sm8250 device
based on 4.19 kernel with 5.10 bpf backported, skfilter_oom_kill
loaded: bpftool prog | grep skfilter_oom_k
Change-Id: Ic32a279c562679408728483d5a5ed79a70af217d
This commit is contained in:
parent
0021d8d13e
commit
6c5f4f8652
1 changed files with 4 additions and 0 deletions
|
|
@ -426,6 +426,10 @@ fn parse_release(release: &str) -> (u32, u32, u32) {
|
|||
}
|
||||
|
||||
fn kernel_version() -> Result<u32, anyhow::Error> {
|
||||
if let Some(kver_override) = system_properties::read("ro.bpf.kver_override")? {
|
||||
let (major, minor, sub) = parse_release(&kver_override);
|
||||
return Ok(kver(major, minor, sub));
|
||||
}
|
||||
let mut buf: MaybeUninit<utsname> = MaybeUninit::zeroed();
|
||||
// SAFETY: If uname returns 0, the buf should be properly initialized.
|
||||
if unsafe { uname(buf.as_mut_ptr()) } != 0 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue