• Nobuo Iwata's avatar
    usbip: deletion of incorrect socket descriptor checking · 220c61b6
    Nobuo Iwata authored
    This patch removes checking of socket descriptor value in daemons.
    
    It was checked to be less than FD_SETSIZE(1024 usually) but it's not
    correct.
    
    To be exact, the maximum value of descriptor comes from
    rlimit(RLIMIT_NOFILE).
    
    Following kernel code determines the value :
        get_unused_fd_flags() : fs/files.c
        __alloc_fd() : fs/files.c
        expand_files() : fs/files.c
    
    The defalut (soft limit) is defines as INR_OPEN_CUR(1024) in
    include/linux/fs.h which is referenced form INIT_RLIMS in
    include/asm-generic/resource.h. The value may be modified with ulimt,
    sysctl, security configuration and etc.
    
    With the kernel code above, when socket() system call returns positive
    value, the value must be within rlimit(RLIMIT_NOFILE). No extra
    checking is needed when socket() returns positive.
    
    Without 'usbip: vhci number of ports extension' patch set, there's no
    practical problem because of number of USB port restriction. With the
    patch set, the value of socket descriptor can exceed FD_SETSIZE(1024
    usually) if the rlimit is changed.
    Signed-off-by: default avatarNobuo Iwata <nobuo.iwata@fujixerox.co.jp>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    220c61b6
usbipd.c 14.3 KB