diff options
author | David S. Miller <davem@davemloft.net> | 2014-04-14 19:00:10 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-04-14 19:00:10 -0400 |
commit | 00cbc3dcd1e2758f65e82c46796e259a0ce22fcc (patch) | |
tree | a9542bbeeca6cfc6d5158b0004302f53f1f8c360 /include/net | |
parent | 1e785f48d29a09b6cf96db7b49b6320dada332e1 (diff) | |
parent | b855d416dc17061ebb271ea7ef1201d100531770 (diff) | |
download | blackbird-op-linux-00cbc3dcd1e2758f65e82c46796e259a0ce22fcc.tar.gz blackbird-op-linux-00cbc3dcd1e2758f65e82c46796e259a0ce22fcc.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
Pablo Neira Ayuso says:
====================
Netfilter fixes for net
The following patchset contains three Netfilter fixes for your net tree,
they are:
* Fix missing generation sequence initialization which results in a splat
if lockdep is enabled, it was introduced in the recent works to improve
nf_conntrack scalability, from Andrey Vagin.
* Don't flush the GRE keymap list in nf_conntrack when the pptp helper is
disabled otherwise this crashes due to a double release, from Andrey
Vagin.
* Fix nf_tables cmp fast in big endian, from Patrick McHardy.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/netfilter/nf_tables_core.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h index cf2b7ae2b9d8..a75fc8e27cd6 100644 --- a/include/net/netfilter/nf_tables_core.h +++ b/include/net/netfilter/nf_tables_core.h @@ -13,6 +13,16 @@ struct nft_cmp_fast_expr { u8 len; }; +/* Calculate the mask for the nft_cmp_fast expression. On big endian the + * mask needs to include the *upper* bytes when interpreting that data as + * something smaller than the full u32, therefore a cpu_to_le32 is done. + */ +static inline u32 nft_cmp_fast_mask(unsigned int len) +{ + return cpu_to_le32(~0U >> (FIELD_SIZEOF(struct nft_cmp_fast_expr, + data) * BITS_PER_BYTE - len)); +} + extern const struct nft_expr_ops nft_cmp_fast_ops; int nft_cmp_module_init(void); |