1. 13 Aug, 2020 2 commits
  2. 10 Aug, 2020 2 commits
    • Florian Westphal's avatar
      netfilter: nft_compat: remove flush counter optimization · 2f941622
      Florian Westphal authored
      WARNING: CPU: 1 PID: 16059 at lib/refcount.c:31 refcount_warn_saturate+0xdf/0xf
      [..]
       __nft_mt_tg_destroy+0x42/0x50 [nft_compat]
       nft_target_destroy+0x63/0x80 [nft_compat]
       nf_tables_expr_destroy+0x1b/0x30 [nf_tables]
       nf_tables_rule_destroy+0x3a/0x70 [nf_tables]
       nf_tables_exit_net+0x186/0x3d0 [nf_tables]
      
      Happens when a compat expr is destoyed from abort path.
      There is no functional impact; after this work queue is flushed
      unconditionally if its pending.
      
      This removes the waitcount optimization.  Test of repeated
      iptables-restore of a ~60k kubernetes ruleset doesn't indicate
      a slowdown.  In case the counter is needed after all for some workloads
      we can revert this and increment the refcount for the
      != NFT_PREPARE_TRANS case to avoid the increment/decrement imbalance.
      
      While at it, also flush for match case, this was an oversight
      in the original patch.
      
      Fixes: ffe8923f ("netfilter: nft_compat: make sure xtables destructors have run")
      Reported-by: default avatarkernel test robot <rong.a.chen@intel.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      2f941622
    • Stephen Suryaputra's avatar
      netfilter: nf_tables: nft_exthdr: the presence return value should be little-endian · b4283366
      Stephen Suryaputra authored
      On big-endian machine, the returned register data when the exthdr is
      present is not being compared correctly because little-endian is
      assumed. The function nft_cmp_fast_mask(), called by nft_cmp_fast_eval()
      and nft_cmp_fast_init(), calls cpu_to_le32().
      
      The following dump also shows that little endian is assumed:
      
      $ nft --debug=netlink add rule ip recordroute forward ip option rr exists counter
      ip
        [ exthdr load ipv4 1b @ 7 + 0 present => reg 1 ]
        [ cmp eq reg 1 0x01000000 ]
        [ counter pkts 0 bytes 0 ]
      
      Lastly, debug print in nft_cmp_fast_init() and nft_cmp_fast_eval() when
      RR option exists in the packet shows that the comparison fails because
      the assumption:
      
      nft_cmp_fast_init:189 priv->sreg=4 desc.len=8 mask=0xff000000 data.data[0]=0x10003e0
      nft_cmp_fast_eval:57 regs->data[priv->sreg=4]=0x1 mask=0xff000000 priv->data=0x1000000
      
      v2: use nft_reg_store8() instead (Florian Westphal). Also to avoid the
          warnings reported by kernel test robot.
      
      Fixes: dbb5281a ("netfilter: nf_tables: add support for matching IPv4 options")
      Fixes: c078ca3b ("netfilter: nft_exthdr: Add support for existence check")
      Signed-off-by: default avatarStephen Suryaputra <ssuryaextr@gmail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      b4283366
  3. 08 Aug, 2020 12 commits
  4. 07 Aug, 2020 4 commits
    • Randy Dunlap's avatar
      bpf: Delete repeated words in comments · b8c1a309
      Randy Dunlap authored
      Drop repeated words in kernel/bpf/: {has, the}
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Link: https://lore.kernel.org/bpf/20200807033141.10437-1-rdunlap@infradead.org
      b8c1a309
    • Andrii Nakryiko's avatar
      selftests/bpf: Fix silent Makefile output · d5ca5905
      Andrii Nakryiko authored
      99aacebe ("selftests: do not use .ONESHELL") removed .ONESHELL, which
      changes how Makefile "silences" multi-command target recipes. selftests/bpf's
      Makefile relied (a somewhat unknowingly) on .ONESHELL behavior of silencing
      all commands within the recipe if the first command contains @ symbol.
      Removing .ONESHELL exposed this hack.
      
      This patch fixes the issue by explicitly silencing each command with $(Q).
      
      Also explicitly define fallback rule for building *.o from *.c, instead of
      relying on non-silent inherited rule. This was causing a non-silent output for
      bench.o object file.
      
      Fixes: 92f7440e ("selftests/bpf: More succinct Makefile output")
      Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Link: https://lore.kernel.org/bpf/20200807033058.848677-1-andriin@fb.com
      d5ca5905
    • Alan Maguire's avatar
      bpf, doc: Remove references to warning message when using bpf_trace_printk() · 7fb20f9e
      Alan Maguire authored
      The BPF helper bpf_trace_printk() no longer uses trace_printk();
      it is now triggers a dedicated trace event.  Hence the described
      warning is no longer present, so remove the discussion of it as
      it may confuse people.
      
      Fixes: ac5a72ea ("bpf: Use dedicated bpf_trace_printk event instead of trace_printk()")
      Signed-off-by: default avatarAlan Maguire <alan.maguire@oracle.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Link: https://lore.kernel.org/bpf/1596801029-32395-1-git-send-email-alan.maguire@oracle.com
      7fb20f9e
    • Xie He's avatar
      drivers/net/wan/lapbether: Added needed_headroom and a skb->len check · c7ca03c2
      Xie He authored
      1. Added a skb->len check
      
      This driver expects upper layers to include a pseudo header of 1 byte
      when passing down a skb for transmission. This driver will read this
      1-byte header. This patch added a skb->len check before reading the
      header to make sure the header exists.
      
      2. Changed to use needed_headroom instead of hard_header_len to request
      necessary headroom to be allocated
      
      In net/packet/af_packet.c, the function packet_snd first reserves a
      headroom of length (dev->hard_header_len + dev->needed_headroom).
      Then if the socket is a SOCK_DGRAM socket, it calls dev_hard_header,
      which calls dev->header_ops->create, to create the link layer header.
      If the socket is a SOCK_RAW socket, it "un-reserves" a headroom of
      length (dev->hard_header_len), and assumes the user to provide the
      appropriate link layer header.
      
      So according to the logic of af_packet.c, dev->hard_header_len should
      be the length of the header that would be created by
      dev->header_ops->create.
      
      However, this driver doesn't provide dev->header_ops, so logically
      dev->hard_header_len should be 0.
      
      So we should use dev->needed_headroom instead of dev->hard_header_len
      to request necessary headroom to be allocated.
      
      This change fixes kernel panic when this driver is used with AF_PACKET
      SOCK_RAW sockets.
      
      Call stack when panic:
      
      [  168.399197] skbuff: skb_under_panic: text:ffffffff819d95fb len:20
      put:14 head:ffff8882704c0a00 data:ffff8882704c09fd tail:0x11 end:0xc0
      dev:veth0
      ...
      [  168.399255] Call Trace:
      [  168.399259]  skb_push.cold+0x14/0x24
      [  168.399262]  eth_header+0x2b/0xc0
      [  168.399267]  lapbeth_data_transmit+0x9a/0xb0 [lapbether]
      [  168.399275]  lapb_data_transmit+0x22/0x2c [lapb]
      [  168.399277]  lapb_transmit_buffer+0x71/0xb0 [lapb]
      [  168.399279]  lapb_kick+0xe3/0x1c0 [lapb]
      [  168.399281]  lapb_data_request+0x76/0xc0 [lapb]
      [  168.399283]  lapbeth_xmit+0x56/0x90 [lapbether]
      [  168.399286]  dev_hard_start_xmit+0x91/0x1f0
      [  168.399289]  ? irq_init_percpu_irqstack+0xc0/0x100
      [  168.399291]  __dev_queue_xmit+0x721/0x8e0
      [  168.399295]  ? packet_parse_headers.isra.0+0xd2/0x110
      [  168.399297]  dev_queue_xmit+0x10/0x20
      [  168.399298]  packet_sendmsg+0xbf0/0x19b0
      ......
      
      Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
      Cc: Martin Schiller <ms@dev.tdt.de>
      Cc: Brian Norris <briannorris@chromium.org>
      Signed-off-by: default avatarXie He <xie.he.0141@gmail.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7ca03c2
  5. 06 Aug, 2020 20 commits
    • Jianlin Lv's avatar
      bpf: Fix compilation warning of selftests · 929e54a9
      Jianlin Lv authored
      Clang compiler version: 12.0.0
      The following warning appears during the selftests/bpf compilation:
      
      prog_tests/send_signal.c:51:3: warning: ignoring return value of ‘write’,
      declared with attribute warn_unused_result [-Wunused-result]
         51 |   write(pipe_c2p[1], buf, 1);
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
      prog_tests/send_signal.c:54:3: warning: ignoring return value of ‘read’,
      declared with attribute warn_unused_result [-Wunused-result]
         54 |   read(pipe_p2c[0], buf, 1);
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      ......
      
      prog_tests/stacktrace_build_id_nmi.c:13:2: warning: ignoring return value
      of ‘fscanf’,declared with attribute warn_unused_result [-Wunused-resul]
         13 |  fscanf(f, "%llu", &sample_freq);
            |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      test_tcpnotify_user.c:133:2: warning:ignoring return value of ‘system’,
      declared with attribute warn_unused_result [-Wunused-result]
        133 |  system(test_script);
            |  ^~~~~~~~~~~~~~~~~~~
      test_tcpnotify_user.c:138:2: warning:ignoring return value of ‘system’,
      declared with attribute warn_unused_result [-Wunused-result]
        138 |  system(test_script);
            |  ^~~~~~~~~~~~~~~~~~~
      test_tcpnotify_user.c:143:2: warning:ignoring return value of ‘system’,
      declared with attribute warn_unused_result [-Wunused-result]
        143 |  system(test_script);
            |  ^~~~~~~~~~~~~~~~~~~
      
      Add code that fix compilation warning about ignoring return value and
      handles any errors; Check return value of library`s API make the code
      more secure.
      Signed-off-by: default avatarJianlin Lv <Jianlin.Lv@arm.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200806104224.95306-1-Jianlin.Lv@arm.com
      929e54a9
    • Jiri Benc's avatar
      selftests: bpf: Switch off timeout · 6fc5916c
      Jiri Benc authored
      Several bpf tests are interrupted by the default timeout of 45 seconds added
      by commit 852c8cbf ("selftests/kselftest/runner.sh: Add 45 second
      timeout per test"). In my case it was test_progs, test_tunnel.sh,
      test_lwt_ip_encap.sh and test_xdping.sh.
      
      There's not much value in having a timeout for bpf tests, switch it off.
      Signed-off-by: default avatarJiri Benc <jbenc@redhat.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/7a9198ed10917f4ecab4a3dd74bcda1200791efd.1596739059.git.jbenc@redhat.com
      6fc5916c
    • Stanislav Fomichev's avatar
      bpf: Remove inline from bpf_do_trace_printk · 0d360d64
      Stanislav Fomichev authored
      I get the following error during compilation on my side:
      kernel/trace/bpf_trace.c: In function 'bpf_do_trace_printk':
      kernel/trace/bpf_trace.c:386:34: error: function 'bpf_do_trace_printk' can never be inlined because it uses variable argument lists
       static inline __printf(1, 0) int bpf_do_trace_printk(const char *fmt, ...)
                                        ^
      
      Fixes: ac5a72ea ("bpf: Use dedicated bpf_trace_printk event instead of trace_printk()")
      Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200806182612.1390883-1-sdf@google.com
      0d360d64
    • Stanislav Fomichev's avatar
      bpf: Add missing return to resolve_btfids · d48556f4
      Stanislav Fomichev authored
      int sets_patch(struct object *obj) doesn't have a 'return 0' at the end.
      
      Fixes: fbbb68de ("bpf: Add resolve_btfids tool to resolve BTF IDs in ELF object")
      Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200806155225.637202-1-sdf@google.com
      d48556f4
    • Daniel T. Lee's avatar
      libbf: Fix uninitialized pointer at btf__parse_raw() · 932ac54a
      Daniel T. Lee authored
      Recently, from commit 94a1fedd ("libbpf: Add btf__parse_raw() and
      generic btf__parse() APIs"), new API has been added to libbpf that
      allows to parse BTF from raw data file (btf__parse_raw()).
      
      The commit derives build failure of samples/bpf due to improper access
      of uninitialized pointer at btf_parse_raw().
      
          btf.c: In function btf__parse_raw:
          btf.c:625:28: error: btf may be used uninitialized in this function
            625 |  return err ? ERR_PTR(err) : btf;
                |         ~~~~~~~~~~~~~~~~~~~^~~~~
      
      This commit fixes the build failure of samples/bpf by adding code of
      initializing btf pointer as NULL.
      
      Fixes: 94a1fedd ("libbpf: Add btf__parse_raw() and generic btf__parse() APIs")
      Signed-off-by: default avatarDaniel T. Lee <danieltimlee@gmail.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20200805223359.32109-1-danieltimlee@gmail.com
      932ac54a
    • Alexei Starovoitov's avatar
      Merge branch 'bpf_iter-uapi-fix' · 0ac10dc1
      Alexei Starovoitov authored
      Yonghong Song says:
      
      ====================
      Andrii raised a concern that current uapi for bpf iterator map
      element is a little restrictive and not suitable for future potential
      complex customization. This is a valid suggestion, considering people
      may indeed add more complex custimization to the iterator, e.g.,
      cgroup_id + user_id, etc. for task or task_file. Another example might
      be map_id plus additional control so that the bpf iterator may bail
      out a bucket earlier if a bucket has too many elements which may hold
      lock too long and impact other parts of systems.
      
      Patch #1 modified uapi with kernel changes. Patch #2
      adjusted libbpf api accordingly.
      
      Changelogs:
        v3 -> v4:
          . add a forward declaration of bpf_iter_link_info in
            tools/lib/bpf/bpf.h in case that libbpf is built against
            not-latest uapi bpf.h.
          . target the patch set to "bpf" instead of "bpf-next"
        v2 -> v3:
          . undo "not reject iter_info.map.map_fd == 0" from v1.
            In the future map_fd may become optional, so let us use map_fd == 0
            indicating the map_fd is not set by user space.
          . add link_info_len to bpf_iter_attach_opts to ensure always correct
            link_info_len from user. Otherwise, libbpf may deduce incorrect
            link_info_len if it uses different uapi header than the user app.
        v1 -> v2:
          . ensure link_create target_fd/flags == 0 since they are not used. (Andrii)
          . if either of iter_info ptr == 0 or iter_info_len == 0, but not both,
            return error to user space. (Andrii)
          . do not reject iter_info.map.map_fd == 0, go ahead to use it trying to
            get a map reference since the map_fd is required for map_elem iterator.
          . use bpf_iter_link_info in bpf_iter_attach_opts instead of map_fd.
            this way, user space is responsible to set up bpf_iter_link_info and
            libbpf just passes the data to the kernel, simplifying libbpf design.
            (Andrii)
      ====================
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      0ac10dc1
    • Yonghong Song's avatar
      tools/bpf: Support new uapi for map element bpf iterator · 74fc097d
      Yonghong Song authored
      Previous commit adjusted kernel uapi for map
      element bpf iterator. This patch adjusted libbpf API
      due to uapi change. bpftool and bpf_iter selftests
      are also changed accordingly.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20200805055058.1457623-1-yhs@fb.com
      74fc097d
    • Yonghong Song's avatar
      bpf: Change uapi for bpf iterator map elements · 5e7b3020
      Yonghong Song authored
      Commit a5cbe05a ("bpf: Implement bpf iterator for
      map elements") added bpf iterator support for
      map elements. The map element bpf iterator requires
      info to identify a particular map. In the above
      commit, the attr->link_create.target_fd is used
      to carry map_fd and an enum bpf_iter_link_info
      is added to uapi to specify the target_fd actually
      representing a map_fd:
          enum bpf_iter_link_info {
      	BPF_ITER_LINK_UNSPEC = 0,
      	BPF_ITER_LINK_MAP_FD = 1,
      
      	MAX_BPF_ITER_LINK_INFO,
          };
      
      This is an extensible approach as we can grow
      enumerator for pid, cgroup_id, etc. and we can
      unionize target_fd for pid, cgroup_id, etc.
      But in the future, there are chances that
      more complex customization may happen, e.g.,
      for tasks, it could be filtered based on
      both cgroup_id and user_id.
      
      This patch changed the uapi to have fields
      	__aligned_u64	iter_info;
      	__u32		iter_info_len;
      for additional iter_info for link_create.
      The iter_info is defined as
      	union bpf_iter_link_info {
      		struct {
      			__u32   map_fd;
      		} map;
      	};
      
      So future extension for additional customization
      will be easier. The bpf_iter_link_info will be
      passed to target callback to validate and generic
      bpf_iter framework does not need to deal it any
      more.
      
      Note that map_fd = 0 will be considered invalid
      and -EBADF will be returned to user space.
      
      Fixes: a5cbe05a ("bpf: Implement bpf iterator for map elements")
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20200805055056.1457463-1-yhs@fb.com
      5e7b3020
    • Andrii Nakryiko's avatar
      selftests/bpf: Prevent runqslower from racing on building bpftool · 6bcaf41f
      Andrii Nakryiko authored
      runqslower's Makefile is building/installing bpftool into
      $(OUTPUT)/sbin/bpftool, which coincides with $(DEFAULT_BPFTOOL). In practice
      this means that often when building selftests from scratch (after `make
      clean`), selftests are racing with runqslower to simultaneously build bpftool
      and one of the two processes fail due to file being busy. Prevent this race by
      explicitly order-depending on $(BPFTOOL_DEFAULT).
      
      Fixes: a2c9652f ("selftests: Refactor build to remove tools/lib/bpf from include path")
      Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20200805004757.2960750-1-andriin@fb.com
      6bcaf41f
    • Colin Ian King's avatar
      net: hns3: fix spelling mistake "could'nt" -> "couldn't" · 8912fd6a
      Colin Ian King authored
      There is a spelling mistake in a dev_err message. Fix it.
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8912fd6a
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-5.9' of git://github.com/cschaufler/smack-next · bfdd5aaa
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "Minor fixes to Smack for the v5.9 release.
      
        All were found by automated checkers and have straightforward
        resolution"
      
      * tag 'Smack-for-5.9' of git://github.com/cschaufler/smack-next:
        Smack: prevent underflow in smk_set_cipso()
        Smack: fix another vsscanf out of bounds
        Smack: fix use-after-free in smk_write_relabel_self()
      bfdd5aaa
    • Linus Torvalds's avatar
      Merge tag 'mips_5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · b62e4197
      Linus Torvalds authored
      Pull MIPS upates from Thomas Bogendoerfer:
      
       - improvements for Loongson64
      
       - extended ingenic support
      
       - removal of not maintained paravirt system type
      
       - cleanups and fixes
      
      * tag 'mips_5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (81 commits)
        MIPS: SGI-IP27: always enable NUMA in Kconfig
        MAINTAINERS: Update KVM/MIPS maintainers
        MIPS: Update default config file for Loongson-3
        MIPS: KVM: Add kvm guest support for Loongson-3
        dt-bindings: mips: Document Loongson kvm guest board
        MIPS: handle Loongson-specific GSExc exception
        MIPS: add definitions for Loongson-specific CP0.Diag1 register
        MIPS: only register FTLBPar exception handler for supported models
        MIPS: ingenic: Hardcode mem size for qi,lb60 board
        MIPS: DTS: ingenic/qi,lb60: Add model and memory node
        MIPS: ingenic: Use fw_passed_dtb even if CONFIG_BUILTIN_DTB
        MIPS: head.S: Init fw_passed_dtb to builtin DTB
        of: address: Fix parser address/size cells initialization
        of_address: Guard of_bus_pci_get_flags with CONFIG_PCI
        MIPS: DTS: Fix number of msi vectors for Loongson64G
        MIPS: Loongson64: Add ISA node for LS7A PCH
        MIPS: Loongson64: DTS: Fix ISA and PCI I/O ranges for RS780E PCH
        MIPS: Loongson64: Enlarge IO_SPACE_LIMIT
        MIPS: Loongson64: Process ISA Node in DeviceTree
        of_address: Add bus type match for pci ranges parser
        ...
      b62e4197
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 40ddad19
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - add arch/arm/Kbuild from Masahiro Yamada.
      
       - simplify act_mm macro, since it contains an open-coded
         get_thread_info.
      
       - VFP updates for Clang from Stefan Agner.
      
       - Fix unwinder for Clang from Nathan Huckleberry.
      
       - Remove unused it8152 PCI host controller, used by the removed cm-x2xx
         platforms from Mike Rapoport.
      
       - Further explanation of __range_ok().
      
       - Remove kimage_voffset that isn't used anymore from Marc Zyngier.
      
       - Drop ancient Thumb-2 workaround for old binutils from Ard Biesheuvel.
      
       - Documentation cleanup for mach-* from Pete Zaitcev.
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8996/1: Documentation/Clean up the description of mach-<class>
        ARM: 8995/1: drop Thumb-2 workaround for ancient binutils
        ARM: 8994/1: mm: drop kimage_voffset which was only used by KVM
        ARM: uaccess: add further explanation of __range_ok()
        ARM: 8993/1: remove it8152 PCI controller driver
        ARM: 8992/1: Fix unwind_frame for clang-built kernels
        ARM: 8991/1: use VFP assembler mnemonics if available
        ARM: 8990/1: use VFP assembler mnemonics in register load/store macros
        ARM: 8989/1: use .fpu assembler directives instead of assembler arguments
        ARM: 8982/1: mm: Simplify act_mm macro
        ARM: 8981/1: add arch/arm/Kbuild
      40ddad19
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-5.9-rc1' of https://github.com/c-sky/csky-linux · 2044513f
      Linus Torvalds authored
      Pull arch/csky updates from Guo Ren:
       "New features:
         - seccomp-filter
         - err-injection
         - top-down&random mmap-layout
         - irq_work
         - show_ipi
         - context-tracking
      
        Fixes & Optimizations:
         - kprobe_on_ftrace
         - optimize panic print"
      
      * tag 'csky-for-linus-5.9-rc1' of https://github.com/c-sky/csky-linux:
        csky: Add context tracking support
        csky: Add arch_show_interrupts for IPI interrupts
        csky: Add irq_work support
        csky: Fixup warning by EXPORT_SYMBOL(kmap)
        csky: Set CONFIG_NR_CPU 4 as default
        csky: Use top-down mmap layout
        csky: Optimize the trap processing flow
        csky: Add support for function error injection
        csky: Fixup kprobes handler couldn't change pc
        csky: Fixup duplicated restore sp in RESTORE_REGS_FTRACE
        csky: Add cpu feature register hint for smp
        csky: Add SECCOMP_FILTER supported
        csky: remove unusued thread_saved_pc and *_segments functions/macros
      2044513f
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20200805' of git://github.com/jcmvbkbc/linux-xtensa · bbcf9cd1
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - add syscall audit support
      
       - add seccomp filter support
      
       - clean up make rules under arch/xtensa/boot
      
       - fix state management for exclusive access opcodes
      
       - fix build with PMU enabled
      
      * tag 'xtensa-20200805' of git://github.com/jcmvbkbc/linux-xtensa:
        xtensa: add missing exclusive access state management
        xtensa: fix xtensa_pmu_setup prototype
        xtensa: add boot subdirectories build artifacts to 'targets'
        xtensa: add uImage and xipImage to targets
        xtensa: move vmlinux.bin[.gz] to boot subdirectory
        xtensa: initialize_mmu.h: fix a duplicated word
        selftests/seccomp: add xtensa support
        xtensa: add seccomp support
        xtensa: expose syscall through user_pt_regs
        xtensa: add audit support
      bbcf9cd1
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · 9ab9bc51
      Linus Torvalds authored
      Pull hyperv updates from Wei Liu:
      
       - A patch series from Andrea to improve vmbus code
      
       - Two clean-up patches from Alexander and Randy
      
      * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        hyperv: hyperv.h: drop a duplicated word
        tools: hv: change http to https in hv_kvp_daemon.c
        Drivers: hv: vmbus: Remove the lock field from the vmbus_channel struct
        scsi: storvsc: Introduce the per-storvsc_device spinlock
        Drivers: hv: vmbus: Remove unnecessary channel->lock critical sections (sc_list updaters)
        Drivers: hv: vmbus: Use channel_mutex in channel_vp_mapping_show()
        Drivers: hv: vmbus: Remove unnecessary channel->lock critical sections (sc_list readers)
        Drivers: hv: vmbus: Replace cpumask_test_cpu(, cpu_online_mask) with cpu_online()
        Drivers: hv: vmbus: Remove the numa_node field from the vmbus_channel struct
        Drivers: hv: vmbus: Remove the target_vp field from the vmbus_channel struct
      9ab9bc51
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 47ec5303
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan.
      
       2) Support UDP segmentation in code TSO code, from Eric Dumazet.
      
       3) Allow flashing different flash images in cxgb4 driver, from Vishal
          Kulkarni.
      
       4) Add drop frames counter and flow status to tc flower offloading,
          from Po Liu.
      
       5) Support n-tuple filters in cxgb4, from Vishal Kulkarni.
      
       6) Various new indirect call avoidance, from Eric Dumazet and Brian
          Vazquez.
      
       7) Fix BPF verifier failures on 32-bit pointer arithmetic, from
          Yonghong Song.
      
       8) Support querying and setting hardware address of a port function via
          devlink, use this in mlx5, from Parav Pandit.
      
       9) Support hw ipsec offload on bonding slaves, from Jarod Wilson.
      
      10) Switch qca8k driver over to phylink, from Jonathan McDowell.
      
      11) In bpftool, show list of processes holding BPF FD references to
          maps, programs, links, and btf objects. From Andrii Nakryiko.
      
      12) Several conversions over to generic power management, from Vaibhav
          Gupta.
      
      13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry
          Yakunin.
      
      14) Various https url conversions, from Alexander A. Klimov.
      
      15) Timestamping and PHC support for mscc PHY driver, from Antoine
          Tenart.
      
      16) Support bpf iterating over tcp and udp sockets, from Yonghong Song.
      
      17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov.
      
      18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan.
      
      19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several
          drivers. From Luc Van Oostenryck.
      
      20) XDP support for xen-netfront, from Denis Kirjanov.
      
      21) Support receive buffer autotuning in MPTCP, from Florian Westphal.
      
      22) Support EF100 chip in sfc driver, from Edward Cree.
      
      23) Add XDP support to mvpp2 driver, from Matteo Croce.
      
      24) Support MPTCP in sock_diag, from Paolo Abeni.
      
      25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic
          infrastructure, from Jakub Kicinski.
      
      26) Several pci_ --> dma_ API conversions, from Christophe JAILLET.
      
      27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel.
      
      28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki.
      
      29) Refactor a lot of networking socket option handling code in order to
          avoid set_fs() calls, from Christoph Hellwig.
      
      30) Add rfc4884 support to icmp code, from Willem de Bruijn.
      
      31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei.
      
      32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin.
      
      33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin.
      
      34) Support TCP syncookies in MPTCP, from Flowian Westphal.
      
      35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano
          Brivio.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits)
        net: thunderx: initialize VF's mailbox mutex before first usage
        usb: hso: remove bogus check for EINPROGRESS
        usb: hso: no complaint about kmalloc failure
        hso: fix bailout in error case of probe
        ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM
        selftests/net: relax cpu affinity requirement in msg_zerocopy test
        mptcp: be careful on subflow creation
        selftests: rtnetlink: make kci_test_encap() return sub-test result
        selftests: rtnetlink: correct the final return value for the test
        net: dsa: sja1105: use detected device id instead of DT one on mismatch
        tipc: set ub->ifindex for local ipv6 address
        ipv6: add ipv6_dev_find()
        net: openvswitch: silence suspicious RCU usage warning
        Revert "vxlan: fix tos value before xmit"
        ptp: only allow phase values lower than 1 period
        farsync: switch from 'pci_' to 'dma_' API
        wan: wanxl: switch from 'pci_' to 'dma_' API
        hv_netvsc: do not use VF device if link is down
        dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
        net: macb: Properly handle phylink on at91sam9x
        ...
      47ec5303
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-08-06' of git://anongit.freedesktop.org/drm/drm · 81867496
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "New xilinx displayport driver, AMD support for two new GPUs (more
        header files), i915 initial support for RocketLake and some work on
        their DG1 (discrete chip).
      
        The core also grew some lockdep annotations to try and constrain what
        drivers do with dma-fences, and added some documentation on why the
        idea of indefinite fences doesn't work.
      
        The long list is below.
      
        I do have some fixes trees outstanding, but I'll follow up with those
        later.
      
        core:
         - add user def flag to cmd line modes
         - dma_fence_wait added might_sleep
         - dma-fence lockdep annotations
         - indefinite fences are bad documentation
         - gem CMA functions used in more drivers
         - struct mutex removal
         - more drm_ debug macro usage
         - set/drop master api fixes
         - fix for drm/mm hole size comparison
         - drm/mm remove invalid entry optimization
         - optimise drm/mm hole handling
         - VRR debugfs added
         - uncompressed AFBC modifier support
         - multiple display id blocks in EDID
         - multiple driver sg handling fixes
         - __drm_atomic_helper_crtc_reset in all drivers
         - managed vram helpers
      
        ttm:
         - ttm_mem_reg handling cleanup
         - remove bo offset field
         - drop CMA memtype flag
         - drop mappable flag
      
        xilinx:
         - New Xilinx ZynqMP DisplayPort Subsystem driver
      
        nouveau:
         - add CRC support
         - start using NVIDIA published class header files
         - convert all push buffer emission to new macros
         - Proper push buffer space management for EVO/NVD channels.
         - firmware loading fixes
         - 2MiB system memory pages support on Pascal and newer
      
        vkms:
         - larger cursor support
      
        i915:
         - Rocketlake platform enablement
         - Early DG1 enablement
         - Numerous GEM refactorings
         - DP MST fixes
         - FBC, PSR, Cursor, Color, Gamma fixes
         - TGL, RKL, EHL workaround updates
         - TGL 8K display support fixes
         - SDVO/HDMI/DVI fixes
      
        amdgpu:
         - Initial support for Sienna Cichlid GPU
         - Initial support for Navy Flounder GPU
         - SI UVD/VCE support
         - expose rotation property
         - Add support for unique id on Arcturus
         - Enable runtime PM on vega10 boards that support BACO
         - Skip BAR resizing if the bios already did id
         - Major swSMU code cleanup
         - Fixes for DCN bandwidth calculations
      
        amdkfd:
         - Track SDMA usage per process
         - SMI events interface
      
        radeon:
         - Default to on chip GART for AGP boards on all arches
         - Runtime PM reference count fixes
      
        msm:
         - headers regenerated causing churn
         - a650/a640 display and GPU enablement
         - dpu dither support for 6bpc panels
         - dpu cursor fix
         - dsi/mdp5 enablement for sdm630/sdm636/sdm66
      
        tegra:
         - video capture prep support
         - reflection support
      
        mediatek:
         - convert mtk_dsi to bridge API
      
        meson:
         - FBC support
      
        sun4i:
         - iommu support
      
        rockchip:
         - register locking fix
         - per-pixel alpha support PX30 VOP
      
        mgag200:
         - ported to simple and shmem helpers
         - device init cleanups
         - use managed pci functions
         - dropped hw cursor support
      
        ast:
         - use managed pci functions
         - use managed VRAM helpers
         - rework cursor support
      
        malidp:
         - dev_groups support
      
        hibmc:
         - refactor hibmc_drv_vdac:
      
        vc4:
         - create TXP CRTC
      
        imx:
         - error path fixes and cleanups
      
        etnaviv:
         - clock handling and error handling cleanups
         - use pin_user_pages"
      
      * tag 'drm-next-2020-08-06' of git://anongit.freedesktop.org/drm/drm: (1747 commits)
        drm/msm: use kthread_create_worker instead of kthread_run
        drm/msm/mdp5: Add MDP5 configuration for SDM636/660
        drm/msm/dsi: Add DSI configuration for SDM660
        drm/msm/mdp5: Add MDP5 configuration for SDM630
        drm/msm/dsi: Add phy configuration for SDM630/636/660
        drm/msm/a6xx: add A640/A650 hwcg
        drm/msm/a6xx: hwcg tables in gpulist
        drm/msm/dpu: add SM8250 to hw catalog
        drm/msm/dpu: add SM8150 to hw catalog
        drm/msm/dpu: intf timing path for displayport
        drm/msm/dpu: set missing flush bits for INTF_2 and INTF_3
        drm/msm/dpu: don't use INTF_INPUT_CTRL feature on sdm845
        drm/msm/dpu: move some sspp caps to dpu_caps
        drm/msm/dpu: update UBWC config for sm8150 and sm8250
        drm/msm/dpu: use right setup_blend_config for sm8150 and sm8250
        drm/msm/a6xx: set ubwc config for A640 and A650
        drm/msm/adreno: un-open-code some packets
        drm/msm: sync generated headers
        drm/msm/a6xx: add build_bw_table for A640/A650
        drm/msm/a6xx: fix crashstate capture for A650
        ...
      81867496
    • Linus Torvalds's avatar
      Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds · e4a7b2dc
      Linus Torvalds authored
      Pull LED updates from Pavel Machek:
       "Okay, so... this one is interesting. RGB LEDs are very common, and we
        need to have some kind of support for them. Multicolor is for
        arbitrary set of LEDs in one package, RGB is for LEDs that can produce
        full range of colors. We do not have real multicolor LED that is not
        RGB in the pipeline, so that one is disabled for now.
      
        You can expect this saga to continue with next pull requests"
      
      * tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: (37 commits)
        MAINTAINERS: Remove myself as LED subsystem maintainer
        leds: disallow /sys/class/leds/*:multi:* for now
        leds: add RGB color option, as that is different from multicolor.
        Make LEDS_LP55XX_COMMON depend on I2C to fix build errors:
        Documentation: ABI: leds-turris-omnia: document sysfs attribute
        leds: initial support for Turris Omnia LEDs
        dt-bindings: leds: add cznic,turris-omnia-leds binding
        leds: pattern trigger -- check pattern for validity
        leds: Replace HTTP links with HTTPS ones
        leds: trigger: add support for LED-private device triggers
        leds: lp5521: Add multicolor framework multicolor brightness support
        leds: lp5523: Update the lp5523 code to add multicolor brightness function
        leds: lp55xx: Add multicolor framework support to lp55xx
        leds: lp55xx: Convert LED class registration to devm_*
        dt-bindings: leds: Convert leds-lp55xx to yaml
        leds: multicolor: Introduce a multicolor class definition
        leds: Add multicolor ID to the color ID list
        dt: bindings: Add multicolor class dt bindings documention
        leds: lp5523: Fix various formatting issues in the code
        leds: lp55xx: Fix file permissions to use DEVICE_ATTR macros
        ...
      e4a7b2dc
    • Dean Nelson's avatar
      net: thunderx: initialize VF's mailbox mutex before first usage · c1055b76
      Dean Nelson authored
      A VF's mailbox mutex is not getting initialized by nicvf_probe() until after
      it is first used. And such usage is resulting in...
      
      [   28.270927] ------------[ cut here ]------------
      [   28.270934] DEBUG_LOCKS_WARN_ON(lock->magic != lock)
      [   28.270980] WARNING: CPU: 9 PID: 675 at kernel/locking/mutex.c:938 __mutex_lock+0xdac/0x12f0
      [   28.270985] Modules linked in: ast(+) nicvf(+) i2c_algo_bit drm_vram_helper drm_ttm_helper ttm nicpf(+) drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm ixgbe(+) sg thunder_bgx mdio i2c_thunderx mdio_thunder thunder_xcv mdio_cavium dm_mirror dm_region_hash dm_log dm_mod
      [   28.271064] CPU: 9 PID: 675 Comm: systemd-udevd Not tainted 4.18.0+ #1
      [   28.271070] Hardware name: GIGABYTE R120-T34-00/MT30-GS2-00, BIOS F02 08/06/2019
      [   28.271078] pstate: 60000005 (nZCv daif -PAN -UAO)
      [   28.271086] pc : __mutex_lock+0xdac/0x12f0
      [   28.271092] lr : __mutex_lock+0xdac/0x12f0
      [   28.271097] sp : ffff800d42146fb0
      [   28.271103] x29: ffff800d42146fb0 x28: 0000000000000000
      [   28.271113] x27: ffff800d24361180 x26: dfff200000000000
      [   28.271122] x25: 0000000000000000 x24: 0000000000000002
      [   28.271132] x23: ffff20001597cc80 x22: ffff2000139e9848
      [   28.271141] x21: 0000000000000000 x20: 1ffff001a8428e0c
      [   28.271151] x19: ffff200015d5d000 x18: 1ffff001ae0f2184
      [   28.271160] x17: 0000000000000000 x16: 0000000000000000
      [   28.271170] x15: ffff800d70790c38 x14: ffff20001597c000
      [   28.271179] x13: ffff20001597cc80 x12: ffff040002b2f779
      [   28.271189] x11: 1fffe40002b2f778 x10: ffff040002b2f778
      [   28.271199] x9 : 0000000000000000 x8 : 00000000f1f1f1f1
      [   28.271208] x7 : 00000000f2f2f2f2 x6 : 0000000000000000
      [   28.271217] x5 : 1ffff001ae0f2186 x4 : 1fffe400027eb03c
      [   28.271227] x3 : dfff200000000000 x2 : ffff1001a8428dbe
      [   28.271237] x1 : c87fdfac7ea11d00 x0 : 0000000000000000
      [   28.271246] Call trace:
      [   28.271254]  __mutex_lock+0xdac/0x12f0
      [   28.271261]  mutex_lock_nested+0x3c/0x50
      [   28.271297]  nicvf_send_msg_to_pf+0x40/0x3a0 [nicvf]
      [   28.271316]  nicvf_register_misc_interrupt+0x20c/0x328 [nicvf]
      [   28.271334]  nicvf_probe+0x508/0xda0 [nicvf]
      [   28.271344]  local_pci_probe+0xc4/0x180
      [   28.271352]  pci_device_probe+0x3ec/0x528
      [   28.271363]  driver_probe_device+0x21c/0xb98
      [   28.271371]  device_driver_attach+0xe8/0x120
      [   28.271379]  __driver_attach+0xe0/0x2a0
      [   28.271386]  bus_for_each_dev+0x118/0x190
      [   28.271394]  driver_attach+0x48/0x60
      [   28.271401]  bus_add_driver+0x328/0x558
      [   28.271409]  driver_register+0x148/0x398
      [   28.271416]  __pci_register_driver+0x14c/0x1b0
      [   28.271437]  nicvf_init_module+0x54/0x10000 [nicvf]
      [   28.271447]  do_one_initcall+0x18c/0xc18
      [   28.271457]  do_init_module+0x18c/0x618
      [   28.271464]  load_module+0x2bc0/0x4088
      [   28.271472]  __se_sys_finit_module+0x110/0x188
      [   28.271479]  __arm64_sys_finit_module+0x70/0xa0
      [   28.271490]  el0_svc_handler+0x15c/0x380
      [   28.271496]  el0_svc+0x8/0xc
      [   28.271502] irq event stamp: 52649
      [   28.271513] hardirqs last  enabled at (52649): [<ffff200011b4d790>] _raw_spin_unlock_irqrestore+0xc0/0xd8
      [   28.271522] hardirqs last disabled at (52648): [<ffff200011b4d3c4>] _raw_spin_lock_irqsave+0x3c/0xf0
      [   28.271530] softirqs last  enabled at (52330): [<ffff200010082af4>] __do_softirq+0xacc/0x117c
      [   28.271540] softirqs last disabled at (52313): [<ffff20001019b354>] irq_exit+0x3cc/0x500
      [   28.271545] ---[ end trace a9b90324c8a0d4ee ]---
      
      This problem is resolved by moving the call to mutex_init() up earlier
      in nicvf_probe().
      
      Fixes: 609ea65c ("net: thunderx: add mutex to protect mailbox from concurrent calls for same VF")
      Signed-off-by: default avatarDean Nelson <dnelson@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c1055b76