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; |
