diff options
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index d20891465247..67bfac1abfc1 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -2068,20 +2068,23 @@ struct pcpu_sw_netstats { | |||
2068 | struct u64_stats_sync syncp; | 2068 | struct u64_stats_sync syncp; |
2069 | }; | 2069 | }; |
2070 | 2070 | ||
2071 | #define netdev_alloc_pcpu_stats(type) \ | 2071 | #define __netdev_alloc_pcpu_stats(type, gfp) \ |
2072 | ({ \ | 2072 | ({ \ |
2073 | typeof(type) __percpu *pcpu_stats = alloc_percpu(type); \ | 2073 | typeof(type) __percpu *pcpu_stats = alloc_percpu_gfp(type, gfp);\ |
2074 | if (pcpu_stats) { \ | 2074 | if (pcpu_stats) { \ |
2075 | int __cpu; \ | 2075 | int __cpu; \ |
2076 | for_each_possible_cpu(__cpu) { \ | 2076 | for_each_possible_cpu(__cpu) { \ |
2077 | typeof(type) *stat; \ | 2077 | typeof(type) *stat; \ |
2078 | stat = per_cpu_ptr(pcpu_stats, __cpu); \ | 2078 | stat = per_cpu_ptr(pcpu_stats, __cpu); \ |
2079 | u64_stats_init(&stat->syncp); \ | 2079 | u64_stats_init(&stat->syncp); \ |
2080 | } \ | 2080 | } \ |
2081 | } \ | 2081 | } \ |
2082 | pcpu_stats; \ | 2082 | pcpu_stats; \ |
2083 | }) | 2083 | }) |
2084 | 2084 | ||
2085 | #define netdev_alloc_pcpu_stats(type) \ | ||
2086 | __netdev_alloc_pcpu_stats(type, GFP_KERNEL); | ||
2087 | |||
2085 | #include <linux/notifier.h> | 2088 | #include <linux/notifier.h> |
2086 | 2089 | ||
2087 | /* netdevice notifier chain. Please remember to update the rtnetlink | 2090 | /* netdevice notifier chain. Please remember to update the rtnetlink |
@@ -3854,6 +3857,11 @@ static inline bool netif_is_bridge_master(const struct net_device *dev) | |||
3854 | return dev->priv_flags & IFF_EBRIDGE; | 3857 | return dev->priv_flags & IFF_EBRIDGE; |
3855 | } | 3858 | } |
3856 | 3859 | ||
3860 | static inline bool netif_is_bridge_port(const struct net_device *dev) | ||
3861 | { | ||
3862 | return dev->priv_flags & IFF_BRIDGE_PORT; | ||
3863 | } | ||
3864 | |||
3857 | static inline bool netif_is_ovs_master(const struct net_device *dev) | 3865 | static inline bool netif_is_ovs_master(const struct net_device *dev) |
3858 | { | 3866 | { |
3859 | return dev->priv_flags & IFF_OPENVSWITCH; | 3867 | return dev->priv_flags & IFF_OPENVSWITCH; |