|  |  |  | @ -231,6 +231,7 @@ pub enum ProgramSection { | 
		
	
		
			
				|  |  |  |  |     }, | 
		
	
		
			
				|  |  |  |  |     Lsm { | 
		
	
		
			
				|  |  |  |  |         name: String, | 
		
	
		
			
				|  |  |  |  |         sleepable_supported: bool, | 
		
	
		
			
				|  |  |  |  |     }, | 
		
	
		
			
				|  |  |  |  |     BtfTracePoint { | 
		
	
		
			
				|  |  |  |  |         name: String, | 
		
	
	
		
			
				
					|  |  |  | @ -281,7 +282,7 @@ impl ProgramSection { | 
		
	
		
			
				|  |  |  |  |             ProgramSection::LircMode2 { name } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::PerfEvent { name } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::RawTracePoint { name } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::Lsm { name } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::Lsm { name, .. } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::BtfTracePoint { name } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::FEntry { name } => name, | 
		
	
		
			
				|  |  |  |  |             ProgramSection::FExit { name } => name, | 
		
	
	
		
			
				
					|  |  |  | @ -472,7 +473,14 @@ impl FromStr for ProgramSection { | 
		
	
		
			
				|  |  |  |  |             "lirc_mode2" => LircMode2 { name }, | 
		
	
		
			
				|  |  |  |  |             "perf_event" => PerfEvent { name }, | 
		
	
		
			
				|  |  |  |  |             "raw_tp" | "raw_tracepoint" => RawTracePoint { name }, | 
		
	
		
			
				|  |  |  |  |             "lsm" => Lsm { name }, | 
		
	
		
			
				|  |  |  |  |             "lsm" => Lsm { | 
		
	
		
			
				|  |  |  |  |                 name, | 
		
	
		
			
				|  |  |  |  |                 sleepable_supported: false, | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |             "lsm.s+" => Lsm { | 
		
	
		
			
				|  |  |  |  |                 name, | 
		
	
		
			
				|  |  |  |  |                 sleepable_supported: true, | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |             "fentry" => FEntry { name }, | 
		
	
		
			
				|  |  |  |  |             "fexit" => FExit { name }, | 
		
	
		
			
				|  |  |  |  |             "freplace" => Extension { name }, | 
		
	
	
		
			
				
					|  |  |  | @ -1926,6 +1934,30 @@ mod tests { | 
		
	
		
			
				|  |  |  |  |         ); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     #[test] | 
		
	
		
			
				|  |  |  |  |     fn test_parse_section_lsm_sleepable() { | 
		
	
		
			
				|  |  |  |  |         let mut obj = fake_obj(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         assert_matches!( | 
		
	
		
			
				|  |  |  |  |             obj.parse_section(fake_section( | 
		
	
		
			
				|  |  |  |  |                 BpfSectionKind::Program, | 
		
	
		
			
				|  |  |  |  |                 "lsm.s+/foo", | 
		
	
		
			
				|  |  |  |  |                 bytes_of(&fake_ins()) | 
		
	
		
			
				|  |  |  |  |             )), | 
		
	
		
			
				|  |  |  |  |             Ok(()) | 
		
	
		
			
				|  |  |  |  |         ); | 
		
	
		
			
				|  |  |  |  |         assert_matches!( | 
		
	
		
			
				|  |  |  |  |             obj.programs.get("foo"), | 
		
	
		
			
				|  |  |  |  |             Some(Program { | 
		
	
		
			
				|  |  |  |  |                 section: ProgramSection::Lsm { | 
		
	
		
			
				|  |  |  |  |                     sleepable_supported: true, | 
		
	
		
			
				|  |  |  |  |                     .. | 
		
	
		
			
				|  |  |  |  |                 }, | 
		
	
		
			
				|  |  |  |  |                 .. | 
		
	
		
			
				|  |  |  |  |             }) | 
		
	
		
			
				|  |  |  |  |         ); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     #[test] | 
		
	
		
			
				|  |  |  |  |     fn test_parse_section_btf_tracepoint() { | 
		
	
		
			
				|  |  |  |  |         let mut obj = fake_obj(); | 
		
	
	
		
			
				
					|  |  |  | 
 |