From: Willem de Bruijn <will...@google.com> With configurable gro, the flags field in net_offloads may be changed.
Remove the const keyword. This is a noop otherwise. Signed-off-by: Willem de Bruijn <will...@google.com> --- include/linux/netdevice.h | 14 +++++++------- include/net/protocol.h | 12 ++++++------ net/core/dev.c | 8 +++----- net/ipv4/af_inet.c | 2 +- net/ipv4/esp4_offload.c | 2 +- net/ipv4/fou.c | 8 ++++---- net/ipv4/gre_offload.c | 2 +- net/ipv4/protocol.c | 10 +++++----- net/ipv4/tcp_offload.c | 2 +- net/ipv4/udp_offload.c | 6 +++--- net/ipv6/esp6_offload.c | 2 +- net/ipv6/ip6_offload.c | 6 +++--- net/ipv6/protocol.c | 10 +++++----- net/ipv6/tcpv6_offload.c | 2 +- net/ipv6/udp_offload.c | 2 +- net/sctp/offload.c | 2 +- 16 files changed, 44 insertions(+), 46 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 1c97a048506f..b9e671887fc2 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -3557,7 +3557,7 @@ void napi_gro_flush(struct napi_struct *napi, bool flush_old); struct sk_buff *napi_get_frags(struct napi_struct *napi); gro_result_t napi_gro_frags(struct napi_struct *napi); -extern const struct net_offload __rcu *dev_offloads[256]; +extern struct net_offload __rcu *dev_offloads[256]; static inline u8 net_offload_from_type(u16 type) { @@ -3567,19 +3567,19 @@ static inline u8 net_offload_from_type(u16 type) return type & 0xFF; } -static inline bool net_offload_has_flag(const struct net_offload __rcu **offs, +static inline bool net_offload_has_flag(struct net_offload __rcu **offs, u16 type, u16 flag) { - const struct net_offload *off; + struct net_offload *off; off = offs ? rcu_dereference(offs[net_offload_from_type(type)]) : NULL; return off && off->flags & flag; } static inline const struct net_offload * -net_gro_receive(const struct net_offload __rcu **offs, u16 type) +net_gro_receive(struct net_offload __rcu **offs, u16 type) { - const struct net_offload *off; + struct net_offload *off; off = rcu_dereference(offs[net_offload_from_type(type)]); if (off && off->callbacks.gro_receive && @@ -3589,10 +3589,10 @@ net_gro_receive(const struct net_offload __rcu **offs, u16 type) return NULL; } -static inline int net_gro_complete(const struct net_offload __rcu **offs, +static inline int net_gro_complete(struct net_offload __rcu **offs, u16 type, struct sk_buff *skb, int nhoff) { - const struct net_offload *off; + struct net_offload *off; int ret = -ENOENT; rcu_read_lock(); diff --git a/include/net/protocol.h b/include/net/protocol.h index 53a0322ee545..5e2c20b662d1 100644 --- a/include/net/protocol.h +++ b/include/net/protocol.h @@ -87,8 +87,8 @@ struct inet_protosw { #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ extern struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS]; -extern const struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS]; -extern const struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS]; +extern struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS]; +extern struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS]; #if IS_ENABLED(CONFIG_IPV6) extern struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS]; @@ -96,8 +96,8 @@ extern struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS]; int inet_add_protocol(const struct net_protocol *prot, unsigned char num); int inet_del_protocol(const struct net_protocol *prot, unsigned char num); -int inet_add_offload(const struct net_offload *prot, unsigned char num); -int inet_del_offload(const struct net_offload *prot, unsigned char num); +int inet_add_offload(struct net_offload *prot, unsigned char num); +int inet_del_offload(struct net_offload *prot, unsigned char num); void inet_register_protosw(struct inet_protosw *p); void inet_unregister_protosw(struct inet_protosw *p); @@ -107,7 +107,7 @@ int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num); int inet6_register_protosw(struct inet_protosw *p); void inet6_unregister_protosw(struct inet_protosw *p); #endif -int inet6_add_offload(const struct net_offload *prot, unsigned char num); -int inet6_del_offload(const struct net_offload *prot, unsigned char num); +int inet6_add_offload(struct net_offload *prot, unsigned char num); +int inet6_del_offload(struct net_offload *prot, unsigned char num); #endif /* _PROTOCOL_H */ diff --git a/net/core/dev.c b/net/core/dev.c index ae5fbd4114d2..20d9552afd38 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -466,7 +466,7 @@ void dev_remove_pack(struct packet_type *pt) EXPORT_SYMBOL(dev_remove_pack); -const struct net_offload __rcu *dev_offloads[256] __read_mostly; +struct net_offload __rcu *dev_offloads[256] __read_mostly; EXPORT_SYMBOL(dev_offloads); /** @@ -483,8 +483,7 @@ EXPORT_SYMBOL(dev_offloads); */ void dev_add_offload(struct packet_offload *po) { - cmpxchg((const struct net_offload **) - &dev_offloads[net_offload_from_type(po->type)], + cmpxchg(&dev_offloads[net_offload_from_type(po->type)], NULL, po); } EXPORT_SYMBOL(dev_add_offload); @@ -504,8 +503,7 @@ EXPORT_SYMBOL(dev_add_offload); */ static int __dev_remove_offload(struct packet_offload *po) { - return (cmpxchg((const struct net_offload **) - &dev_offloads[net_offload_from_type(po->type)], + return (cmpxchg(&dev_offloads[net_offload_from_type(po->type)], po, NULL) == po) ? 0 : -1; } diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 28b7c7671789..f3ee6f4dfc0f 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1839,7 +1839,7 @@ static struct packet_offload ip_packet_offload __read_mostly = { }, }; -static const struct net_offload ipip_offload = { +static struct net_offload ipip_offload = { .callbacks = { .gso_segment = inet_gso_segment, .gro_receive = ipip_gro_receive, diff --git a/net/ipv4/esp4_offload.c b/net/ipv4/esp4_offload.c index 58834a10c0be..e6d7a9be9244 100644 --- a/net/ipv4/esp4_offload.c +++ b/net/ipv4/esp4_offload.c @@ -240,7 +240,7 @@ static int esp_xmit(struct xfrm_state *x, struct sk_buff *skb, netdev_features_ return 0; } -static const struct net_offload esp4_offload = { +static struct net_offload esp4_offload = { .callbacks = { .gro_receive = esp4_gro_receive, .gso_segment = esp4_gso_segment, diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c index 13401cb2e7a4..52e01dcaa417 100644 --- a/net/ipv4/fou.c +++ b/net/ipv4/fou.c @@ -229,7 +229,7 @@ static struct sk_buff *fou_gro_receive(struct sock *sk, struct sk_buff *skb) { u8 proto = fou_from_sock(sk)->protocol; - const struct net_offload **offloads; + struct net_offload **offloads; const struct net_offload *ops; struct sk_buff *pp = NULL; @@ -262,7 +262,7 @@ static int fou_gro_complete(struct sock *sk, struct sk_buff *skb, int nhoff) { u8 proto = fou_from_sock(sk)->protocol; - const struct net_offload **offloads; + struct net_offload **offloads; int err; offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; @@ -299,7 +299,7 @@ static struct sk_buff *gue_gro_receive(struct sock *sk, struct list_head *head, struct sk_buff *skb) { - const struct net_offload **offloads; + struct net_offload **offloads; const struct net_offload *ops; struct sk_buff *pp = NULL; struct sk_buff *p; @@ -445,7 +445,7 @@ static struct sk_buff *gue_gro_receive(struct sock *sk, static int gue_gro_complete(struct sock *sk, struct sk_buff *skb, int nhoff) { - const struct net_offload **offloads; + struct net_offload **offloads; struct guehdr *guehdr = (struct guehdr *)(skb->data + nhoff); unsigned int guehlen = 0; u8 proto; diff --git a/net/ipv4/gre_offload.c b/net/ipv4/gre_offload.c index 4f9237a4bea1..70910650d322 100644 --- a/net/ipv4/gre_offload.c +++ b/net/ipv4/gre_offload.c @@ -252,7 +252,7 @@ static int gre_gro_complete(struct sk_buff *skb, int nhoff) return err; } -static const struct net_offload gre_offload = { +static struct net_offload gre_offload = { .callbacks = { .gso_segment = gre_gso_segment, .gro_receive = gre_gro_receive, diff --git a/net/ipv4/protocol.c b/net/ipv4/protocol.c index 32a691b7ce2c..66948d77672e 100644 --- a/net/ipv4/protocol.c +++ b/net/ipv4/protocol.c @@ -29,7 +29,7 @@ #include <net/protocol.h> struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS] __read_mostly; -const struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS] __read_mostly; +struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS] __read_mostly; EXPORT_SYMBOL(inet_offloads); int inet_add_protocol(const struct net_protocol *prot, unsigned char protocol) @@ -45,9 +45,9 @@ int inet_add_protocol(const struct net_protocol *prot, unsigned char protocol) } EXPORT_SYMBOL(inet_add_protocol); -int inet_add_offload(const struct net_offload *prot, unsigned char protocol) +int inet_add_offload(struct net_offload *prot, unsigned char protocol) { - return !cmpxchg((const struct net_offload **)&inet_offloads[protocol], + return !cmpxchg((struct net_offload **)&inet_offloads[protocol], NULL, prot) ? 0 : -1; } EXPORT_SYMBOL(inet_add_offload); @@ -65,11 +65,11 @@ int inet_del_protocol(const struct net_protocol *prot, unsigned char protocol) } EXPORT_SYMBOL(inet_del_protocol); -int inet_del_offload(const struct net_offload *prot, unsigned char protocol) +int inet_del_offload(struct net_offload *prot, unsigned char protocol) { int ret; - ret = (cmpxchg((const struct net_offload **)&inet_offloads[protocol], + ret = (cmpxchg((struct net_offload **)&inet_offloads[protocol], prot, NULL) == prot) ? 0 : -1; synchronize_net(); diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c index 870b0a335061..d670f2d008bc 100644 --- a/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c @@ -333,7 +333,7 @@ static int tcp4_gro_complete(struct sk_buff *skb, int thoff) return tcp_gro_complete(skb); } -static const struct net_offload tcpv4_offload = { +static struct net_offload tcpv4_offload = { .callbacks = { .gso_segment = tcp4_gso_segment, .gro_receive = tcp4_gro_receive, diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c index 0c0522b79b43..4f6aa95a9b12 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c @@ -153,8 +153,8 @@ struct sk_buff *skb_udp_tunnel_segment(struct sk_buff *skb, bool is_ipv6) { __be16 protocol = skb->protocol; - const struct net_offload **offloads; - const struct net_offload *ops; + struct net_offload **offloads; + struct net_offload *ops; struct sk_buff *segs = ERR_PTR(-EINVAL); struct sk_buff *(*gso_inner_segment)(struct sk_buff *skb, netdev_features_t features); @@ -472,7 +472,7 @@ static int udp4_gro_complete(struct sk_buff *skb, int nhoff) return udp_gro_complete(skb, nhoff, udp4_lib_lookup_skb); } -static const struct net_offload udpv4_offload = { +static struct net_offload udpv4_offload = { .callbacks = { .gso_segment = udp4_ufo_fragment, .gro_receive = udp4_gro_receive, diff --git a/net/ipv6/esp6_offload.c b/net/ipv6/esp6_offload.c index 6177e2171171..169dcd5c7135 100644 --- a/net/ipv6/esp6_offload.c +++ b/net/ipv6/esp6_offload.c @@ -268,7 +268,7 @@ static int esp6_xmit(struct xfrm_state *x, struct sk_buff *skb, netdev_features return 0; } -static const struct net_offload esp6_offload = { +static struct net_offload esp6_offload = { .callbacks = { .gro_receive = esp6_gro_receive, .gso_segment = esp6_gso_segment, diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c index 4854509a2c5d..2d0ea3f453f2 100644 --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c @@ -330,7 +330,7 @@ static struct packet_offload ipv6_packet_offload __read_mostly = { }, }; -static const struct net_offload sit_offload = { +static struct net_offload sit_offload = { .callbacks = { .gso_segment = ipv6_gso_segment, .gro_receive = sit_ip6ip6_gro_receive, @@ -338,7 +338,7 @@ static const struct net_offload sit_offload = { }, }; -static const struct net_offload ip4ip6_offload = { +static struct net_offload ip4ip6_offload = { .callbacks = { .gso_segment = inet_gso_segment, .gro_receive = ip4ip6_gro_receive, @@ -346,7 +346,7 @@ static const struct net_offload ip4ip6_offload = { }, }; -static const struct net_offload ip6ip6_offload = { +static struct net_offload ip6ip6_offload = { .callbacks = { .gso_segment = ipv6_gso_segment, .gro_receive = sit_ip6ip6_gro_receive, diff --git a/net/ipv6/protocol.c b/net/ipv6/protocol.c index b5d54d4f995c..06efcfc6d02b 100644 --- a/net/ipv6/protocol.c +++ b/net/ipv6/protocol.c @@ -50,21 +50,21 @@ int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char protocol EXPORT_SYMBOL(inet6_del_protocol); #endif -const struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS] __read_mostly; +struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS] __read_mostly; EXPORT_SYMBOL(inet6_offloads); -int inet6_add_offload(const struct net_offload *prot, unsigned char protocol) +int inet6_add_offload(struct net_offload *prot, unsigned char protocol) { - return !cmpxchg((const struct net_offload **)&inet6_offloads[protocol], + return !cmpxchg((struct net_offload **)&inet6_offloads[protocol], NULL, prot) ? 0 : -1; } EXPORT_SYMBOL(inet6_add_offload); -int inet6_del_offload(const struct net_offload *prot, unsigned char protocol) +int inet6_del_offload(struct net_offload *prot, unsigned char protocol) { int ret; - ret = (cmpxchg((const struct net_offload **)&inet6_offloads[protocol], + ret = (cmpxchg((struct net_offload **)&inet6_offloads[protocol], prot, NULL) == prot) ? 0 : -1; synchronize_net(); diff --git a/net/ipv6/tcpv6_offload.c b/net/ipv6/tcpv6_offload.c index e72947c99454..a3c5010e1361 100644 --- a/net/ipv6/tcpv6_offload.c +++ b/net/ipv6/tcpv6_offload.c @@ -67,7 +67,7 @@ static struct sk_buff *tcp6_gso_segment(struct sk_buff *skb, return tcp_gso_segment(skb, features); } -static const struct net_offload tcpv6_offload = { +static struct net_offload tcpv6_offload = { .callbacks = { .gso_segment = tcp6_gso_segment, .gro_receive = tcp6_gro_receive, diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c index 95dee9ca8d22..2a41da0dd33f 100644 --- a/net/ipv6/udp_offload.c +++ b/net/ipv6/udp_offload.c @@ -158,7 +158,7 @@ static int udp6_gro_complete(struct sk_buff *skb, int nhoff) return udp_gro_complete(skb, nhoff, udp6_lib_lookup_skb); } -static const struct net_offload udpv6_offload = { +static struct net_offload udpv6_offload = { .callbacks = { .gso_segment = udp6_ufo_fragment, .gro_receive = udp6_gro_receive, diff --git a/net/sctp/offload.c b/net/sctp/offload.c index 123e9f2dc226..ad504b83245d 100644 --- a/net/sctp/offload.c +++ b/net/sctp/offload.c @@ -90,7 +90,7 @@ static struct sk_buff *sctp_gso_segment(struct sk_buff *skb, return segs; } -static const struct net_offload sctp_offload = { +static struct net_offload sctp_offload = { .callbacks = { .gso_segment = sctp_gso_segment, }, -- 2.19.0.397.gdd90340f6a-goog