Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1699084 > unrolled thread

[PATCH 0/2] constify inet6_protocol structures

Started byJulia Lawall <Julia.Lawall@lip6.fr>
First post2017-07-28 22:50 +0200
Last post2017-07-29 04:00 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/2] constify inet6_protocol structures Julia Lawall <Julia.Lawall@lip6.fr> - 2017-07-28 22:50 +0200
    [PATCH 1/2] ipv6: constify inet6_protocol structures Julia Lawall <Julia.Lawall@lip6.fr> - 2017-07-28 22:50 +0200
    Re: [PATCH 0/2] constify inet6_protocol structures David Miller <davem@davemloft.net> - 2017-07-29 04:00 +0200

#1699084 — [PATCH 0/2] constify inet6_protocol structures

FromJulia Lawall <Julia.Lawall@lip6.fr>
Date2017-07-28 22:50 +0200
Subject[PATCH 0/2] constify inet6_protocol structures
Message-ID<u8kmS-er-37@gated-at.bofh.it>
The inet6_protocol structure is only passed as the first argument to
inet6_add_protocol or inet6_del_protocol, both of which are declared as
const.  Thus the inet6_protocol structure itself can be const.

Done with the help of Coccinelle.

// <smpl>
@r disable optional_qualifier@
identifier i;
position p;
@@

static struct inet6_protocol i@p = { ... };

@ok1@
identifier r.i;
expression e1;
position p;
@@

 \(inet6_add_protocol\|inet6_del_protocol\)(&i@p,...)

@bad@
position p != {r.p,ok1.p};
identifier r.i;
struct inet6_protocol e;
@@

e@i@p

@depends on !bad disable optional_qualifier@
identifier r.i;
@@

static
+const
 struct inet6_protocol i = { ... };
// </smpl>

---

 net/ipv6/ip6_gre.c  |    2 +-
 net/ipv6/tcp_ipv6.c |    2 +-
 net/ipv6/udp.c      |    2 +-
 net/l2tp/l2tp_ip6.c |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

[toc] | [next] | [standalone]


#1699086 — [PATCH 1/2] ipv6: constify inet6_protocol structures

FromJulia Lawall <Julia.Lawall@lip6.fr>
Date2017-07-28 22:50 +0200
Subject[PATCH 1/2] ipv6: constify inet6_protocol structures
Message-ID<u8kmS-er-45@gated-at.bofh.it>
In reply to#1699084
The inet6_protocol structure is only passed as the first argument to
inet6_add_protocol or inet6_del_protocol, both of which are declared as
const.  Thus the inet6_protocol structure itself can be const.

Also drop __read_mostly where present on the newly const structures.

Done with the help of Coccinelle.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>

---
 net/ipv6/ip6_gre.c  |    2 +-
 net/ipv6/tcp_ipv6.c |    2 +-
 net/ipv6/udp.c      |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 67ff2aa..33865d6 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -1080,7 +1080,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
 }
 
 
-static struct inet6_protocol ip6gre_protocol __read_mostly = {
+static const struct inet6_protocol ip6gre_protocol = {
 	.handler     = gre_rcv,
 	.err_handler = ip6gre_err,
 	.flags       = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 90a3257..2968a33 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1945,7 +1945,7 @@ struct proto tcpv6_prot = {
 	.diag_destroy		= tcp_abort,
 };
 
-static struct inet6_protocol tcpv6_protocol = {
+static const struct inet6_protocol tcpv6_protocol = {
 	.early_demux	=	tcp_v6_early_demux,
 	.early_demux_handler =  tcp_v6_early_demux,
 	.handler	=	tcp_v6_rcv,
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 4a3e656..5f8b8d7 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -1448,7 +1448,7 @@ int compat_udpv6_getsockopt(struct sock *sk, int level, int optname,
 }
 #endif
 
-static struct inet6_protocol udpv6_protocol = {
+static const struct inet6_protocol udpv6_protocol = {
 	.early_demux	=	udp_v6_early_demux,
 	.early_demux_handler =  udp_v6_early_demux,
 	.handler	=	udpv6_rcv,

[toc] | [prev] | [next] | [standalone]


#1699201

FromDavid Miller <davem@davemloft.net>
Date2017-07-29 04:00 +0200
Message-ID<u8pcR-3Ah-9@gated-at.bofh.it>
In reply to#1699084
From: Julia Lawall <Julia.Lawall@lip6.fr>
Date: Fri, 28 Jul 2017 22:18:56 +0200

> The inet6_protocol structure is only passed as the first argument to
> inet6_add_protocol or inet6_del_protocol, both of which are declared as
> const.  Thus the inet6_protocol structure itself can be const.
> 
> Done with the help of Coccinelle.
 ...

Series applied, thanks Julia.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web