@ -1245,28 +1245,47 @@ static struct net_protocol icmp_protocol = {
static int __init init_ipv4_mibs ( void )
{
net_statistics [ 0 ] = alloc_percpu ( struct linux_mib ) ;
net_statistics [ 1 ] = alloc_percpu ( struct linux_mib ) ;
ip_statistics [ 0 ] = alloc_percpu ( struct ipstats_mib ) ;
ip_statistics [ 1 ] = alloc_percpu ( struct ipstats_mib ) ;
icmp_statistics [ 0 ] = alloc_percpu ( struct icmp_mib ) ;
icmp_statistics [ 1 ] = alloc_percpu ( struct icmp_mib ) ;
tcp_statistics [ 0 ] = alloc_percpu ( struct tcp_mib ) ;
tcp_statistics [ 1 ] = alloc_percpu ( struct tcp_mib ) ;
udp_statistics [ 0 ] = alloc_percpu ( struct udp_mib ) ;
udp_statistics [ 1 ] = alloc_percpu ( struct udp_mib ) ;
udplite_statistics [ 0 ] = alloc_percpu ( struct udp_mib ) ;
udplite_statistics [ 1 ] = alloc_percpu ( struct udp_mib ) ;
if ( !
( net_statistics [ 0 ] & & net_statistics [ 1 ] & & ip_statistics [ 0 ]
& & ip_statistics [ 1 ] & & tcp_statistics [ 0 ] & & tcp_statistics [ 1 ]
& & udp_statistics [ 0 ] & & udp_statistics [ 1 ]
& & udplite_statistics [ 0 ] & & udplite_statistics [ 1 ] ) )
return - ENOMEM ;
( void ) tcp_mib_init ( ) ;
if ( snmp_mib_init ( ( void * * ) net_statistics ,
sizeof ( struct linux_mib ) ,
__alignof__ ( struct linux_mib ) ) < 0 )
goto err_net_mib ;
if ( snmp_mib_init ( ( void * * ) ip_statistics ,
sizeof ( struct ipstats_mib ) ,
__alignof__ ( struct ipstats_mib ) ) < 0 )
goto err_ip_mib ;
if ( snmp_mib_init ( ( void * * ) icmp_statistics ,
sizeof ( struct icmp_mib ) ,
__alignof__ ( struct icmp_mib ) ) < 0 )
goto err_icmp_mib ;
if ( snmp_mib_init ( ( void * * ) tcp_statistics ,
sizeof ( struct tcp_mib ) ,
__alignof__ ( struct tcp_mib ) ) < 0 )
goto err_tcp_mib ;
if ( snmp_mib_init ( ( void * * ) udp_statistics ,
sizeof ( struct udp_mib ) ,
__alignof__ ( struct udp_mib ) ) < 0 )
goto err_udp_mib ;
if ( snmp_mib_init ( ( void * * ) udplite_statistics ,
sizeof ( struct udp_mib ) ,
__alignof__ ( struct udp_mib ) ) < 0 )
goto err_udplite_mib ;
tcp_mib_init ( ) ;
return 0 ;
err_udplite_mib :
snmp_mib_free ( ( void * * ) udp_statistics ) ;
err_udp_mib :
snmp_mib_free ( ( void * * ) tcp_statistics ) ;
err_tcp_mib :
snmp_mib_free ( ( void * * ) icmp_statistics ) ;
err_icmp_mib :
snmp_mib_free ( ( void * * ) ip_statistics ) ;
err_ip_mib :
snmp_mib_free ( ( void * * ) net_statistics ) ;
err_net_mib :
return - ENOMEM ;
}
static int ipv4_proc_init ( void ) ;