|
@@ -562,14 +562,28 @@ impl<'a> BpfLoader<'a> {
|
|
|
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
kind: ProbeKind::KRetProbe,
|
|
|
}),
|
|
|
- ProgramSection::UProbe { .. } => Program::UProbe(UProbe {
|
|
|
- data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
- kind: ProbeKind::UProbe,
|
|
|
- }),
|
|
|
- ProgramSection::URetProbe { .. } => Program::UProbe(UProbe {
|
|
|
- data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
- kind: ProbeKind::URetProbe,
|
|
|
- }),
|
|
|
+ ProgramSection::UProbe { sleepable, name: _ } => {
|
|
|
+ let mut data =
|
|
|
+ ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level);
|
|
|
+ if *sleepable {
|
|
|
+ data.flags = BPF_F_SLEEPABLE;
|
|
|
+ }
|
|
|
+ Program::UProbe(UProbe {
|
|
|
+ data,
|
|
|
+ kind: ProbeKind::UProbe,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ ProgramSection::URetProbe { sleepable, name: _ } => {
|
|
|
+ let mut data =
|
|
|
+ ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level);
|
|
|
+ if *sleepable {
|
|
|
+ data.flags = BPF_F_SLEEPABLE;
|
|
|
+ }
|
|
|
+ Program::UProbe(UProbe {
|
|
|
+ data,
|
|
|
+ kind: ProbeKind::URetProbe,
|
|
|
+ })
|
|
|
+ }
|
|
|
ProgramSection::TracePoint { .. } => Program::TracePoint(TracePoint {
|
|
|
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
}),
|
|
@@ -649,7 +663,7 @@ impl<'a> BpfLoader<'a> {
|
|
|
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
})
|
|
|
}
|
|
|
- ProgramSection::Lsm { sleepable, .. } => {
|
|
|
+ ProgramSection::Lsm { sleepable, name: _ } => {
|
|
|
let mut data =
|
|
|
ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level);
|
|
|
if *sleepable {
|
|
@@ -662,12 +676,22 @@ impl<'a> BpfLoader<'a> {
|
|
|
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
})
|
|
|
}
|
|
|
- ProgramSection::FEntry { .. } => Program::FEntry(FEntry {
|
|
|
- data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
- }),
|
|
|
- ProgramSection::FExit { .. } => Program::FExit(FExit {
|
|
|
- data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
- }),
|
|
|
+ ProgramSection::FEntry { sleepable, name: _ } => {
|
|
|
+ let mut data =
|
|
|
+ ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level);
|
|
|
+ if *sleepable {
|
|
|
+ data.flags = BPF_F_SLEEPABLE;
|
|
|
+ }
|
|
|
+ Program::FEntry(FEntry { data })
|
|
|
+ }
|
|
|
+ ProgramSection::FExit { sleepable, name: _ } => {
|
|
|
+ let mut data =
|
|
|
+ ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level);
|
|
|
+ if *sleepable {
|
|
|
+ data.flags = BPF_F_SLEEPABLE;
|
|
|
+ }
|
|
|
+ Program::FExit(FExit { data })
|
|
|
+ }
|
|
|
ProgramSection::Extension { .. } => Program::Extension(Extension {
|
|
|
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
|
|
|
}),
|