1. 13 Sep, 2021 3 commits
    • Daniel Borkmann's avatar
      bpf, selftests: Add cgroup v1 net_cls classid helpers · d8079d80
      Daniel Borkmann authored
      Minimal set of helpers for net_cls classid cgroupv1 management in order
      to set an id, join from a process, initiate setup and teardown. cgroupv2
      helpers are left as-is, but reused where possible.
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20210913230759.2313-2-daniel@iogearbox.net
      d8079d80
    • Daniel Borkmann's avatar
      bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode · 8520e224
      Daniel Borkmann authored
      Fix cgroup v1 interference when non-root cgroup v2 BPF programs are used.
      Back in the days, commit bd1060a1 ("sock, cgroup: add sock->sk_cgroup")
      embedded per-socket cgroup information into sock->sk_cgrp_data and in order
      to save 8 bytes in struct sock made both mutually exclusive, that is, when
      cgroup v1 socket tagging (e.g. net_cls/net_prio) is used, then cgroup v2
      falls back to the root cgroup in sock_cgroup_ptr() (&cgrp_dfl_root.cgrp).
      
      The assumption made was "there is no reason to mix the two and this is in line
      with how legacy and v2 compatibility is handled" as stated in bd1060a1.
      However, with Kubernetes more widely supporting cgroups v2 as well nowadays,
      this assumption no longer holds, and the possibility of the v1/v2 mixed mode
      with the v2 root fallback being hit becomes a real security issue.
      
      Many of the cgroup v2 BPF programs are also used for policy enforcement, just
      to pick _one_ example, that is, to programmatically deny socket related system
      calls like connect(2) or bind(2). A v2 root fallback would implicitly cause
      a policy bypass for the affected Pods.
      
      In production environments, we have recently seen this case due to various
      circumstances: i) a different 3rd party agent and/or ii) a container runtime
      such as [0] in the user's environment configuring legacy cgroup v1 net_cls
      tags, which triggered implicitly mentioned root fallback. Another case is
      Kubernetes projects like kind [1] which create Kubernetes nodes in a container
      and also add cgroup namespaces to the mix, meaning programs which are attached
      to the cgroup v2 root of the cgroup namespace get attached to a non-root
      cgroup v2 path from init namespace point of view. And the latter's root is
      out of reach for agents on a kind Kubernetes node to configure. Meaning, any
      entity on the node setting cgroup v1 net_cls tag will trigger the bypass
      despite cgroup v2 BPF programs attached to the namespace root.
      
      Generally, this mutual exclusiveness does not hold anymore in today's user
      environments and makes cgroup v2 usage from BPF side fragile and unreliable.
      This fix adds proper struct cgroup pointer for the cgroup v2 case to struct
      sock_cgroup_data in order to address these issues; this implicitly also fixes
      the tradeoffs being made back then with regards to races and refcount leaks
      as stated in bd1060a1, and removes the fallback, so that cgroup v2 BPF
      programs always operate as expected.
      
        [0] https://github.com/nestybox/sysbox/
        [1] https://kind.sigs.k8s.io/
      
      Fixes: bd1060a1 ("sock, cgroup: add sock->sk_cgroup")
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarStanislav Fomichev <sdf@google.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Link: https://lore.kernel.org/bpf/20210913230759.2313-1-daniel@iogearbox.net
      8520e224
    • Bixuan Cui's avatar
      bpf: Add oversize check before call kvcalloc() · 0e6491b5
      Bixuan Cui authored
      Commit 7661809d ("mm: don't allow oversized kvmalloc() calls") add the
      oversize check. When the allocation is larger than what kmalloc() supports,
      the following warning triggered:
      
      WARNING: CPU: 0 PID: 8408 at mm/util.c:597 kvmalloc_node+0x108/0x110 mm/util.c:597
      Modules linked in:
      CPU: 0 PID: 8408 Comm: syz-executor221 Not tainted 5.14.0-syzkaller #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      RIP: 0010:kvmalloc_node+0x108/0x110 mm/util.c:597
      Call Trace:
       kvmalloc include/linux/mm.h:806 [inline]
       kvmalloc_array include/linux/mm.h:824 [inline]
       kvcalloc include/linux/mm.h:829 [inline]
       check_btf_line kernel/bpf/verifier.c:9925 [inline]
       check_btf_info kernel/bpf/verifier.c:10049 [inline]
       bpf_check+0xd634/0x150d0 kernel/bpf/verifier.c:13759
       bpf_prog_load kernel/bpf/syscall.c:2301 [inline]
       __sys_bpf+0x11181/0x126e0 kernel/bpf/syscall.c:4587
       __do_sys_bpf kernel/bpf/syscall.c:4691 [inline]
       __se_sys_bpf kernel/bpf/syscall.c:4689 [inline]
       __x64_sys_bpf+0x78/0x90 kernel/bpf/syscall.c:4689
       do_syscall_x64 arch/x86/entry/common.c:50 [inline]
       do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
       entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      Reported-by: syzbot+f3e749d4c662818ae439@syzkaller.appspotmail.com
      Signed-off-by: default avatarBixuan Cui <cuibixuan@huawei.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarYonghong Song <yhs@fb.com>
      Link: https://lore.kernel.org/bpf/20210911005557.45518-1-cuibixuan@huawei.com
      0e6491b5
  2. 10 Sep, 2021 1 commit
    • Yonghong Song's avatar
      bpf, mm: Fix lockdep warning triggered by stack_map_get_build_id_offset() · 2f1aaf3e
      Yonghong Song authored
      Currently the bpf selftest "get_stack_raw_tp" triggered the warning:
      
        [ 1411.304463] WARNING: CPU: 3 PID: 140 at include/linux/mmap_lock.h:164 find_vma+0x47/0xa0
        [ 1411.304469] Modules linked in: bpf_testmod(O) [last unloaded: bpf_testmod]
        [ 1411.304476] CPU: 3 PID: 140 Comm: systemd-journal Tainted: G        W  O      5.14.0+ #53
        [ 1411.304479] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
        [ 1411.304481] RIP: 0010:find_vma+0x47/0xa0
        [ 1411.304484] Code: de 48 89 ef e8 ba f5 fe ff 48 85 c0 74 2e 48 83 c4 08 5b 5d c3 48 8d bf 28 01 00 00 be ff ff ff ff e8 2d 9f d8 00 85 c0 75 d4 <0f> 0b 48 89 de 48 8
        [ 1411.304487] RSP: 0018:ffffabd440403db8 EFLAGS: 00010246
        [ 1411.304490] RAX: 0000000000000000 RBX: 00007f00ad80a0e0 RCX: 0000000000000000
        [ 1411.304492] RDX: 0000000000000001 RSI: ffffffff9776b144 RDI: ffffffff977e1b0e
        [ 1411.304494] RBP: ffff9cf5c2f50000 R08: ffff9cf5c3eb25d8 R09: 00000000fffffffe
        [ 1411.304496] R10: 0000000000000001 R11: 00000000ef974e19 R12: ffff9cf5c39ae0e0
        [ 1411.304498] R13: 0000000000000000 R14: 0000000000000000 R15: ffff9cf5c39ae0e0
        [ 1411.304501] FS:  00007f00ae754780(0000) GS:ffff9cf5fba00000(0000) knlGS:0000000000000000
        [ 1411.304504] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        [ 1411.304506] CR2: 000000003e34343c CR3: 0000000103a98005 CR4: 0000000000370ee0
        [ 1411.304508] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        [ 1411.304510] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
        [ 1411.304512] Call Trace:
        [ 1411.304517]  stack_map_get_build_id_offset+0x17c/0x260
        [ 1411.304528]  __bpf_get_stack+0x18f/0x230
        [ 1411.304541]  bpf_get_stack_raw_tp+0x5a/0x70
        [ 1411.305752] RAX: 0000000000000000 RBX: 5541f689495641d7 RCX: 0000000000000000
        [ 1411.305756] RDX: 0000000000000001 RSI: ffffffff9776b144 RDI: ffffffff977e1b0e
        [ 1411.305758] RBP: ffff9cf5c02b2f40 R08: ffff9cf5ca7606c0 R09: ffffcbd43ee02c04
        [ 1411.306978]  bpf_prog_32007c34f7726d29_bpf_prog1+0xaf/0xd9c
        [ 1411.307861] R10: 0000000000000001 R11: 0000000000000044 R12: ffff9cf5c2ef60e0
        [ 1411.307865] R13: 0000000000000005 R14: 0000000000000000 R15: ffff9cf5c2ef6108
        [ 1411.309074]  bpf_trace_run2+0x8f/0x1a0
        [ 1411.309891] FS:  00007ff485141700(0000) GS:ffff9cf5fae00000(0000) knlGS:0000000000000000
        [ 1411.309896] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        [ 1411.311221]  syscall_trace_enter.isra.20+0x161/0x1f0
        [ 1411.311600] CR2: 00007ff48514d90e CR3: 0000000107114001 CR4: 0000000000370ef0
        [ 1411.312291]  do_syscall_64+0x15/0x80
        [ 1411.312941] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        [ 1411.313803]  entry_SYSCALL_64_after_hwframe+0x44/0xae
        [ 1411.314223] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
        [ 1411.315082] RIP: 0033:0x7f00ad80a0e0
        [ 1411.315626] Call Trace:
        [ 1411.315632]  stack_map_get_build_id_offset+0x17c/0x260
      
      To reproduce, first build `test_progs` binary:
      
        make -C tools/testing/selftests/bpf -j60
      
      and then run the binary at tools/testing/selftests/bpf directory:
      
        ./test_progs -t get_stack_raw_tp
      
      The warning is due to commit 5b78ed24 ("mm/pagemap: add mmap_assert_locked()
      annotations to find_vma*()") which added mmap_assert_locked() in find_vma()
      function. The mmap_assert_locked() function asserts that mm->mmap_lock needs
      to be held. But this is not the case for bpf_get_stack() or bpf_get_stackid()
      helper (kernel/bpf/stackmap.c), which uses mmap_read_trylock_non_owner()
      instead. Since mm->mmap_lock is not held in bpf_get_stack[id]() use case,
      the above warning is emitted during test run.
      
      This patch fixed the issue by (1). using mmap_read_trylock() instead of
      mmap_read_trylock_non_owner() to satisfy lockdep checking in find_vma(), and
      (2). droping lockdep for mmap_lock right before the irq_work_queue(). The
      function mmap_read_trylock_non_owner() is also removed since after this
      patch nobody calls it any more.
      
      Fixes: 5b78ed24 ("mm/pagemap: add mmap_assert_locked() annotations to find_vma*()")
      Suggested-by: default avatarJason Gunthorpe <jgg@ziepe.ca>
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Reviewed-by: default avatarLiam R. Howlett <Liam.Howlett@oracle.com>
      Cc: Luigi Rizzo <lrizzo@google.com>
      Cc: Jason Gunthorpe <jgg@ziepe.ca>
      Cc: linux-mm@kvack.org
      Link: https://lore.kernel.org/bpf/20210909155000.1610299-1-yhs@fb.com
      2f1aaf3e
  3. 07 Sep, 2021 1 commit
  4. 02 Sep, 2021 1 commit
  5. 31 Aug, 2021 34 commits
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 9e9fb765
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core:
      
         - Enable memcg accounting for various networking objects.
      
        BPF:
      
         - Introduce bpf timers.
      
         - Add perf link and opaque bpf_cookie which the program can read out
           again, to be used in libbpf-based USDT library.
      
         - Add bpf_task_pt_regs() helper to access user space pt_regs in
           kprobes, to help user space stack unwinding.
      
         - Add support for UNIX sockets for BPF sockmap.
      
         - Extend BPF iterator support for UNIX domain sockets.
      
         - Allow BPF TCP congestion control progs and bpf iterators to call
           bpf_setsockopt(), e.g. to switch to another congestion control
           algorithm.
      
        Protocols:
      
         - Support IOAM Pre-allocated Trace with IPv6.
      
         - Support Management Component Transport Protocol.
      
         - bridge: multicast: add vlan support.
      
         - netfilter: add hooks for the SRv6 lightweight tunnel driver.
      
         - tcp:
             - enable mid-stream window clamping (by user space or BPF)
             - allow data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
             - more accurate DSACK processing for RACK-TLP
      
         - mptcp:
             - add full mesh path manager option
             - add partial support for MP_FAIL
             - improve use of backup subflows
             - optimize option processing
      
         - af_unix: add OOB notification support.
      
         - ipv6: add IFLA_INET6_RA_MTU to expose MTU value advertised by the
           router.
      
         - mac80211: Target Wake Time support in AP mode.
      
         - can: j1939: extend UAPI to notify about RX status.
      
        Driver APIs:
      
         - Add page frag support in page pool API.
      
         - Many improvements to the DSA (distributed switch) APIs.
      
         - ethtool: extend IRQ coalesce uAPI with timer reset modes.
      
         - devlink: control which auxiliary devices are created.
      
         - Support CAN PHYs via the generic PHY subsystem.
      
         - Proper cross-chip support for tag_8021q.
      
         - Allow TX forwarding for the software bridge data path to be
           offloaded to capable devices.
      
        Drivers:
      
         - veth: more flexible channels number configuration.
      
         - openvswitch: introduce per-cpu upcall dispatch.
      
         - Add internet mix (IMIX) mode to pktgen.
      
         - Transparently handle XDP operations in the bonding driver.
      
         - Add LiteETH network driver.
      
         - Renesas (ravb):
             - support Gigabit Ethernet IP
      
         - NXP Ethernet switch (sja1105):
             - fast aging support
             - support for "H" switch topologies
             - traffic termination for ports under VLAN-aware bridge
      
         - Intel 1G Ethernet
             - support getcrosststamp() with PCIe PTM (Precision Time
               Measurement) for better time sync
             - support Credit-Based Shaper (CBS) offload, enabling HW traffic
               prioritization and bandwidth reservation
      
         - Broadcom Ethernet (bnxt)
             - support pulse-per-second output
             - support larger Rx rings
      
         - Mellanox Ethernet (mlx5)
             - support ethtool RSS contexts and MQPRIO channel mode
             - support LAG offload with bridging
             - support devlink rate limit API
             - support packet sampling on tunnels
      
         - Huawei Ethernet (hns3):
             - basic devlink support
             - add extended IRQ coalescing support
             - report extended link state
      
         - Netronome Ethernet (nfp):
             - add conntrack offload support
      
         - Broadcom WiFi (brcmfmac):
             - add WPA3 Personal with FT to supported cipher suites
             - support 43752 SDIO device
      
         - Intel WiFi (iwlwifi):
             - support scanning hidden 6GHz networks
             - support for a new hardware family (Bz)
      
         - Xen pv driver:
             - harden netfront against malicious backends
      
         - Qualcomm mobile
             - ipa: refactor power management and enable automatic suspend
             - mhi: move MBIM to WWAN subsystem interfaces
      
        Refactor:
      
         - Ambient BPF run context and cgroup storage cleanup.
      
         - Compat rework for ndo_ioctl.
      
        Old code removal:
      
         - prism54 remove the obsoleted driver, deprecated by the p54 driver.
      
         - wan: remove sbni/granch driver"
      
      * tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1715 commits)
        net: Add depends on OF_NET for LiteX's LiteETH
        ipv6: seg6: remove duplicated include
        net: hns3: remove unnecessary spaces
        net: hns3: add some required spaces
        net: hns3: clean up a type mismatch warning
        net: hns3: refine function hns3_set_default_feature()
        ipv6: remove duplicated 'net/lwtunnel.h' include
        net: w5100: check return value after calling platform_get_resource()
        net/mlxbf_gige: Make use of devm_platform_ioremap_resourcexxx()
        net: mdio: mscc-miim: Make use of the helper function devm_platform_ioremap_resource()
        net: mdio-ipq4019: Make use of devm_platform_ioremap_resource()
        fou: remove sparse errors
        ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
        octeontx2-af: Set proper errorcode for IPv4 checksum errors
        octeontx2-af: Fix static code analyzer reported issues
        octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg
        octeontx2-af: Fix loop in free and unmap counter
        af_unix: fix potential NULL deref in unix_dgram_connect()
        dpaa2-eth: Replace strlcpy with strscpy
        octeontx2-af: Use NDC TX for transmit packet data
        ...
      9e9fb765
    • Linus Torvalds's avatar
      Merge branch 'for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 86ac54e7
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "There is a long-standing subtle destroy_workqueue() bug where a
        workqueue can be destroyed while internal work items used for flushing
        are still in flight. Lai fixed it by assigning a flush color to the
        internal work items so that they are correctly waited for during
        destruction.
      
        Other than that, all are minor cleanups"
      
      * 'for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Remove unused WORK_NO_COLOR
        workqueue: Assign a color to barrier work items
        workqueue: Mark barrier work with WORK_STRUCT_INACTIVE
        workqueue: Change the code of calculating work_flags in insert_wq_barrier()
        workqueue: Change arguement of pwq_dec_nr_in_flight()
        workqueue: Rename "delayed" (delayed by active management) to "inactive"
        workqueue: Replace deprecated CPU-hotplug functions.
        workqueue: Replace deprecated ida_simple_*() with ida_alloc()/ida_free()
        workqueue: Fix typo in comments
        workqueue: Fix possible memory leaks in wq_numa_init()
      86ac54e7
    • Linus Torvalds's avatar
      Merge branch 'for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 69dc8010
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Two cpuset behavior changes:
      
         - cpuset on cgroup2 is changed to enable memory migration based on
           nodemask by default.
      
         - A notification is generated when cpuset partition state changes.
      
        All other patches are minor fixes and cleanups"
      
      * 'for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: Avoid compiler warnings with no subsystems
        cgroup/cpuset: Avoid memory migration when nodemasks match
        cgroup/cpuset: Enable memory migration for cpuset v2
        cgroup/cpuset: Enable event notification when partition state changes
        cgroup: cgroup-v1: clean up kernel-doc notation
        cgroup: Replace deprecated CPU-hotplug functions.
        cgroup/cpuset: Fix violation of cpuset locking rule
        cgroup/cpuset: Fix a partition bug with hotplug
        cgroup/cpuset: Miscellaneous code cleanup
        cgroup: remove cgroup_mount from comments
      69dc8010
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft · 81b0b29b
      Linus Torvalds authored
      Pull ibft updates from Konrad Rzeszutek Wilk:
       "A fix for iBFT parsing code badly interfacing when KASLR is enabled"
      
      * 'stable/for-linus-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft:
        iscsi_ibft: fix warning in reserve_ibft_region()
        iscsi_ibft: fix crash due to KASLR physical memory remapping
      81b0b29b
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/dm-changes' of... · efa916af
      Linus Torvalds authored
      Merge tag 'for-5.15/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Add DM infrastructure for IMA-based remote attestion. These changes
         are the basis for deploying DM-based storage in a "cloud" that must
         validate configurations end-users run to maintain trust. These DM
         changes allow supported DM targets' configurations to be measured via
         IMA. But the policy and enforcement (of which configurations are
         valid) is managed by something outside the kernel (e.g. Keylime).
      
       - Fix DM crypt scalability regression on systems with many cpus due to
         percpu_counter spinlock contention in crypt_page_alloc().
      
       - Use in_hardirq() instead of deprecated in_irq() in DM crypt.
      
       - Add event counters to DM writecache to allow users to further assess
         how the writecache is performing.
      
       - Various code cleanup in DM writecache's main IO mapping function.
      
      * tag 'for-5.15/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm crypt: use in_hardirq() instead of deprecated in_irq()
        dm ima: update dm documentation for ima measurement support
        dm ima: update dm target attributes for ima measurements
        dm ima: add a warning in dm_init if duplicate ima events are not measured
        dm ima: prefix ima event name related to device mapper with dm_
        dm ima: add version info to dm related events in ima log
        dm ima: prefix dm table hashes in ima log with hash algorithm
        dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
        dm: add documentation for IMA measurement support
        dm: update target status functions to support IMA measurement
        dm ima: measure data on device rename
        dm ima: measure data on table clear
        dm ima: measure data on device remove
        dm ima: measure data on device resume
        dm ima: measure data on table load
        dm writecache: add event counters
        dm writecache: report invalid return from writecache_map helpers
        dm writecache: further writecache_map() cleanup
        dm writecache: factor out writecache_map_remap_origin()
        dm writecache: split up writecache_map() to improve code readability
      efa916af
    • Linus Torvalds's avatar
      Merge tag 'leds-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds · a998a62b
      Linus Torvalds authored
      Pull LED updates from Pavel Machek:
       "Usual driver changes, some documentation that should hopefully get LED
        names standartized, and many fixes"
      
      * tag 'leds-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: (32 commits)
        leds: pca955x: Switch to i2c probe_new
        leds: pca955x: Let the core process the fwnode
        leds: pca955x: Implement the default-state property
        leds: pca955x: Add brightness_get function
        leds: pca955x: Clean up code formatting
        leds: leds-core: Implement the retain-state-shutdown property
        dt-bindings: leds: Add retain-state-shutdown boolean
        Documentation: leds: standartizing LED names
        leds: trigger: remove reference to obsolete CONFIG_IDE_GD_ATA
        leds: lp50xx: Fix chip name in KConfig
        leds: pwm: add support for default-state device property
        leds: move default_state read from fwnode to core
        leds: flash: Remove redundant initialization of variable ret
        leds: lgm-sso: Propagate error codes from callee to caller
        leds: trigger: audio: Add an activate callback to ensure the initial brightness is set
        leds: rt8515: Put fwnode in any case during ->probe()
        leds: lt3593: Put fwnode in any case during ->probe()
        leds: lm3697: Make error handling more robust
        leds: lm3697: Update header block to reflect reality
        leds: lm3692x: Correct headers (of*.h -> mod_devicetable.h)
        ...
      a998a62b
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · e7c1bbcf
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers for:
      
         - Aquacomputer D5 Next
      
         - SB-RMI power module
      
        Added chip support to existing drivers:
      
         - Support for various Zen2 and Zen3 APUs and for Yellow Carp (SMU
           v13) added to k10temp driver
      
         - Support for Silicom n5010 PAC added to intel-m10-bmc driver
      
         - Support for BPD-RS600 added to pmbus/bpa-rs600 driver
      
        Other notable changes:
      
         - In k10temp, do not display Tdie on Zen CPUs if there is no
           difference between Tdie and Tctl
      
         - Converted adt7470 and dell-smm drivers to use
           devm_hwmon_device_register_with_info API
      
         - Support for temperature/pwm tables added to axi-fan-control driver
      
         - Enabled fan control for Dell Precision 7510 in dell-smm driver
      
        Various other minor improvements and fixes in several drivers"
      
      * tag 'hwmon-for-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (41 commits)
        hwmon: add driver for Aquacomputer D5 Next
        hwmon: (adt7470) Convert to devm_hwmon_device_register_with_info API
        hwmon: (adt7470) Convert to use regmap
        hwmon: (adt7470) Fix some style issues
        hwmon: (k10temp) Add support for yellow carp
        hwmon: (k10temp) Rework the temperature offset calculation
        hwmon: (k10temp) Don't show Tdie for all Zen/Zen2/Zen3 CPU/APU
        hwmon: (k10temp) Add additional missing Zen2 and Zen3 APUs
        hwmon: remove amd_energy driver in Makefile
        hwmon: (dell-smm) Rework SMM function debugging
        hwmon: (dell-smm) Mark i8k_get_fan_nominal_speed as __init
        hwmon: (dell-smm) Mark tables as __initconst
        hwmon: (pmbus/bpa-rs600) Add workaround for incorrect Pin max
        hwmon: (pmbus/bpa-rs600) Don't use rated limits as warn limits
        hwmon: (axi-fan-control) Support temperature vs pwm points
        hwmon: (axi-fan-control) Handle irqs in natural order
        hwmon: (axi-fan-control) Make sure the clock is enabled
        hwmon: (pmbus/ibm-cffps) Fix write bits for LED control
        hwmon: (w83781d) Match on device tree compatibles
        dt-bindings: hwmon: Add bindings for Winbond W83781D
        ...
      e7c1bbcf
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 871dda46
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "I2C has a smaller pull reuest this time:
      
         - new driver for I2C virtio
      
         - removal of PMC SMP driver because platform is already gone
      
         - IRQ probing and DMAENGINE API cleanups
      
         - add SI metric prefix definitions to units.h
      
         - beginning of i801 refactorization
      
         - a few driver improvements"
      
      * 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (28 commits)
        i2c: cadence: Implement save restore
        i2c: xlp9xx: fix main IRQ check
        i2c: mt65xx: fix IRQ check
        i2c: virtio: add a virtio i2c frontend driver
        i2c: hix5hd2: fix IRQ check
        i2c: s3c2410: fix IRQ check
        i2c: iop3xx: fix deferred probing
        i2c: synquacer: fix deferred probing
        i2c: sun6i-pw2i: Prefer strscpy over strlcpy
        i2c: remove dead PMC MSP TWI/SMBus/I2C driver
        i2c: dev: Use sysfs_emit() in "show" functions
        i2c: dev: Define pr_fmt() and drop duplication substrings
        i2c: designware: Fix indentation in the header
        i2c: designware: Use DIV_ROUND_CLOSEST() macro
        units: Add SI metric prefix definitions
        i2c: at91: mark PM ops as __maybe unused
        i2c: sh_mobile: : use proper DMAENGINE API for termination
        i2c: qup: : use proper DMAENGINE API for termination
        i2c: mxs: : use proper DMAENGINE API for termination
        i2c: imx: : use proper DMAENGINE API for termination
        ...
      871dda46
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 359f3d74
      Linus Torvalds authored
      Pull MMC and MEMSTICK updates from Ulf Hansson:
       "MMC core:
         - Return a proper response in case of an ioctl error
         - Issue HPI to interrupt BKOPS for eMMC if it timed out
         - Avoid hogging the CPU while polling for busy
         - Extend sd8787 pwrseq to support the wilc1000 SDIO
         - Remove a couple of confusing warning messages
         - Clarify comment for ->card_busy() host ops
      
        MMC host:
         - dw_mmc: Add data CRC error injection
         - mmci: De-assert reset during ->probe()
         - rtsx_pci: Fix long reads when clock is pre-scaled
         - sdhci: Correct the tuning command handle for PIO mode
         - sdhci-esdhc-imx: Improve support for auto tuning
         - sdhci-msm: Add support for the sc7280
         - sdhci-of-arasan: Don't auto tune for DDR50 mode for ZynqMP
         - sdhci-of-arasan: Enable support for auto cmd12
         - sdhci-of-arasan: Use 19MHz for SD default speed for ZynqMP for level shifter
         - usdhi6rol0: Implement the ->card_busy() host ops
      
        MEMSTICK:
         - A couple of minor cleanups"
      
      * tag 'mmc-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (52 commits)
        mmc: queue: Remove unused parameters(request_queue)
        mmc: pwrseq: sd8787: fix compilation warning
        mmc: core: Return correct emmc response in case of ioctl error
        mmc: sdhci-esdhc-imx: Select the correct mode for auto tuning
        mmc: sdhci-esdhc-imx: Remove redundant code for manual tuning
        mmc: core: Issue HPI in case the BKOPS timed out
        mmc: queue: Match the data type of max_segments
        mmc: switch from 'pci_' to 'dma_' API
        memstick: switch from 'pci_' to 'dma_' API
        memstick: r592: Change the name of the 'pci_driver' structure to be consistent
        mmc: pwrseq: add wilc1000_sdio dependency for pwrseq_sd8787
        mmc: pwrseq: sd8787: add support for wilc1000
        dt-bindings: mmc: Extend pwrseq-sd8787 binding for wilc1000
        dt-bindings: mmc: fsl-imx-esdhc: change the pinctrl-names rule
        dt-bindings: mmc: fsl-imx-esdhc: add a new compatible string
        dt-bindings: mmc: renesas,sdhi: Document RZ/G2L bindings
        dt-bindings: mmc: renesas,sdhi: Fix dtbs-check warning
        mmc: core: Update ->card_busy() callback comment
        mmc: usdhi6rol0: Implement card_busy function
        mmc: sdhci: Correct the tuning command handle for PIO mode
        ...
      359f3d74
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 8e235ff9
      Linus Torvalds authored
      Pull device properties framework updates from Rafael Wysocki:
       "These improve the handling of secondary firmware nodes in
        fwnode_graph_get_next_endpoint() (Daniel Scally)"
      
      * tag 'devprop-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "media: device property: Call fwnode_graph_get_endpoint_by_id() for fwnode->secondary"
        device property: Check fwnode->secondary in fwnode_graph_get_next_endpoint()
      8e235ff9
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6f1e8b12
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA kernel code to upstream revision 20210730,
        clean up the ACPI companion binding code, optimize the I2C handling in
        the XPower PMIC driver, add 16550-compatible Serial Port Subtype
        support to the SPCR parsing code, add a few LoongArch support bits,
        add a ne quirk to the button driver, add new PCH FIVR methods to the
        DPTF code, replace deprecated CPU-hotplug functions in the processor
        driver, improve the acpi_os_map_memory() handling on non-x86 and do
        some assorted cleanups.
      
        Specifics:
      
         - Update ACPICA code in the kernel to upstream revision 20210730
           including the following changes:
             - Add support for the AEST table (data compiler) to iASL (Bob
               Moore)
             - Fix an if statement (add parens) (Bob Moore)
             - Drop trailing semicolon from some macros (Bob Moore)
             - Fix compilation of WPBT table with no command-line arguments in
               iASL (Bob Moore)
             - Add method name "_DIS" for use with aslmethod.c (Bob Moore)
             - Add new DBG2 Serial Port Subtypes (Marcin Wojtas)
      
         - Add new PCH FIVR methods to the DPTF code (Srinivas Pandruvada)
      
         - Add support for the new 16550-compatible Serial Port Subtype to the
           SPCR table parsing code (Marcin Wojtas)
      
         - Add DMI quirk for Lenovo Yoga 9 (14INTL5) to the ACPI button driver
           (Ulrich Huber)
      
         - Add LoongArch support for ACPI_PROCESSOR/ACPI_NUMA (Huacai Chen)
      
         - Add memory semantics to acpi_os_map_memory() (Lorenzo Pieralisi)
      
         - Replace deprecated CPU-hotplug functions in the ACPI processor
           driver (Sebastian Andrzej Siewior)
      
         - Optimize I2C-bus handling in the XPower PMIC driver (Hans de Goede)
      
         - Make platform-profile catch profile changes initiated by user space
           and notify user processes of them (Hans de Goede)
      
         - Clean up the ACPI companion binding and unbinding code and update
           debug messaging in the ACPI power resources code (Rafael Wysocki)
      
         - Clean up a couple of code pieces related to configfs (Andy
           Shevchenko)
      
         - Rearrange the FPDT table parsing code to avoid printing warning
           messages for reserved record types (Adrian Huang)"
      
      * tag 'acpi-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (27 commits)
        ACPI: power: Drop name from struct acpi_power_resource
        ACPI: power: Use acpi_handle_debug() to print debug messages
        ACPI: tables: FPDT: Do not print FW_BUG message if record types are reserved
        ACPI: button: Add DMI quirk for Lenovo Yoga 9 (14INTL5)
        ACPI: Add memory semantics to acpi_os_map_memory()
        ACPI: SPCR: Add support for the new 16550-compatible Serial Port Subtype
        ACPI: platform-profile: call sysfs_notify() from platform_profile_store()
        ACPICA: Update version to 20210730
        ACPICA: Add method name "_DIS" For use with aslmethod.c
        ACPICA: iASL: Fix for WPBT table with no command-line arguments
        ACPICA: Headers: Add new DBG2 Serial Port Subtypes
        ACPICA: Macros should not use a trailing semicolon
        ACPICA: Fix an if statement (add parens)
        ACPICA: iASL: Add support for the AEST table (data compiler)
        ACPI: processor: Replace deprecated CPU-hotplug functions
        ACPI: DPTF: Add new PCH FIVR methods
        ACPI: configfs: Make get_header() to return error pointer
        ACPI: configfs: Use sysfs_emit() in "show" functions
        driver core: Split device_platform_notify()
        software nodes: Split software_node_notify()
        ...
      6f1e8b12
    • Linus Torvalds's avatar
      Merge tag 'pm-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5cbba605
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These address some PCI device power management issues, add new
        hardware support to the RAPL power capping driver, add HWP guaranteed
        performance change notification support to the intel_pstate driver,
        replace deprecated CPU-hotplug functions in a few places, update CPU
        PM notifiers to use raw spinlocks, update the PM domains framework
        (new DT property support, Kconfig fix), do a couple of cleanups in
        code related to system sleep, and improve the energy model and the
        schedutil cpufreq governor.
      
        Specifics:
      
         - Address 3 PCI device power management issues (Rafael Wysocki).
      
         - Add Power Limit4 support for Alder Lake to the Intel RAPL power
           capping driver (Sumeet Pawnikar).
      
         - Add HWP guaranteed performance change notification support to the
           intel_pstate driver (Srinivas Pandruvada).
      
         - Replace deprecated CPU-hotplug functions in code related to power
           management (Sebastian Andrzej Siewior).
      
         - Update CPU PM notifiers to use raw spinlocks (Valentin Schneider).
      
         - Add support for 'required-opps' DT property to the generic power
           domains (genpd) framework and use this property for I2C on ARM64
           sc7180 (Rajendra Nayak).
      
         - Fix Kconfig issue related to genpd (Geert Uytterhoeven).
      
         - Increase energy calculation precision in the Energy Model (Lukasz
           Luba).
      
         - Fix kobject deletion in the exit code of the schedutil cpufreq
           governor (Kevin Hao).
      
         - Unmark some functions as kernel-doc in the PM core to avoid
           false-positive documentation build warnings (Randy Dunlap).
      
         - Check RTC features instead of ops in suspend_test Alexandre
           Belloni)"
      
      * tag 'pm-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: domains: Fix domain attach for CONFIG_PM_OPP=n
        powercap: Add Power Limit4 support for Alder Lake SoC
        cpufreq: intel_pstate: Process HWP Guaranteed change notification
        thermal: intel: Allow processing of HWP interrupt
        notifier: Remove atomic_notifier_call_chain_robust()
        PM: cpu: Make notifier chain use a raw_spinlock_t
        PM: sleep: unmark 'state' functions as kernel-doc
        arm64: dts: sc7180: Add required-opps for i2c
        PM: domains: Add support for 'required-opps' to set default perf state
        opp: Don't print an error if required-opps is missing
        cpufreq: schedutil: Use kobject release() method to free sugov_tunables
        PM: EM: Increase energy calculation precision
        PM: sleep: check RTC features instead of ops in suspend_test
        PM: sleep: s2idle: Replace deprecated CPU-hotplug functions
        cpufreq: Replace deprecated CPU-hotplug functions
        powercap: intel_rapl: Replace deprecated CPU-hotplug functions
        PCI: PM: Enable PME if it can be signaled from D3cold
        PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
        PCI: Use pci_update_current_state() in pci_enable_device_flags()
      5cbba605
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-5.15' of git://github.com/cschaufler/smack-next · 9b2eacd8
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "There is a variable used only during start-up that's now marked
        __initdata and a change where the code was working by sheer luck that
        is now done properly.
      
        Both have been in next for several weeks and pass the Smack testsuite"
      
      * tag 'Smack-for-5.15' of git://github.com/cschaufler/smack-next:
        smack: mark 'smack_enabled' global variable as __initdata
        Smack: Fix wrong semantics in smk_access_entry()
      9b2eacd8
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · 8e0cd952
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Two patches in the audit pull request for v5.15; one is trivial
        ("header protection") but the second is a real patch that fixes a
        refcounting problem.
      
        The refcount fix normally would have been sent up during the -rcX
        cycle, but since we merged it less than a week before v5.14 proper I
        felt it was better to wait for the merge window to open; the patch is
        marked with the usual -stable markings"
      
      * tag 'audit-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: move put_tree() to avoid trim_trees refcount underflow and UAF
        audit: add header protection to kernel/audit.h
      8e0cd952
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · befa491c
      Linus Torvalds authored
      Pull selinux update from Paul Moore:
       "We've got an unusually small SELinux pull request for v5.15 that
        consists of only one (?!) patch that is really pretty minor when you
        look at it.
      
        Unsurprisingly it passes all of our tests and merges cleanly on top of
        your tree right now, please merge this for v5.15"
      
      * tag 'selinux-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: return early for possible NULL audit buffers
      befa491c
    • Linus Torvalds's avatar
      Merge tag 'kernel.sys.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · e55f0c43
      Linus Torvalds authored
      Pull set_user()  update from Christian Brauner:
       "This contains a single fix to set_user() which aligns permission
        checks with the corresponding fork() codepath. No one involved in this
        could come up with a reason for the difference.
      
        A capable caller can already circumvent the check when they fork where
        the permission checks are already for the relevant capabilities in
        addition to also allowing to exceed nproc when it is the init user.
      
        So apply the same logic to set_user()"
      
      * tag 'kernel.sys.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        set_user: add capability check when rlimit(RLIMIT_NPROC) exceeds
      e55f0c43
    • Linus Torvalds's avatar
      Merge tag 'fs.idmapped.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 67b03f93
      Linus Torvalds authored
      Pull idmapping documentation updates from Christian Brauner:
       "The bulk of the idmapped work this cycle was adding support for
        idmapped mounts to btrfs.
      
        While this required the addition of a (simple) new vfs helper all the
        work is going through David Sterba's btrfs tree. It was way simpler to
        do it this way rather then forcing David to coordinate between his
        btrfs and my tree. Plus I don't care who merges it as long as I feel I
        can trust the maintainer and the btrfs folks were really fast and
        helpful in reviewing this work.
      
        As always, associated with the btrfs port for idmapped mounts is a new
        fstests extension specifically concerned with btrfs ioctls (e.g.
        subvolume creation, deletion etc.) on idmapped mounts which can be
        found in the fstests repo as 5f8179ce8b00 ("btrfs: introduce btrfs
        specific idmapped mounts tests").
      
        Consequently, this cycle the idmapping pull is boring. It only
        contains documentation updates, specifically about how idmappings and
        idmapped mounts work"
      
      * tag 'fs.idmapped.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        doc: give a more thorough id handling explanation
      67b03f93
    • Linus Torvalds's avatar
      Merge tag 'fs.close_range.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 927bc120
      Linus Torvalds authored
      Pull close_range() cleanup from Christian Brauner:
       "This is a cleanup for close_range() which was sent as part of a bugfix
        we did some time ago in commit 9b5b8722 ("file: fix close_range()
        for unshare+cloexec").
      
        We used to share more code between some helpers for close_range()
        which made retrieving the maximum number of open fds before calling
        into the helpers sensible. But with the introduction of
        CLOSE_RANGE_CLOEXEC and the need to retrieve the number of maximum fds
        once more for CLOSE_RANGE_CLOEXEC that stopped making sense. So the
        code was in a dumb in-limbo state.
      
        Fix this by simplifying the code a bit.
      
        The original idea was to only fix the bug itself and make backporting
        easy. And since the cleanup wasn't very pressing I left it in
        linux-next for a very long time. I didn't pull the patches from the
        list again back then which is why they don't have lore-links. So I'm
        listing them below explicitly"
      
      Commit 03ba0fe4 ("file: simplify logic in __close_range()")
      Link: https://lore.kernel.org/linux-fsdevel/20210402123548.108372-3-brauner@kernel.org
      
      Commit f49fd6d3 ("file: let pick_file() tell caller it's done")
      Link: https://lore.kernel.org/linux-fsdevel/20210402123548.108372-4-brauner@kernel.org
      
      * tag 'fs.close_range.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        file: simplify logic in __close_range()
        file: let pick_file() tell caller it's done
      927bc120
    • Linus Torvalds's avatar
      Merge tag 'fs.move_mount.move_mount_set_group.v5.15' of... · 1dd5915a
      Linus Torvalds authored
      Merge tag 'fs.move_mount.move_mount_set_group.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
      
      Pull move_mount updates from Christian Brauner:
       "This contains an extension to the move_mount() syscall making it
        possible to add a single private mount into an existing propagation
        tree.
      
        The use-case comes from the criu folks which have been struggling with
        restoring complex mount trees for a long time. Variations of this work
        have been discussed at Plumbers before, e.g.
      
            https://www.linuxplumbersconf.org/event/7/contributions/640/
      
        The extension to move_mount() enables criu to restore any set of mount
        namespaces, mount trees and sharing group trees without introducing
        yet more complexity into mount propagation itself.
      
        The changes required to criu to make use of this and restore complex
        propagation trees are available at
      
            https://github.com/Snorch/criu/commits/mount-v2-poc
      
        A cleaned-up version of this will go up for merging into the main criu
        repo after this lands"
      
      * tag 'fs.move_mount.move_mount_set_group.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        tests: add move_mount(MOVE_MOUNT_SET_GROUP) selftest
        move_mount: allow to add a mount into an existing group
      1dd5915a
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.15-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 0ee7c3e2
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "The most notable externally visible change for this cycle is the
        addition of support for reads to inline tail fragments of files, which
        was requested by the erofs developers; and a correction for a kernel
        memory corruption bug if the sysadmin tries to activate a swapfile
        with more pages than the swapfile header suggests.
      
        We also now report writeback completion errors to the file mapping
        correctly, instead of munging all errors into EIO.
      
        Internally, the bulk of the changes are Christoph's patchset to reduce
        the indirect function call count by a third to a half by converting
        iomap iteration from a loop pattern to a generator/consumer pattern.
        As an added bonus, fsdax no longer open-codes iomap apply loops.
      
        Summary:
      
         - Simplify the bio_end_page usage in the buffered IO code.
      
         - Support reading inline data at nonzero offsets for erofs.
      
         - Fix some typos and bad grammar.
      
         - Convert kmap_atomic usage in the inline data read path.
      
         - Add some extra inline data input checking.
      
         - Fix a memory corruption bug stemming from iomap_swapfile_activate
           trying to activate more pages than mm was expecting.
      
         - Pass errnos through the page writeback code so that writeback
           errors are reported correctly instead of being munged to EIO.
      
         - Replace iomap_apply with a open-coded iterator loops to reduce the
           number of indirect calls by a third to a half.
      
         - Refactor the fsdax code to use iomap iterators instead of the
           open-coded iomap_apply code that it had before.
      
         - Format file range iomap tracepoint data in hexadecimal and
           standardize the names used in the pretty-print string"
      
      * tag 'iomap-5.15-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (41 commits)
        iomap: standardize tracepoint formatting and storage
        mm/swap: consider max pages in iomap_swapfile_add_extent
        iomap: move loop control code to iter.c
        iomap: constify iomap_iter_srcmap
        fsdax: switch the fault handlers to use iomap_iter
        fsdax: factor out a dax_fault_actor() helper
        fsdax: factor out helpers to simplify the dax fault code
        iomap: rework unshare flag
        iomap: pass an iomap_iter to various buffered I/O helpers
        iomap: remove iomap_apply
        fsdax: switch dax_iomap_rw to use iomap_iter
        iomap: switch iomap_swapfile_activate to use iomap_iter
        iomap: switch iomap_seek_data to use iomap_iter
        iomap: switch iomap_seek_hole to use iomap_iter
        iomap: switch iomap_bmap to use iomap_iter
        iomap: switch iomap_fiemap to use iomap_iter
        iomap: switch __iomap_dio_rw to use iomap_iter
        iomap: switch iomap_page_mkwrite to use iomap_iter
        iomap: switch iomap_zero_range to use iomap_iter
        iomap: switch iomap_file_unshare to use iomap_iter
        ...
      0ee7c3e2
    • Linus Torvalds's avatar
      Merge tag 'vfs-5.15-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 916d636e
      Linus Torvalds authored
      Pull project quota update from Darrick Wong:
       "A single VFS patch that prevents userspace from setting project quota
        ids on files that the VFS considers invalid"
      
      * tag 'vfs-5.15-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        fs: forbid invalid project ID
      916d636e
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 8bda9557
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
       "New features:
      
         - Support for server-side disconnect injection via debugfs
      
         - Protocol definitions for new RPC_AUTH_TLS authentication flavor
      
        Performance improvements:
      
         - Reduce page allocator traffic in the NFSD splice read actor
      
         - Reduce CPU utilization in svcrdma's Send completion handler
      
        Notable bug fixes:
      
         - Stabilize lockd operation when re-exporting NFS mounts
      
         - Fix the use of %.*s in NFSD tracepoints
      
         - Fix /proc/sys/fs/nfs/nsm_use_hostnames"
      
      * tag 'nfsd-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (31 commits)
        nfsd: fix crash on LOCKT on reexported NFSv3
        nfs: don't allow reexport reclaims
        lockd: don't attempt blocking locks on nfs reexports
        nfs: don't atempt blocking locks on nfs reexports
        Keep read and write fds with each nlm_file
        lockd: update nlm_lookup_file reexport comment
        nlm: minor refactoring
        nlm: minor nlm_lookup_file argument change
        lockd: lockd server-side shouldn't set fl_ops
        SUNRPC: Add documentation for the fail_sunrpc/ directory
        SUNRPC: Server-side disconnect injection
        SUNRPC: Move client-side disconnect injection
        SUNRPC: Add a /sys/kernel/debug/fail_sunrpc/ directory
        svcrdma: xpt_bc_xprt is already clear in __svc_rdma_free()
        nfsd4: Fix forced-expiry locking
        rpc: fix gss_svc_init cleanup on failure
        SUNRPC: Add RPC_AUTH_TLS protocol numbers
        lockd: change the proc_handler for nsm_use_hostnames
        sysctl: introduce new proc handler proc_dobool
        SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()
        ...
      8bda9557
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.14-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 4529fb15
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Various withdraw related fixes (freeze glock recursion, thread
         initialization / destruction order, journal recovery, glock cleanup,
         withdraw under journal lock).
      
       - Some error message improvements.
      
       - Various minor cleanups.
      
      * tag 'gfs2-v5.14-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Remove redundant check from gfs2_glock_dq
        gfs2: Delay withdraw from atomic context
        gfs2: Don't call dlm after protocol is unmounted
        gfs2: don't stop reads while withdraw in progress
        gfs2: Mark journal inodes as "don't cache"
        gfs2: nit: gfs2_drop_inode shouldn't return bool
        gfs2: Eliminate vestigial HIF_FIRST
        gfs2: Make recovery error more readable
        gfs2: Don't release and reacquire local statfs bh
        gfs2: init system threads before freeze lock
        gfs2: tiny cleanup in gfs2_log_reserve
        gfs2: trivial clean up of gfs2_ail_error
        gfs2: be more verbose replaying invalid rgrp blocks
        gfs2: Fix glock recursion in freeze_go_xmote_bh
        gfs2: Fix memory leak of object lsi on error return path
      4529fb15
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · cd358208
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "Some small fixes and cleanups for fs/crypto/:
      
         - Fix ->getattr() for ext4, f2fs, and ubifs to report the correct
           st_size for encrypted symlinks
      
         - Use base64url instead of a custom Base64 variant
      
         - Document struct fscrypt_operations"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: document struct fscrypt_operations
        fscrypt: align Base64 encoding with RFC 4648 base64url
        fscrypt: remove mention of symlink st_size quirk from documentation
        ubifs: report correct st_size for encrypted symlinks
        f2fs: report correct st_size for encrypted symlinks
        ext4: report correct st_size for encrypted symlinks
        fscrypt: add fscrypt_symlink_getattr() for computing st_size
      cd358208
    • Linus Torvalds's avatar
      Merge tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 87045e65
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "The highlights of this round are integrations with fs-verity and
        idmapped mounts, the rest is usual mix of minor improvements, speedups
        and cleanups.
      
        There are some patches outside of btrfs, namely updating some VFS
        interfaces, all straightforward and acked.
      
        Features:
      
         - fs-verity support, using standard ioctls, backward compatible with
           read-only limitation on inodes with previously enabled fs-verity
      
         - idmapped mount support
      
         - make mount with rescue=ibadroots more tolerant to partially damaged
           trees
      
         - allow raid0 on a single device and raid10 on two devices,
           degenerate cases but might be useful as an intermediate step during
           conversion to other profiles
      
         - zoned mode block group auto reclaim can be disabled via sysfs knob
      
        Performance improvements:
      
         - continue readahead of node siblings even if target node is in
           memory, could speed up full send (on sample test +11%)
      
         - batching of delayed items can speed up creating many files
      
         - fsync/tree-log speedups
             - avoid unnecessary work (gains +2% throughput, -2% run time on
               sample load)
             - reduced lock contention on renames (on dbench +4% throughput,
               up to -30% latency)
      
        Fixes:
      
         - various zoned mode fixes
      
         - preemptive flushing threshold tuning, avoid excessive work on
           almost full filesystems
      
        Core:
      
         - continued subpage support, preparation for implementing remaining
           features like compression and defragmentation; with some
           limitations, write is now enabled on 64K page systems with 4K
           sectors, still considered experimental
             - no readahead on compressed reads
             - inline extents disabled
             - disabled raid56 profile conversion and mount
      
         - improved flushing logic, fixing early ENOSPC on some workloads
      
         - inode flags have been internally split to read-only and read-write
           incompat bit parts, used by fs-verity
      
         - new tree items for fs-verity
             - descriptor item
             - Merkle tree item
      
         - inode operations extended to be namespace-aware
      
         - cleanups and refactoring
      
        Generic code changes:
      
         - fs: new export filemap_fdatawrite_wbc
      
         - fs: removed sync_inode
      
         - block: bio_trim argument type fixups
      
         - vfs: add namespace-aware lookup"
      
      * tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (114 commits)
        btrfs: reset replace target device to allocation state on close
        btrfs: zoned: fix ordered extent boundary calculation
        btrfs: do not do preemptive flushing if the majority is global rsv
        btrfs: reduce the preemptive flushing threshold to 90%
        btrfs: tree-log: check btrfs_lookup_data_extent return value
        btrfs: avoid unnecessarily logging directories that had no changes
        btrfs: allow idmapped mount
        btrfs: handle ACLs on idmapped mounts
        btrfs: allow idmapped INO_LOOKUP_USER ioctl
        btrfs: allow idmapped SUBVOL_SETFLAGS ioctl
        btrfs: allow idmapped SET_RECEIVED_SUBVOL ioctls
        btrfs: relax restrictions for SNAP_DESTROY_V2 with subvolids
        btrfs: allow idmapped SNAP_DESTROY ioctls
        btrfs: allow idmapped SNAP_CREATE/SUBVOL_CREATE ioctls
        btrfs: check whether fsgid/fsuid are mapped during subvolume creation
        btrfs: allow idmapped permission inode op
        btrfs: allow idmapped setattr inode op
        btrfs: allow idmapped tmpfile inode op
        btrfs: allow idmapped symlink inode op
        btrfs: allow idmapped mkdir inode op
        ...
      87045e65
    • Linus Torvalds's avatar
      Merge tag '5.15-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 9c849ce8
      Linus Torvalds authored
      Pull cifs client updates from Steve French:
       "Eleven cifs/smb3 client fixes:
      
         - mostly restructuring to allow disabling less secure algorithms
           (this will allow eventual removing rc4 and md4 from general use in
           the kernel)
      
         - four fixes, including two for stable
      
         - enable r/w support with fscache and cifs.ko
      
        I am working on a larger set of changes (the usual ... multichannel,
        auth and signing improvements), but wanted to get these in earlier to
        reduce chance of merge conflicts later in the merge window"
      
      * tag '5.15-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not leak EDEADLK to dgetents64 for STATUS_USER_SESSION_DELETED
        cifs: add cifs_common directory to MAINTAINERS file
        cifs: cifs_md4 convert to SPDX identifier
        cifs: create a MD4 module and switch cifs.ko to use it
        cifs: fork arc4 and create a separate module for it for cifs and other users
        cifs: remove support for NTLM and weaker authentication algorithms
        cifs: enable fscache usage even for files opened as rw
        oid_registry: Add OIDs for missing Spnego auth mechanisms to Macs
        smb3: fix posix extensions mount option
        cifs: fix wrong release in sess_alloc_buffer() failed path
        CIFS: Fix a potencially linear read overflow
      9c849ce8
    • Linus Torvalds's avatar
      Merge tag '5.15-rc-first-ksmbd-merge' of git://git.samba.org/ksmbd · e24c567b
      Linus Torvalds authored
      Pull initial ksmbd implementation from Steve French:
       "Initial merge of kernel smb3 file server, ksmbd.
      
        The SMB family of protocols is the most widely deployed network
        filesystem protocol, the default on Windows and Macs (and even on many
        phones and tablets), with clients and servers on all major operating
        systems, but lacked a kernel server for Linux. For many cases the
        current userspace server choices were suboptimal either due to memory
        footprint, performance or difficulty integrating well with advanced
        Linux features.
      
        ksmbd is a new kernel module which implements the server-side of the
        SMB3 protocol. The target is to provide optimized performance, GPLv2
        SMB server, and better lease handling (distributed caching). The
        bigger goal is to add new features more rapidly (e.g. RDMA aka
        "smbdirect", and recent encryption and signing improvements to the
        protocol) which are easier to develop on a smaller, more tightly
        optimized kernel server than for example in Samba.
      
        The Samba project is much broader in scope (tools, security services,
        LDAP, Active Directory Domain Controller, and a cross platform file
        server for a wider variety of purposes) but the user space file server
        portion of Samba has proved hard to optimize for some Linux workloads,
        including for smaller devices.
      
        This is not meant to replace Samba, but rather be an extension to
        allow better optimizing for Linux, and will continue to integrate well
        with Samba user space tools and libraries where appropriate. Working
        with the Samba team we have already made sure that the configuration
        files and xattrs are in a compatible format between the kernel and
        user space server.
      
        Various types of functional and regression tests are regularly run
        against it. One example is the automated 'buildbot' regression tests
        which use the Linux client to test against ksmbd, e.g.
      
           http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com/#/builders/8/builds/56
      
        but other test suites, including Samba's smbtorture functional test
        suite are also used regularly"
      
      * tag '5.15-rc-first-ksmbd-merge' of git://git.samba.org/ksmbd: (219 commits)
        ksmbd: fix __write_overflow warning in ndr_read_string
        MAINTAINERS: ksmbd: add cifs_common directory to ksmbd entry
        MAINTAINERS: ksmbd: update my email address
        ksmbd: fix permission check issue on chown and chmod
        ksmbd: don't set FILE DELETE and FILE_DELETE_CHILD in access mask by default
        MAINTAINERS: add git adddress of ksmbd
        ksmbd: update SMB3 multi-channel support in ksmbd.rst
        ksmbd: smbd: fix kernel oops during server shutdown
        ksmbd: remove select FS_POSIX_ACL in Kconfig
        ksmbd: use proper errno instead of -1 in smb2_get_ksmbd_tcon()
        ksmbd: update the comment for smb2_get_ksmbd_tcon()
        ksmbd: change int data type to boolean
        ksmbd: Fix multi-protocol negotiation
        ksmbd: fix an oops in error handling in smb2_open()
        ksmbd: add ipv6_addr_v4mapped check to know if connection from client is ipv4
        ksmbd: fix missing error code in smb2_lock
        ksmbd: use channel signingkey for binding SMB2 session setup
        ksmbd: don't set RSS capable in FSCTL_QUERY_NETWORK_INTERFACE_INFO
        ksmbd: Return STATUS_OBJECT_PATH_NOT_FOUND if smb2_creat() returns ENOENT
        ksmbd: fix -Wstringop-truncation warnings
        ...
      e24c567b
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 29ce8f97
      Jakub Kicinski authored
      include/linux/netdevice.h
      net/socket.c
      
        d0efb162 ("net: don't unconditionally copy_from_user a struct ifreq for socket ioctls")
      
        876f0bf9 ("net: socket: simplify dev_ifconf handling")
        29c49648 ("net: socket: rework compat_ifreq_ioctl()")
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      29ce8f97
    • Slark Xiao's avatar
      net: Add depends on OF_NET for LiteX's LiteETH · c3496da5
      Slark Xiao authored
      Current settings may produce a build error when
      CONFIG_OF_NET is disabled. The CONFIG_OF_NET controls
      a headfile <linux/of.h> and some functions
       in <linux/of_net.h>.
      Signed-off-by: default avatarSlark Xiao <slark_xiao@163.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c3496da5
    • Lv Ruyi's avatar
      ipv6: seg6: remove duplicated include · a9e7c3ce
      Lv Ruyi authored
      Remove all but the first include of net/lwtunnel.h from 'seg6_local.c.
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarLv Ruyi <lv.ruyi@zte.com.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a9e7c3ce
    • Hao Chen's avatar
      net: hns3: remove unnecessary spaces · 7f2d4b7f
      Hao Chen authored
      This patch removes some unnecessary spaces for cleanup.
      Signed-off-by: default avatarHao Chen <chenhao288@hisilicon.com>
      Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f2d4b7f
    • Hao Chen's avatar
      net: hns3: add some required spaces · c74e5035
      Hao Chen authored
      Add some required spaces to improve readability.
      Signed-off-by: default avatarHao Chen <chenhao288@hisilicon.com>
      Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c74e5035
    • Guojia Liao's avatar
      net: hns3: clean up a type mismatch warning · e79c0e32
      Guojia Liao authored
      abs() returns signed long, which could not convert the type
      as unsigned, and it may cause a mismatch type warning from
      static tools. To fix it, this patch uses an variable to save
      the abs()'s result and does a explicit conversion.
      Signed-off-by: default avatarGuojia Liao <liaoguojia@huawei.com>
      Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e79c0e32
    • Jian Shen's avatar
      net: hns3: refine function hns3_set_default_feature() · dc9b5ce0
      Jian Shen authored
      Currently, the driver sets default feature for netdev->features,
      netdev->hw_features, netdev->vlan_features and
      netdev->hw_enc_features separately. It's fussy, because most
      of the feature bits are same. So refine it by copy value from
      netdev->features.
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc9b5ce0