| From foo@baz Mon Sep 17 13:33:56 CEST 2018 |
| From: Stephen Hemminger <stephen@networkplumber.org> |
| Date: Thu, 13 Sep 2018 07:58:42 -0700 |
| Subject: inet: frags: remove some helpers |
| To: davem@davemloft.net, gregkh@linuxfoundation.org |
| Cc: netdev@vger.kernel.org, stable@vger.kernel.org, edumazet@google.com |
| Message-ID: <20180913145902.17531-11-sthemmin@microsoft.com> |
| |
| From: Eric Dumazet <edumazet@google.com> |
| |
| Remove sum_frag_mem_limit(), ip_frag_mem() & ip6_frag_mem() |
| |
| Also since we use rhashtable we can bring back the number of fragments |
| in "grep FRAG /proc/net/sockstat /proc/net/sockstat6" that was |
| removed in commit 434d305405ab ("inet: frag: don't account number |
| of fragment queues") |
| |
| Signed-off-by: Eric Dumazet <edumazet@google.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| (cherry picked from commit 6befe4a78b1553edb6eed3a78b4bcd9748526672) |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| include/net/inet_frag.h | 5 ----- |
| include/net/ip.h | 1 - |
| include/net/ipv6.h | 7 ------- |
| net/ipv4/ip_fragment.c | 5 ----- |
| net/ipv4/proc.c | 6 +++--- |
| net/ipv6/proc.c | 5 +++-- |
| 6 files changed, 6 insertions(+), 23 deletions(-) |
| |
| --- a/include/net/inet_frag.h |
| +++ b/include/net/inet_frag.h |
| @@ -141,11 +141,6 @@ static inline void add_frag_mem_limit(st |
| atomic_add(i, &nf->mem); |
| } |
| |
| -static inline int sum_frag_mem_limit(struct netns_frags *nf) |
| -{ |
| - return atomic_read(&nf->mem); |
| -} |
| - |
| /* RFC 3168 support : |
| * We want to check ECN values of all fragments, do detect invalid combinations. |
| * In ipq->ecn, we store the OR value of each ip4_frag_ecn() fragment value. |
| --- a/include/net/ip.h |
| +++ b/include/net/ip.h |
| @@ -570,7 +570,6 @@ static inline struct sk_buff *ip_check_d |
| return skb; |
| } |
| #endif |
| -int ip_frag_mem(struct net *net); |
| |
| /* |
| * Functions provided by ip_forward.c |
| --- a/include/net/ipv6.h |
| +++ b/include/net/ipv6.h |
| @@ -331,13 +331,6 @@ static inline bool ipv6_accept_ra(struct |
| idev->cnf.accept_ra; |
| } |
| |
| -#if IS_ENABLED(CONFIG_IPV6) |
| -static inline int ip6_frag_mem(struct net *net) |
| -{ |
| - return sum_frag_mem_limit(&net->ipv6.frags); |
| -} |
| -#endif |
| - |
| #define IPV6_FRAG_HIGH_THRESH (4 * 1024*1024) /* 4194304 */ |
| #define IPV6_FRAG_LOW_THRESH (3 * 1024*1024) /* 3145728 */ |
| #define IPV6_FRAG_TIMEOUT (60 * HZ) /* 60 seconds */ |
| --- a/net/ipv4/ip_fragment.c |
| +++ b/net/ipv4/ip_fragment.c |
| @@ -83,11 +83,6 @@ static u8 ip4_frag_ecn(u8 tos) |
| |
| static struct inet_frags ip4_frags; |
| |
| -int ip_frag_mem(struct net *net) |
| -{ |
| - return sum_frag_mem_limit(&net->ipv4.frags); |
| -} |
| - |
| static int ip_frag_reasm(struct ipq *qp, struct sk_buff *prev, |
| struct net_device *dev); |
| |
| --- a/net/ipv4/proc.c |
| +++ b/net/ipv4/proc.c |
| @@ -54,7 +54,6 @@ |
| static int sockstat_seq_show(struct seq_file *seq, void *v) |
| { |
| struct net *net = seq->private; |
| - unsigned int frag_mem; |
| int orphans, sockets; |
| |
| orphans = percpu_counter_sum_positive(&tcp_orphan_count); |
| @@ -72,8 +71,9 @@ static int sockstat_seq_show(struct seq_ |
| sock_prot_inuse_get(net, &udplite_prot)); |
| seq_printf(seq, "RAW: inuse %d\n", |
| sock_prot_inuse_get(net, &raw_prot)); |
| - frag_mem = ip_frag_mem(net); |
| - seq_printf(seq, "FRAG: inuse %u memory %u\n", !!frag_mem, frag_mem); |
| + seq_printf(seq, "FRAG: inuse %u memory %u\n", |
| + atomic_read(&net->ipv4.frags.rhashtable.nelems), |
| + frag_mem_limit(&net->ipv4.frags)); |
| return 0; |
| } |
| |
| --- a/net/ipv6/proc.c |
| +++ b/net/ipv6/proc.c |
| @@ -38,7 +38,6 @@ |
| static int sockstat6_seq_show(struct seq_file *seq, void *v) |
| { |
| struct net *net = seq->private; |
| - unsigned int frag_mem = ip6_frag_mem(net); |
| |
| seq_printf(seq, "TCP6: inuse %d\n", |
| sock_prot_inuse_get(net, &tcpv6_prot)); |
| @@ -48,7 +47,9 @@ static int sockstat6_seq_show(struct seq |
| sock_prot_inuse_get(net, &udplitev6_prot)); |
| seq_printf(seq, "RAW6: inuse %d\n", |
| sock_prot_inuse_get(net, &rawv6_prot)); |
| - seq_printf(seq, "FRAG6: inuse %u memory %u\n", !!frag_mem, frag_mem); |
| + seq_printf(seq, "FRAG6: inuse %u memory %u\n", |
| + atomic_read(&net->ipv6.frags.rhashtable.nelems), |
| + frag_mem_limit(&net->ipv6.frags)); |
| return 0; |
| } |
| |