diff options
author | Nicolas Dichtel <nicolas.dichtel@6wind.com> | 2015-05-07 05:02:52 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-05-09 22:15:31 -0400 |
commit | cc3a572fe6cf586f478546215bc5d3694357d71e (patch) | |
tree | d1deb767f5742b6d4b3c7dcb8b641836fd064082 /net/netlink | |
parent | 95f38411df055a0ecefe3a3d119d98241087d5ca (diff) |
netlink: rename private flags and states
These flags and states have the same prefix (NETLINK_) that netlink socket
options. To avoid confusion and to be able to name a flag like a socket
option, let's use an other prefix: NETLINK_[S|F]_.
Note: a comment has been fixed, it was talking about
NETLINK_RECV_NO_ENOBUFS socket option instead of NETLINK_NO_ENOBUFS.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netlink')
-rw-r--r-- | net/netlink/af_netlink.c | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index ec4adbdcb9b4..bf7f56d7a9aa 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -76,17 +76,17 @@ struct listeners { | |||
76 | }; | 76 | }; |
77 | 77 | ||
78 | /* state bits */ | 78 | /* state bits */ |
79 | #define NETLINK_CONGESTED 0x0 | 79 | #define NETLINK_S_CONGESTED 0x0 |
80 | 80 | ||
81 | /* flags */ | 81 | /* flags */ |
82 | #define NETLINK_KERNEL_SOCKET 0x1 | 82 | #define NETLINK_F_KERNEL_SOCKET 0x1 |
83 | #define NETLINK_RECV_PKTINFO 0x2 | 83 | #define NETLINK_F_RECV_PKTINFO 0x2 |
84 | #define NETLINK_BROADCAST_SEND_ERROR 0x4 | 84 | #define NETLINK_F_BROADCAST_SEND_ERROR 0x4 |
85 | #define NETLINK_RECV_NO_ENOBUFS 0x8 | 85 | #define NETLINK_F_RECV_NO_ENOBUFS 0x8 |
86 | 86 | ||
87 | static inline int netlink_is_kernel(struct sock *sk) | 87 | static inline int netlink_is_kernel(struct sock *sk) |
88 | { | 88 | { |
89 | return nlk_sk(sk)->flags & NETLINK_KERNEL_SOCKET; | 89 | return nlk_sk(sk)->flags & NETLINK_F_KERNEL_SOCKET; |
90 | } | 90 | } |
91 | 91 | ||
92 | struct netlink_table *nl_table; | 92 | struct netlink_table *nl_table; |
@@ -256,8 +256,9 @@ static void netlink_overrun(struct sock *sk) | |||
256 | { | 256 | { |
257 | struct netlink_sock *nlk = nlk_sk(sk); | 257 | struct netlink_sock *nlk = nlk_sk(sk); |
258 | 258 | ||
259 | if (!(nlk->flags & NETLINK_RECV_NO_ENOBUFS)) { | 259 | if (!(nlk->flags & NETLINK_F_RECV_NO_ENOBUFS)) { |
260 | if (!test_and_set_bit(NETLINK_CONGESTED, &nlk_sk(sk)->state)) { | 260 | if (!test_and_set_bit(NETLINK_S_CONGESTED, |
261 | &nlk_sk(sk)->state)) { | ||
261 | sk->sk_err = ENOBUFS; | 262 | sk->sk_err = ENOBUFS; |
262 | sk->sk_error_report(sk); | 263 | sk->sk_error_report(sk); |
263 | } | 264 | } |
@@ -270,8 +271,8 @@ static void netlink_rcv_wake(struct sock *sk) | |||
270 | struct netlink_sock *nlk = nlk_sk(sk); | 271 | struct netlink_sock *nlk = nlk_sk(sk); |
271 | 272 | ||
272 | if (skb_queue_empty(&sk->sk_receive_queue)) | 273 | if (skb_queue_empty(&sk->sk_receive_queue)) |
273 | clear_bit(NETLINK_CONGESTED, &nlk->state); | 274 | clear_bit(NETLINK_S_CONGESTED, &nlk->state); |
274 | if (!test_bit(NETLINK_CONGESTED, &nlk->state)) | 275 | if (!test_bit(NETLINK_S_CONGESTED, &nlk->state)) |
275 | wake_up_interruptible(&nlk->wait); | 276 | wake_up_interruptible(&nlk->wait); |
276 | } | 277 | } |
277 | 278 | ||
@@ -1656,7 +1657,7 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb, | |||
1656 | nlk = nlk_sk(sk); | 1657 | nlk = nlk_sk(sk); |
1657 | 1658 | ||
1658 | if ((atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || | 1659 | if ((atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || |
1659 | test_bit(NETLINK_CONGESTED, &nlk->state)) && | 1660 | test_bit(NETLINK_S_CONGESTED, &nlk->state)) && |
1660 | !netlink_skb_is_mmaped(skb)) { | 1661 | !netlink_skb_is_mmaped(skb)) { |
1661 | DECLARE_WAITQUEUE(wait, current); | 1662 | DECLARE_WAITQUEUE(wait, current); |
1662 | if (!*timeo) { | 1663 | if (!*timeo) { |
@@ -1671,7 +1672,7 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb, | |||
1671 | add_wait_queue(&nlk->wait, &wait); | 1672 | add_wait_queue(&nlk->wait, &wait); |
1672 | 1673 | ||
1673 | if ((atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || | 1674 | if ((atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || |
1674 | test_bit(NETLINK_CONGESTED, &nlk->state)) && | 1675 | test_bit(NETLINK_S_CONGESTED, &nlk->state)) && |
1675 | !sock_flag(sk, SOCK_DEAD)) | 1676 | !sock_flag(sk, SOCK_DEAD)) |
1676 | *timeo = schedule_timeout(*timeo); | 1677 | *timeo = schedule_timeout(*timeo); |
1677 | 1678 | ||
@@ -1895,7 +1896,7 @@ static int netlink_broadcast_deliver(struct sock *sk, struct sk_buff *skb) | |||
1895 | struct netlink_sock *nlk = nlk_sk(sk); | 1896 | struct netlink_sock *nlk = nlk_sk(sk); |
1896 | 1897 | ||
1897 | if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf && | 1898 | if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf && |
1898 | !test_bit(NETLINK_CONGESTED, &nlk->state)) { | 1899 | !test_bit(NETLINK_S_CONGESTED, &nlk->state)) { |
1899 | netlink_skb_set_owner_r(skb, sk); | 1900 | netlink_skb_set_owner_r(skb, sk); |
1900 | __netlink_sendskb(sk, skb); | 1901 | __netlink_sendskb(sk, skb); |
1901 | return atomic_read(&sk->sk_rmem_alloc) > (sk->sk_rcvbuf >> 1); | 1902 | return atomic_read(&sk->sk_rmem_alloc) > (sk->sk_rcvbuf >> 1); |
@@ -1956,7 +1957,7 @@ static void do_one_broadcast(struct sock *sk, | |||
1956 | netlink_overrun(sk); | 1957 | netlink_overrun(sk); |
1957 | /* Clone failed. Notify ALL listeners. */ | 1958 | /* Clone failed. Notify ALL listeners. */ |
1958 | p->failure = 1; | 1959 | p->failure = 1; |
1959 | if (nlk->flags & NETLINK_BROADCAST_SEND_ERROR) | 1960 | if (nlk->flags & NETLINK_F_BROADCAST_SEND_ERROR) |
1960 | p->delivery_failure = 1; | 1961 | p->delivery_failure = 1; |
1961 | } else if (p->tx_filter && p->tx_filter(sk, p->skb2, p->tx_data)) { | 1962 | } else if (p->tx_filter && p->tx_filter(sk, p->skb2, p->tx_data)) { |
1962 | kfree_skb(p->skb2); | 1963 | kfree_skb(p->skb2); |
@@ -1966,7 +1967,7 @@ static void do_one_broadcast(struct sock *sk, | |||
1966 | p->skb2 = NULL; | 1967 | p->skb2 = NULL; |
1967 | } else if ((val = netlink_broadcast_deliver(sk, p->skb2)) < 0) { | 1968 | } else if ((val = netlink_broadcast_deliver(sk, p->skb2)) < 0) { |
1968 | netlink_overrun(sk); | 1969 | netlink_overrun(sk); |
1969 | if (nlk->flags & NETLINK_BROADCAST_SEND_ERROR) | 1970 | if (nlk->flags & NETLINK_F_BROADCAST_SEND_ERROR) |
1970 | p->delivery_failure = 1; | 1971 | p->delivery_failure = 1; |
1971 | } else { | 1972 | } else { |
1972 | p->congested |= val; | 1973 | p->congested |= val; |
@@ -2057,7 +2058,7 @@ static int do_one_set_err(struct sock *sk, struct netlink_set_err_data *p) | |||
2057 | !test_bit(p->group - 1, nlk->groups)) | 2058 | !test_bit(p->group - 1, nlk->groups)) |
2058 | goto out; | 2059 | goto out; |
2059 | 2060 | ||
2060 | if (p->code == ENOBUFS && nlk->flags & NETLINK_RECV_NO_ENOBUFS) { | 2061 | if (p->code == ENOBUFS && nlk->flags & NETLINK_F_RECV_NO_ENOBUFS) { |
2061 | ret = 1; | 2062 | ret = 1; |
2062 | goto out; | 2063 | goto out; |
2063 | } | 2064 | } |
@@ -2076,7 +2077,7 @@ out: | |||
2076 | * @code: error code, must be negative (as usual in kernelspace) | 2077 | * @code: error code, must be negative (as usual in kernelspace) |
2077 | * | 2078 | * |
2078 | * This function returns the number of broadcast listeners that have set the | 2079 | * This function returns the number of broadcast listeners that have set the |
2079 | * NETLINK_RECV_NO_ENOBUFS socket option. | 2080 | * NETLINK_NO_ENOBUFS socket option. |
2080 | */ | 2081 | */ |
2081 | int netlink_set_err(struct sock *ssk, u32 portid, u32 group, int code) | 2082 | int netlink_set_err(struct sock *ssk, u32 portid, u32 group, int code) |
2082 | { | 2083 | { |
@@ -2136,9 +2137,9 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname, | |||
2136 | switch (optname) { | 2137 | switch (optname) { |
2137 | case NETLINK_PKTINFO: | 2138 | case NETLINK_PKTINFO: |
2138 | if (val) | 2139 | if (val) |
2139 | nlk->flags |= NETLINK_RECV_PKTINFO; | 2140 | nlk->flags |= NETLINK_F_RECV_PKTINFO; |
2140 | else | 2141 | else |
2141 | nlk->flags &= ~NETLINK_RECV_PKTINFO; | 2142 | nlk->flags &= ~NETLINK_F_RECV_PKTINFO; |
2142 | err = 0; | 2143 | err = 0; |
2143 | break; | 2144 | break; |
2144 | case NETLINK_ADD_MEMBERSHIP: | 2145 | case NETLINK_ADD_MEMBERSHIP: |
@@ -2167,18 +2168,18 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname, | |||
2167 | } | 2168 | } |
2168 | case NETLINK_BROADCAST_ERROR: | 2169 | case NETLINK_BROADCAST_ERROR: |
2169 | if (val) | 2170 | if (val) |
2170 | nlk->flags |= NETLINK_BROADCAST_SEND_ERROR; | 2171 | nlk->flags |= NETLINK_F_BROADCAST_SEND_ERROR; |
2171 | else | 2172 | else |
2172 | nlk->flags &= ~NETLINK_BROADCAST_SEND_ERROR; | 2173 | nlk->flags &= ~NETLINK_F_BROADCAST_SEND_ERROR; |
2173 | err = 0; | 2174 | err = 0; |
2174 | break; | 2175 | break; |
2175 | case NETLINK_NO_ENOBUFS: | 2176 | case NETLINK_NO_ENOBUFS: |
2176 | if (val) { | 2177 | if (val) { |
2177 | nlk->flags |= NETLINK_RECV_NO_ENOBUFS; | 2178 | nlk->flags |= NETLINK_F_RECV_NO_ENOBUFS; |
2178 | clear_bit(NETLINK_CONGESTED, &nlk->state); | 2179 | clear_bit(NETLINK_S_CONGESTED, &nlk->state); |
2179 | wake_up_interruptible(&nlk->wait); | 2180 | wake_up_interruptible(&nlk->wait); |
2180 | } else { | 2181 | } else { |
2181 | nlk->flags &= ~NETLINK_RECV_NO_ENOBUFS; | 2182 | nlk->flags &= ~NETLINK_F_RECV_NO_ENOBUFS; |
2182 | } | 2183 | } |
2183 | err = 0; | 2184 | err = 0; |
2184 | break; | 2185 | break; |
@@ -2227,7 +2228,7 @@ static int netlink_getsockopt(struct socket *sock, int level, int optname, | |||
2227 | if (len < sizeof(int)) | 2228 | if (len < sizeof(int)) |
2228 | return -EINVAL; | 2229 | return -EINVAL; |
2229 | len = sizeof(int); | 2230 | len = sizeof(int); |
2230 | val = nlk->flags & NETLINK_RECV_PKTINFO ? 1 : 0; | 2231 | val = nlk->flags & NETLINK_F_RECV_PKTINFO ? 1 : 0; |
2231 | if (put_user(len, optlen) || | 2232 | if (put_user(len, optlen) || |
2232 | put_user(val, optval)) | 2233 | put_user(val, optval)) |
2233 | return -EFAULT; | 2234 | return -EFAULT; |
@@ -2237,7 +2238,7 @@ static int netlink_getsockopt(struct socket *sock, int level, int optname, | |||
2237 | if (len < sizeof(int)) | 2238 | if (len < sizeof(int)) |
2238 | return -EINVAL; | 2239 | return -EINVAL; |
2239 | len = sizeof(int); | 2240 | len = sizeof(int); |
2240 | val = nlk->flags & NETLINK_BROADCAST_SEND_ERROR ? 1 : 0; | 2241 | val = nlk->flags & NETLINK_F_BROADCAST_SEND_ERROR ? 1 : 0; |
2241 | if (put_user(len, optlen) || | 2242 | if (put_user(len, optlen) || |
2242 | put_user(val, optval)) | 2243 | put_user(val, optval)) |
2243 | return -EFAULT; | 2244 | return -EFAULT; |
@@ -2247,7 +2248,7 @@ static int netlink_getsockopt(struct socket *sock, int level, int optname, | |||
2247 | if (len < sizeof(int)) | 2248 | if (len < sizeof(int)) |
2248 | return -EINVAL; | 2249 | return -EINVAL; |
2249 | len = sizeof(int); | 2250 | len = sizeof(int); |
2250 | val = nlk->flags & NETLINK_RECV_NO_ENOBUFS ? 1 : 0; | 2251 | val = nlk->flags & NETLINK_F_RECV_NO_ENOBUFS ? 1 : 0; |
2251 | if (put_user(len, optlen) || | 2252 | if (put_user(len, optlen) || |
2252 | put_user(val, optval)) | 2253 | put_user(val, optval)) |
2253 | return -EFAULT; | 2254 | return -EFAULT; |
@@ -2418,7 +2419,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, | |||
2418 | msg->msg_namelen = sizeof(*addr); | 2419 | msg->msg_namelen = sizeof(*addr); |
2419 | } | 2420 | } |
2420 | 2421 | ||
2421 | if (nlk->flags & NETLINK_RECV_PKTINFO) | 2422 | if (nlk->flags & NETLINK_F_RECV_PKTINFO) |
2422 | netlink_cmsg_recv_pktinfo(msg, skb); | 2423 | netlink_cmsg_recv_pktinfo(msg, skb); |
2423 | 2424 | ||
2424 | memset(&scm, 0, sizeof(scm)); | 2425 | memset(&scm, 0, sizeof(scm)); |
@@ -2502,7 +2503,7 @@ __netlink_kernel_create(struct net *net, int unit, struct module *module, | |||
2502 | goto out_sock_release; | 2503 | goto out_sock_release; |
2503 | 2504 | ||
2504 | nlk = nlk_sk(sk); | 2505 | nlk = nlk_sk(sk); |
2505 | nlk->flags |= NETLINK_KERNEL_SOCKET; | 2506 | nlk->flags |= NETLINK_F_KERNEL_SOCKET; |
2506 | 2507 | ||
2507 | netlink_table_grab(); | 2508 | netlink_table_grab(); |
2508 | if (!nl_table[unit].registered) { | 2509 | if (!nl_table[unit].registered) { |