[IPV4]: Add 'rtable' field in struct sk_buff to alias 'dst' and avoid casts
(Anonymous) unions can help us to avoid ugly casts. A common cast it the (struct rtable *)skb->dst one. Defining an union like : union { struct dst_entry *dst; struct rtable *rtable; }; permits to use skb->rtable in place. Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
a05c44f6d5
commit
ee6b967301
@@ -475,7 +475,7 @@ int arp_find(unsigned char *haddr, struct sk_buff *skb)
|
||||
return 1;
|
||||
}
|
||||
|
||||
paddr = ((struct rtable*)skb->dst)->rt_gateway;
|
||||
paddr = skb->rtable->rt_gateway;
|
||||
|
||||
if (arp_set_predefined(inet_addr_type(&init_net, paddr), haddr, paddr, dev))
|
||||
return 0;
|
||||
@@ -814,7 +814,7 @@ static int arp_process(struct sk_buff *skb)
|
||||
if (arp->ar_op == htons(ARPOP_REQUEST) &&
|
||||
ip_route_input(skb, tip, sip, 0, dev) == 0) {
|
||||
|
||||
rt = (struct rtable*)skb->dst;
|
||||
rt = skb->rtable;
|
||||
addr_type = rt->rt_type;
|
||||
|
||||
if (addr_type == RTN_LOCAL) {
|
||||
|
Reference in New Issue
Block a user