1. 03 Feb, 2020 6 commits
  2. 01 Feb, 2020 5 commits
    • Coly Li's avatar
      bcache: check return value of prio_read() · 49d08d59
      Coly Li authored
      Now if prio_read() failed during starting a cache set, we can print
      out error message in run_cache_set() and handle the failure properly.
      Signed-off-by: default avatarColy Li <colyli@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      49d08d59
    • Coly Li's avatar
      bcache: fix incorrect data type usage in btree_flush_write() · d1c3cc34
      Coly Li authored
      Dan Carpenter points out that from commit 2aa8c529 ("bcache: avoid
      unnecessary btree nodes flushing in btree_flush_write()"), there is a
      incorrect data type usage which leads to the following static checker
      warning:
      	drivers/md/bcache/journal.c:444 btree_flush_write()
      	warn: 'ref_nr' unsigned <= 0
      
      drivers/md/bcache/journal.c
         422  static void btree_flush_write(struct cache_set *c)
         423  {
         424          struct btree *b, *t, *btree_nodes[BTREE_FLUSH_NR];
         425          unsigned int i, nr, ref_nr;
                                          ^^^^^^
      
         426          atomic_t *fifo_front_p, *now_fifo_front_p;
         427          size_t mask;
         428
         429          if (c->journal.btree_flushing)
         430                  return;
         431
         432          spin_lock(&c->journal.flush_write_lock);
         433          if (c->journal.btree_flushing) {
         434                  spin_unlock(&c->journal.flush_write_lock);
         435                  return;
         436          }
         437          c->journal.btree_flushing = true;
         438          spin_unlock(&c->journal.flush_write_lock);
         439
         440          /* get the oldest journal entry and check its refcount */
         441          spin_lock(&c->journal.lock);
         442          fifo_front_p = &fifo_front(&c->journal.pin);
         443          ref_nr = atomic_read(fifo_front_p);
         444          if (ref_nr <= 0) {
                          ^^^^^^^^^^^
      Unsigned can't be less than zero.
      
         445                  /*
         446                   * do nothing if no btree node references
         447                   * the oldest journal entry
         448                   */
         449                  spin_unlock(&c->journal.lock);
         450                  goto out;
         451          }
         452          spin_unlock(&c->journal.lock);
      
      As the warning information indicates, local varaible ref_nr in unsigned
      int type is wrong, which does not matche atomic_read() and the "<= 0"
      checking.
      
      This patch fixes the above error by defining local variable ref_nr as
      int type.
      
      Fixes: 2aa8c529 ("bcache: avoid unnecessary btree nodes flushing in btree_flush_write()")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarColy Li <colyli@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d1c3cc34
    • Coly Li's avatar
      bcache: add readahead cache policy options via sysfs interface · 038ba8cc
      Coly Li authored
      In year 2007 high performance SSD was still expensive, in order to
      save more space for real workload or meta data, the readahead I/Os
      for non-meta data was bypassed and not cached on SSD.
      
      In now days, SSD price drops a lot and people can find larger size
      SSD with more comfortable price. It is unncessary to alway bypass
      normal readahead I/Os to save SSD space for now.
      
      This patch adds options for readahead data cache policies via sysfs
      file /sys/block/bcache<N>/readahead_cache_policy, the options are,
      - "all": cache all readahead data I/Os.
      - "meta-only": only cache meta data, and bypass other regular I/Os.
      
      If users want to make bcache continue to only cache readahead request
      for metadata and bypass regular data readahead, please set "meta-only"
      to this sysfs file. By default, bcache will back to cache all read-
      ahead requests now.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarColy Li <colyli@suse.de>
      Acked-by: default avatarEric Wheeler <bcache@linux.ewheeler.net>
      Cc: Michael Lyle <mlyle@lyle.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      038ba8cc
    • Coly Li's avatar
      bcache: explicity type cast in bset_bkey_last() · 7c02b005
      Coly Li authored
      In bset.h, macro bset_bkey_last() is defined as,
          bkey_idx((struct bkey *) (i)->d, (i)->keys)
      
      Parameter i can be variable type of data structure, the macro always
      works once the type of struct i has member 'd' and 'keys'.
      
      bset_bkey_last() is also used in macro csum_set() to calculate the
      checksum of a on-disk data structure. When csum_set() is used to
      calculate checksum of on-disk bcache super block, the parameter 'i'
      data type is struct cache_sb_disk. Inside struct cache_sb_disk (also in
      struct cache_sb) the member keys is __u16 type. But bkey_idx() expects
      unsigned int (a 32bit width), so there is problem when sending
      parameters via stack to call bkey_idx().
      
      Sparse tool from Intel 0day kbuild system reports this incompatible
      problem. bkey_idx() is part of user space API, so the simplest fix is
      to cast the (i)->keys to unsigned int type in macro bset_bkey_last().
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarColy Li <colyli@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      7c02b005
    • Coly Li's avatar
      bcache: fix memory corruption in bch_cache_accounting_clear() · 5bebf748
      Coly Li authored
      Commit 83ff9318 ("bcache: not use hard coded memset size in
      bch_cache_accounting_clear()") tries to make the code more easy to
      understand by removing the hard coded number with following change,
      	void bch_cache_accounting_clear(...)
      	{
      		memset(&acc->total.cache_hits,
      			0,
      	-		sizeof(unsigned long) * 7);
      	+		sizeof(struct cache_stats));
      	}
      
      Unfortunately the change was wrong (it also tells us the original code
      was not easy to correctly understand). The hard coded number 7 is used
      because in struct cache_stats,
       15 struct cache_stats {
       16         struct kobject          kobj;
       17
       18         unsigned long cache_hits;
       19         unsigned long cache_misses;
       20         unsigned long cache_bypass_hits;
       21         unsigned long cache_bypass_misses;
       22         unsigned long cache_readaheads;
       23         unsigned long cache_miss_collisions;
       24         unsigned long sectors_bypassed;
       25
       26         unsigned int            rescale;
       27 };
      only members in LINE 18-24 want to be set to 0. It is wrong to use
      'sizeof(struct cache_stats)' to replace 'sizeof(unsigned long) * 7), the
      memory objects behind acc->total is staled by this change.
      
      Сорокин Артем Сергеевич reports that by the following steps, kernel
      panic will be triggered,
      1. Create new set: make-bcache -B /dev/nvme1n1 -C /dev/sda --wipe-bcache
      2. Run in /sys/fs/bcache/<uuid>:
         echo 1 > clear_stats && cat stats_five_minute/cache_bypass_hits
      
      I can reproduce the panic and get following dmesg with KASAN enabled,
      [22613.172742] ==================================================================
      [22613.172862] BUG: KASAN: null-ptr-deref in sysfs_kf_seq_show+0x117/0x230
      [22613.172864] Read of size 8 at addr 0000000000000000 by task cat/6753
      
      [22613.172870] CPU: 1 PID: 6753 Comm: cat Not tainted 5.5.0-rc7-lp151.28.16-default+ #11
      [22613.172872] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/29/2019
      [22613.172873] Call Trace:
      [22613.172964]  dump_stack+0x8b/0xbb
      [22613.172968]  ? sysfs_kf_seq_show+0x117/0x230
      [22613.172970]  ? sysfs_kf_seq_show+0x117/0x230
      [22613.173031]  __kasan_report+0x176/0x192
      [22613.173064]  ? pr_cont_kernfs_name+0x40/0x60
      [22613.173067]  ? sysfs_kf_seq_show+0x117/0x230
      [22613.173070]  kasan_report+0xe/0x20
      [22613.173072]  sysfs_kf_seq_show+0x117/0x230
      [22613.173105]  seq_read+0x199/0x6d0
      [22613.173110]  vfs_read+0xa5/0x1a0
      [22613.173113]  ksys_read+0x110/0x160
      [22613.173115]  ? kernel_write+0xb0/0xb0
      [22613.173177]  do_syscall_64+0x77/0x290
      [22613.173238]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [22613.173241] RIP: 0033:0x7fc2c886ac61
      [22613.173244] Code: fe ff ff 48 8d 3d c7 a0 09 00 48 83 ec 08 e8 46 03 02 00 66 0f 1f 44 00 00 8b 05 ca fb 2c 00 48 63 ff 85 c0 75 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 55 53 48 89 d5 48 89
      [22613.173245] RSP: 002b:00007ffebe776d68 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
      [22613.173248] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007fc2c886ac61
      [22613.173249] RDX: 0000000000020000 RSI: 00007fc2c8cca000 RDI: 0000000000000003
      [22613.173250] RBP: 0000000000020000 R08: ffffffffffffffff R09: 0000000000000000
      [22613.173251] R10: 000000000000038c R11: 0000000000000246 R12: 00007fc2c8cca000
      [22613.173253] R13: 0000000000000003 R14: 00007fc2c8cca00f R15: 0000000000020000
      [22613.173255] ==================================================================
      [22613.173256] Disabling lock debugging due to kernel taint
      [22613.173350] BUG: kernel NULL pointer dereference, address: 0000000000000000
      [22613.178380] #PF: supervisor read access in kernel mode
      [22613.180959] #PF: error_code(0x0000) - not-present page
      [22613.183444] PGD 0 P4D 0
      [22613.184867] Oops: 0000 [#1] SMP KASAN PTI
      [22613.186797] CPU: 1 PID: 6753 Comm: cat Tainted: G    B             5.5.0-rc7-lp151.28.16-default+ #11
      [22613.191253] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/29/2019
      [22613.196706] RIP: 0010:sysfs_kf_seq_show+0x117/0x230
      [22613.199097] Code: ff 48 8b 0b 48 8b 44 24 08 48 01 e9 eb a6 31 f6 48 89 cf ba 00 10 00 00 48 89 4c 24 10 e8 b1 e6 e9 ff 4c 89 ff e8 19 07 ea ff <49> 8b 07 48 85 c0 48 89 44 24 08 0f 84 91 00 00 00 49 8b 6d 00 48
      [22613.208016] RSP: 0018:ffff8881d4f8fd78 EFLAGS: 00010246
      [22613.210448] RAX: 0000000000000000 RBX: ffff8881eb99b180 RCX: ffffffff810d9ef6
      [22613.213691] RDX: 0000000000000001 RSI: 0000000000000246 RDI: 0000000000000246
      [22613.216893] RBP: 0000000000001000 R08: fffffbfff072ddcd R09: fffffbfff072ddcd
      [22613.220075] R10: 0000000000000001 R11: fffffbfff072ddcc R12: ffff8881de5c0200
      [22613.223256] R13: ffff8881ed175500 R14: ffff8881eb99b198 R15: 0000000000000000
      [22613.226290] FS:  00007fc2c8d3d500(0000) GS:ffff8881f2a80000(0000) knlGS:0000000000000000
      [22613.229637] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [22613.231993] CR2: 0000000000000000 CR3: 00000001ec89a004 CR4: 00000000003606e0
      [22613.234909] Call Trace:
      [22613.235931]  seq_read+0x199/0x6d0
      [22613.237259]  vfs_read+0xa5/0x1a0
      [22613.239229]  ksys_read+0x110/0x160
      [22613.240590]  ? kernel_write+0xb0/0xb0
      [22613.242040]  do_syscall_64+0x77/0x290
      [22613.243625]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [22613.245450] RIP: 0033:0x7fc2c886ac61
      [22613.246706] Code: fe ff ff 48 8d 3d c7 a0 09 00 48 83 ec 08 e8 46 03 02 00 66 0f 1f 44 00 00 8b 05 ca fb 2c 00 48 63 ff 85 c0 75 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 55 53 48 89 d5 48 89
      [22613.253296] RSP: 002b:00007ffebe776d68 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
      [22613.255835] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007fc2c886ac61
      [22613.258472] RDX: 0000000000020000 RSI: 00007fc2c8cca000 RDI: 0000000000000003
      [22613.260807] RBP: 0000000000020000 R08: ffffffffffffffff R09: 0000000000000000
      [22613.263188] R10: 000000000000038c R11: 0000000000000246 R12: 00007fc2c8cca000
      [22613.265598] R13: 0000000000000003 R14: 00007fc2c8cca00f R15: 0000000000020000
      [22613.268729] Modules linked in: scsi_transport_iscsi af_packet iscsi_ibft iscsi_boot_sysfs vmw_vsock_vmci_transport vsock fuse bnep kvm_intel kvm irqbypass crc32_pclmul crc32c_intel ghash_clmulni_intel snd_ens1371 snd_ac97_codec ac97_bus bcache snd_pcm btusb btrtl btbcm btintel crc64 aesni_intel glue_helper crypto_simd vmw_balloon cryptd bluetooth snd_timer snd_rawmidi snd joydev pcspkr e1000 rfkill vmw_vmci soundcore ecdh_generic ecc gameport i2c_piix4 mptctl ac button hid_generic usbhid sr_mod cdrom ata_generic ehci_pci vmwgfx uhci_hcd drm_kms_helper syscopyarea serio_raw sysfillrect sysimgblt fb_sys_fops ttm ehci_hcd mptspi scsi_transport_spi mptscsih ata_piix mptbase ahci usbcore libahci drm sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua
      [22613.292429] CR2: 0000000000000000
      [22613.293563] ---[ end trace a074b26a8508f378 ]---
      [22613.295138] RIP: 0010:sysfs_kf_seq_show+0x117/0x230
      [22613.296769] Code: ff 48 8b 0b 48 8b 44 24 08 48 01 e9 eb a6 31 f6 48 89 cf ba 00 10 00 00 48 89 4c 24 10 e8 b1 e6 e9 ff 4c 89 ff e8 19 07 ea ff <49> 8b 07 48 85 c0 48 89 44 24 08 0f 84 91 00 00 00 49 8b 6d 00 48
      [22613.303553] RSP: 0018:ffff8881d4f8fd78 EFLAGS: 00010246
      [22613.305280] RAX: 0000000000000000 RBX: ffff8881eb99b180 RCX: ffffffff810d9ef6
      [22613.307924] RDX: 0000000000000001 RSI: 0000000000000246 RDI: 0000000000000246
      [22613.310272] RBP: 0000000000001000 R08: fffffbfff072ddcd R09: fffffbfff072ddcd
      [22613.312685] R10: 0000000000000001 R11: fffffbfff072ddcc R12: ffff8881de5c0200
      [22613.315076] R13: ffff8881ed175500 R14: ffff8881eb99b198 R15: 0000000000000000
      [22613.318116] FS:  00007fc2c8d3d500(0000) GS:ffff8881f2a80000(0000) knlGS:0000000000000000
      [22613.320743] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [22613.322628] CR2: 0000000000000000 CR3: 00000001ec89a004 CR4: 00000000003606e0
      
      Here this patch fixes the following problem by explicity set all the 7
      members to 0 in bch_cache_accounting_clear().
      Reported-by: default avatarСорокин Артем Сергеевич <a.sorokin@bank-hlynov.ru>
      Signed-off-by: default avatarColy Li <colyli@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      5bebf748
  3. 30 Jan, 2020 4 commits
  4. 29 Jan, 2020 25 commits
    • Linus Torvalds's avatar
      Merge tag 'docs-5.6' of git://git.lwn.net/linux · 05ef8b97
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "It has been a relatively quiet cycle for documentation, but there's
        still a couple of things of note:
      
         - Conversion of the NFS documentation to RST
      
         - A new document on how to help with documentation (and a maintainer
           profile entry too)
      
        Plus the usual collection of typo fixes, etc"
      
      * tag 'docs-5.6' of git://git.lwn.net/linux: (40 commits)
        docs: filesystems: add overlayfs to index.rst
        docs: usb: remove some broken references
        scripts/find-unused-docs: Fix massive false positives
        docs: nvdimm: use ReST notation for subsection
        zram: correct documentation about sysfs node of huge page writeback
        Documentation: zram: various fixes in zram.rst
        Add a maintainer entry profile for documentation
        Add a document on how to contribute to the documentation
        docs: Keep up with the location of NoUri
        Documentation: Call out example SYM_FUNC_* usage as x86-specific
        Documentation: nfs: fault_injection: convert to ReST
        Documentation: nfs: pnfs-scsi-server: convert to ReST
        Documentation: nfs: convert pnfs-block-server to ReST
        Documentation: nfs: idmapper: convert to ReST
        Documentation: convert nfsd-admin-interfaces to ReST
        Documentation: nfs-rdma: convert to ReST
        Documentation: nfsroot.rst: COSMETIC: refill a paragraph
        Documentation: nfsroot.txt: convert to ReST
        Documentation: convert nfs.txt to ReST
        Documentation: filesystems: convert vfat.txt to RST
        ...
      05ef8b97
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.6-rc1-kunit' of... · 08a3ef8f
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.6-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest kunit updates from Shuah Khan:
       "This kunit update consists of:
      
         - Support for building kunit as a module from Alan Maguire
      
         - AppArmor KUnit tests for policy unpack from Mike Salvatore"
      
      * tag 'linux-kselftest-5.6-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: building kunit as a module breaks allmodconfig
        kunit: update documentation to describe module-based build
        kunit: allow kunit to be loaded as a module
        kunit: remove timeout dependence on sysctl_hung_task_timeout_seconds
        kunit: allow kunit tests to be loaded as a module
        kunit: hide unexported try-catch interface in try-catch-impl.h
        kunit: move string-stream.h to lib/kunit
        apparmor: add AppArmor KUnit tests for policy unpack
      08a3ef8f
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.6-rc1' of... · ce7ae9d9
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest update from Shuah Khan:
       "This Kselftest update consists of several fixes to framework and
        individual tests.
      
        In addition, it enables LKDTM tests adding lkdtm target to kselftest
        Makefile"
      
      * tag 'linux-kselftest-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/ftrace: fix glob selftest
        selftests: settings: tests can be in subsubdirs
        kselftest: Minimise dependency of get_size on C library interfaces
        selftests/livepatch: Remove unused local variable in set_ftrace_enabled()
        selftests/livepatch: Replace set_dynamic_debug() with setup_config() in README
        selftests/lkdtm: Add tests for LKDTM targets
        selftests: Uninitialized variable in test_cgcore_proc_migration()
        selftests: fix build behaviour on targets' failures
      ce7ae9d9
    • Linus Torvalds's avatar
      Merge tag 'y2038-drivers-for-v5.6-signed' of... · 22b17db4
      Linus Torvalds authored
      Merge tag 'y2038-drivers-for-v5.6-signed' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground
      
      Pull y2038 updates from Arnd Bergmann:
       "Core, driver and file system changes
      
        These are updates to device drivers and file systems that for some
        reason or another were not included in the kernel in the previous
        y2038 series.
      
        I've gone through all users of time_t again to make sure the kernel is
        in a long-term maintainable state, replacing all remaining references
        to time_t with safe alternatives.
      
        Some related parts of the series were picked up into the nfsd, xfs,
        alsa and v4l2 trees. A final set of patches in linux-mm removes the
        now unused time_t/timeval/timespec types and helper functions after
        all five branches are merged for linux-5.6, ensuring that no new users
        get merged.
      
        As a result, linux-5.6, or my backport of the patches to 5.4 [1],
        should be the first release that can serve as a base for a 32-bit
        system designed to run beyond year 2038, with a few remaining caveats:
      
         - All user space must be compiled with a 64-bit time_t, which will be
           supported in the coming musl-1.2 and glibc-2.32 releases, along
           with installed kernel headers from linux-5.6 or higher.
      
         - Applications that use the system call interfaces directly need to
           be ported to use the time64 syscalls added in linux-5.1 in place of
           the existing system calls. This impacts most users of futex() and
           seccomp() as well as programming languages that have their own
           runtime environment not based on libc.
      
         - Applications that use a private copy of kernel uapi header files or
           their contents may need to update to the linux-5.6 version, in
           particular for sound/asound.h, xfs/xfs_fs.h, linux/input.h,
           linux/elfcore.h, linux/sockios.h, linux/timex.h and
           linux/can/bcm.h.
      
         - A few remaining interfaces cannot be changed to pass a 64-bit
           time_t in a compatible way, so they must be configured to use
           CLOCK_MONOTONIC times or (with a y2106 problem) unsigned 32-bit
           timestamps. Most importantly this impacts all users of 'struct
           input_event'.
      
         - All y2038 problems that are present on 64-bit machines also apply
           to 32-bit machines. In particular this affects file systems with
           on-disk timestamps using signed 32-bit seconds: ext4 with
           ext3-style small inodes, ext2, xfs (to be fixed soon) and ufs"
      
      [1] https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/log/?h=y2038-endgame
      
      * tag 'y2038-drivers-for-v5.6-signed' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (21 commits)
        Revert "drm/etnaviv: reject timeouts with tv_nsec >= NSEC_PER_SEC"
        y2038: sh: remove timeval/timespec usage from headers
        y2038: sparc: remove use of struct timex
        y2038: rename itimerval to __kernel_old_itimerval
        y2038: remove obsolete jiffies conversion functions
        nfs: fscache: use timespec64 in inode auxdata
        nfs: fix timstamp debug prints
        nfs: use time64_t internally
        sunrpc: convert to time64_t for expiry
        drm/etnaviv: avoid deprecated timespec
        drm/etnaviv: reject timeouts with tv_nsec >= NSEC_PER_SEC
        drm/msm: avoid using 'timespec'
        hfs/hfsplus: use 64-bit inode timestamps
        hostfs: pass 64-bit timestamps to/from user space
        packet: clarify timestamp overflow
        tsacct: add 64-bit btime field
        acct: stop using get_seconds()
        um: ubd: use 64-bit time_t where possible
        xtensa: ISS: avoid struct timeval
        dlm: use SO_SNDTIMEO_NEW instead of SO_SNDTIMEO_OLD
        ...
      22b17db4
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · a4fe2b4d
      Linus Torvalds authored
      Pull printk update from Petr Mladek:
       "Prevent replaying log on all consoles"
      
      * tag 'printk-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
        printk: fix exclusive_console replaying
      a4fe2b4d
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 3893c202
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "A regression fix, several cleanups and (maybe) plus an upcoming new
        mount api convert patch as a part of vfs update are considered
        available for this cycle.
      
        All commits have been in linux-next and tested with no smoke out.
      
        Summary:
      
         - fix an out-of-bound read access introduced in v5.3, which could
           rarely cause data corruption
      
         - various cleanup patches"
      
      * tag 'erofs-for-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: clean up z_erofs_submit_queue()
        erofs: fold in postsubmit_is_all_bypassed()
        erofs: fix out-of-bound read for shifted uncompressed block
        erofs: remove void tagging/untagging of workgroup pointers
        erofs: remove unused tag argument while registering a workgroup
        erofs: remove unused tag argument while finding a workgroup
        erofs: correct indentation of an assigned structure inside a function
      3893c202
    • Linus Torvalds's avatar
      Merge branch 'work.adfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 53070406
      Linus Torvalds authored
      Pull adfs updates from Al Viro:
       "adfs stuff for this cycle"
      
      * 'work.adfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (42 commits)
        fs/adfs: bigdir: Fix an error code in adfs_fplus_read()
        Documentation: update adfs filesystem documentation
        fs/adfs: mostly divorse inode number from indirect disc address
        fs/adfs: super: add support for E and E+ floppy image formats
        fs/adfs: super: extract filesystem block probe
        fs/adfs: dir: remove debug in adfs_dir_update()
        fs/adfs: super: fix inode dropping
        fs/adfs: bigdir: implement directory update support
        fs/adfs: bigdir: calculate and validate directory checkbyte
        fs/adfs: bigdir: directory validation strengthening
        fs/adfs: bigdir: extract directory validation
        fs/adfs: bigdir: factor out directory entry offset calculation
        fs/adfs: newdir: split out directory commit from update
        fs/adfs: newdir: clean up adfs_f_update()
        fs/adfs: newdir: merge adfs_dir_read() into adfs_f_read()
        fs/adfs: newdir: improve directory validation
        fs/adfs: newdir: factor out directory format validation
        fs/adfs: dir: use pointers to access directory head/tails
        fs/adfs: dir: add more efficient iterate() per-format method
        fs/adfs: dir: switch to iterate_shared method
        ...
      53070406
    • Linus Torvalds's avatar
      Merge branch 'work.openat2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 6aee4bad
      Linus Torvalds authored
      Pull openat2 support from Al Viro:
       "This is the openat2() series from Aleksa Sarai.
      
        I'm afraid that the rest of namei stuff will have to wait - it got
        zero review the last time I'd posted #work.namei, and there had been a
        leak in the posted series I'd caught only last weekend. I was going to
        repost it on Monday, but the window opened and the odds of getting any
        review during that... Oh, well.
      
        Anyway, openat2 part should be ready; that _did_ get sane amount of
        review and public testing, so here it comes"
      
      From Aleksa's description of the series:
       "For a very long time, extending openat(2) with new features has been
        incredibly frustrating. This stems from the fact that openat(2) is
        possibly the most famous counter-example to the mantra "don't silently
        accept garbage from userspace" -- it doesn't check whether unknown
        flags are present[1].
      
        This means that (generally) the addition of new flags to openat(2) has
        been fraught with backwards-compatibility issues (O_TMPFILE has to be
        defined as __O_TMPFILE|O_DIRECTORY|[O_RDWR or O_WRONLY] to ensure old
        kernels gave errors, since it's insecure to silently ignore the
        flag[2]). All new security-related flags therefore have a tough road
        to being added to openat(2).
      
        Furthermore, the need for some sort of control over VFS's path
        resolution (to avoid malicious paths resulting in inadvertent
        breakouts) has been a very long-standing desire of many userspace
        applications.
      
        This patchset is a revival of Al Viro's old AT_NO_JUMPS[3] patchset
        (which was a variant of David Drysdale's O_BENEATH patchset[4] which
        was a spin-off of the Capsicum project[5]) with a few additions and
        changes made based on the previous discussion within [6] as well as
        others I felt were useful.
      
        In line with the conclusions of the original discussion of
        AT_NO_JUMPS, the flag has been split up into separate flags. However,
        instead of being an openat(2) flag it is provided through a new
        syscall openat2(2) which provides several other improvements to the
        openat(2) interface (see the patch description for more details). The
        following new LOOKUP_* flags are added:
      
        LOOKUP_NO_XDEV:
      
           Blocks all mountpoint crossings (upwards, downwards, or through
           absolute links). Absolute pathnames alone in openat(2) do not
           trigger this. Magic-link traversal which implies a vfsmount jump is
           also blocked (though magic-link jumps on the same vfsmount are
           permitted).
      
        LOOKUP_NO_MAGICLINKS:
      
           Blocks resolution through /proc/$pid/fd-style links. This is done
           by blocking the usage of nd_jump_link() during resolution in a
           filesystem. The term "magic-links" is used to match with the only
           reference to these links in Documentation/, but I'm happy to change
           the name.
      
           It should be noted that this is different to the scope of
           ~LOOKUP_FOLLOW in that it applies to all path components. However,
           you can do openat2(NO_FOLLOW|NO_MAGICLINKS) on a magic-link and it
           will *not* fail (assuming that no parent component was a
           magic-link), and you will have an fd for the magic-link.
      
           In order to correctly detect magic-links, the introduction of a new
           LOOKUP_MAGICLINK_JUMPED state flag was required.
      
        LOOKUP_BENEATH:
      
           Disallows escapes to outside the starting dirfd's
           tree, using techniques such as ".." or absolute links. Absolute
           paths in openat(2) are also disallowed.
      
           Conceptually this flag is to ensure you "stay below" a certain
           point in the filesystem tree -- but this requires some additional
           to protect against various races that would allow escape using
           "..".
      
           Currently LOOKUP_BENEATH implies LOOKUP_NO_MAGICLINKS, because it
           can trivially beam you around the filesystem (breaking the
           protection). In future, there might be similar safety checks done
           as in LOOKUP_IN_ROOT, but that requires more discussion.
      
        In addition, two new flags are added that expand on the above ideas:
      
        LOOKUP_NO_SYMLINKS:
      
           Does what it says on the tin. No symlink resolution is allowed at
           all, including magic-links. Just as with LOOKUP_NO_MAGICLINKS this
           can still be used with NOFOLLOW to open an fd for the symlink as
           long as no parent path had a symlink component.
      
        LOOKUP_IN_ROOT:
      
           This is an extension of LOOKUP_BENEATH that, rather than blocking
           attempts to move past the root, forces all such movements to be
           scoped to the starting point. This provides chroot(2)-like
           protection but without the cost of a chroot(2) for each filesystem
           operation, as well as being safe against race attacks that
           chroot(2) is not.
      
           If a race is detected (as with LOOKUP_BENEATH) then an error is
           generated, and similar to LOOKUP_BENEATH it is not permitted to
           cross magic-links with LOOKUP_IN_ROOT.
      
           The primary need for this is from container runtimes, which
           currently need to do symlink scoping in userspace[7] when opening
           paths in a potentially malicious container.
      
           There is a long list of CVEs that could have bene mitigated by
           having RESOLVE_THIS_ROOT (such as CVE-2017-1002101,
           CVE-2017-1002102, CVE-2018-15664, and CVE-2019-5736, just to name a
           few).
      
        In order to make all of the above more usable, I'm working on
        libpathrs[8] which is a C-friendly library for safe path resolution.
        It features a userspace-emulated backend if the kernel doesn't support
        openat2(2). Hopefully we can get userspace to switch to using it, and
        thus get openat2(2) support for free once it's ready.
      
        Future work would include implementing things like
        RESOLVE_NO_AUTOMOUNT and possibly a RESOLVE_NO_REMOTE (to allow
        programs to be sure they don't hit DoSes though stale NFS handles)"
      
      * 'work.openat2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        Documentation: path-lookup: include new LOOKUP flags
        selftests: add openat2(2) selftests
        open: introduce openat2(2) syscall
        namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution
        namei: LOOKUP_IN_ROOT: chroot-like scoped resolution
        namei: LOOKUP_BENEATH: O_BENEATH-like scoped resolution
        namei: LOOKUP_NO_XDEV: block mountpoint crossing
        namei: LOOKUP_NO_MAGICLINKS: block magic-link resolution
        namei: LOOKUP_NO_SYMLINKS: block symlink resolution
        namei: allow set_root() to produce errors
        namei: allow nd_jump_link() to produce errors
        nsfs: clean-up ns_get_path() signature to return int
        namei: only return -ECHILD from follow_dotdot_rcu()
      6aee4bad
    • Linus Torvalds's avatar
      Merge branch 'urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 15d66324
      Linus Torvalds authored
      Pull RCU warning removal from Paul McKenney:
       "A single commit that fixes an embarrassing bug discussed here:
      
            https://lore.kernel.org/lkml/20200125131425.GB16136@zn.tnic/
      
        which apparently also affects smaller systems"
      
      [ This was sent to Ingo, but since I see the issue on the laptop I use for
        testing during the merge window, I'm doing the pull directly     - Linus ]
      
      * 'urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        rcu: Forgive slow expedited grace periods at boot time
      15d66324
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 80b60e38
      Linus Torvalds authored
      Pull core fixes from Ingo Molnar:
       "Three objtool fixes, plus marking SFI as obsolete"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Skip samples subdirectory
        objtool: Fix ARCH=x86_64 build error
        objtool: Silence build output
        MAINTAINERS: Mark simple firmware interface (SFI) obsolete
      80b60e38
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 701a9c80
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here is the big char/misc/whatever driver changes for 5.6-rc1
      
        Included in here are loads of things from a variety of different
        driver subsystems:
         - soundwire updates
         - binder updates
         - nvmem updates
         - firmware drivers updates
         - extcon driver updates
         - various misc driver updates
         - fpga driver updates
         - interconnect subsystem and driver updates
         - bus driver updates
         - uio driver updates
         - mei driver updates
         - w1 driver cleanups
         - various other small driver updates
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (86 commits)
        mei: me: add jasper point DID
        char: hpet: Use flexible-array member
        binder: fix log spam for existing debugfs file creation.
        mei: me: add comet point (lake) H device ids
        nvmem: add QTI SDAM driver
        dt-bindings: nvmem: add binding for QTI SPMI SDAM
        dt-bindings: imx-ocotp: Add i.MX8MP compatible
        dt-bindings: soundwire: fix example
        soundwire: cadence: fix kernel-doc parameter descriptions
        soundwire: intel: report slave_ids for each link to SOF driver
        siox: Use the correct style for SPDX License Identifier
        w1: omap-hdq: Simplify driver with PM runtime autosuspend
        firmware: stratix10-svc: Remove unneeded semicolon
        firmware: google: Probe for a GSMI handler in firmware
        firmware: google: Unregister driver_info on failure and exit in gsmi
        firmware: google: Release devices before unregistering the bus
        slimbus: qcom: add missed clk_disable_unprepare in remove
        slimbus: Use the correct style for SPDX License Identifier
        slimbus: qcom-ngd-ctrl: Use dma_request_chan() instead dma_request_slave_channel()
        dt-bindings: SLIMBus: add slim devices optional properties
        ...
      701a9c80
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 975f9ce9
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here is a small set of changes for 5.6-rc1 for the driver core and
        some firmware subsystem changes.
      
        Included in here are:
         - device.h splitup like you asked for months ago
         - devtmpfs minor cleanups
         - firmware core minor changes
         - debugfs fix for lockdown mode
         - kernfs cleanup fix
         - cpu topology minor fix
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (22 commits)
        firmware: Rename FW_OPT_NOFALLBACK to FW_OPT_NOFALLBACK_SYSFS
        devtmpfs: factor out common tail of devtmpfs_{create,delete}_node
        devtmpfs: initify a bit
        devtmpfs: simplify initialization of mount_dev
        devtmpfs: factor out setup part of devtmpfsd()
        devtmpfs: fix theoretical stale pointer deref in devtmpfsd()
        driver core: platform: fix u32 greater or equal to zero comparison
        cpu-topology: Don't error on more than CONFIG_NR_CPUS CPUs in device tree
        debugfs: Return -EPERM when locked down
        driver core: Print device when resources present in really_probe()
        driver core: Fix test_async_driver_probe if NUMA is disabled
        driver core: platform: Prevent resouce overflow from causing infinite loops
        fs/kernfs/dir.c: Clean code by removing always true condition
        component: do not dereference opaque pointer in debugfs
        drivers/component: remove modular code
        debugfs: Fix warnings when building documentation
        device.h: move 'struct driver' stuff out to device/driver.h
        device.h: move 'struct class' stuff out to device/class.h
        device.h: move 'struct bus' stuff out to device/bus.h
        device.h: move dev_printk()-like functions to dev_printk.h
        ...
      975f9ce9
    • Linus Torvalds's avatar
      Merge tag 'staging-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 7ba31c3f
      Linus Torvalds authored
      Pull staging and IIO updates from Greg KH:
       "Here is the big staging/iio driver patches for 5.6-rc1
      
        Included in here are:
      
         - lots of new IIO drivers and updates for that subsystem
      
         - the usual huge quantity of minor cleanups for staging drivers
      
         - removal of the following staging drivers:
             - isdn/avm
             - isdn/gigaset
             - isdn/hysdn
             - octeon-usb
             - octeon ethernet
      
        Overall we deleted far more lines than we added, removing over 40k of
        old and obsolete driver code.
      
        All of these changes have been in linux-next for a while with no
        reported issues"
      
      * tag 'staging-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (353 commits)
        staging: most: usb: check for NULL device
        staging: next: configfs: fix release link
        staging: most: core: fix logging messages
        staging: most: core: remove container struct
        staging: most: remove struct device core driver
        staging: most: core: drop device reference
        staging: most: remove device from interface structure
        staging: comedi: drivers: fix spelling mistake "to" -> "too"
        staging: exfat: remove fs_func struct.
        staging: wilc1000: avoid mutex unlock without lock in wilc_wlan_handle_txq()
        staging: wilc1000: return zero on success and non-zero on function failure
        staging: axis-fifo: replace spinlock with mutex
        staging: wilc1000: remove unused code prior to throughput enhancement in SPI
        staging: wilc1000: added 'wilc_' prefix for 'struct assoc_resp' name
        staging: wilc1000: move firmware API struct's to separate header file
        staging: wilc1000: remove use of infinite loop conditions
        staging: kpc2000: rename variables with kpc namespace
        staging: vt6656: Remove memory buffer from vnt_download_firmware.
        staging: vt6656: Just check NEWRSR_DECRYPTOK for RX_FLAG_DECRYPTED.
        staging: vt6656: Use vnt_rx_tail struct for tail variables.
        ...
      7ba31c3f
    • Linus Torvalds's avatar
      Merge tag 'tty-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · ca9b5b62
      Linus Torvalds authored
      Pull tty/serial driver updates from Greg KH:
       "Here are the big set of tty and serial driver updates for 5.6-rc1
      
        Included in here are:
         - dummy_con cleanups (touches lots of arch code)
         - sysrq logic cleanups (touches lots of serial drivers)
         - samsung driver fixes (wasn't really being built)
         - conmakeshash move to tty subdir out of scripts
         - lots of small tty/serial driver updates
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits)
        tty: n_hdlc: Use flexible-array member and struct_size() helper
        tty: baudrate: SPARC supports few more baud rates
        tty: baudrate: Synchronise baud_table[] and baud_bits[]
        tty: serial: meson_uart: Add support for kernel debugger
        serial: imx: fix a race condition in receive path
        serial: 8250_bcm2835aux: Document struct bcm2835aux_data
        serial: 8250_bcm2835aux: Use generic remapping code
        serial: 8250_bcm2835aux: Allocate uart_8250_port on stack
        serial: 8250_bcm2835aux: Suppress register_port error on -EPROBE_DEFER
        serial: 8250_bcm2835aux: Suppress clk_get error on -EPROBE_DEFER
        serial: 8250_bcm2835aux: Fix line mismatch on driver unbind
        serial_core: Remove unused member in uart_port
        vt: Correct comment documenting do_take_over_console()
        vt: Delete comment referencing non-existent unbind_con_driver()
        arch/xtensa/setup: Drop dummy_con initialization
        arch/x86/setup: Drop dummy_con initialization
        arch/unicore32/setup: Drop dummy_con initialization
        arch/sparc/setup: Drop dummy_con initialization
        arch/sh/setup: Drop dummy_con initialization
        arch/s390/setup: Drop dummy_con initialization
        ...
      ca9b5b62
    • Linus Torvalds's avatar
      Merge tag 'usb-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · aac96626
      Linus Torvalds authored
      Pull USB/Thunderbolt/PHY driver updates from Greg KH:
       "Here is the big USB and Thunderbolt and PHY driver updates for
        5.6-rc1.
      
        With the advent of USB4, "Thunderbolt" has really become USB4, so the
        renaming of the Kconfig option and starting to share subsystem code
        has begun, hence both subsystems coming in through the same tree here.
      
        PHY driver updates also touched USB drivers, so that is coming in
        through here as well.
      
        Major stuff included in here are:
         - USB 4 initial support added (i.e. Thunderbolt)
         - musb driver updates
         - USB gadget driver updates
         - PHY driver updates
         - USB PHY driver updates
         - lots of USB serial stuff fixed up
         - USB typec updates
         - USB-IP fixes
         - lots of other smaller USB driver updates
      
        All of these have been in linux-next for a while now (the usb-serial
        tree is already tested in linux-next on its own before merged into
        here), with no reported issues"
      
      [ Removed an incorrect compile test enablement for PHY_EXYNOS5250_SATA
        that causes configuration warnings    - Linus ]
      
      * tag 'usb-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (207 commits)
        Doc: ABI: add usb charger uevent
        usb: phy: show USB charger type for user
        usb: cdns3: fix spelling mistake and rework grammar in text
        usb: phy: phy-gpio-vbus-usb: Convert to GPIO descriptors
        USB: serial: cyberjack: fix spelling mistake "To" -> "Too"
        USB: serial: ir-usb: simplify endpoint check
        USB: serial: ir-usb: make set_termios synchronous
        USB: serial: ir-usb: fix IrLAP framing
        USB: serial: ir-usb: fix link-speed handling
        USB: serial: ir-usb: add missing endpoint sanity check
        usb: typec: fusb302: fix "op-sink-microwatt" default that was in mW
        usb: typec: wcove: fix "op-sink-microwatt" default that was in mW
        usb: dwc3: pci: add ID for the Intel Comet Lake -V variant
        usb: typec: tcpci: mask event interrupts when remove driver
        usb: host: xhci-tegra: set MODULE_FIRMWARE for tegra186
        usb: chipidea: add inline for ci_hdrc_host_driver_init if host is not defined
        usb: chipidea: handle single role for usb role class
        usb: musb: fix spelling mistake: "periperal" -> "peripheral"
        phy: ti: j721e-wiz: Fix build error without CONFIG_OF_ADDRESS
        USB: usbfs: Always unlink URBs in reverse order
        ...
      aac96626
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 6ba3d706
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "This is the bulk of pin control changes, nothing too exciting about
        this.
      
        Some changes hit arch/sh and arch/arm but are well isolated and
        acknowledged by the respective arch maintainers.
      
        Core changes:
      
         - Dropped the chained IRQ setup callback into GPIOLIB as we got rid
           of the last users of that in this changeset.
      
        New drivers:
      
         - New driver for Ingenic X1830.
      
         - New driver for Freescale i.MX8MP.
      
        Driver enhancements:
      
         - Fix all remaining Intel drivers to pass their IRQ chips along with
           the GPIO chips.
      
         - Intel Baytrail allocates its irqchip dynamically.
      
         - Intel Lynxpoint is thoroughly rewritten and modernized.
      
         - Aspeed AST2600 pin muxing and configuration is much improved.
      
         - Qualcomm SC7180 functions are updated and wakeup interrupt map is
           provided.
      
         - A whole slew of Renesas SH-PFC cleanups and improvements.
      
         - Fix up the Intel DT bindings to use the generic YAML DT bindings
           schema (a first user of this)"
      
      * tag 'pinctrl-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (99 commits)
        pinctrl: madera: Remove extra blank line
        pinctrl: qcom: Don't lock around irq_set_irq_wake()
        pinctrl: mvebu: armada-37xx: use use platform api
        gpio: Drop the chained IRQ handler assign function
        pinctrl: freescale: Add i.MX8MP pinctrl driver support
        dt-bindings: imx: Add pinctrl binding doc for i.MX8MP
        pinctrl: tigerlake: Tiger Lake uses _HID enumeration
        pinctrl: sunrisepoint: Add Coffee Lake-S ACPI ID
        pinctrl: iproc: Use platform_get_irq_optional() to avoid error message
        pinctrl: dt-bindings: Fix some errors in the lgm and pinmux schema
        pinctrl: intel: Pass irqchip when adding gpiochip
        pinctrl: intel: Add GPIO <-> pin mapping ranges via callback
        pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq pin to output
        pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins
        pinctrl: sunrisepoint: Add missing Interrupt Status register offset
        pinctrl: sh-pfc: Split R-Car H3 support in two independent drivers
        pinctrl: artpec6: fix __iomem on reg in set
        pinctrl: ingenic: Use devm_platform_ioremap_resource()
        pinctrl: ingenic: Factorize irq_set_type function
        pinctrl: ingenic: Remove duplicated ingenic_chip_info structures
        ...
      6ba3d706
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · fa889d85
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v5.6 kernel cycle.
      
        This is a pretty calm cycle so far, nothing special going on really.
        Some more changes will come in from the irqchip and pin control trees.
      
        I also deleted an orphan include file for FMC that was dangling since
        subsystem was removed.
      
        Core changes:
      
         - Document the usecases for the kernelspace vs userspace handling of
           GPIOs.
      
         - Handle MSI (message signalled interrupts) properly in the core
           hierarchical irqdomain code.
      
         - Fix a rare race condition while initializing the descriptor array.
      
        New drivers:
      
         - Xylon LogiCVC GPIO driver.
      
         - WDC934x GPIO controller driver.
      
        Driver improvements:
      
         - Implemented suspend/resume in the Tegra driver.
      
         - MPC8xx edge detection fixup.
      
         - Properly convert ThunderX to use hierarchical irqdomain with
           GPIOLIB_IRQCHIP on top of the revert of the previous buggy
           switchover. This time it works (hopefully).
      
        Misc:
      
         - Drop a FMC remnant file <linux/ipmi-fru.h>
      
         - A slew of fixes"
      
      * tag 'gpio-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (48 commits)
        MAINTAINERS: Replace Tien Hock Loh as Altera PIO maintainer
        gpiolib: hold gpio devices lock until ->descs array is initialised
        gpio: aspeed-sgpio: fixed typos
        gpio: mvebu: clear irq in edge cause register before unmask edge irq
        gpiolib: Lower verbosity when allocating hierarchy irq
        gpiolib: Remove duplicated function gpio_do_set_config()
        gpio: Fix the no return statement warning
        gpio: wcd934x: Add support to wcd934x gpio controller
        gpiolib: remove set but not used variable 'config'
        gpio: vx855: fixed a typo
        gpio: mockup: sort headers alphabetically
        gpio: mockup: update the license tag
        gpio: Remove the unused flags
        gpiolib: Set lockdep class for hierarchical irq domains
        gpio: thunderx: Switch to GPIOLIB_IRQCHIP
        gpiolib: Add the support for the msi parent domain
        gpiolib: Add support for the irqdomain which doesn't use irq_fwspec as arg
        gpio: Add use guidance documentation
        dt-bindings: gpio: wcd934x: Add bindings for gpio
        gpio: altera: change to platform_get_irq_optional to avoid false-positive error
        ...
      fa889d85
    • Linus Torvalds's avatar
      Merge branch 'for-v5.6' of git://git.kernel.org:/pub/scm/linux/kernel/git/jmorris/linux-security · b3a60822
      Linus Torvalds authored
      Pull security subsystem update from James Morris:
       "Just one minor fix this time"
      
      * 'for-v5.6' of git://git.kernel.org:/pub/scm/linux/kernel/git/jmorris/linux-security:
        security: remove EARLY_LSM_COUNT which never used
      b3a60822
    • Linus Torvalds's avatar
      Merge branch 'next-integrity' of... · 73a0bff2
      Linus Torvalds authored
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity
      
      Pull IMA updates from Mimi Zohar:
       "Two new features - measuring certificates and querying IMA for a file
        hash - and three bug fixes:
      
         - Measuring certificates is like the rest of IMA, based on policy,
           but requires loading a custom policy. Certificates loaded onto a
           keyring, for example during early boot, before a custom policy has
           been loaded, are queued and only processed after loading the custom
           policy.
      
         - IMA calculates and caches files hashes. Other kernel subsystems,
           and possibly kernel modules, are interested in accessing these
           cached file hashes.
      
        The bug fixes prevent classifying a file short read (e.g. shutdown) as
        an invalid file signature, add a missing blank when displaying the
        securityfs policy rules containing LSM labels, and, lastly, fix the
        handling of the IMA policy information for unknown LSM labels"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        IMA: Defined delayed workqueue to free the queued keys
        IMA: Call workqueue functions to measure queued keys
        IMA: Define workqueue for early boot key measurements
        IMA: pre-allocate buffer to hold keyrings string
        ima: ima/lsm policy rule loading logic bug fixes
        ima: add the ability to query the cached hash of a given file
        ima: Add a space after printing LSM rules for readability
        IMA: fix measuring asymmetric keys Kconfig
        IMA: Read keyrings= option from the IMA policy
        IMA: Add support to limit measuring keys
        KEYS: Call the IMA hook to measure keys
        IMA: Define an IMA hook to measure keys
        IMA: Add KEY_CHECK func to measure keys
        IMA: Check IMA policy flag
        ima: avoid appraise error for hash calc interrupt
      73a0bff2
    • Linus Torvalds's avatar
      Merge tag 'tomoyo-pr-20200128' of git://git.osdn.net/gitroot/tomoyo/tomoyo-test1 · 2cf64d7c
      Linus Torvalds authored
      Pull tomoyo update from Tetsuo Handa:
       "One 'int' -> 'atomic_t' conversion patch to suppress KCSAN's warning"
      
      * tag 'tomoyo-pr-20200128' of git://git.osdn.net/gitroot/tomoyo/tomoyo-test1:
        tomoyo: Use atomic_t for statistics counter
      2cf64d7c
    • Linus Torvalds's avatar
      Merge tag 's390-5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 740eaf7d
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Add clang 10 build support.
      
       - Fix BUG() implementation to contain precise bug address, which is
         relevant for kprobes.
      
       - Make ftraced function appear in a stacktrace.
      
       - Minor perf improvements and refactoring.
      
       - Possible deadlock and recovery fixes in pci code.
      
      * tag 's390-5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: fix __EMIT_BUG() macro
        s390/ftrace: generate traced function stack frame
        s390: adjust -mpacked-stack support check for clang 10
        s390/jump_label: use "i" constraint for clang
        s390/cpum_sf: Use DIV_ROUND_UP
        s390/cpum_sf: Use kzalloc and minor changes
        s390/cpum_sf: Convert debug trace to common layout
        s390/pci: Fix possible deadlock in recover_store()
        s390/pci: Recover handle in clp_set_pci_fn()
      740eaf7d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · fad7bdc9
      Linus Torvalds authored
      Pull UML updates from Anton Ivanov:
       "I am sending this on behalf of Richard who is traveling.
      
        This contains the following changes for UML:
      
         - Fix for time travel mode
      
         - Disable CONFIG_CONSTRUCTORS again
      
         - A new command line option to have an non-raw serial line
      
         - Preparations to remove obsolete UML network drivers"
      
      * tag 'for-linus-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Fix time-travel=inf-cpu with xor/raid6
        Revert "um: Enable CONFIG_CONSTRUCTORS"
        um: Mark non-vector net transports as obsolete
        um: Add an option to make serial driver non-raw
      fad7bdc9
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · a78416d9
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Kprobe events added 'ustring' to distinguish reading strings from
        kernel space or user space.
      
        But the creating of the event format file only checks for 'string' to
        display string formats. 'ustring' must also be handled"
      
      * tag 'trace-v5.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing/kprobes: Have uname use __get_str() in print_fmt
      a78416d9
    • Linus Torvalds's avatar
      Merge tag 'thermal-v5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux · abb22e44
      Linus Torvalds authored
      Pull thermal updates from Daniel Lezcano:
      
       - Depromote debug print on the db8500 platform (Linus Walleij)
      
       - Fix compilation warning when compiling with make W=1 (Amit Kucheria)
      
       - Code cleanup and refactoring, regmap conversion and add hwmon support
         on Qoriq (Andrey Smirnov)
      
       - Add an idle injection cpu cooling device and its documentation,
         rename the cpu_cooling device to cpufreq_cooling device (Daniel
         Lezcano)
      
       - Convert unexported functions to static, add the __init annotation in
         the thermal-of code and remove the pointless wrapper functions
         (Daniel Lezcano)
      
       - Fix register offset for Armada XP and register reset bit
         initialization (Zak Hays)
      
       - Enable hwmon on the rockchip (Stefan Schaeckeler)
      
       - Add the thermal sensor for the H6/H5/H3/A64/A83T/R40 sun8i platform
         and their device tree bindings, followed by a fix for the ths number
         and the sparse warnings (Yangtao Li)
      
       - Code cleansup for the sun8i and hwmon support (Yangtao Li)
      
       - Silent some messages which are misleading given the changes made in
         the previous version on generic-adc (Martin Blumenstingl)
      
       - Rename exynos to Exynos (Krzysztof Kozlowski)
      
       - Add the bcm2711 thermal driver with the device tree bindings (Stefan
         Wahren)
      
       - Use usleep_range() instead of udelay() as the call is always done in
         a sleep-able context (Geert Uytterhoeven)
      
       - Do code cleanup and re-organization to set the scene for a new
         process for the brcmstb (Florian Fainelli)
      
       - Fix bindings check issues on brcm (Stefan Wahren)
      
       - Add Jasper Lake support on int340x (Nivedita Swaminathan)
      
       - Add Comet Lake support on intel pch (Gayatri Kammela)
      
       - Fix unmatched pci_release_region() on x86 (Chuhong Yuan)
      
       - Remove temperature boundaries for rcar and rcar3 (Niklas Söderlund)
      
       - Fix return value to -ENODEV when thermal_zone_of_sensor_register() is
         called with the of-node is missing (Peter Mamonov)
      
       - Code cleanup, interrupt bouncing, and better support on stm32 (Pascal
         Paillet)
      
      * tag 'thermal-v5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (66 commits)
        thermal: stm32: Fix low threshold interrupt flood
        thermal: stm32: Improve temperature computing
        thermal: stm32: Handle multiple trip points
        thermal: stm32: Disable interrupts at probe
        thermal: stm32: Rework sensor mode management
        thermal: stm32: Fix icifr register name
        thermal: of: Make thermal_zone_of_sensor_register return -ENODEV if a sensor OF node is missing
        thermal: rcar_gen3_thermal: Remove temperature bound
        thermal: rcar_thermal: Remove temperature bound
        thermal: intel: intel_pch_thermal: Add Comet Lake (CML) platform support
        thermal: intel: Fix unmatched pci_release_region
        thermal: int340x: processor_thermal: Add Jasper Lake support
        dt-bindings: brcm,avs-ro-thermal: Fix binding check issues
        thermal: brcmstb_thermal: Register different ops per process
        thermal: brcmstb_thermal: Restructure interrupt registration
        thermal: brcmstb_thermal: Add 16nm process thermal parameters
        dt-bindings: thermal: Define BCM7216 thermal sensor compatible
        thermal: brcmstb_thermal: Prepare to support a different process
        thermal: brcmstb_thermal: Do not use DT coefficients
        thermal: rcar_thermal: Use usleep_range() instead of udelay()
        ...
      abb22e44
    • Linus Torvalds's avatar
      Merge tag 'sound-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · fb95aae6
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "As the diffstat shows we've had again a lot of works done for this
        cycle: the majority of changes are the continued componentization and
        code refactoring in ASoC, the tree-wide PCM API updates and cleanups
        and SOF updates while a few ASoC driver updates are seen, too.
      
        Here we go, some highlights:
      
        Core:
         - Finally y2038 support landed to ALSA ABI; some ioctls have been
           extended and lots of tricks were applied
         - Applying the new managed PCM buffer API to all drivers; the API
           itself was already merged in 5.5
         - The already deprecated dimension support in ALSA control API is
           dropped completely now
         - Verification of ALSA control elements to catch API misuses
      
        ASoC:
         - Further code refactorings and moving things to the component level
         - Lots of updates and improvements on SOF / Intel drivers; now
           including common HDMI driver and SoundWire support
         - New driver support for Ingenic JZ4770, Mediatek MT6660, Qualcomm
           WCD934x and WSA881x, and Realtek RT700, RT711, RT715, RT1011,
           RT1015 and RT1308
      
        HD-audio:
         - Improved ring-buffer communications using waitqueue
         - Drop the superfluous buffer preallocation on x86
      
        Others:
         - Many code cleanups, mostly constifications over the whole tree
         - USB-audio: quirks for MOTU, Corsair Virtuoso, Line6 Helix
         - FireWire: code refactoring for oxfw and dice drivers"
      
      * tag 'sound-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (638 commits)
        ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82
        ALSA: hda: Add Clevo W65_67SB the power_save blacklist
        ASoC: soc-core: remove null_snd_soc_ops
        ASoC: soc-pcm: add soc_rtd_trigger()
        ASoC: soc-pcm: add soc_rtd_hw_free()
        ASoC: soc-pcm: add soc_rtd_hw_params()
        ASoC: soc-pcm: add soc_rtd_prepare()
        ASoC: soc-pcm: add soc_rtd_shutdown()
        ASoC: soc-pcm: add soc_rtd_startup()
        ASoC: rt1015: add rt1015 amplifier driver
        ASoC: madera: Correct some kernel doc
        ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order
        ASoC: Intel: skl_hda_dsp_common: Fix global-out-of-bounds bug
        ASoC: madera: Correct DMIC only input hook ups
        ALSA: cs46xx: fix spelling mistake "to" -> "too"
        ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
        ASoC: Add MediaTek MT6660 Speaker Amp Driver
        ASoC: dt-bindings: rt5645: add suppliers
        ASoC: max98090: fix deadlock in max98090_dapm_put_enum_double()
        ASoC: dapm: add snd_soc_dapm_put_enum_double_locked
        ...
      fb95aae6