• Dust Li's avatar
    net/smc: fix compile warning for smc_sysctl · 7de8eb0d
    Dust Li authored
    kernel test robot reports multiple warning for smc_sysctl:
    
      In file included from net/smc/smc_sysctl.c:17:
    >> net/smc/smc_sysctl.h:23:5: warning: no previous prototype \
    	for function 'smc_sysctl_init' [-Wmissing-prototypes]
      int smc_sysctl_init(void)
           ^
    and
      >> WARNING: modpost: vmlinux.o(.text+0x12ced2d): Section mismatch \
      in reference from the function smc_sysctl_exit() to the variable
      .init.data:smc_sysctl_ops
      The function smc_sysctl_exit() references
      the variable __initdata smc_sysctl_ops.
      This is often because smc_sysctl_exit lacks a __initdata
      annotation or the annotation of smc_sysctl_ops is wrong.
    
    and
      net/smc/smc_sysctl.c: In function 'smc_sysctl_init_net':
      net/smc/smc_sysctl.c:47:17: error: 'struct netns_smc' has no member named 'smc_hdr'
         47 |         net->smc.smc_hdr = register_net_sysctl(net, "net/smc", table);
    
    Since we don't need global sysctl initialization. To make things
    clean and simple, remove the global pernet_operations and
    smc_sysctl_{init|exit}. Call smc_sysctl_net_{init|exit} directly
    from smc_net_{init|exit}.
    
    Also initialized sysctl_autocorking_size if CONFIG_SYSCTL it not
    set, this make sure SMC autocorking is enabled by default if
    CONFIG_SYSCTL is not set.
    
    Fixes: 462791bb ("net/smc: add sysctl interface for SMC")
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Signed-off-by: default avatarDust Li <dust.li@linux.alibaba.com>
    Tested-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7de8eb0d
af_smc.c 83.8 KB