1. 27 Sep, 2019 1 commit
    • Allan Zhang's avatar
      bpf: Fix bpf_event_output re-entry issue · 768fb61f
      Allan Zhang authored
      BPF_PROG_TYPE_SOCK_OPS program can reenter bpf_event_output because it
      can be called from atomic and non-atomic contexts since we don't have
      bpf_prog_active to prevent it happen.
      
      This patch enables 3 levels of nesting to support normal, irq and nmi
      context.
      
      We can easily reproduce the issue by running netperf crr mode with 100
      flows and 10 threads from netperf client side.
      
      Here is the whole stack dump:
      
      [  515.228898] WARNING: CPU: 20 PID: 14686 at kernel/trace/bpf_trace.c:549 bpf_event_output+0x1f9/0x220
      [  515.228903] CPU: 20 PID: 14686 Comm: tcp_crr Tainted: G        W        4.15.0-smp-fixpanic #44
      [  515.228904] Hardware name: Intel TBG,ICH10/Ikaria_QC_1b, BIOS 1.22.0 06/04/2018
      [  515.228905] RIP: 0010:bpf_event_output+0x1f9/0x220
      [  515.228906] RSP: 0018:ffff9a57ffc03938 EFLAGS: 00010246
      [  515.228907] RAX: 0000000000000012 RBX: 0000000000000001 RCX: 0000000000000000
      [  515.228907] RDX: 0000000000000000 RSI: 0000000000000096 RDI: ffffffff836b0f80
      [  515.228908] RBP: ffff9a57ffc039c8 R08: 0000000000000004 R09: 0000000000000012
      [  515.228908] R10: ffff9a57ffc1de40 R11: 0000000000000000 R12: 0000000000000002
      [  515.228909] R13: ffff9a57e13bae00 R14: 00000000ffffffff R15: ffff9a57ffc1e2c0
      [  515.228910] FS:  00007f5a3e6ec700(0000) GS:ffff9a57ffc00000(0000) knlGS:0000000000000000
      [  515.228910] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  515.228911] CR2: 0000537082664fff CR3: 000000061fed6002 CR4: 00000000000226f0
      [  515.228911] Call Trace:
      [  515.228913]  <IRQ>
      [  515.228919]  [<ffffffff82c6c6cb>] bpf_sockopt_event_output+0x3b/0x50
      [  515.228923]  [<ffffffff8265daee>] ? bpf_ktime_get_ns+0xe/0x10
      [  515.228927]  [<ffffffff8266fda5>] ? __cgroup_bpf_run_filter_sock_ops+0x85/0x100
      [  515.228930]  [<ffffffff82cf90a5>] ? tcp_init_transfer+0x125/0x150
      [  515.228933]  [<ffffffff82cf9159>] ? tcp_finish_connect+0x89/0x110
      [  515.228936]  [<ffffffff82cf98e4>] ? tcp_rcv_state_process+0x704/0x1010
      [  515.228939]  [<ffffffff82c6e263>] ? sk_filter_trim_cap+0x53/0x2a0
      [  515.228942]  [<ffffffff82d90d1f>] ? tcp_v6_inbound_md5_hash+0x6f/0x1d0
      [  515.228945]  [<ffffffff82d92160>] ? tcp_v6_do_rcv+0x1c0/0x460
      [  515.228947]  [<ffffffff82d93558>] ? tcp_v6_rcv+0x9f8/0xb30
      [  515.228951]  [<ffffffff82d737c0>] ? ip6_route_input+0x190/0x220
      [  515.228955]  [<ffffffff82d5f7ad>] ? ip6_protocol_deliver_rcu+0x6d/0x450
      [  515.228958]  [<ffffffff82d60246>] ? ip6_rcv_finish+0xb6/0x170
      [  515.228961]  [<ffffffff82d5fb90>] ? ip6_protocol_deliver_rcu+0x450/0x450
      [  515.228963]  [<ffffffff82d60361>] ? ipv6_rcv+0x61/0xe0
      [  515.228966]  [<ffffffff82d60190>] ? ipv6_list_rcv+0x330/0x330
      [  515.228969]  [<ffffffff82c4976b>] ? __netif_receive_skb_one_core+0x5b/0xa0
      [  515.228972]  [<ffffffff82c497d1>] ? __netif_receive_skb+0x21/0x70
      [  515.228975]  [<ffffffff82c4a8d2>] ? process_backlog+0xb2/0x150
      [  515.228978]  [<ffffffff82c4aadf>] ? net_rx_action+0x16f/0x410
      [  515.228982]  [<ffffffff830000dd>] ? __do_softirq+0xdd/0x305
      [  515.228986]  [<ffffffff8252cfdc>] ? irq_exit+0x9c/0xb0
      [  515.228989]  [<ffffffff82e02de5>] ? smp_call_function_single_interrupt+0x65/0x120
      [  515.228991]  [<ffffffff82e020e1>] ? call_function_single_interrupt+0x81/0x90
      [  515.228992]  </IRQ>
      [  515.228996]  [<ffffffff82a11ff0>] ? io_serial_in+0x20/0x20
      [  515.229000]  [<ffffffff8259c040>] ? console_unlock+0x230/0x490
      [  515.229003]  [<ffffffff8259cbaa>] ? vprintk_emit+0x26a/0x2a0
      [  515.229006]  [<ffffffff8259cbff>] ? vprintk_default+0x1f/0x30
      [  515.229008]  [<ffffffff8259d9f5>] ? vprintk_func+0x35/0x70
      [  515.229011]  [<ffffffff8259d4bb>] ? printk+0x50/0x66
      [  515.229013]  [<ffffffff82637637>] ? bpf_event_output+0xb7/0x220
      [  515.229016]  [<ffffffff82c6c6cb>] ? bpf_sockopt_event_output+0x3b/0x50
      [  515.229019]  [<ffffffff8265daee>] ? bpf_ktime_get_ns+0xe/0x10
      [  515.229023]  [<ffffffff82c29e87>] ? release_sock+0x97/0xb0
      [  515.229026]  [<ffffffff82ce9d6a>] ? tcp_recvmsg+0x31a/0xda0
      [  515.229029]  [<ffffffff8266fda5>] ? __cgroup_bpf_run_filter_sock_ops+0x85/0x100
      [  515.229032]  [<ffffffff82ce77c1>] ? tcp_set_state+0x191/0x1b0
      [  515.229035]  [<ffffffff82ced10e>] ? tcp_disconnect+0x2e/0x600
      [  515.229038]  [<ffffffff82cecbbb>] ? tcp_close+0x3eb/0x460
      [  515.229040]  [<ffffffff82d21082>] ? inet_release+0x42/0x70
      [  515.229043]  [<ffffffff82d58809>] ? inet6_release+0x39/0x50
      [  515.229046]  [<ffffffff82c1f32d>] ? __sock_release+0x4d/0xd0
      [  515.229049]  [<ffffffff82c1f3e5>] ? sock_close+0x15/0x20
      [  515.229052]  [<ffffffff8273b517>] ? __fput+0xe7/0x1f0
      [  515.229055]  [<ffffffff8273b66e>] ? ____fput+0xe/0x10
      [  515.229058]  [<ffffffff82547bf2>] ? task_work_run+0x82/0xb0
      [  515.229061]  [<ffffffff824086df>] ? exit_to_usermode_loop+0x7e/0x11f
      [  515.229064]  [<ffffffff82408171>] ? do_syscall_64+0x111/0x130
      [  515.229067]  [<ffffffff82e0007c>] ? entry_SYSCALL_64_after_hwframe+0x3d/0xa2
      
      Fixes: a5a3a828 ("bpf: add perf event notificaton support for sock_ops")
      Signed-off-by: default avatarAllan Zhang <allanzhang@google.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Reviewed-by: default avatarStanislav Fomichev <sdf@google.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20190925234312.94063-2-allanzhang@google.com
      768fb61f
  2. 26 Sep, 2019 2 commits
  3. 25 Sep, 2019 5 commits
  4. 19 Sep, 2019 10 commits
    • Björn Töpel's avatar
      xsk: relax UMEM headroom alignment · 733ef7f0
      Björn Töpel authored
      This patch removes the 64B alignment of the UMEM headroom. There is
      really no reason for it, and having a headroom less than 64B should be
      valid.
      
      Fixes: c0c77d8f ("xsk: add user memory registration support sockopt")
      Signed-off-by: default avatarBjörn Töpel <bjorn.topel@intel.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      733ef7f0
    • Alexei Starovoitov's avatar
      bpf: fix BTF limits · a0791f0d
      Alexei Starovoitov authored
      vmlinux BTF has more than 64k types.
      Its string section is also at the offset larger than 64k.
      Adjust both limits to make in-kernel BTF verifier successfully parse in-kernel BTF.
      
      Fixes: 69b693f0 ("bpf: btf: Introduce BPF Type Format (BTF)")
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      a0791f0d
    • Alexei Starovoitov's avatar
      bpf: fix BTF verification of enums · 9eea9849
      Alexei Starovoitov authored
      vmlinux BTF has enums that are 8 byte and 1 byte in size.
      2 byte enum is a valid construct as well.
      Fix BTF enum verification to accept those sizes.
      
      Fixes: 69b693f0 ("bpf: btf: Introduce BPF Type Format (BTF)")
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      9eea9849
    • Toke Høiland-Jørgensen's avatar
      libbpf: Remove getsockopt() check for XDP_OPTIONS · e0973a42
      Toke Høiland-Jørgensen authored
      The xsk_socket__create() function fails and returns an error if it cannot
      get the XDP_OPTIONS through getsockopt(). However, support for XDP_OPTIONS
      was not added until kernel 5.3, so this means that creating XSK sockets
      always fails on older kernels.
      
      Since the option is just used to set the zero-copy flag in the xsk struct,
      and that flag is not really used for anything yet, just remove the
      getsockopt() call until a proper use for it is introduced.
      Suggested-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
      Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      e0973a42
    • Oliver Neukum's avatar
      usbnet: sanity checking of packet sizes and device mtu · 280ceaed
      Oliver Neukum authored
      After a reset packet sizes and device mtu can change and need
      to be reevaluated to calculate queue sizes.
      Malicious devices can set this to zero and we divide by it.
      Introduce sanity checking.
      
      Reported-and-tested-by:  syzbot+6102c120be558c885f04@syzkaller.appspotmail.com
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      280ceaed
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.4-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · b41dae06
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "For this cycle we have the usual pile of cleanups and bug fixes, some
        performance improvements for online metadata scrubbing, massive
        speedups in the directory entry creation code, some performance
        improvement in the file ACL lookup code, a fix for a logging stall
        during mount, and fixes for concurrency problems.
      
        It has survived a couple of weeks of xfstests runs and merges cleanly.
      
        Summary:
      
         - Remove KM_SLEEP/KM_NOSLEEP.
      
         - Ensure that memory buffers for IO are properly sector-aligned to
           avoid problems that the block layer doesn't check.
      
         - Make the bmap scrubber more efficient in its record checking.
      
         - Don't crash xfs_db when superblock inode geometry is corrupt.
      
         - Fix btree key helper functions.
      
         - Remove unneeded error returns for things that can't fail.
      
         - Fix buffer logging bugs in repair.
      
         - Clean up iterator return values.
      
         - Speed up directory entry creation.
      
         - Enable allocation of xattr value memory buffer during lookup.
      
         - Fix readahead racing with truncate/punch hole.
      
         - Other minor cleanups.
      
         - Fix one AGI/AGF deadlock with RENAME_WHITEOUT.
      
         - More BUG -> WARN whackamole.
      
         - Fix various problems with the log failing to advance under certain
           circumstances, which results in stalls during mount"
      
      * tag 'xfs-5.4-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (45 commits)
        xfs: push the grant head when the log head moves forward
        xfs: push iclog state cleaning into xlog_state_clean_log
        xfs: factor iclog state processing out of xlog_state_do_callback()
        xfs: factor callbacks out of xlog_state_do_callback()
        xfs: factor debug code out of xlog_state_do_callback()
        xfs: prevent CIL push holdoff in log recovery
        xfs: fix missed wakeup on l_flush_wait
        xfs: push the AIL in xlog_grant_head_wake
        xfs: Use WARN_ON_ONCE for bailout mount-operation
        xfs: Fix deadlock between AGI and AGF with RENAME_WHITEOUT
        xfs: define a flags field for the AG geometry ioctl structure
        xfs: add a xfs_valid_startblock helper
        xfs: remove the unused XFS_ALLOC_USERDATA flag
        xfs: cleanup xfs_fsb_to_db
        xfs: fix the dax supported check in xfs_ioctl_setattr_dax_invalidate
        xfs: Fix stale data exposure when readahead races with hole punch
        fs: Export generic_fadvise()
        mm: Handle MADV_WILLNEED through vfs_fadvise()
        xfs: allocate xattr buffer on demand
        xfs: consolidate attribute value copying
        ...
      b41dae06
    • Linus Torvalds's avatar
      Merge tag 'vfs-5.4-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · e6bc9de7
      Linus Torvalds authored
      Pull swap access updates from Darrick Wong:
       "Prohibit writing to active swap files and swap partitions.
      
        There's no non-malicious use case for allowing userspace to scribble
        on storage that the kernel thinks it owns"
      
      * tag 'vfs-5.4-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        vfs: don't allow writes to swap files
        mm: set S_SWAPFILE on blockdev swap devices
      e6bc9de7
    • Linus Torvalds's avatar
      Merge tag 'ovl-fixes-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · b6c0d357
      Linus Torvalds authored
      Pull overlayfs fixes from Miklos Szeredi:
       "Fix a regression in docker introduced by overlayfs changes in 4.19.
        Also fix a couple of miscellaneous bugs"
      
      * tag 'ovl-fixes-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: filter of trusted xattr results in audit
        ovl: Fix dereferencing possible ERR_PTR()
        ovl: fix regression caused by overlapping layers detection
      b6c0d357
    • Linus Torvalds's avatar
      Merge tag 'for-5.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 7d14df2d
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "This continues with work on code refactoring, sanity checks and space
        handling. There are some less user visible changes, nothing that would
        particularly stand out.
      
        User visible changes:
         - tree checker, more sanity checks of:
             - ROOT_ITEM (key, size, generation, level, alignment, flags)
             - EXTENT_ITEM and METADATA_ITEM checks (key, size, offset,
               alignment, refs)
             - tree block reference items
             - EXTENT_DATA_REF (key, hash, offset)
      
         - deprecate flag BTRFS_SUBVOL_CREATE_ASYNC for subvolume creation
           ioctl, scheduled removal in 5.7
      
         - delete stale and unused UAPI definitions
           BTRFS_DEV_REPLACE_ITEM_STATE_*
      
         - improved export of debugging information available via existing
           sysfs directory structure
      
         - try harder to delete relations between qgroups and allow to delete
           orphan entries
      
         - remove unreliable space checks before relocation starts
      
        Core:
         - space handling:
             - improved ticket reservations and other high level logic in
               order to remove special cases
             - factor flushing infrastructure and use it for different
               contexts, allows to remove some special case handling
             - reduce metadata reservation when only updating inodes
             - reduce global block reserve minimum size (affects small
               filesystems)
             - improved overcommit logic wrt global block reserve
      
         - tests:
             - fix memory leaks in extent IO tree
             - catch all TRIM range
      
        Fixes:
         - fix ENOSPC errors, leading to transaction aborts, when cloning
           extents
      
         - several fixes for inode number cache (mount option inode_cache)
      
         - fix potential soft lockups during send when traversing large trees
      
         - fix unaligned access to space cache pages with SLUB debug on
           (PowerPC)
      
        Other:
         - refactoring public/private functions, moving to new or more
           appropriate files
      
         - defines converted to enums
      
         - error handling improvements
      
         - more assertions and comments
      
         - old code deletion"
      
      * tag 'for-5.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (138 commits)
        btrfs: Relinquish CPUs in btrfs_compare_trees
        btrfs: Don't assign retval of btrfs_try_tree_write_lock/btrfs_tree_read_lock_atomic
        btrfs: create structure to encode checksum type and length
        btrfs: turn checksum type define into an enum
        btrfs: add enospc debug messages for ticket failure
        btrfs: do not account global reserve in can_overcommit
        btrfs: use btrfs_try_granting_tickets in update_global_rsv
        btrfs: always reserve our entire size for the global reserve
        btrfs: change the minimum global reserve size
        btrfs: rename btrfs_space_info_add_old_bytes
        btrfs: remove orig_bytes from reserve_ticket
        btrfs: fix may_commit_transaction to deal with no partial filling
        btrfs: rework wake_all_tickets
        btrfs: refactor the ticket wakeup code
        btrfs: stop partially refilling tickets when releasing space
        btrfs: add space reservation tracepoint for reserved bytes
        btrfs: roll tracepoint into btrfs_space_info_update helper
        btrfs: do not allow reservations if we have pending tickets
        btrfs: stop clearing EXTENT_DIRTY in inode I/O tree
        btrfs: treat RWF_{,D}SYNC writes as sync for CRCs
        ...
      7d14df2d
    • Linus Torvalds's avatar
      Merge tag 'afs-next-20190915' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 0bb73e42
      Linus Torvalds authored
      Pull AFS updates from David Howells:
       "Here's a set of patches for AFS. The first three are trivial, deleting
        unused symbols and rolling out a wrapper function.
      
        The fourth and fifth patches make use of the previously added RCU-safe
        request_key facility to allow afs_permission() and afs_d_revalidate()
        to attempt to operate without dropping out of RCU-mode pathwalk. Under
        certain conditions, such as conflict with another client, we still
        have to drop out anyway, take a lock and consult the server"
      
      * tag 'afs-next-20190915' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Support RCU pathwalk
        afs: Provide an RCU-capable key lookup
        afs: Use afs_extract_discard() rather than iov_iter_discard()
        afs: remove unused variable 'afs_zero_fid'
        afs: remove unused variable 'afs_voltypes'
      0bb73e42
  5. 18 Sep, 2019 22 commits
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · f60c55a9
      Linus Torvalds authored
      Pull fs-verity support from Eric Biggers:
       "fs-verity is a filesystem feature that provides Merkle tree based
        hashing (similar to dm-verity) for individual readonly files, mainly
        for the purpose of efficient authenticity verification.
      
        This pull request includes:
      
         (a) The fs/verity/ support layer and documentation.
      
         (b) fs-verity support for ext4 and f2fs.
      
        Compared to the original fs-verity patchset from last year, the UAPI
        to enable fs-verity on a file has been greatly simplified. Lots of
        other things were cleaned up too.
      
        fs-verity is planned to be used by two different projects on Android;
        most of the userspace code is in place already. Another userspace tool
        ("fsverity-utils"), and xfstests, are also available. e2fsprogs and
        f2fs-tools already have fs-verity support. Other people have shown
        interest in using fs-verity too.
      
        I've tested this on ext4 and f2fs with xfstests, both the existing
        tests and the new fs-verity tests. This has also been in linux-next
        since July 30 with no reported issues except a couple minor ones I
        found myself and folded in fixes for.
      
        Ted and I will be co-maintaining fs-verity"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        f2fs: add fs-verity support
        ext4: update on-disk format documentation for fs-verity
        ext4: add fs-verity read support
        ext4: add basic fs-verity support
        fs-verity: support builtin file signatures
        fs-verity: add SHA-512 support
        fs-verity: implement FS_IOC_MEASURE_VERITY ioctl
        fs-verity: implement FS_IOC_ENABLE_VERITY ioctl
        fs-verity: add data verification hooks for ->readpages()
        fs-verity: add the hook for file ->setattr()
        fs-verity: add the hook for file ->open()
        fs-verity: add inode and superblock fields
        fs-verity: add Kconfig and the helper functions for hashing
        fs: uapi: define verity bit for FS_IOC_GETFLAGS
        fs-verity: add UAPI header
        fs-verity: add MAINTAINERS file entry
        fs-verity: add a documentation file
      f60c55a9
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 734d1ed8
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "This is a large update to fs/crypto/ which includes:
      
         - Add ioctls that add/remove encryption keys to/from a
           filesystem-level keyring.
      
           These fix user-reported issues where e.g. an encrypted home
           directory can break NetworkManager, sshd, Docker, etc. because they
           don't get access to the needed keyring. These ioctls also provide a
           way to lock encrypted directories that doesn't use the
           vm.drop_caches sysctl, so is faster, more reliable, and doesn't
           always need root.
      
         - Add a new encryption policy version ("v2") which switches to a more
           standard, secure, and flexible key derivation function, and starts
           verifying that the correct key was supplied before using it.
      
           The key derivation improvement is needed for its own sake as well
           as for ongoing feature work for which the current way is too
           inflexible.
      
        Work is in progress to update both Android and the 'fscrypt' userspace
        tool to use both these features. (Working patches are available and
        just need to be reviewed+merged.) Chrome OS will likely use them too.
      
        This has also been tested on ext4, f2fs, and ubifs with xfstests --
        both the existing encryption tests, and the new tests for this. This
        has also been in linux-next since Aug 16 with no reported issues. I'm
        also using an fscrypt v2-encrypted home directory on my personal
        desktop"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt: (27 commits)
        ext4 crypto: fix to check feature status before get policy
        fscrypt: document the new ioctls and policy version
        ubifs: wire up new fscrypt ioctls
        f2fs: wire up new fscrypt ioctls
        ext4: wire up new fscrypt ioctls
        fscrypt: require that key be added when setting a v2 encryption policy
        fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS ioctl
        fscrypt: allow unprivileged users to add/remove keys for v2 policies
        fscrypt: v2 encryption policy support
        fscrypt: add an HKDF-SHA512 implementation
        fscrypt: add FS_IOC_GET_ENCRYPTION_KEY_STATUS ioctl
        fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY ioctl
        fscrypt: add FS_IOC_ADD_ENCRYPTION_KEY ioctl
        fscrypt: rename keyinfo.c to keysetup.c
        fscrypt: move v1 policy key setup to keysetup_v1.c
        fscrypt: refactor key setup code in preparation for v2 policies
        fscrypt: rename fscrypt_master_key to fscrypt_direct_key
        fscrypt: add ->ci_inode to fscrypt_info
        fscrypt: use FSCRYPT_* definitions, not FS_*
        fscrypt: use FSCRYPT_ prefix for uapi constants
        ...
      734d1ed8
    • Linus Torvalds's avatar
      Merge tag 'filelock-v5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · d013cc80
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "Just a couple of minor bugfixes, a revision to a tracepoint to account
        for some earlier changes to the internals, and a patch to add a
        pr_warn message when someone tries to mount a filesystem with '-o
        mand' on a kernel that has that support disabled"
      
      * tag 'filelock-v5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        locks: fix a memory leak bug in __break_lease()
        locks: print a warning when mount fails due to lack of "mand" support
        locks: Fix procfs output for file leases
        locks: revise generic_add_lease tracepoint
      d013cc80
    • Linus Torvalds's avatar
      Merge branch 'work.mount-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · e170eb27
      Linus Torvalds authored
      Pull vfs mount API infrastructure updates from Al Viro:
       "Infrastructure bits of mount API conversions.
      
        The rest is more of per-filesystem updates and that will happen
        in separate pull requests"
      
      * 'work.mount-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        mtd: Provide fs_context-aware mount_mtd() replacement
        vfs: Create fs_context-aware mount_bdev() replacement
        new helper: get_tree_keyed()
        vfs: set fs_context::user_ns for reconfigure
      e170eb27
    • Linus Torvalds's avatar
      Merge branch 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · b30d87cf
      Linus Torvalds authored
      Pull d_path fix from Al Viro:
       "Fix d_absolute_path() regression in the last cycle (felt by tomoyo,
        mostly)"
      
      * 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        [PATCH] fix d_absolute_path() interplay with fsmount()
      b30d87cf
    • Linus Torvalds's avatar
      Merge branch 'work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 53e5e7a7
      Linus Torvalds authored
      Pull vfs namei updates from Al Viro:
       "Pathwalk-related stuff"
      
      [ Audit-related cleanups, misc simplifications, and easier to follow
        nd->root refcounts     - Linus ]
      
      * 'work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        devpts_pty_kill(): don't bother with d_delete()
        infiniband: don't bother with d_delete()
        hypfs: don't bother with d_delete()
        fs/namei.c: keep track of nd->root refcount status
        fs/namei.c: new helper - legitimize_root()
        kill the last users of user_{path,lpath,path_dir}()
        namei.h: get the comments on LOOKUP_... in sync with reality
        kill LOOKUP_NO_EVAL, don't bother including namei.h from audit.h
        audit_inode(): switch to passing AUDIT_INODE_...
        filename_mountpoint(): make LOOKUP_NO_EVAL unconditional there
        filename_lookup(): audit_inode() argument is always 0
      53e5e7a7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 81160dda
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) Support IPV6 RA Captive Portal Identifier, from Maciej Żenczykowski.
      
       2) Use bio_vec in the networking instead of custom skb_frag_t, from
          Matthew Wilcox.
      
       3) Make use of xmit_more in r8169 driver, from Heiner Kallweit.
      
       4) Add devmap_hash to xdp, from Toke Høiland-Jørgensen.
      
       5) Support all variants of 5750X bnxt_en chips, from Michael Chan.
      
       6) More RTNL avoidance work in the core and mlx5 driver, from Vlad
          Buslov.
      
       7) Add TCP syn cookies bpf helper, from Petar Penkov.
      
       8) Add 'nettest' to selftests and use it, from David Ahern.
      
       9) Add extack support to drop_monitor, add packet alert mode and
          support for HW drops, from Ido Schimmel.
      
      10) Add VLAN offload to stmmac, from Jose Abreu.
      
      11) Lots of devm_platform_ioremap_resource() conversions, from
          YueHaibing.
      
      12) Add IONIC driver, from Shannon Nelson.
      
      13) Several kTLS cleanups, from Jakub Kicinski.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1930 commits)
        mlxsw: spectrum_buffers: Add the ability to query the CPU port's shared buffer
        mlxsw: spectrum: Register CPU port with devlink
        mlxsw: spectrum_buffers: Prevent changing CPU port's configuration
        net: ena: fix incorrect update of intr_delay_resolution
        net: ena: fix retrieval of nonadaptive interrupt moderation intervals
        net: ena: fix update of interrupt moderation register
        net: ena: remove all old adaptive rx interrupt moderation code from ena_com
        net: ena: remove ena_restore_ethtool_params() and relevant fields
        net: ena: remove old adaptive interrupt moderation code from ena_netdev
        net: ena: remove code duplication in ena_com_update_nonadaptive_moderation_interval _*()
        net: ena: enable the interrupt_moderation in driver_supported_features
        net: ena: reimplement set/get_coalesce()
        net: ena: switch to dim algorithm for rx adaptive interrupt moderation
        net: ena: add intr_moder_rx_interval to struct ena_com_dev and use it
        net: phy: adin: implement Energy Detect Powerdown mode via phy-tunable
        ethtool: implement Energy Detect Powerdown support via phy-tunable
        xen-netfront: do not assume sk_buff_head list is empty in error handling
        s390/ctcm: Delete unnecessary checks before the macro call “dev_kfree_skb”
        net: ena: don't wake up tx queue when down
        drop_monitor: Better sanitize notified packets
        ...
      81160dda
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 8b53c765
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Add the ability to abort a skcipher walk.
      
        Algorithms:
         - Fix XTS to actually do the stealing.
         - Add library helpers for AES and DES for single-block users.
         - Add library helpers for SHA256.
         - Add new DES key verification helper.
         - Add surrounding bits for ESSIV generator.
         - Add accelerations for aegis128.
         - Add test vectors for lzo-rle.
      
        Drivers:
         - Add i.MX8MQ support to caam.
         - Add gcm/ccm/cfb/ofb aes support in inside-secure.
         - Add ofb/cfb aes support in media-tek.
         - Add HiSilicon ZIP accelerator support.
      
        Others:
         - Fix potential race condition in padata.
         - Use unbound workqueues in padata"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (311 commits)
        crypto: caam - Cast to long first before pointer conversion
        crypto: ccree - enable CTS support in AES-XTS
        crypto: inside-secure - Probe transform record cache RAM sizes
        crypto: inside-secure - Base RD fetchcount on actual RD FIFO size
        crypto: inside-secure - Base CD fetchcount on actual CD FIFO size
        crypto: inside-secure - Enable extended algorithms on newer HW
        crypto: inside-secure: Corrected configuration of EIP96_TOKEN_CTRL
        crypto: inside-secure - Add EIP97/EIP197 and endianness detection
        padata: remove cpu_index from the parallel_queue
        padata: unbind parallel jobs from specific CPUs
        padata: use separate workqueues for parallel and serial work
        padata, pcrypt: take CPU hotplug lock internally in padata_alloc_possible
        crypto: pcrypt - remove padata cpumask notifier
        padata: make padata_do_parallel find alternate callback CPU
        workqueue: require CPU hotplug read exclusion for apply_workqueue_attrs
        workqueue: unconfine alloc/apply/free_workqueue_attrs()
        padata: allocate workqueue internally
        arm64: dts: imx8mq: Add CAAM node
        random: Use wait_event_freezable() in add_hwgenerator_randomness()
        crypto: ux500 - Fix COMPILE_TEST warnings
        ...
      8b53c765
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 6cfae0c2
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here is the big char/misc driver pull request for 5.4-rc1.
      
        As has been happening in previous releases, more and more individual
        driver subsystem trees are ending up in here. Now if that is good or
        bad I can't tell, but hopefully it makes your life easier as it's more
        of an aggregation of trees together to one merge point for you.
      
        Anyway, lots of stuff in here:
           - habanalabs driver updates
           - thunderbolt driver updates
           - misc driver updates
           - coresight and intel_th hwtracing driver updates
           - fpga driver updates
           - extcon driver updates
           - some dma driver updates
           - char driver updates
           - android binder driver updates
           - nvmem driver updates
           - phy driver updates
           - parport driver fixes
           - pcmcia driver fix
           - uio driver updates
           - w1 driver updates
           - configfs fixes
           - other assorted driver updates
      
        All of these have been in linux-next for a long time with no reported
        issues"
      
      * tag 'char-misc-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (200 commits)
        misc: mic: Use PTR_ERR_OR_ZERO rather than its implementation
        habanalabs: correctly cast variable to __le32
        habanalabs: show correct id in error print
        habanalabs: stop using the acronym KMD
        habanalabs: display card name as sensors header
        habanalabs: add uapi to retrieve aggregate H/W events
        habanalabs: add uapi to retrieve device utilization
        habanalabs: Make the Coresight timestamp perpetual
        habanalabs: explicitly set the queue-id enumerated numbers
        habanalabs: print to kernel log when reset is finished
        habanalabs: replace __le32_to_cpu with le32_to_cpu
        habanalabs: replace __cpu_to_le32/64 with cpu_to_le32/64
        habanalabs: Handle HW_IP_INFO if device disabled or in reset
        habanalabs: Expose devices after initialization is done
        habanalabs: improve security in Debug IOCTL
        habanalabs: use default structure for user input in Debug IOCTL
        habanalabs: Add descriptive name to PSOC app status register
        habanalabs: Add descriptive names to PSOC scratch-pad registers
        habanalabs: create two char devices per ASIC
        habanalabs: change device_setup_cdev() to be more generic
        ...
      6cfae0c2
    • Linus Torvalds's avatar
      Merge tag 'staging-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · e6874fc2
      Linus Torvalds authored
      Pull staging and IIO driver updates from Greg KH:
       "Here is the big staging/iio driver update for 5.4-rc1.
      
        Lots of churn here, with a few driver/filesystems moving out of
        staging finally:
      
           - erofs moved out of staging
      
           - greybus core code moved out of staging
      
        Along with that, a new filesytem has been added:
      
           - extfat
      
        to provide support for those devices requiring that filesystem (i.e.
        transfer devices to/from windows systems or printers)
      
        Other than that, there a number of new IIO drivers, and lots and lots
        and lots of staging driver cleanups and minor fixes as people continue
        to dig into those for easy changes.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (453 commits)
        Staging: gasket: Use temporaries to reduce line length.
        Staging: octeon: Avoid several usecases of strcpy
        staging: vhciq_core: replace snprintf with scnprintf
        staging: wilc1000: avoid twice IRQ handler execution for each single interrupt
        staging: wilc1000: remove unused interrupt status handling code
        staging: fbtft: make several arrays static const, makes object smaller
        staging: rtl8188eu: make two arrays static const, makes object smaller
        staging: rtl8723bs: core: Remove Macro "IS_MAC_ADDRESS_BROADCAST"
        dt-bindings: anybus-controller: move to staging/ tree
        staging: emxx_udc: remove local TRUE/FALSE definition
        staging: wilc1000: look for rtc_clk clock
        staging: dt-bindings: wilc1000: add optional rtc_clk property
        staging: nvec: make use of devm_platform_ioremap_resource
        staging: exfat: drop unused function parameter
        Staging: exfat: Avoid use of strcpy
        staging: exfat: use integer constants
        staging: exfat: cleanup spacing for casts
        staging: exfat: cleanup spacing for operators
        staging: rtl8723bs: hal: remove redundant variable n
        staging: pi433: Fix typo in documentation
        ...
      e6874fc2
    • Linus Torvalds's avatar
      Merge tag 'tty-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · e444d51b
      Linus Torvalds authored
      Pull tty/serial driver updates from Greg KH:
       "Even in this age, people are still making new serial port silicon,
        why...
      
        Anyway, here's the TTY and Serial driver update for 5.4-rc1. Lots of
        changes in here for a number of embedded serial port devices that are
        being worked on because people really like to see those console
        logs...
      
        Other than that, nothing major here, no core tty changes that anyone
        should care about.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (125 commits)
        serial: tegra: Add PIO mode support
        serial: tegra: report clk rate errors
        serial: tegra: add support to adjust baud rate
        serial: tegra: DT for Adjusted baud rates
        serial: tegra: add support to use 8 bytes trigger
        serial: tegra: set maximum num of uart ports to 8
        serial: tegra: check for FIFO mode enabled status
        dt-binding: serial: tegra: add new chips
        serial: tegra: report error to upper tty layer
        serial: tegra: flush the RX fifo on frame error
        serial: tegra: avoid reg access when clk disabled
        serial: tegra: add support to ignore read
        serial: sprd: correct the wrong sequence of arguments
        dt-bindings: serial: Convert riscv,sifive-serial to json-schema
        serial: max310x: turn off transmitter before activating AutoCTS or auto transmitter flow control
        serial: max310x: Properly set flags in AutoCTS mode
        tty: serial: fix platform_no_drv_owner.cocci warnings
        dt-bindings: serial: Document Freescale LINFlexD UART
        serial: fsl_linflexuart: Update compatible string
        tty: n_gsm: avoid recursive locking with async port hangup
        ...
      e444d51b
    • Linus Torvalds's avatar
      Merge tag 'usb-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · c6b48dad
      Linus Torvalds authored
      Pull USB updates from Greg KH:
       "Here is the big set of USB patches for 5.4-rc1.
      
        Two major chunks of code are moving out of the tree and into the
        staging directory, uwb and wusb (wireless USB support), because there
        are no devices that actually use this protocol anymore, and what we
        have today probably doesn't work at all given that the maintainers
        left many many years ago. So move it to staging where it will be
        removed in a few releases if no one screams.
      
        Other than that, lots of little things. The usual gadget and xhci and
        usb serial driver updates, along with a bunch of sysfs file cleanups
        due to the driver core changes to support that. Nothing really major,
        just constant forward progress.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (159 commits)
        USB: usbcore: Fix slab-out-of-bounds bug during device reset
        usb: cdns3: Remove redundant dev_err call in cdns3_probe()
        USB: rio500: Fix lockdep violation
        USB: rio500: simplify locking
        usb: mtu3: register a USB Role Switch for dual role mode
        usb: common: add USB GPIO based connection detection driver
        usb: common: create Kconfig file
        usb: roles: get usb-role-switch from parent
        usb: roles: Add fwnode_usb_role_switch_get() function
        device connection: Add fwnode_connection_find_match()
        usb: roles: Introduce stubs for the exiting functions in role.h
        dt-bindings: usb: mtu3: add properties about USB Role Switch
        dt-bindings: usb: add binding for USB GPIO based connection detection driver
        dt-bindings: connector: add optional properties for Type-B
        dt-binding: usb: add usb-role-switch property
        usbip: Implement SG support to vhci-hcd and stub driver
        usb: roles: intel: Enable static DRD mode for role switch
        xhci-ext-caps.c: Add property to disable Intel SW switch
        usb: dwc3: remove generic PHY calibrate() calls
        usb: core: phy: add support for PHY calibration
        ...
      c6b48dad
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 1f7d290a
      Linus Torvalds authored
      Pull driver core updates from Greg Kroah-Hartman:
       "Here is the big driver core update for 5.4-rc1.
      
        There was a bit of a churn in here, with a number of core and OF
        platform patches being added to the tree, and then after much
        discussion and review and a day-long in-person meeting, they were
        decided to be reverted and a new set of patches is currently being
        reviewed on the mailing list.
      
        Other than that churn, there are two "persistent" branches in here
        that other trees will be pulling in as well during the merge window.
        One branch to add support for drivers to have the driver core
        automatically add sysfs attribute files when a driver is bound to a
        device so that the driver doesn't have to manually do it (and then
        clean it up, as it always gets it wrong).
      
        There's another branch in here for generic lookup helpers for the
        driver core that lots of busses are starting to use. That's the
        majority of the non-driver-core changes in this patch series.
      
        There's also some on-going debugfs file creation cleanup that has been
        slowly happening over the past few releases, with the goal to
        hopefully get that done sometime next year.
      
        All of these have been in linux-next for a while now with no reported
        issues"
      
      [ Note that the above-mentioned generic lookup helpers branch was
        already brought in by the LED merge (commit 4feaab05) that had
        shared it.
      
        Also note that that common branch introduced an i2c bug due to a bad
        conversion, which got fixed here. - Linus ]
      
      * tag 'driver-core-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (49 commits)
        coccinelle: platform_get_irq: Fix parse error
        driver-core: add include guard to linux/container.h
        sysfs: add BIN_ATTR_WO() macro
        driver core: platform: Export platform_get_irq_optional()
        hwmon: pwm-fan: Use platform_get_irq_optional()
        driver core: platform: Introduce platform_get_irq_optional()
        Revert "driver core: Add support for linking devices during device addition"
        Revert "driver core: Add edit_links() callback for drivers"
        Revert "of/platform: Add functional dependency link from DT bindings"
        Revert "driver core: Add sync_state driver/bus callback"
        Revert "of/platform: Pause/resume sync state during init and of_platform_populate()"
        Revert "of/platform: Create device links for all child-supplier depencencies"
        Revert "of/platform: Don't create device links for default busses"
        Revert "of/platform: Fix fn definitons for of_link_is_valid() and of_link_property()"
        Revert "of/platform: Fix device_links_supplier_sync_state_resume() warning"
        Revert "of/platform: Disable generic device linking code for PowerPC"
        devcoredump: fix typo in comment
        devcoredump: use memory_read_from_buffer
        of/platform: Disable generic device linking code for PowerPC
        device.h: Fix warnings for mismatched parameter names in comments
        ...
      1f7d290a
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · fe38bd68
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "s390:
         - ioctl hardening
         - selftests
      
        ARM:
         - ITS translation cache
         - support for 512 vCPUs
         - various cleanups and bugfixes
      
        PPC:
         - various minor fixes and preparation
      
        x86:
         - bugfixes all over the place (posted interrupts, SVM, emulation
           corner cases, blocked INIT)
         - some IPI optimizations"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (75 commits)
        KVM: X86: Use IPI shorthands in kvm guest when support
        KVM: x86: Fix INIT signal handling in various CPU states
        KVM: VMX: Introduce exit reason for receiving INIT signal on guest-mode
        KVM: VMX: Stop the preemption timer during vCPU reset
        KVM: LAPIC: Micro optimize IPI latency
        kvm: Nested KVM MMUs need PAE root too
        KVM: x86: set ctxt->have_exception in x86_decode_insn()
        KVM: x86: always stop emulation on page fault
        KVM: nVMX: trace nested VM-Enter failures detected by H/W
        KVM: nVMX: add tracepoint for failed nested VM-Enter
        x86: KVM: svm: Fix a check in nested_svm_vmrun()
        KVM: x86: Return to userspace with internal error on unexpected exit reason
        KVM: x86: Add kvm_emulate_{rd,wr}msr() to consolidate VXM/SVM code
        KVM: x86: Refactor up kvm_{g,s}et_msr() to simplify callers
        doc: kvm: Fix return description of KVM_SET_MSRS
        KVM: X86: Tune PLE Window tracepoint
        KVM: VMX: Change ple_window type to unsigned int
        KVM: X86: Remove tailing newline for tracepoints
        KVM: X86: Trace vcpu_id for vmexit
        KVM: x86: Manually calculate reserved bits when loading PDPTRS
        ...
      fe38bd68
    • Linus Torvalds's avatar
      Merge tag 'for-linus-urgent' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 404e634f
      Linus Torvalds authored
      Pull KVM fix from Paolo Bonzini:
       "Fix missing bounds-checking in coalesced_mmio (CVE-2019-14821)"
      
      * tag 'for-linus-urgent' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: coalesced_mmio: add bounds checking
      404e634f
    • Matt Delco's avatar
      KVM: coalesced_mmio: add bounds checking · b60fe990
      Matt Delco authored
      The first/last indexes are typically shared with a user app.
      The app can change the 'last' index that the kernel uses
      to store the next result.  This change sanity checks the index
      before using it for writing to a potentially arbitrary address.
      
      This fixes CVE-2019-14821.
      
      Cc: stable@vger.kernel.org
      Fixes: 5f94c174 ("KVM: Add coalesced MMIO support (common part)")
      Signed-off-by: default avatarMatt Delco <delco@chromium.org>
      Signed-off-by: default avatarJim Mattson <jmattson@google.com>
      Reported-by: syzbot+983c866c3dd6efa3662a@syzkaller.appspotmail.com
      [Use READ_ONCE. - Paolo]
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      b60fe990
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 35f7a952
      Linus Torvalds authored
      Pull device properties framework updates from Rafael Wysocki:
       "Improve software node support (Heikki Krogerus) and clean up two
        assorted pieces of code (Andy Shevchenko, Geert Uytterhoeven)"
      
      * tag 'devprop-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        software node: Initialize the return value in software_node_find_by_name()
        software node: Initialize the return value in software_node_to_swnode()
        ACPI / property: Fix acpi_graph_get_remote_endpoint() name in kerneldoc
        device property: Remove duplicate test for NULL
        platform/x86: intel_cht_int33fe: Use new API to gain access to the role switch
        usb: roles: intel_xhci: Supplying software node for the role mux
        software node: Add software_node_find_by_name()
      35f7a952
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d2aaa49e
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These include an ACPICA update (to upstream revision 20190816),
        improvements of support for memory hot-add in the HMAT handling code
        and some assorted fixes and cleanups.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to upstream revision 20190816
           including:
            * Internal limits change to support larger systems (Bob Moore).
            * Macros clean up (Bob Moore).
            * printf format string fixes (Bob Moore).
            * Full deployment of the ACPI_PRINTF_LIKE macro (Bob Moore).
            * Tools improvements (Bob Moore, Colin Ian King).
            * Windows _OSI support fixes (Jung-uk Kim).
      
         - Improve memory hot-add support in the ACPI HMAT handling code (Dan
           Williams, Keith Busch).
      
         - Fix the ACPI LPSS (Low-Power Subsystem) driver for Intel SoCs to
           save and restore private registers during system-wide suspend and
           resume on systems with the Lynxpoint PCH (Jarkko Nikula).
      
         - Convert the ACPI documentation related to LEDs to ReST (Sakari
           Ailus).
      
         - Fix assorted issues and make assorted minor improvements in the
           ACPI-related code (Al Stone, Andy Shevchenko, Jiri Slaby, Kelsey
           Skunberg, Krzysztof Wilczynski, Liguang Zhang, Wenwen Wang,
           YueHaibing)"
      
      * tag 'acpi-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (23 commits)
        ACPI / PCI: fix acpi_pci_irq_enable() memory leak
        ACPI: custom_method: fix memory leaks
        ACPI: thermal: Remove redundant acpi_has_method() calls
        ACPI / CPPC: do not require the _PSD method
        ACPI: SBS: remove unused const variable 'SMBUS_PEC'
        ACPI / LPSS: Save/restore LPSS private registers also on Lynxpoint
        ACPI/PCI: Remove surplus parentheses from a return statement
        ACPICA: Update version to 20190816.
        ACPICA: Add "Windows 2019" string to _OSI support.
        ACPICA: Differentiate Windows 8.1 from Windows 8.
        ACPICA: Fully deploy ACPI_PRINTF_LIKE macro
        ACPICA: iASL,acpi_dump: Improve y/n query
        ACPICA: Fix issues with arg types within printf format strings
        ACPICA: Macros: remove pointer math on a null pointer
        ACPICA: Increase total number of possible Owner IDs
        ACPICA: Debugger: remove redundant assignment on obj_desc
        Documentation: ACPI: DSD: Convert LED documentation to ReST
        ACPI / APEI: Release resources if gen_pool_add() fails
        HMAT: Skip publishing target info for nodes with no online memory
        HMAT: Register attributes for memory hot add
        ...
      d2aaa49e
    • Linus Torvalds's avatar
      Merge tag 'pm-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 77dcfe2b
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These include a rework of the main suspend-to-idle code flow (related
        to the handling of spurious wakeups), a switch over of several users
        of cpufreq notifiers to QoS-based limits, a new devfreq driver for
        Tegra20, a new cpuidle driver and governor for virtualized guests, an
        extension of the wakeup sources framework to expose wakeup sources as
        device objects in sysfs, and more.
      
        Specifics:
      
         - Rework the main suspend-to-idle control flow to avoid repeating
           "noirq" device resume and suspend operations in case of spurious
           wakeups from the ACPI EC and decouple the ACPI EC wakeups support
           from the LPS0 _DSM support (Rafael Wysocki).
      
         - Extend the wakeup sources framework to expose wakeup sources as
           device objects in sysfs (Tri Vo, Stephen Boyd).
      
         - Expose system suspend statistics in sysfs (Kalesh Singh).
      
         - Introduce a new haltpoll cpuidle driver and a new matching governor
           for virtualized guests wanting to do guest-side polling in the idle
           loop (Marcelo Tosatti, Joao Martins, Wanpeng Li, Stephen Rothwell).
      
         - Fix the menu and teo cpuidle governors to allow the scheduler tick
           to be stopped if PM QoS is used to limit the CPU idle state exit
           latency in some cases (Rafael Wysocki).
      
         - Increase the resolution of the play_idle() argument to microseconds
           for more fine-grained injection of CPU idle cycles (Daniel
           Lezcano).
      
         - Switch over some users of cpuidle notifiers to the new QoS-based
           frequency limits and drop the CPUFREQ_ADJUST and CPUFREQ_NOTIFY
           policy notifier events (Viresh Kumar).
      
         - Add new cpufreq driver based on nvmem for sun50i (Yangtao Li).
      
         - Add support for MT8183 and MT8516 to the mediatek cpufreq driver
           (Andrew-sh.Cheng, Fabien Parent).
      
         - Add i.MX8MN support to the imx-cpufreq-dt cpufreq driver (Anson
           Huang).
      
         - Add qcs404 to cpufreq-dt-platdev blacklist (Jorge Ramirez-Ortiz).
      
         - Update the qcom cpufreq driver (among other things, to make it
           easier to extend and to use kryo cpufreq for other nvmem-based
           SoCs) and add qcs404 support to it (Niklas Cassel, Douglas
           RAILLARD, Sibi Sankar, Sricharan R).
      
         - Fix assorted issues and make assorted minor improvements in the
           cpufreq code (Colin Ian King, Douglas RAILLARD, Florian Fainelli,
           Gustavo Silva, Hariprasad Kelam).
      
         - Add new devfreq driver for NVidia Tegra20 (Dmitry Osipenko, Arnd
           Bergmann).
      
         - Add new Exynos PPMU events to devfreq events and extend that
           mechanism (Lukasz Luba).
      
         - Fix and clean up the exynos-bus devfreq driver (Kamil Konieczny).
      
         - Improve devfreq documentation and governor code, fix spelling typos
           in devfreq (Ezequiel Garcia, Krzysztof Kozlowski, Leonard Crestez,
           MyungJoo Ham, Gaël PORTAY).
      
         - Add regulators enable and disable to the OPP (operating performance
           points) framework (Kamil Konieczny).
      
         - Update the OPP framework to support multiple opp-suspend properties
           (Anson Huang).
      
         - Fix assorted issues and make assorted minor improvements in the OPP
           code (Niklas Cassel, Viresh Kumar, Yue Hu).
      
         - Clean up the generic power domains (genpd) framework (Ulf Hansson).
      
         - Clean up assorted pieces of power management code and documentation
           (Akinobu Mita, Amit Kucheria, Chuhong Yuan).
      
         - Update the pm-graph tool to version 5.5 including multiple fixes
           and improvements (Todd Brandt).
      
         - Update the cpupower utility (Benjamin Weis, Geert Uytterhoeven,
           Sébastien Szymanski)"
      
      * tag 'pm-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (126 commits)
        cpuidle-haltpoll: Enable kvm guest polling when dedicated physical CPUs are available
        cpuidle-haltpoll: do not set an owner to allow modunload
        cpuidle-haltpoll: return -ENODEV on modinit failure
        cpuidle-haltpoll: set haltpoll as preferred governor
        cpuidle: allow governor switch on cpuidle_register_driver()
        PM: runtime: Documentation: add runtime_status ABI document
        pm-graph: make setVal unbuffered again for python2 and python3
        powercap: idle_inject: Use higher resolution for idle injection
        cpuidle: play_idle: Increase the resolution to usec
        cpuidle-haltpoll: vcpu hotplug support
        cpufreq: Add qcs404 to cpufreq-dt-platdev blacklist
        cpufreq: qcom: Add support for qcs404 on nvmem driver
        cpufreq: qcom: Refactor the driver to make it easier to extend
        cpufreq: qcom: Re-organise kryo cpufreq to use it for other nvmem based qcom socs
        dt-bindings: opp: Add qcom-opp bindings with properties needed for CPR
        dt-bindings: opp: qcom-nvmem: Support pstates provided by a power domain
        Documentation: cpufreq: Update policy notifier documentation
        cpufreq: Remove CPUFREQ_ADJUST and CPUFREQ_NOTIFY policy notifier events
        PM / Domains: Verify PM domain type in dev_pm_genpd_set_performance_state()
        PM / Domains: Simplify genpd_lookup_dev()
        ...
      77dcfe2b
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-5.4-rc1' of git://git.infradead.org/users/vkoul/slave-dma · 04cbfba6
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
      
       - Move Dmaengine DT bindings to YAML and convert Allwinner to schema.
      
       - FSL dma device_synchronize implementation
      
       - DW split acpi and of helpers and updates to driver and support for
         Elkhart Lake
      
       - Move filter fn as private for omap-dma and edma drivers and
         improvements to these drivers
      
       - Mark expected switch fall-through in couple of drivers
      
       - Renames of shdma and nbpfaxi binding document
      
       - Minor updates to bunch of drivers
      
      * tag 'dmaengine-5.4-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (55 commits)
        dmaengine: ti: edma: Use bitmap_set() instead of open coded edma_set_bits()
        dmaengine: ti: edma: Only reset region0 access registers
        dmaengine: ti: edma: Do not reset reserved paRAM slots
        dmaengine: iop-adma.c: fix printk format warning
        dmaengine: stm32-dma: Use struct_size() helper
        dt-bindings: dmaengine: dma-common: Fix the dma-channel-mask property
        dmanegine: ioat/dca: Use struct_size() helper
        dmaengine: iop-adma: remove set but not used variable 'slots_per_op'
        dmaengine: dmatest: Add support for completion polling
        dmaengine: ti: omap-dma: Remove variable override in omap_dma_tx_status()
        dmaengine: ti: omap-dma: Remove 'Assignment in if condition'
        dmaengine: ti: edma: Remove 'Assignment in if condition'
        dmaengine: dw: platform: Split OF helpers to separate module
        dmaengine: dw: platform: Split ACPI helpers to separate module
        dmaengine: dw: platform: Move handle check to dw_dma_acpi_controller_register()
        dmaengine: dw: platform: Switch to acpi_dma_controller_register()
        dmaengine: dw: platform: Use devm_platform_ioremap_resource()
        dmaengine: dw: platform: Enable iDMA 32-bit on Intel Elkhart Lake
        dmaengine: dw: platform: Use struct dw_dma_chip_pdata
        dmaengine: dw: Export struct dw_dma_chip_pdata for wider use
        ...
      04cbfba6
    • Linus Torvalds's avatar
      Merge tag 'leds-for-5.4-rc1' of... · 4feaab05
      Linus Torvalds authored
      Merge tag 'leds-for-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
       "In this cycle we've finally managed to contribute the patch set
        sorting out LED naming issues. Besides that there are many changes
        scattered among various LED class drivers and triggers.
      
        LED naming related improvements:
      
         - add new 'function' and 'color' fwnode properties and deprecate
           'label' property which has been frequently abused for conveying
           vendor specific names that have been available in sysfs anyway
      
         - introduce a set of standard LED_FUNCTION* definitions
      
         - introduce a set of standard LED_COLOR_ID* definitions
      
         - add a new {devm_}led_classdev_register_ext() API with the
           capability of automatic LED name composition basing on the
           properties available in the passed fwnode; the function is
           backwards compatible in a sense that it uses 'label' data, if
           present in the fwnode, for creating LED name
      
         - add tools/leds/get_led_device_info.sh script for retrieving LED
           vendor, product and bus names, if applicable; it also performs
           basic validation of an LED name
      
         - update following drivers and their DT bindings to use the new LED
           registration API:
      
              - leds-an30259a, leds-gpio, leds-as3645a, leds-aat1290, leds-cr0014114,
                leds-lm3601x, leds-lm3692x, leds-lp8860, leds-lt3593, leds-sc27xx-blt
      
        Other LED class improvements:
      
         - replace {devm_}led_classdev_register() macros with inlines
      
         - allow to call led_classdev_unregister() unconditionally
      
         - switch to use fwnode instead of be stuck with OF one
      
        LED triggers improvements:
      
         - led-triggers:
              - fix dereferencing of null pointer
              - fix a memory leak bug
      
         - ledtrig-gpio:
              - GPIO 0 is valid
      
        Drop superseeded apu2/3 support from leds-apu since for apu2+ a newer,
        more complete driver exists, based on a generic driver for the AMD
        SOCs gpio-controller, supporting LEDs as well other devices:
      
         - drop profile field from priv data
      
         - drop iosize field from priv data
      
         - drop enum_apu_led_platform_types
      
         - drop superseeded apu2/3 led support
      
         - add pr_fmt prefix for better log output
      
         - fix error message on probing failure
      
        Other misc fixes and improvements to existing LED class drivers:
      
         - leds-ns2, leds-max77650:
              - add of_node_put() before return
      
         - leds-pwm, leds-is31fl32xx:
              - use struct_size() helper
      
         - leds-lm3697, leds-lm36274, leds-lm3532:
              - switch to use fwnode_property_count_uXX()
      
         - leds-lm3532:
              - fix brightness control for i2c mode
              - change the define for the fs current register
              - fixes for the driver for stability
              - add full scale current configuration
              - dt: Add property for full scale current.
              - avoid potentially unpaired regulator calls
              - move static keyword to the front of declarations
              - fix optional led-max-microamp prop error handling
      
         - leds-max77650:
              - add of_node_put() before return
              - add MODULE_ALIAS()
              - Switch to fwnode property API
      
         - leds-as3645a:
              - fix misuse of strlcpy
      
         - leds-netxbig:
              - add of_node_put() in netxbig_leds_get_of_pdata()
              - remove legacy board-file support
      
         - leds-is31fl319x:
              - simplify getting the adapter of a client
      
         - leds-ti-lmu-common:
              - fix coccinelle issue
              - move static keyword to the front of declaration
      
         - leds-syscon:
              - use resource managed variant of device register
      
         - leds-ktd2692:
              - fix a typo in the name of a constant
      
         - leds-lp5562:
              - allow firmware files up to the maximum length
      
         - leds-an30259a:
              - fix typo
      
         - leds-pca953x:
              - include the right header"
      
      * tag 'leds-for-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: (72 commits)
        leds: lm3532: Fix optional led-max-microamp prop error handling
        led: triggers: Fix dereferencing of null pointer
        leds: ti-lmu-common: Move static keyword to the front of declaration
        leds: lm3532: Move static keyword to the front of declarations
        leds: trigger: gpio: GPIO 0 is valid
        leds: pwm: Use struct_size() helper
        leds: is31fl32xx: Use struct_size() helper
        leds: ti-lmu-common: Fix coccinelle issue in TI LMU
        leds: lm3532: Avoid potentially unpaired regulator calls
        leds: syscon: Use resource managed variant of device register
        leds: Replace {devm_}led_classdev_register() macros with inlines
        leds: Allow to call led_classdev_unregister() unconditionally
        leds: lm3532: Add full scale current configuration
        dt: lm3532: Add property for full scale current.
        leds: lm3532: Fixes for the driver for stability
        leds: lm3532: Change the define for the fs current register
        leds: lm3532: Fix brightness control for i2c mode
        leds: Switch to use fwnode instead of be stuck with OF one
        leds: max77650: Switch to fwnode property API
        led: triggers: Fix a memory leak bug
        ...
      4feaab05
    • Linus Torvalds's avatar
      Merge tag 'media/v5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · e7345f92
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - a new sensor driver for ov5675
      
       - a new platform driver for Allwinner A10 sensor interface
      
       - some new remote controller keymaps
      
       - some cosmetic changes at V4L2 core in order to avoid #ifdefs and to
         merge two core modules into one
      
       - removal of bcm2048 radio driver from staging
      
       - removal of davinci_vpfe video driver from staging
      
       - regression fix since Kernel 5.1 at the legacy VideoBuffer version 1
         core
      
       - added some documentation for remote controller protocols
      
       - pixel format documentation was split on two files
      
       - lots of other driver improvements and cleanups
      
      * tag 'media/v5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (321 commits)
        media: videobuf-core.c: poll_wait needs a non-NULL buf pointer
        media: sun4i: Make sun4i_csi_formats static
        media: imx: remove unused including <linux/version.h>
        media: stm32-dcmi: Delete an unnecessary of_node_put() call in dcmi_probe()
        media: pvrusb2: qctrl.flag will be uninitlaized if cx2341x_ctrl_query() returns error code
        media: em28xx: Fix exception handling in em28xx_alloc_urbs()
        media: don't do a 31 bit shift on a signed int
        media: use the BIT() macro
        media: ov9650: add a sanity check
        media: aspeed-video: address a protential usage of an unitialized var
        media: vicodec: make life easier for static analyzers
        media: remove include stdarg.h from some drivers
        v4l2-core: fix coding style for the two new c files
        media: v4l2-core: Remove BUG() from i2c and spi helpers
        media: v4l2-core: introduce a helper to unregister a i2c subdev
        media: v4l2-core: introduce a helper to unregister a spi subdev
        media: v4l2-core: move i2c helpers out of v4l2-common.c
        media: v4l2-core: move spi helpers out of v4l2-common.c
        media: v4l2-core: Module re-organization
        media: usbvision: Remove dead code
        ...
      e7345f92