Skip to content
  • Ivan Khoronzhuk's avatar
    mm: mmap: increase sockets maximum memory size pgoff for 32bits · 76f34950
    Ivan Khoronzhuk authored
    The AF_XDP sockets umem mapping interface uses XDP_UMEM_PGOFF_FILL_RING
    and XDP_UMEM_PGOFF_COMPLETION_RING offsets.  These offsets are
    established already and are part of the configuration interface.
    
    But for 32-bit systems, using AF_XDP socket configuration, these values
    are too large to pass the maximum allowed file size verification.  The
    offsets can be tuned off, but instead of changing the existing
    interface, let's extend the max allowed file size for sockets.
    
    No one has been using this until this patch with 32 bits as without
    this fix af_xdp sockets can't be used at all, so it unblocks af_xdp
    socket usage for 32bit systems.
    
    All list of mmap cbs for sockets was verified for side effects and all
    of them contain dummy cb - sock_no_mmap() at this moment, except the
    following:
    
    xsk_mmap() - it's what this fix is needed for.
    tcp_mmap() - doesn't have obvious issues with pgoff - no any references on it.
    packet_mmap() - return -EINVAL if it's even set.
    
    Link: http://lkml.kernel.org/r/20190812124326.32146-1-ivan.khoronzhuk@linaro.org
    
    
    Signed-off-by: default avatarIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
    Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Björn Töpel <bjorn.topel@intel.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Magnus Karlsson <magnus.karlsson@intel.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    76f34950