diff options
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 6 | ||||
-rw-r--r-- | net/core/fib_rules.c | 7 | ||||
-rw-r--r-- | net/core/netpoll.c | 4 | ||||
-rw-r--r-- | net/core/rtnetlink.c | 2 | ||||
-rw-r--r-- | net/core/sock.c | 6 |
5 files changed, 18 insertions, 7 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 3721db716350..4ad1b78c9c77 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2803,7 +2803,7 @@ EXPORT_SYMBOL(dev_loopback_xmit); | |||
2803 | * the BH enable code must have IRQs enabled so that it will not deadlock. | 2803 | * the BH enable code must have IRQs enabled so that it will not deadlock. |
2804 | * --BLG | 2804 | * --BLG |
2805 | */ | 2805 | */ |
2806 | int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv) | 2806 | static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv) |
2807 | { | 2807 | { |
2808 | struct net_device *dev = skb->dev; | 2808 | struct net_device *dev = skb->dev; |
2809 | struct netdev_queue *txq; | 2809 | struct netdev_queue *txq; |
@@ -4637,7 +4637,7 @@ struct net_device *netdev_master_upper_dev_get_rcu(struct net_device *dev) | |||
4637 | } | 4637 | } |
4638 | EXPORT_SYMBOL(netdev_master_upper_dev_get_rcu); | 4638 | EXPORT_SYMBOL(netdev_master_upper_dev_get_rcu); |
4639 | 4639 | ||
4640 | int netdev_adjacent_sysfs_add(struct net_device *dev, | 4640 | static int netdev_adjacent_sysfs_add(struct net_device *dev, |
4641 | struct net_device *adj_dev, | 4641 | struct net_device *adj_dev, |
4642 | struct list_head *dev_list) | 4642 | struct list_head *dev_list) |
4643 | { | 4643 | { |
@@ -4647,7 +4647,7 @@ int netdev_adjacent_sysfs_add(struct net_device *dev, | |||
4647 | return sysfs_create_link(&(dev->dev.kobj), &(adj_dev->dev.kobj), | 4647 | return sysfs_create_link(&(dev->dev.kobj), &(adj_dev->dev.kobj), |
4648 | linkname); | 4648 | linkname); |
4649 | } | 4649 | } |
4650 | void netdev_adjacent_sysfs_del(struct net_device *dev, | 4650 | static void netdev_adjacent_sysfs_del(struct net_device *dev, |
4651 | char *name, | 4651 | char *name, |
4652 | struct list_head *dev_list) | 4652 | struct list_head *dev_list) |
4653 | { | 4653 | { |
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index f409e0bd35c0..185c341fafbd 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c | |||
@@ -745,6 +745,13 @@ static int fib_rules_event(struct notifier_block *this, unsigned long event, | |||
745 | attach_rules(&ops->rules_list, dev); | 745 | attach_rules(&ops->rules_list, dev); |
746 | break; | 746 | break; |
747 | 747 | ||
748 | case NETDEV_CHANGENAME: | ||
749 | list_for_each_entry(ops, &net->rules_ops, list) { | ||
750 | detach_rules(&ops->rules_list, dev); | ||
751 | attach_rules(&ops->rules_list, dev); | ||
752 | } | ||
753 | break; | ||
754 | |||
748 | case NETDEV_UNREGISTER: | 755 | case NETDEV_UNREGISTER: |
749 | list_for_each_entry(ops, &net->rules_ops, list) | 756 | list_for_each_entry(ops, &net->rules_ops, list) |
750 | detach_rules(&ops->rules_list, dev); | 757 | detach_rules(&ops->rules_list, dev); |
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index c03f3dec4763..a664f7829a6d 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -948,6 +948,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt) | |||
948 | { | 948 | { |
949 | char *cur=opt, *delim; | 949 | char *cur=opt, *delim; |
950 | int ipv6; | 950 | int ipv6; |
951 | bool ipversion_set = false; | ||
951 | 952 | ||
952 | if (*cur != '@') { | 953 | if (*cur != '@') { |
953 | if ((delim = strchr(cur, '@')) == NULL) | 954 | if ((delim = strchr(cur, '@')) == NULL) |
@@ -960,6 +961,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt) | |||
960 | cur++; | 961 | cur++; |
961 | 962 | ||
962 | if (*cur != '/') { | 963 | if (*cur != '/') { |
964 | ipversion_set = true; | ||
963 | if ((delim = strchr(cur, '/')) == NULL) | 965 | if ((delim = strchr(cur, '/')) == NULL) |
964 | goto parse_failed; | 966 | goto parse_failed; |
965 | *delim = 0; | 967 | *delim = 0; |
@@ -1002,7 +1004,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt) | |||
1002 | ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip); | 1004 | ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip); |
1003 | if (ipv6 < 0) | 1005 | if (ipv6 < 0) |
1004 | goto parse_failed; | 1006 | goto parse_failed; |
1005 | else if (np->ipv6 != (bool)ipv6) | 1007 | else if (ipversion_set && np->ipv6 != (bool)ipv6) |
1006 | goto parse_failed; | 1008 | goto parse_failed; |
1007 | else | 1009 | else |
1008 | np->ipv6 = (bool)ipv6; | 1010 | np->ipv6 = (bool)ipv6; |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 393b1bc9a618..048dc8d183aa 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -374,7 +374,7 @@ static size_t rtnl_link_get_slave_info_data_size(const struct net_device *dev) | |||
374 | if (!master_dev) | 374 | if (!master_dev) |
375 | return 0; | 375 | return 0; |
376 | ops = master_dev->rtnl_link_ops; | 376 | ops = master_dev->rtnl_link_ops; |
377 | if (!ops->get_slave_size) | 377 | if (!ops || !ops->get_slave_size) |
378 | return 0; | 378 | return 0; |
379 | /* IFLA_INFO_SLAVE_DATA + nested data */ | 379 | /* IFLA_INFO_SLAVE_DATA + nested data */ |
380 | return nla_total_size(sizeof(struct nlattr)) + | 380 | return nla_total_size(sizeof(struct nlattr)) + |
diff --git a/net/core/sock.c b/net/core/sock.c index 0c127dcdf6a8..5b6a9431b017 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -1775,7 +1775,9 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len, | |||
1775 | while (order) { | 1775 | while (order) { |
1776 | if (npages >= 1 << order) { | 1776 | if (npages >= 1 << order) { |
1777 | page = alloc_pages(sk->sk_allocation | | 1777 | page = alloc_pages(sk->sk_allocation | |
1778 | __GFP_COMP | __GFP_NOWARN, | 1778 | __GFP_COMP | |
1779 | __GFP_NOWARN | | ||
1780 | __GFP_NORETRY, | ||
1779 | order); | 1781 | order); |
1780 | if (page) | 1782 | if (page) |
1781 | goto fill_page; | 1783 | goto fill_page; |
@@ -1845,7 +1847,7 @@ bool skb_page_frag_refill(unsigned int sz, struct page_frag *pfrag, gfp_t prio) | |||
1845 | gfp_t gfp = prio; | 1847 | gfp_t gfp = prio; |
1846 | 1848 | ||
1847 | if (order) | 1849 | if (order) |
1848 | gfp |= __GFP_COMP | __GFP_NOWARN; | 1850 | gfp |= __GFP_COMP | __GFP_NOWARN | __GFP_NORETRY; |
1849 | pfrag->page = alloc_pages(gfp, order); | 1851 | pfrag->page = alloc_pages(gfp, order); |
1850 | if (likely(pfrag->page)) { | 1852 | if (likely(pfrag->page)) { |
1851 | pfrag->offset = 0; | 1853 | pfrag->offset = 0; |