mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 10:44:14 +08:00
Merge branch 'ipv4-routing-cleanups'
Alexander Duyck says: ==================== Minor IPv4 routing cleanups These patches just contain some minor cleanups to address a few minor issues. The first and the third mostly just improve readability. The second patch should improve the performance for multicast destination addresses that do not have a localhost source IP address by avoiding some unnecessary dereferences. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
4c7e622ddf
@ -110,7 +110,7 @@ struct ip_mc_list {
|
||||
#define IGMPV3_QQIC(value) IGMPV3_EXP(0x80, 4, 3, value)
|
||||
#define IGMPV3_MRC(value) IGMPV3_EXP(0x80, 4, 3, value)
|
||||
|
||||
extern int ip_check_mc_rcu(struct in_device *dev, __be32 mc_addr, __be32 src_addr, u16 proto);
|
||||
extern int ip_check_mc_rcu(struct in_device *dev, __be32 mc_addr, __be32 src_addr, u8 proto);
|
||||
extern int igmp_rcv(struct sk_buff *);
|
||||
extern int ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr);
|
||||
extern int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr);
|
||||
|
@ -2569,7 +2569,7 @@ void ip_mc_drop_socket(struct sock *sk)
|
||||
}
|
||||
|
||||
/* called with rcu_read_lock() */
|
||||
int ip_check_mc_rcu(struct in_device *in_dev, __be32 mc_addr, __be32 src_addr, u16 proto)
|
||||
int ip_check_mc_rcu(struct in_device *in_dev, __be32 mc_addr, __be32 src_addr, u8 proto)
|
||||
{
|
||||
struct ip_mc_list *im;
|
||||
struct ip_mc_list __rcu **mc_hash;
|
||||
|
@ -1487,9 +1487,8 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
||||
skb->protocol != htons(ETH_P_IP))
|
||||
goto e_inval;
|
||||
|
||||
if (likely(!IN_DEV_ROUTE_LOCALNET(in_dev)))
|
||||
if (ipv4_is_loopback(saddr))
|
||||
goto e_inval;
|
||||
if (ipv4_is_loopback(saddr) && !IN_DEV_ROUTE_LOCALNET(in_dev))
|
||||
goto e_inval;
|
||||
|
||||
if (ipv4_is_zeronet(saddr)) {
|
||||
if (!ipv4_is_local_multicast(daddr))
|
||||
@ -1760,7 +1759,7 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
||||
err = fib_validate_source(skb, saddr, daddr, tos,
|
||||
0, dev, in_dev, &itag);
|
||||
if (err < 0)
|
||||
goto martian_source_keep_err;
|
||||
goto martian_source;
|
||||
goto local_input;
|
||||
}
|
||||
|
||||
@ -1782,7 +1781,7 @@ brd_input:
|
||||
err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
|
||||
in_dev, &itag);
|
||||
if (err < 0)
|
||||
goto martian_source_keep_err;
|
||||
goto martian_source;
|
||||
}
|
||||
flags |= RTCF_BROADCAST;
|
||||
res.type = RTN_BROADCAST;
|
||||
@ -1858,8 +1857,6 @@ e_nobufs:
|
||||
goto out;
|
||||
|
||||
martian_source:
|
||||
err = -EINVAL;
|
||||
martian_source_keep_err:
|
||||
ip_handle_martian_source(dev, in_dev, skb, daddr, saddr);
|
||||
goto out;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user