mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
inetpeer: restore small inet_peer structures
Addition of rcu_head to struct inet_peer added 16bytes on 64bit arches. Thats a bit unfortunate, since old size was exactly 64 bytes. This can be solved, using an union between this rcu_head an four fields, that are normally used only when a refcount is taken on inet_peer. rcu_head is used only when refcnt=-1, right before structure freeing. Add a inet_peer_refcheck() function to check this assertion for a while. We can bring back SLAB_HWCACHE_ALIGN qualifier in kmem cache creation. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fdb93f8ac3
commit
317fe0e6c5
4 changed files with 36 additions and 11 deletions
|
@ -2881,6 +2881,7 @@ static int rt_fill_info(struct net *net,
|
|||
error = rt->dst.error;
|
||||
expires = rt->dst.expires ? rt->dst.expires - jiffies : 0;
|
||||
if (rt->peer) {
|
||||
inet_peer_refcheck(rt->peer);
|
||||
id = atomic_read(&rt->peer->ip_id_count) & 0xffff;
|
||||
if (rt->peer->tcp_ts_stamp) {
|
||||
ts = rt->peer->tcp_ts;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue