mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
net: correct off-by-one write allocations reports
commit 2b85a34e91
(net: No more expensive sock_hold()/sock_put() on each tx)
changed initial sk_wmem_alloc value.
We need to take into account this offset when reporting
sk_wmem_alloc to user, in PROC_FS files or various
ioctls (SIOCOUTQ/TIOCOUTQ)
Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
d3b238a03e
commit
31e6d363ab
25 changed files with 58 additions and 51 deletions
|
|
@ -1690,7 +1690,8 @@ static int ax25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
|
|||
switch (cmd) {
|
||||
case TIOCOUTQ: {
|
||||
long amount;
|
||||
amount = sk->sk_sndbuf - atomic_read(&sk->sk_wmem_alloc);
|
||||
|
||||
amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk);
|
||||
if (amount < 0)
|
||||
amount = 0;
|
||||
res = put_user(amount, (int __user *)argp);
|
||||
|
|
@ -1780,8 +1781,8 @@ static int ax25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
|
|||
ax25_info.idletimer = ax25_display_timer(&ax25->idletimer) / (60 * HZ);
|
||||
ax25_info.n2count = ax25->n2count;
|
||||
ax25_info.state = ax25->state;
|
||||
ax25_info.rcv_q = atomic_read(&sk->sk_rmem_alloc);
|
||||
ax25_info.snd_q = atomic_read(&sk->sk_wmem_alloc);
|
||||
ax25_info.rcv_q = sk_wmem_alloc_get(sk);
|
||||
ax25_info.snd_q = sk_rmem_alloc_get(sk);
|
||||
ax25_info.vs = ax25->vs;
|
||||
ax25_info.vr = ax25->vr;
|
||||
ax25_info.va = ax25->va;
|
||||
|
|
@ -1921,8 +1922,8 @@ static int ax25_info_show(struct seq_file *seq, void *v)
|
|||
|
||||
if (ax25->sk != NULL) {
|
||||
seq_printf(seq, " %d %d %lu\n",
|
||||
atomic_read(&ax25->sk->sk_wmem_alloc),
|
||||
atomic_read(&ax25->sk->sk_rmem_alloc),
|
||||
sk_wmem_alloc_get(ax25->sk),
|
||||
sk_rmem_alloc_get(ax25->sk),
|
||||
sock_i_ino(ax25->sk));
|
||||
} else {
|
||||
seq_puts(seq, " * * *\n");
|
||||
|
|
|
|||
Loading…
Reference in a new issue