mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	x86: bpf_jit: support negative offsets
Commita998d43423claimed to introduce negative offset support to x86 jit, but it couldn't be working, since at the time of the execution of LD+ABS or LD+IND instructions via call into bpf_internal_load_pointer_neg_helper() the %edx (3rd argument of this func) had junk value instead of access size in bytes (1 or 2 or 4). Store size into %edx instead of %ecx (what original commit intended to do) Fixes:a998d43423("bpf jit: Let the x86 jit handle negative offsets") Signed-off-by: Alexei Starovoitov <ast@plumgrid.com> Cc: Jan Seiffert <kaffeemonster@googlemail.com> Cc: Eric Dumazet <edumazet@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									20a599bec9
								
							
						
					
					
						commit
						fdfaf64e75
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
					@ -140,7 +140,7 @@ bpf_slow_path_byte_msh:
 | 
				
			||||||
	push	%r9;						\
 | 
						push	%r9;						\
 | 
				
			||||||
	push	SKBDATA;					\
 | 
						push	SKBDATA;					\
 | 
				
			||||||
/* rsi already has offset */					\
 | 
					/* rsi already has offset */					\
 | 
				
			||||||
	mov	$SIZE,%ecx;	/* size */			\
 | 
						mov	$SIZE,%edx;	/* size */			\
 | 
				
			||||||
	call	bpf_internal_load_pointer_neg_helper;		\
 | 
						call	bpf_internal_load_pointer_neg_helper;		\
 | 
				
			||||||
	test	%rax,%rax;					\
 | 
						test	%rax,%rax;					\
 | 
				
			||||||
	pop	SKBDATA;					\
 | 
						pop	SKBDATA;					\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue