The commit is pushed to "branch-rh7-3.10.0-327.10.1.vz7.12.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-327.10.1.vz7.12.3 ------> commit 2e771e009a262825b6e372355a497a1d0e2a436a Author: Pavel Tikhomirov <ptikhomi...@virtuozzo.com> Date: Thu Mar 24 19:53:29 2016 +0400
vzprivnet: Netmask byte order toss Port diff-vz-privnet-netmask-byte-order-toss vzprivnet: Toss htonl/ntohl conversions Make the mask manipulation routines perform byte-ordering themselves. Signed-off-by: Pavel Emelyanov <xe...@parallels.com> Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com> --- net/ipv4/netfilter/ip_vzprivnet.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/ipv4/netfilter/ip_vzprivnet.c b/net/ipv4/netfilter/ip_vzprivnet.c index e2eb344..8a8520a 100644 --- a/net/ipv4/netfilter/ip_vzprivnet.c +++ b/net/ipv4/netfilter/ip_vzprivnet.c @@ -240,11 +240,12 @@ static struct nf_hook_ops vzprivnet_ops = { static inline u32 to_netmask(int prefix) { - return ((~0 << (32 - prefix))); + return htonl((~0 << (32 - prefix))); } static inline unsigned int to_prefix(u32 netmask) { + netmask = ntohl(netmask); return 32 - ilog2(~netmask + 1); } @@ -363,8 +364,8 @@ static int parse_param(const char *param, int *add, u32 *net, if (err < 6 || m1 == 0 || m1 > 32 || m2 == 0 || m2 > 32) return -EINVAL; - *netmask1 = htonl(to_netmask(m1)); - *netmask2 = htonl(to_netmask(m2)); + *netmask1 = to_netmask(m1); + *netmask2 = to_netmask(m2); *net &= *netmask1; } else *netmask1 = *netmask2 = 0; @@ -457,7 +458,7 @@ static int vzprivnet_seq_show(struct seq_file *s, void *v) struct vzprivnet_range *p = v; seq_printf(s, "%pI4/%u/%u", &p->netip, - to_prefix(ntohl(p->rmask)), to_prefix(ntohl(p->pn->nmask))); + to_prefix(p->rmask), to_prefix(p->pn->nmask)); if (p->pn->weak) seq_printf(s, "*\n"); else _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel