Ignore:
Timestamp:
Apr 16, 2017, 3:07:01 PM (5 weeks ago)
Author:
brainslayer
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.18/net/netlink/diag.c

    r25370 r31869  
    88
    99#include "af_netlink.h"
    10 
    11 #ifdef CONFIG_NETLINK_MMAP
    12 static int sk_diag_put_ring(struct netlink_ring *ring, int nl_type,
    13                             struct sk_buff *nlskb)
    14 {
    15         struct netlink_diag_ring ndr;
    16 
    17         ndr.ndr_block_size = ring->pg_vec_pages << PAGE_SHIFT;
    18         ndr.ndr_block_nr   = ring->pg_vec_len;
    19         ndr.ndr_frame_size = ring->frame_size;
    20         ndr.ndr_frame_nr   = ring->frame_max + 1;
    21 
    22         return nla_put(nlskb, nl_type, sizeof(ndr), &ndr);
    23 }
    24 
    25 static int sk_diag_put_rings_cfg(struct sock *sk, struct sk_buff *nlskb)
    26 {
    27         struct netlink_sock *nlk = nlk_sk(sk);
    28         int ret;
    29 
    30         mutex_lock(&nlk->pg_vec_lock);
    31         ret = sk_diag_put_ring(&nlk->rx_ring, NETLINK_DIAG_RX_RING, nlskb);
    32         if (!ret)
    33                 ret = sk_diag_put_ring(&nlk->tx_ring, NETLINK_DIAG_TX_RING,
    34                                        nlskb);
    35         mutex_unlock(&nlk->pg_vec_lock);
    36 
    37         return ret;
    38 }
    39 #else
    40 static int sk_diag_put_rings_cfg(struct sock *sk, struct sk_buff *nlskb)
    41 {
    42         return 0;
    43 }
    44 #endif
    4510
    4611static int sk_diag_dump_groups(struct sock *sk, struct sk_buff *nlskb)
     
    8651        if ((req->ndiag_show & NDIAG_SHOW_MEMINFO) &&
    8752            sock_diag_put_meminfo(sk, skb, NETLINK_DIAG_MEMINFO))
    88                 goto out_nlmsg_trim;
    89 
    90         if ((req->ndiag_show & NDIAG_SHOW_RING_CFG) &&
    91             sk_diag_put_rings_cfg(sk, skb))
    9253                goto out_nlmsg_trim;
    9354
Note: See TracChangeset for help on using the changeset viewer.