@ -137,8 +137,7 @@ dev->hard_header == NULL (ll header is added by device, we cannot control it)
/* Private packet socket structures. */
struct packet_mclist
{
struct packet_mclist {
struct packet_mclist * next ;
int ifindex ;
int count ;
@ -149,8 +148,7 @@ struct packet_mclist
/* identical to struct packet_mreq except it has
* a longer address field .
*/
struct packet_mreq_max
{
struct packet_mreq_max {
int mr_ifindex ;
unsigned short mr_type ;
unsigned short mr_alen ;
@ -162,7 +160,7 @@ static int packet_set_ring(struct sock *sk, struct tpacket_req *req,
int closing , int tx_ring ) ;
struct packet_ring_buffer {
char * * pg_vec ;
char * * pg_vec ;
unsigned int head ;
unsigned int frames_per_block ;
unsigned int frame_size ;
@ -239,7 +237,7 @@ static void __packet_set_status(struct packet_sock *po, void *frame, int status)
flush_dcache_page ( virt_to_page ( & h . h2 - > tp_status ) ) ;
break ;
default :
printk ( KERN_ERR " TPACKET version not supported \n " ) ;
pr_err ( " TPACKET version not supported \n " ) ;
BUG ( ) ;
}
@ -265,7 +263,7 @@ static int __packet_get_status(struct packet_sock *po, void *frame)
flush_dcache_page ( virt_to_page ( & h . h2 - > tp_status ) ) ;
return h . h2 - > tp_status ;
default :
printk ( KERN_ERR " TPACKET version not supported \n " ) ;
pr_err ( " TPACKET version not supported \n " ) ;
BUG ( ) ;
return 0 ;
}
@ -327,7 +325,7 @@ static void packet_sock_destruct(struct sock *sk)
WARN_ON ( atomic_read ( & sk - > sk_wmem_alloc ) ) ;
if ( ! sock_flag ( sk , SOCK_DEAD ) ) {
printk ( " Attempt to release alive packet socket: %p \n " , sk ) ;
pr_err ( " Attempt to release alive packet socket: %p \n " , sk ) ;
return ;
}
@ -339,7 +337,8 @@ static const struct proto_ops packet_ops;
static const struct proto_ops packet_ops_spkt ;
static int packet_rcv_spkt ( struct sk_buff * skb , struct net_device * dev , struct packet_type * pt , struct net_device * orig_dev )
static int packet_rcv_spkt ( struct sk_buff * skb , struct net_device * dev ,
struct packet_type * pt , struct net_device * orig_dev )
{
struct sock * sk ;
struct sockaddr_pkt * spkt ;
@ -368,7 +367,8 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
if ( dev_net ( dev ) ! = sock_net ( sk ) )
goto out ;
if ( ( skb = skb_share_check ( skb , GFP_ATOMIC ) ) = = NULL )
skb = skb_share_check ( skb , GFP_ATOMIC ) ;
if ( skb = = NULL )
goto oom ;
/* drop any routing info */
@ -394,7 +394,7 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
* to prevent sockets using all the memory up .
*/
if ( sock_queue_rcv_skb ( sk , skb ) = = 0 )
if ( sock_queue_rcv_skb ( sk , skb ) = = 0 )
return 0 ;
out :
@ -413,25 +413,23 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
struct msghdr * msg , size_t len )
{
struct sock * sk = sock - > sk ;
struct sockaddr_pkt * saddr = ( struct sockaddr_pkt * ) msg - > msg_name ;
struct sockaddr_pkt * saddr = ( struct sockaddr_pkt * ) msg - > msg_name ;
struct sk_buff * skb ;
struct net_device * dev ;
__be16 proto = 0 ;
__be16 proto = 0 ;
int err ;
/*
* Get and verify the address .
*/
if ( saddr )
{
if ( saddr ) {
if ( msg - > msg_namelen < sizeof ( struct sockaddr ) )
return ( - EINVAL ) ;
if ( msg - > msg_namelen = = sizeof ( struct sockaddr_pkt ) )
proto = saddr - > spkt_protocol ;
}
else
return ( - ENOTCONN ) ; /* SOCK_PACKET must be sent giving an address */
return - EINVAL ;
if ( msg - > msg_namelen = = sizeof ( struct sockaddr_pkt ) )
proto = saddr - > spkt_protocol ;
} else
return - ENOTCONN ; /* SOCK_PACKET must be sent giving an address */
/*
* Find the device first to size check it
@ -448,8 +446,8 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
goto out_unlock ;
/*
* You may not queue a frame bigger than the mtu . This is the lowest level
* raw protocol and you must do your own fragmentation at this level .
* You may not queue a frame bigger than the mtu . This is the lowest level
* raw protocol and you must do your own fragmentation at this level .
*/
err = - EMSGSIZE ;
@ -460,9 +458,9 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
skb = sock_wmalloc ( sk , len + LL_RESERVED_SPACE ( dev ) , 0 , GFP_KERNEL ) ;
/*
* If the write buffer is full , then tough . At this level the user gets to
* deal with the problem - do your own algorithmic backoffs . That ' s far
* more flexible .
* If the write buffer is full , then tough . At this level the user
* gets to deal with the problem - do your own algorithmic backoffs .
* That ' s far more flexible .
*/
if ( skb = = NULL )
@ -488,7 +486,7 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
}
/* Returns -EFAULT on error */
err = memcpy_fromiovec ( skb_put ( skb , len ) , msg - > msg_iov , len ) ;
err = memcpy_fromiovec ( skb_put ( skb , len ) , msg - > msg_iov , len ) ;
skb - > protocol = proto ;
skb - > dev = dev ;
skb - > priority = sk - > sk_priority ;
@ -501,7 +499,7 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
dev_queue_xmit ( skb ) ;
dev_put ( dev ) ;
return ( len ) ;
return len ;
out_free :
kfree_skb ( skb ) ;
@ -537,12 +535,13 @@ static inline unsigned int run_filter(struct sk_buff *skb, struct sock *sk,
we will not harm anyone .
*/
static int packet_rcv ( struct sk_buff * skb , struct net_device * dev , struct packet_type * pt , struct net_device * orig_dev )
static int packet_rcv ( struct sk_buff * skb , struct net_device * dev ,
struct packet_type * pt , struct net_device * orig_dev )
{
struct sock * sk ;
struct sockaddr_ll * sll ;
struct packet_sock * po ;
u8 * skb_head = skb - > data ;
u8 * skb_head = skb - > data ;
int skb_len = skb - > len ;
unsigned int snaplen , res ;
@ -648,7 +647,8 @@ drop:
}
# ifdef CONFIG_PACKET_MMAP
static int tpacket_rcv ( struct sk_buff * skb , struct net_device * dev , struct packet_type * pt , struct net_device * orig_dev )
static int tpacket_rcv ( struct sk_buff * skb , struct net_device * dev ,
struct packet_type * pt , struct net_device * orig_dev )
{
struct sock * sk ;
struct packet_sock * po ;
@ -658,7 +658,7 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, struct packe
struct tpacket2_hdr * h2 ;
void * raw ;
} h ;
u8 * skb_head = skb - > data ;
u8 * skb_head = skb - > data ;
int skb_len = skb - > len ;
unsigned int snaplen , res ;
unsigned long status = TP_STATUS_LOSING | TP_STATUS_USER ;
@ -821,7 +821,7 @@ ring_is_full:
static void tpacket_destruct_skb ( struct sk_buff * skb )
{
struct packet_sock * po = pkt_sk ( skb - > sk ) ;
void * ph ;
void * ph ;
BUG_ON ( skb = = NULL ) ;
@ -836,9 +836,9 @@ static void tpacket_destruct_skb(struct sk_buff *skb)
sock_wfree ( skb ) ;
}
static int tpacket_fill_skb ( struct packet_sock * po , struct sk_buff * skb ,
void * frame , struct net_device * dev , int size_max ,
__be16 proto , unsigned char * addr )
static int tpacket_fill_skb ( struct packet_sock * po , struct sk_buff * skb ,
void * frame , struct net_device * dev , int size_max ,
__be16 proto , unsigned char * addr )
{
union {
struct tpacket_hdr * h1 ;
@ -867,8 +867,7 @@ static int tpacket_fill_skb(struct packet_sock *po, struct sk_buff * skb,
break ;
}
if ( unlikely ( tp_len > size_max ) ) {
printk ( KERN_ERR " packet size is too long (%d > %d) \n " ,
tp_len , size_max ) ;
pr_err ( " packet size is too long (%d > %d) \n " , tp_len , size_max ) ;
return - EMSGSIZE ;
}
@ -883,12 +882,11 @@ static int tpacket_fill_skb(struct packet_sock *po, struct sk_buff * skb,
NULL , tp_len ) ;
if ( unlikely ( err < 0 ) )
return - EINVAL ;
} else if ( dev - > hard_header_len ) {
} else if ( dev - > hard_header_len ) {
/* net device doesn't like empty head */
if ( unlikely ( tp_len < = dev - > hard_header_len ) ) {
printk ( KERN_ERR " packet size is too short "
" (%d < %d) \n " , tp_len ,
dev - > hard_header_len ) ;
pr_err ( " packet size is too short (%d < %d) \n " ,
tp_len , dev - > hard_header_len ) ;
return - EINVAL ;
}
@ -917,9 +915,8 @@ static int tpacket_fill_skb(struct packet_sock *po, struct sk_buff * skb,
nr_frags = skb_shinfo ( skb ) - > nr_frags ;
if ( unlikely ( nr_frags > = MAX_SKB_FRAGS ) ) {
printk ( KERN_ERR " Packet exceed the number "
" of skb frags(%lu) \n " ,
MAX_SKB_FRAGS ) ;
pr_err ( " Packet exceed the number of skb frags(%lu) \n " ,
MAX_SKB_FRAGS ) ;
return - EFAULT ;
}
@ -944,8 +941,8 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg)
struct net_device * dev ;
__be16 proto ;
int ifindex , err , reserve = 0 ;
void * ph ;
struct sockaddr_ll * saddr = ( struct sockaddr_ll * ) msg - > msg_name ;
void * ph ;
struct sockaddr_ll * saddr = ( struct sockaddr_ll * ) msg - > msg_name ;
int tp_len , size_max ;
unsigned char * addr ;
int len_sum = 0 ;
@ -1038,8 +1035,7 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg)
goto out_xmit ;
packet_increment_head ( & po - > tx_ring ) ;
len_sum + = tp_len ;
}
while ( likely ( ( ph ! = NULL ) | | ( ( ! ( msg - > msg_flags & MSG_DONTWAIT ) )
} while ( likely ( ( ph ! = NULL ) | | ( ( ! ( msg - > msg_flags & MSG_DONTWAIT ) )
& & ( atomic_read ( & po - > tx_ring . pending ) ) ) )
) ;
@ -1064,7 +1060,7 @@ static int packet_snd(struct socket *sock,
struct msghdr * msg , size_t len )
{
struct sock * sk = sock - > sk ;
struct sockaddr_ll * saddr = ( struct sockaddr_ll * ) msg - > msg_name ;
struct sockaddr_ll * saddr = ( struct sockaddr_ll * ) msg - > msg_name ;
struct sk_buff * skb ;
struct net_device * dev ;
__be16 proto ;
@ -1110,7 +1106,7 @@ static int packet_snd(struct socket *sock,
skb = sock_alloc_send_skb ( sk , len + LL_ALLOCATED_SPACE ( dev ) ,
msg - > msg_flags & MSG_DONTWAIT , & err ) ;
if ( skb = = NULL )
if ( skb = = NULL )
goto out_unlock ;
skb_reserve ( skb , LL_RESERVED_SPACE ( dev ) ) ;
@ -1122,7 +1118,7 @@ static int packet_snd(struct socket *sock,
goto out_free ;
/* Returns -EFAULT on error */
err = memcpy_fromiovec ( skb_put ( skb , len ) , msg - > msg_iov , len ) ;
err = memcpy_fromiovec ( skb_put ( skb , len ) , msg - > msg_iov , len ) ;
if ( err )
goto out_free ;
@ -1140,7 +1136,7 @@ static int packet_snd(struct socket *sock,
dev_put ( dev ) ;
return ( len ) ;
return len ;
out_free :
kfree_skb ( skb ) ;
@ -1283,9 +1279,10 @@ out_unlock:
* Bind a packet socket to a device
*/
static int packet_bind_spkt ( struct socket * sock , struct sockaddr * uaddr , int addr_len )
static int packet_bind_spkt ( struct socket * sock , struct sockaddr * uaddr ,
int addr_len )
{
struct sock * sk = sock - > sk ;
struct sock * sk = sock - > sk ;
char name [ 15 ] ;
struct net_device * dev ;
int err = - ENODEV ;
@ -1296,7 +1293,7 @@ static int packet_bind_spkt(struct socket *sock, struct sockaddr *uaddr, int add
if ( addr_len ! = sizeof ( struct sockaddr ) )
return - EINVAL ;
strlcpy ( name , uaddr - > sa_data , sizeof ( name ) ) ;
strlcpy ( name , uaddr - > sa_data , sizeof ( name ) ) ;
dev = dev_get_by_name ( sock_net ( sk ) , name ) ;
if ( dev ) {
@ -1308,8 +1305,8 @@ static int packet_bind_spkt(struct socket *sock, struct sockaddr *uaddr, int add
static int packet_bind ( struct socket * sock , struct sockaddr * uaddr , int addr_len )
{
struct sockaddr_ll * sll = ( struct sockaddr_ll * ) uaddr ;
struct sock * sk = sock - > sk ;
struct sockaddr_ll * sll = ( struct sockaddr_ll * ) uaddr ;
struct sock * sk = sock - > sk ;
struct net_device * dev = NULL ;
int err ;
@ -1404,7 +1401,7 @@ static int packet_create(struct net *net, struct socket *sock, int protocol)
sk_add_node ( sk , & net - > packet . sklist ) ;
sock_prot_inuse_add ( net , & packet_proto , 1 ) ;
write_unlock_bh ( & net - > packet . sklist_lock ) ;
return ( 0 ) ;
return 0 ;
out :
return err ;
}
@ -1441,7 +1438,7 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
* but then it will block .
*/
skb = skb_recv_datagram ( sk , flags , flags & MSG_DONTWAIT , & err ) ;
skb = skb_recv_datagram ( sk , flags , flags & MSG_DONTWAIT , & err ) ;
/*
* An error occurred so return it . Because skb_recv_datagram ( )
@ -1469,10 +1466,9 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
*/
copied = skb - > len ;
if ( copied > len )
{
copied = len ;
msg - > msg_flags | = MSG_TRUNC ;
if ( copied > len ) {
copied = len ;
msg - > msg_flags | = MSG_TRUNC ;
}
err = skb_copy_datagram_iovec ( skb , 0 , msg - > msg_iov , copied ) ;
@ -1539,7 +1535,7 @@ static int packet_getname(struct socket *sock, struct sockaddr *uaddr,
struct net_device * dev ;
struct sock * sk = sock - > sk ;
struct packet_sock * po = pkt_sk ( sk ) ;
struct sockaddr_ll * sll = ( struct sockaddr_ll * ) uaddr ;
struct sockaddr_ll * sll = ( struct sockaddr_ll * ) uaddr ;
if ( peer )
return - EOPNOTSUPP ;
@ -1584,14 +1580,15 @@ static int packet_dev_mc(struct net_device *dev, struct packet_mclist *i,
else
return dev_unicast_delete ( dev , i - > addr ) ;
break ;
default : ;
default :
break ;
}
return 0 ;
}
static void packet_dev_mclist ( struct net_device * dev , struct packet_mclist * i , int what )
{
for ( ; i ; i = i - > next ) {
for ( ; i ; i = i - > next ) {
if ( i - > ifindex = = dev - > ifindex )
packet_dev_mc ( dev , i , what ) ;
}
@ -1693,7 +1690,8 @@ static void packet_flush_mclist(struct sock *sk)
struct net_device * dev ;
po - > mclist = ml - > next ;
if ( ( dev = dev_get_by_index ( sock_net ( sk ) , ml - > ifindex ) ) ! = NULL ) {
dev = dev_get_by_index ( sock_net ( sk ) , ml - > ifindex ) ;
if ( dev ! = NULL ) {
packet_dev_mc ( dev , ml , - 1 ) ;
dev_put ( dev ) ;
}
@ -1723,7 +1721,7 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv
return - EINVAL ;
if ( len > sizeof ( mreq ) )
len = sizeof ( mreq ) ;
if ( copy_from_user ( & mreq , optval , len ) )
if ( copy_from_user ( & mreq , optval , len ) )
return - EFAULT ;
if ( len < ( mreq . mr_alen + offsetof ( struct packet_mreq , mr_address ) ) )
return - EINVAL ;
@ -1740,9 +1738,9 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv
{
struct tpacket_req req ;
if ( optlen < sizeof ( req ) )
if ( optlen < sizeof ( req ) )
return - EINVAL ;
if ( copy_from_user ( & req , optval , sizeof ( req ) ) )
if ( copy_from_user ( & req , optval , sizeof ( req ) ) )
return - EFAULT ;
return packet_set_ring ( sk , & req , 0 , optname = = PACKET_TX_RING ) ;
}
@ -1750,9 +1748,9 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv
{
int val ;
if ( optlen ! = sizeof ( val ) )
if ( optlen ! = sizeof ( val ) )
return - EINVAL ;
if ( copy_from_user ( & val , optval , sizeof ( val ) ) )
if ( copy_from_user ( & val , optval , sizeof ( val ) ) )
return - EFAULT ;
pkt_sk ( sk ) - > copy_thresh = val ;
@ -1985,51 +1983,51 @@ static int packet_ioctl(struct socket *sock, unsigned int cmd,
struct sock * sk = sock - > sk ;
switch ( cmd ) {
case SIOCOUTQ :
{
int amount = sk_wmem_alloc_get ( sk ) ;
case SIOCOUTQ :
{
int amount = sk_wmem_alloc_get ( sk ) ;
return put_user ( amount , ( int __user * ) arg ) ;
}
case SIOCINQ :
{
struct sk_buff * skb ;
int amount = 0 ;
spin_lock_bh ( & sk - > sk_receive_queue . lock ) ;
skb = skb_peek ( & sk - > sk_receive_queue ) ;
if ( skb )
amount = skb - > len ;
spin_unlock_bh ( & sk - > sk_receive_queue . lock ) ;
return put_user ( amount , ( int __user * ) arg ) ;
}
case SIOCGSTAMP :
return sock_get_timestamp ( sk , ( struct timeval __user * ) arg ) ;
case SIOCGSTAMPNS :
return sock_get_timestampns ( sk , ( struct timespec __user * ) arg ) ;
return put_user ( amount , ( int __user * ) arg ) ;
}
case SIOCINQ :
{
struct sk_buff * skb ;
int amount = 0 ;
spin_lock_bh ( & sk - > sk_receive_queue . lock ) ;
skb = skb_peek ( & sk - > sk_receive_queue ) ;
if ( skb )
amount = skb - > len ;
spin_unlock_bh ( & sk - > sk_receive_queue . lock ) ;
return put_user ( amount , ( int __user * ) arg ) ;
}
case SIOCGSTAMP :
return sock_get_timestamp ( sk , ( struct timeval __user * ) arg ) ;
case SIOCGSTAMPNS :
return sock_get_timestampns ( sk , ( struct timespec __user * ) arg ) ;
# ifdef CONFIG_INET
case SIOCADDRT :
case SIOCDELRT :
case SIOCDARP :
case SIOCGARP :
case SIOCSARP :
case SIOCGIFADDR :
case SIOCSIFADDR :
case SIOCGIFBRDADDR :
case SIOCSIFBRDADDR :
case SIOCGIFNETMASK :
case SIOCSIFNETMASK :
case SIOCGIFDSTADDR :
case SIOCSIFDSTADDR :
case SIOCSIFFLAGS :
if ( ! net_eq ( sock_net ( sk ) , & init_net ) )
return - ENOIOCTLCMD ;
return inet_dgram_ops . ioctl ( sock , cmd , arg ) ;
case SIOCADDRT :
case SIOCDELRT :
case SIOCDARP :
case SIOCGARP :
case SIOCSARP :
case SIOCGIFADDR :
case SIOCSIFADDR :
case SIOCGIFBRDADDR :
case SIOCSIFBRDADDR :
case SIOCGIFNETMASK :
case SIOCSIFNETMASK :
case SIOCGIFDSTADDR :
case SIOCSIFDSTADDR :
case SIOCSIFFLAGS :
if ( ! net_eq ( sock_net ( sk ) , & init_net ) )
return - ENOIOCTLCMD ;
return inet_dgram_ops . ioctl ( sock , cmd , arg ) ;
# endif
default :
return - ENOIOCTLCMD ;
default :
return - ENOIOCTLCMD ;
}
return 0 ;
}
@ -2039,7 +2037,7 @@ static int packet_ioctl(struct socket *sock, unsigned int cmd,
# define packet_poll datagram_poll
# else
static unsigned int packet_poll ( struct file * file , struct socket * sock ,
static unsigned int packet_poll ( struct file * file , struct socket * sock ,
poll_table * wait )
{
struct sock * sk = sock - > sk ;
@ -2069,7 +2067,7 @@ static unsigned int packet_poll(struct file * file, struct socket *sock,
static void packet_mm_open ( struct vm_area_struct * vma )
{
struct file * file = vma - > vm_file ;
struct socket * sock = file - > private_data ;
struct socket * sock = file - > private_data ;
struct sock * sk = sock - > sk ;
if ( sk )
@ -2079,7 +2077,7 @@ static void packet_mm_open(struct vm_area_struct *vma)
static void packet_mm_close ( struct vm_area_struct * vma )
{
struct file * file = vma - > vm_file ;
struct socket * sock = file - > private_data ;
struct socket * sock = file - > private_data ;
struct sock * sk = sock - > sk ;
if ( sk )
@ -2087,8 +2085,8 @@ static void packet_mm_close(struct vm_area_struct *vma)
}
static struct vm_operations_struct packet_mmap_ops = {
. open = packet_mm_open ,
. close = packet_mm_close ,
. open = packet_mm_open ,
. close = packet_mm_close ,
} ;
static void free_pg_vec ( char * * pg_vec , unsigned int order , unsigned int len )
@ -2239,8 +2237,8 @@ static int packet_set_ring(struct sock *sk, struct tpacket_req *req,
skb_queue_purge ( rb_queue ) ;
# undef XC
if ( atomic_read ( & po - > mapped ) )
printk ( KERN_DEBUG " packet_mmap: vma is busy: %d \n " ,
atomic_read ( & po - > mapped ) ) ;
pr_err ( " packet_mmap: vma is busy: %d \n " ,
atomic_read ( & po - > mapped ) ) ;
}
mutex_unlock ( & po - > pg_vec_lock ) ;
@ -2303,7 +2301,7 @@ static int packet_mmap(struct file *file, struct socket *sock,
int pg_num ;
for ( pg_num = 0 ; pg_num < rb - > pg_vec_pages ;
pg_num + + , page + + ) {
pg_num + + , page + + ) {
err = vm_insert_page ( vma , start , page ) ;
if ( unlikely ( err ) )
goto out ;
@ -2372,7 +2370,7 @@ static struct net_proto_family packet_family_ops = {
} ;
static struct notifier_block packet_netdev_notifier = {
. notifier_call = packet_notifier ,
. notifier_call = packet_notifier ,
} ;
# ifdef CONFIG_PROC_FS
@ -2402,7 +2400,7 @@ static void *packet_seq_next(struct seq_file *seq, void *v, loff_t *pos)
+ + * pos ;
return ( v = = SEQ_START_TOKEN )
? sk_head ( & net - > packet . sklist )
: sk_next ( ( struct sock * ) v ) ;
: sk_next ( ( struct sock * ) v ) ;
}
static void packet_seq_stop ( struct seq_file * seq , void * v )
@ -2430,7 +2428,7 @@ static int packet_seq_show(struct seq_file *seq, void *v)
po - > running ,
atomic_read ( & s - > sk_rmem_alloc ) ,
sock_i_uid ( s ) ,
sock_i_ino ( s ) ) ;
sock_i_ino ( s ) ) ;
}
return 0 ;