Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1699084 > unrolled thread
| Started by | Julia Lawall <Julia.Lawall@lip6.fr> |
|---|---|
| First post | 2017-07-28 22:50 +0200 |
| Last post | 2017-07-29 04:00 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[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
| From | Julia Lawall <Julia.Lawall@lip6.fr> |
|---|---|
| Date | 2017-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]
| From | Julia Lawall <Julia.Lawall@lip6.fr> |
|---|---|
| Date | 2017-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]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2017-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