hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/net/ipv4/inetpeer.c
....@@ -148,16 +148,20 @@
148148 struct inet_peer *gc_stack[],
149149 unsigned int gc_cnt)
150150 {
151
+ int peer_threshold, peer_maxttl, peer_minttl;
151152 struct inet_peer *p;
152153 __u32 delta, ttl;
153154 int i;
154155
155
- if (base->total >= inet_peer_threshold)
156
+ peer_threshold = READ_ONCE(inet_peer_threshold);
157
+ peer_maxttl = READ_ONCE(inet_peer_maxttl);
158
+ peer_minttl = READ_ONCE(inet_peer_minttl);
159
+
160
+ if (base->total >= peer_threshold)
156161 ttl = 0; /* be aggressive */
157162 else
158
- ttl = inet_peer_maxttl
159
- - (inet_peer_maxttl - inet_peer_minttl) / HZ *
160
- base->total / inet_peer_threshold * HZ;
163
+ ttl = peer_maxttl - (peer_maxttl - peer_minttl) / HZ *
164
+ base->total / peer_threshold * HZ;
161165 for (i = 0; i < gc_cnt; i++) {
162166 p = gc_stack[i];
163167