Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/mediatek/mtk_eth_soc.c drivers/net/ethernet/qlogic/qed/qed_dcbx.c drivers/net/phy/Kconfig All conflicts were cases of overlapping commits. Signed-off-by: David S. Miller <davem@davemloft.net>
Este cometimento está contido em:
@@ -2232,7 +2232,7 @@ static struct devinet_sysctl_table {
|
||||
};
|
||||
|
||||
static int __devinet_sysctl_register(struct net *net, char *dev_name,
|
||||
struct ipv4_devconf *p)
|
||||
int ifindex, struct ipv4_devconf *p)
|
||||
{
|
||||
int i;
|
||||
struct devinet_sysctl_table *t;
|
||||
@@ -2255,6 +2255,8 @@ static int __devinet_sysctl_register(struct net *net, char *dev_name,
|
||||
goto free;
|
||||
|
||||
p->sysctl = t;
|
||||
|
||||
inet_netconf_notify_devconf(net, NETCONFA_ALL, ifindex, p);
|
||||
return 0;
|
||||
|
||||
free:
|
||||
@@ -2286,7 +2288,7 @@ static int devinet_sysctl_register(struct in_device *idev)
|
||||
if (err)
|
||||
return err;
|
||||
err = __devinet_sysctl_register(dev_net(idev->dev), idev->dev->name,
|
||||
&idev->cnf);
|
||||
idev->dev->ifindex, &idev->cnf);
|
||||
if (err)
|
||||
neigh_sysctl_unregister(idev->arp_parms);
|
||||
return err;
|
||||
@@ -2347,11 +2349,12 @@ static __net_init int devinet_init_net(struct net *net)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
err = __devinet_sysctl_register(net, "all", all);
|
||||
err = __devinet_sysctl_register(net, "all", NETCONFA_IFINDEX_ALL, all);
|
||||
if (err < 0)
|
||||
goto err_reg_all;
|
||||
|
||||
err = __devinet_sysctl_register(net, "default", dflt);
|
||||
err = __devinet_sysctl_register(net, "default",
|
||||
NETCONFA_IFINDEX_DEFAULT, dflt);
|
||||
if (err < 0)
|
||||
goto err_reg_dflt;
|
||||
|
||||
|
@@ -503,6 +503,7 @@ static int rtentry_to_fib_config(struct net *net, int cmd, struct rtentry *rt,
|
||||
if (!dev)
|
||||
return -ENODEV;
|
||||
cfg->fc_oif = dev->ifindex;
|
||||
cfg->fc_table = l3mdev_fib_table(dev);
|
||||
if (colon) {
|
||||
struct in_ifaddr *ifa;
|
||||
struct in_device *in_dev = __in_dev_get_rtnl(dev);
|
||||
@@ -1021,7 +1022,7 @@ no_promotions:
|
||||
* First of all, we scan fib_info list searching
|
||||
* for stray nexthop entries, then ignite fib_flush.
|
||||
*/
|
||||
if (fib_sync_down_addr(dev_net(dev), ifa->ifa_local))
|
||||
if (fib_sync_down_addr(dev, ifa->ifa_local))
|
||||
fib_flush(dev_net(dev));
|
||||
}
|
||||
}
|
||||
|
@@ -1057,6 +1057,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg)
|
||||
fi->fib_priority = cfg->fc_priority;
|
||||
fi->fib_prefsrc = cfg->fc_prefsrc;
|
||||
fi->fib_type = cfg->fc_type;
|
||||
fi->fib_tb_id = cfg->fc_table;
|
||||
|
||||
fi->fib_nhs = nhs;
|
||||
change_nexthops(fi) {
|
||||
@@ -1337,18 +1338,21 @@ nla_put_failure:
|
||||
* referring to it.
|
||||
* - device went down -> we must shutdown all nexthops going via it.
|
||||
*/
|
||||
int fib_sync_down_addr(struct net *net, __be32 local)
|
||||
int fib_sync_down_addr(struct net_device *dev, __be32 local)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned int hash = fib_laddr_hashfn(local);
|
||||
struct hlist_head *head = &fib_info_laddrhash[hash];
|
||||
struct net *net = dev_net(dev);
|
||||
int tb_id = l3mdev_fib_table(dev);
|
||||
struct fib_info *fi;
|
||||
|
||||
if (!fib_info_laddrhash || local == 0)
|
||||
return 0;
|
||||
|
||||
hlist_for_each_entry(fi, head, fib_lhash) {
|
||||
if (!net_eq(fi->fib_net, net))
|
||||
if (!net_eq(fi->fib_net, net) ||
|
||||
fi->fib_tb_id != tb_id)
|
||||
continue;
|
||||
if (fi->fib_prefsrc == local) {
|
||||
fi->fib_flags |= RTNH_F_DEAD;
|
||||
|
@@ -46,6 +46,7 @@ static const struct nft_expr_ops nft_reject_ipv4_ops = {
|
||||
.eval = nft_reject_ipv4_eval,
|
||||
.init = nft_reject_init,
|
||||
.dump = nft_reject_dump,
|
||||
.validate = nft_reject_validate,
|
||||
};
|
||||
|
||||
static struct nft_expr_type nft_reject_ipv4_type __read_mostly = {
|
||||
|
@@ -150,6 +150,7 @@ void tcp_fastopen_add_skb(struct sock *sk, struct sk_buff *skb)
|
||||
tp->segs_in = 0;
|
||||
tcp_segs_in(tp, skb);
|
||||
__skb_pull(skb, tcp_hdrlen(skb));
|
||||
sk_forced_mem_schedule(sk, skb->truesize);
|
||||
skb_set_owner_r(skb, sk);
|
||||
|
||||
TCP_SKB_CB(skb)->seq++;
|
||||
@@ -226,6 +227,7 @@ static struct sock *tcp_fastopen_create_child(struct sock *sk,
|
||||
tcp_fastopen_add_skb(child, skb);
|
||||
|
||||
tcp_rsk(req)->rcv_nxt = tp->rcv_nxt;
|
||||
tp->rcv_wup = tp->rcv_nxt;
|
||||
/* tcp_conn_request() is sending the SYNACK,
|
||||
* and queues the child into listener accept queue.
|
||||
*/
|
||||
|
@@ -76,7 +76,7 @@ static void tcp_yeah_cong_avoid(struct sock *sk, u32 ack, u32 acked)
|
||||
if (!tcp_is_cwnd_limited(sk))
|
||||
return;
|
||||
|
||||
if (tp->snd_cwnd <= tp->snd_ssthresh)
|
||||
if (tcp_in_slow_start(tp))
|
||||
tcp_slow_start(tp, acked);
|
||||
|
||||
else if (!yeah->doing_reno_now) {
|
||||
|
@@ -29,7 +29,7 @@ static struct dst_entry *__xfrm4_dst_lookup(struct net *net, struct flowi4 *fl4,
|
||||
memset(fl4, 0, sizeof(*fl4));
|
||||
fl4->daddr = daddr->a4;
|
||||
fl4->flowi4_tos = tos;
|
||||
fl4->flowi4_oif = oif;
|
||||
fl4->flowi4_oif = l3mdev_master_ifindex_by_index(net, oif);
|
||||
if (saddr)
|
||||
fl4->saddr = saddr->a4;
|
||||
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador