#ifndef _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_ #define _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_ #include #include /** * __ffs - find first bit in word. * @word: The word to search * * Undefined if no bit exists, so code should check against 0 first. */ static __always_inline unsigned long __ffs(unsigned long word) { int num = 0; #if __BITS_PER_LONG == 64 if ((word & 0xffffffff) == 0) { num += 32; word >>= 32; } #endif if ((word & 0xffff) == 0) { num += 16; word >>= 16; } if ((word & 0xff) == 0) { num += 8; word >>= 8; } if ((word & 0xf) == 0) { num += 4; word >>= 4; } if ((word & 0x3) == 0) { num += 2; word >>= 2; } if ((word & 0x1) == 0) num += 1; return num; } #endif /* _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_ */ index : net-next.git
net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Neira <pablo@netfilter.org>2017-01-26 22:56:21 +0100
committerDavid S. Miller <davem@davemloft.net>2017-01-27 10:33:56 -0500
commit92e55f412cffd016cc245a74278cb4d7b89bb3bc (patch)
treeab90e2e59c82daae60d2c953ef6c780e1f6e5550 /include/crypto/if_alg.h
parenta47b70ea86bdeb3091341f5ae3ef580f1a1ad822 (diff)
tcp: don't annotate mark on control socket from tcp_v6_send_response()
Unlike ipv4, this control socket is shared by all cpus so we cannot use it as scratchpad area to annotate the mark that we pass to ip6_xmit(). Add a new parameter to ip6_xmit() to indicate the mark. The SCTP socket family caches the flowi6 structure in the sctp_transport structure, so we cannot use to carry the mark unless we later on reset it back, which I discarded since it looks ugly to me. Fixes: bf99b4ded5f8 ("tcp: fix mark propagation with fwmark_reflect enabled") Suggested-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/crypto/if_alg.h')