net/bpf_jit: SPARC: split VLAN_PRESENT bit handling from VLAN_TCI
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									3955dec537
								
							
						
					
					
						commit
						4b50d23179
					
				| @ -552,15 +552,18 @@ void bpf_jit_compile(struct bpf_prog *fp) | ||||
| 				emit_skb_load32(hash, r_A); | ||||
| 				break; | ||||
| 			case BPF_ANC | SKF_AD_VLAN_TAG: | ||||
| 			case BPF_ANC | SKF_AD_VLAN_TAG_PRESENT: | ||||
| 				emit_skb_load16(vlan_tci, r_A); | ||||
| 				if (code != (BPF_ANC | SKF_AD_VLAN_TAG)) { | ||||
| 					emit_alu_K(SRL, 12); | ||||
| #ifdef VLAN_TAG_PRESENT | ||||
| 				emit_loadimm(~VLAN_TAG_PRESENT, r_TMP); | ||||
| 				emit_and(r_A, r_TMP, r_A); | ||||
| #endif | ||||
| 				break; | ||||
| 			case BPF_ANC | SKF_AD_VLAN_TAG_PRESENT: | ||||
| 				__emit_skb_load8(__pkt_vlan_present_offset, r_A); | ||||
| 				if (PKT_VLAN_PRESENT_BIT) | ||||
| 					emit_alu_K(SRL, PKT_VLAN_PRESENT_BIT); | ||||
| 				if (PKT_VLAN_PRESENT_BIT < 7) | ||||
| 					emit_andi(r_A, 1, r_A); | ||||
| 				} else { | ||||
| 					emit_loadimm(~VLAN_TAG_PRESENT, r_TMP); | ||||
| 					emit_and(r_A, r_TMP, r_A); | ||||
| 				} | ||||
| 				break; | ||||
| 			case BPF_LD | BPF_W | BPF_LEN: | ||||
| 				emit_skb_load32(len, r_A); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user