}
if (ax25->sk != NULL) {
- if (atomic_read(&ax25->sk->sk_wmem_alloc) ||
- atomic_read(&ax25->sk->sk_rmem_alloc)) {
+ if (sk_has_allocations(ax25->sk)) {
/* Defer: outstanding buffers */
setup_timer(&ax25->dtimer, ax25_destroy_timer,
(unsigned long)ax25);
size_t size;
int lv, err, addr_len = msg->msg_namelen;
- /* AX.25 empty data frame has no meaning : don't send */
- if (len == 0) {
- return (0);
- }
-
if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_CMSG_COMPAT))
return -EINVAL;
skb_reset_transport_header(skb);
copied = skb->len;
- /* AX.25 empty data frame has no meaning : ignore it */
- if (copied == 0) {
- err = copied;
- skb_free_datagram(sk, skb);
- goto out;
- }
-
if (copied > size) {
copied = size;
msg->msg_flags |= MSG_TRUNC;
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);
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;
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");