/* * netsniff-ng - the packet sniffing beast * Copyright 2009, 2010 Daniel Borkmann. * Subject to the GPL, version 2. */ #ifndef BPF_I_H #define BPF_I_H #include #include #include #include "xmalloc.h" extern void bpf_dump_op_table(void); extern void bpf_dump_all(struct sock_fprog *bpf); extern int __bpf_validate(const struct sock_fprog *bpf); extern uint32_t bpf_run_filter(const struct sock_fprog *bpf, uint8_t *packet, size_t plen); extern void bpf_attach_to_sock(int sock, struct sock_fprog *bpf); extern void bpf_detach_from_sock(int sock); extern int enable_kernel_bpf_jit_compiler(void); extern void bpf_parse_rules(char *rulefile, struct sock_fprog *bpf, uint32_t link_type); #ifdef __WITH_TCPDUMP_LIKE_FILTER extern void bpf_try_compile(const char *rulefile, struct sock_fprog *bpf, uint32_t link_type); #else static inline void bpf_try_compile(const char *rulefile, struct sock_fprog *bpf, uint32_t link_type) { panic("Cannot open file %s!\n", rulefile); } #endif static inline void bpf_release(struct sock_fprog *bpf) { free(bpf->filter); } #define BPF_CLASS(code) ((code) & 0x07) #define BPF_LD 0x00 #define BPF_LDX 0x01 #define BPF_ST 0x02 #define BPF_STX 0x03 #define BPF_ALU 0x04 #define BPF_JMP 0x05 #define BPF_RET 0x06 #define BPF_MISC 0x07 #define BPF_SIZE(code) ((code) & 0x18) #define BPF_W 0x00 #define BPF_H 0x08 #define BPF_B 0x10 #define BPF_MODE(code) ((code) & 0xe0) #define BPF_IMM 0x00 #define BPF_ABS 0x20 #define BPF_IND 0x40 #define BPF_MEM 0x60 #define BPF_LEN 0x80 #define BPF_MSH 0xa0 #define BPF_OP(code) ((code) & 0xf0) #define BPF_ADD 0x00 #define BPF_SUB 0x10 #define BPF_MUL 0x20 #define BPF_DIV 0x30 #define BPF_OR 0x40 #define BPF_AND 0x50 #define BPF_LSH 0x60 #define BPF_RSH 0x70 #define BPF_NEG 0x80 #define BPF_MOD 0x90 #define BPF_XOR 0xa0 #define BPF_JA 0x00 #define BPF_JEQ 0x10 #define BPF_JGT 0x20 #define BPF_JGE 0x30 #define BPF_JSET 0x40 #define BPF_SRC(code) ((code) & 0x08) #define BPF_K 0x00 #define BPF_X 0x08 /* ret - BPF_K and BPF_X also apply */ #define BPF_RVAL(code) ((code) & 0x18) #define BPF_A 0x10 #define BPF_MISCOP(code) ((code) & 0xf8) #define BPF_TAX 0x00 #define BPF_TXA 0x80 #ifndef SKF_AD_OFF # define SKF_AD_OFF (-0x1000) #endif #ifndef SKF_AD_PROTOCOL # define SKF_AD_PROTOCOL 0 #endif #ifndef SKF_AD_PKTTYPE # define SKF_AD_PKTTYPE 4 #endif #ifndef SKF_AD_IFINDEX # define SKF_AD_IFINDEX 8 #endif #ifndef SKF_AD_NLATTR # define SKF_AD_NLATTR 12 #endif #ifndef SKF_AD_NLATTR_NEST # define SKF_AD_NLATTR_NEST 16 #endif #ifndef SKF_AD_MARK # define SKF_AD_MARK 20 #endif #ifndef SKF_AD_QUEUE # define SKF_AD_QUEUE 24 #endif #ifndef SKF_AD_HATYPE # define SKF_AD_HATYPE 28 #endif #ifndef SKF_AD_RXHASH # define SKF_AD_RXHASH 32 #endif #ifndef SKF_AD_CPU # define SKF_AD_CPU 36 #endif #ifndef SKF_AD_VLAN_TAG # define SKF_AD_VLAN_TAG 44 #endif #ifndef SKF_AD_VLAN_TAG_PRESENT # define SKF_AD_VLAN_TAG_PRESENT 48 #endif #ifndef SKF_AD_PAY_OFFSET # define SKF_AD_PAY_OFFSET 52 #endif #endif /* BPF_I_H */ ver'>AgeCommit message (Expand)AuthorFilesLines n value='2'>2space:mode:
authorThomas Gleixner <tglx@linutronix.de>2017-01-31 09:37:34 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-01-31 21:47:58 +0100
commit0becc0ae5b42828785b589f686725ff5bc3b9b25 (patch)
treebe6d0e1f37c38ed0a7dd5da2d4b1e93f0fb43101 /net/qrtr/qrtr.c
parent24c2503255d35c269b67162c397a1a1c1e02f6ce (diff)
x86/mce: Make timer handling more robust
Erik reported that on a preproduction hardware a CMCI storm triggers the BUG_ON in add_timer_on(). The reason is that the per CPU MCE timer is started by the CMCI logic before the MCE CPU hotplug callback starts the timer with add_timer_on(). So the timer is already queued which triggers the BUG. Using add_timer_on() is pretty pointless in this code because the timer is strictlty per CPU, initialized as pinned and all operations which arm the timer happen on the CPU to which the timer belongs. Simplify the whole machinery by using mod_timer() instead of add_timer_on() which avoids the problem because mod_timer() can handle already queued timers. Use __start_timer() everywhere so the earliest armed expiry time is preserved. Reported-by: Erik Veijola <erik.veijola@intel.com> Tested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bp@alien8.de> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1701310936080.3457@nanos Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'net/qrtr/qrtr.c')