Hello, On Wed, 3 Apr 2019, Simon Horman wrote: > On Sun, Mar 31, 2019 at 01:26:20PM +0300, Julian Anastasov wrote: > > > diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c > > index 14457551bcb4..4447ee512b88 100644 > > --- a/net/netfilter/ipvs/ip_vs_core.c > > +++ b/net/netfilter/ipvs/ip_vs_core.c > > @@ -1598,6 +1598,7 @@ ip_vs_in_icmp(struct netns_ipvs *ipvs, struct sk_buff *skb, int *related, > > struct ip_vs_proto_data *pd; > > unsigned int offset, offset2, ihl, verdict; > > bool ipip, new_cp = false; > > + union nf_inet_addr *raddr; > > > > *related = 1; > > > > @@ -1636,15 +1637,22 @@ ip_vs_in_icmp(struct netns_ipvs *ipvs, struct sk_buff *skb, int *related, > > cih = skb_header_pointer(skb, offset, sizeof(_ciph), &_ciph); > > if (cih == NULL) > > return NF_ACCEPT; /* The packet looks wrong, ignore */ > > + raddr = (union nf_inet_addr *)&cih->daddr; > > Hi Julian, > > Could we consider the following instead of casting? > > union nf_inet_addr raddr; > > ... > > raddr.ip = cih->daddr; It was my initial option but then I decided to reduce the stack usage Regards -- Julian Anastasov <ja@xxxxxx>