1. 30 Aug, 2024 6 commits
    • Jason A. Donenfeld's avatar
      selftests: vDSO: separate LDLIBS from CFLAGS for libsodium · a5330eb3
      Jason A. Donenfeld authored
      On systems that set -Wl,--as-needed, putting the -lsodium in the wrong
      place on the command line means we get a linker error:
      
            CC       vdso_test_chacha
          /usr/bin/ld: /tmp/ccKpjnSM.o: in function `main':
          vdso_test_chacha.c:(.text+0x276): undefined reference to `crypto_stream_chacha20'
          collect2: error: ld returned 1 exit status
      
      Fix this by passing pkg-config's --libs output to the LDFLAGS field
      instead of the CFLAGS field, as is customary.
      Reported-by: default avatarAdhemerval Zanella Netto <adhemerval.zanella@linaro.org>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      a5330eb3
    • Xi Ruoyao's avatar
      selftests: vDSO: add --cflags for pkg-config command querying libsodium · 1e661b34
      Xi Ruoyao authored
      When libsodium is installed into its own prefix, the --cflags output is
      needed for the compiler to find libsodium headers.
      Signed-off-by: default avatarXi Ruoyao <xry111@xry111.site>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      1e661b34
    • Christophe Leroy's avatar
      selftests: vDSO: look for arch-specific function name in getrandom test · e1bbcab4
      Christophe Leroy authored
      Don't hard-code x86 specific names. Rather, use vdso_config definitions
      to find the correct function matching the architecture.
      
      Add random VDSO function names in names[][]. Remove the #ifdef
      CONFIG_VDSO32, as having the name there all the time is harmless and
      guaranties a steady index for following strings.
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      [Jason: add [6] to variable declaration rather than each usage site.]
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      e1bbcab4
    • Christophe Leroy's avatar
      selftests: vDSO: fix include order in build of test_vdso_chacha · f8d92fc5
      Christophe Leroy authored
      Building test_vdso_chacha currently leads to following issue:
      
        In file included from /home/chleroy/linux-powerpc/include/linux/limits.h:7,
                         from /opt/powerpc64-e5500--glibc--stable-2024.02-1/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/local_lim.h:38,
                         from /opt/powerpc64-e5500--glibc--stable-2024.02-1/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/posix1_lim.h:161,
                         from /opt/powerpc64-e5500--glibc--stable-2024.02-1/powerpc64-buildroot-linux-gnu/sysroot/usr/include/limits.h:195,
                         from /opt/powerpc64-e5500--glibc--stable-2024.02-1/lib/gcc/powerpc64-buildroot-linux-gnu/12.3.0/include-fixed/limits.h:203,
                         from /opt/powerpc64-e5500--glibc--stable-2024.02-1/lib/gcc/powerpc64-buildroot-linux-gnu/12.3.0/include-fixed/syslimits.h:7,
                         from /opt/powerpc64-e5500--glibc--stable-2024.02-1/lib/gcc/powerpc64-buildroot-linux-gnu/12.3.0/include-fixed/limits.h:34,
                         from /tmp/sodium/usr/local/include/sodium/export.h:7,
                         from /tmp/sodium/usr/local/include/sodium/crypto_stream_chacha20.h:14,
                         from vdso_test_chacha.c:6:
        /opt/powerpc64-e5500--glibc--stable-2024.02-1/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/xopen_lim.h:99:6: error: missing binary operator before token "("
           99 | # if INT_MAX == 32767
              |      ^~~~~~~
        /opt/powerpc64-e5500--glibc--stable-2024.02-1/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/xopen_lim.h:102:7: error: missing binary operator before token "("
          102 | #  if INT_MAX == 2147483647
              |       ^~~~~~~
        /opt/powerpc64-e5500--glibc--stable-2024.02-1/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/xopen_lim.h:126:6: error: missing binary operator before token "("
          126 | # if LONG_MAX == 2147483647
              |      ^~~~~~~~
      
      This is due to kernel include/linux/limits.h being included instead of
      libc's limits.h.
      
      This is because directory include/ is added through option -isystem so
      it goes prior to glibc's include directory.
      
      Replace -isystem by -idirafter.
      
      But this implies that now tools/include/linux/linkage.h is included
      instead of include/linux/linkage.h, so define a stub for
      SYM_FUNC_START() and SYM_FUNC_END().
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      f8d92fc5
    • Christophe Leroy's avatar
      selftests: vDSO: don't hard-code location of vDSO sources · 20a9af05
      Christophe Leroy authored
      Architectures use different location for vDSO sources:
      
      	arch/mips/vdso
      	arch/sparc/vdso
      	arch/arm64/kernel/vdso
      	arch/riscv/kernel/vdso
      	arch/csky/kernel/vdso
      	arch/x86/um/vdso
      	arch/x86/entry/vdso
      	arch/powerpc/kernel/vdso
      	arch/arm/vdso
      	arch/loongarch/vdso
      
      Don't hard-code vdso sources location in selftest Makefile. Instead
      create a vdso/ symbolic link in tools/arch/$arch/ and update Makefile
      accordingly.
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      20a9af05
    • Jason A. Donenfeld's avatar
      selftests: vDSO: simplify getrandom thread local storage and structs · 01b52f01
      Jason A. Donenfeld authored
      Rather than using pthread_get/set_specific, just use gcc's __thread
      annotation, which is noticeably faster and makes the code more obvious.
      
      Also, just have one simplified struct called vgrnd, instead of trying to
      split things up semantically. Those divisions were useful when this code
      was split across several commit *messages*, but doesn't make as much
      sense within a single file. This should make the code more clear and
      provide a better example for implementers.
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      01b52f01
  2. 29 Aug, 2024 1 commit
    • Linus Torvalds's avatar
      Merge tag 'random-6.11-rc6-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · d5d547aa
      Linus Torvalds authored
      Pull random number generator fix from Jason Donenfeld:
       "Reject invalid flags passed to vgetrandom() in the same way that
        getrandom() does, so that the behavior is the same, from Yann.
      
        The flags argument to getrandom() only has a behavioral effect on the
        function if the RNG isn't initialized yet, so vgetrandom() falls back
        to the syscall in that case. But if the RNG is initialized, all of the
        flags behave the same way, so vgetrandom() didn't bother checking
        them, and just ignored them entirely.
      
        But that doesn't account for invalid flags passed in, which need to be
        rejected so we can use them later"
      
      * tag 'random-6.11-rc6-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
        random: vDSO: reject unknown getrandom() flags
      d5d547aa
  3. 28 Aug, 2024 6 commits
  4. 27 Aug, 2024 6 commits
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.11-rc6' of... · 3ec3f5fc
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching fix from Petr Mladek:
       "Selftest regression fix"
      
      * tag 'livepatching-for-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        selftests/livepatch: wait for atomic replace to occur
      3ec3f5fc
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 41594663
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
      
       - Fix the hwirq map and pin offsets in the Qualcomm X1E80100 driver
      
       - Fix the pin range handling in the AT91 driver so it works again
      
       - Fix a NULL-dereference risk in pinctrl single
      
       - Fix a serious biasing bug in the Mediatek driver
      
       - Fix the level trigged IRQ in the StarFive JH7110
      
       - Fix the iomux width in the Rockchip GPIO2-B pin handling
      
      * tag 'pinctrl-v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: rockchip: correct RK3328 iomux width flag for GPIO2-B pins
        pinctrl: starfive: jh7110: Correct the level trigger configuration of iev register
        pinctrl: qcom: x1e80100: Fix special pin offsets
        pinctrl: mediatek: common-v2: Fix broken bias-disable for PULL_PU_PD_RSEL_TYPE
        pinctrl: single: fix potential NULL dereference in pcs_get_function()
        pinctrl: at91: make it work with current gpiolib
        pinctrl: qcom: x1e80100: Update PDC hwirq map
      41594663
    • Linus Torvalds's avatar
      Merge tag 'sound-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 6ace1c7e
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "It became a bit larger collection of fixes than wished at this time,
        but all changes are small and mostly device-specific fixes that should
        be fairly safe to apply.
      
        Majority of fixes are about ASoC for AMD SOF, Cirrus codecs, lpass,
        etc, in addition to the usual HD-audio quirks / fixes"
      
      * tag 'sound-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (22 commits)
        ALSA: hda: hda_component: Fix mutex crash if nothing ever binds
        ALSA: hda/realtek: support HP Pavilion Aero 13-bg0xxx Mute LED
        ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book3 Ultra
        ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
        ASoC: cs-amp-lib-test: Force test calibration blob entries to be valid
        ALSA: hda/realtek - FIxed ALC285 headphone no sound
        ALSA: hda/realtek - Fixed ALC256 headphone no sound
        ASoC: allow module autoloading for table board_ids
        ASoC: allow module autoloading for table db1200_pids
        ALSA: hda: cs35l56: Don't use the device index as a calibration index
        ALSA: seq: Skip event type filtering for UMP events
        ALSA: hda/realtek: Enable mute/micmute LEDs on HP Laptop 14-ey0xxx
        ASoC: SOF: amd: Fix for acp init sequence
        ASoC: amd: acp: fix module autoloading
        ASoC: mediatek: mt8188: Mark AFE_DAC_CON0 register as volatile
        ASoC: codecs: wcd937x: Fix missing de-assert of reset GPIO
        ASoC: SOF: mediatek: Add missing board compatible
        ASoC: MAINTAINERS: Drop Banajit Goswami from Qualcomm sound drivers
        ASoC: SOF: amd: Fix for incorrect acp error register offsets
        ASoC: SOF: amd: move iram-dram fence register programming sequence
        ...
      6ace1c7e
    • Stefan Berger's avatar
      tpm: ibmvtpm: Call tpm2_sessions_init() to initialize session support · 08d08e2e
      Stefan Berger authored
      Commit d2add27c ("tpm: Add NULL primary creation") introduced
      CONFIG_TCG_TPM2_HMAC. When this option is enabled on ppc64 then the
      following message appears in the kernel log due to a missing call to
      tpm2_sessions_init().
      
      [    2.654549] tpm tpm0: auth session is not active
      
      Add the missing call to tpm2_session_init() to the ibmvtpm driver to
      resolve this issue.
      
      Cc: stable@vger.kernel.org # v6.10+
      Fixes: d2add27c ("tpm: Add NULL primary creation")
      Signed-off-by: default avatarStefan Berger <stefanb@linux.ibm.com>
      Reviewed-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      08d08e2e
    • Filipe Manana's avatar
      btrfs: fix uninitialized return value from btrfs_reclaim_sweep() · ecb54277
      Filipe Manana authored
      The return variable 'ret' at btrfs_reclaim_sweep() is never assigned if
      none of the space infos is reclaimable (for example if periodic reclaim
      is disabled, which is the default), so we return an undefined value.
      
      This can be fixed my making btrfs_reclaim_sweep() not return any value
      as well as do_reclaim_sweep() because:
      
      1) do_reclaim_sweep() always returns 0, so we can make it return void;
      
      2) The only caller of btrfs_reclaim_sweep() (btrfs_reclaim_bgs()) doesn't
         care about its return value, and in its context there's nothing to do
         about any errors anyway.
      
      Therefore remove the return value from btrfs_reclaim_sweep() and
      do_reclaim_sweep().
      
      Fixes: e4ca3932 ("btrfs: periodic block_group reclaim")
      Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
      Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      ecb54277
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.11-rc6.fixes' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs · 3e9bff3b
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
       "VFS:
      
         - Ensure that backing files uses file->f_ops->splice_write() for
           splice
      
        netfs:
      
         - Revert the removal of PG_private_2 from netfs_release_folio() as
           cephfs still relies on this
      
         - When AS_RELEASE_ALWAYS is set on a mapping the folio needs to
           always be invalidated during truncation
      
         - Fix losing untruncated data in a folio by making letting
           netfs_release_folio() return false if the folio is dirty
      
         - Fix trimming of streaming-write folios in netfs_inval_folio()
      
         - Reset iterator before retrying a short read
      
         - Fix interaction of streaming writes with zero-point tracker
      
        afs:
      
         - During truncation afs currently calls truncate_setsize() which sets
           i_size, expands the pagecache and truncates it. The first two
           operations aren't needed because they will have already been done.
           So call truncate_pagecache() instead and skip the redundant parts
      
        overlayfs:
      
         - Fix checking of the number of allowed lower layers so 500 layers
           can actually be used instead of just 499
      
         - Add missing '\n' to pr_err() output
      
         - Pass string to ovl_parse_layer() and thus allow it to be used for
           Opt_lowerdir as well
      
        pidfd:
      
         - Revert blocking the creation of pidfds for kthread as apparently
           userspace relies on this. Specifically, it breaks systemd during
           shutdown
      
        romfs:
      
         - Fix romfs_read_folio() to use the correct offset with
           folio_zero_tail()"
      
      * tag 'vfs-6.11-rc6.fixes' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs:
        netfs: Fix interaction of streaming writes with zero-point tracker
        netfs: Fix missing iterator reset on retry of short read
        netfs: Fix trimming of streaming-write folios in netfs_inval_folio()
        netfs: Fix netfs_release_folio() to say no if folio dirty
        afs: Fix post-setattr file edit to do truncation correctly
        mm: Fix missing folio invalidation calls during truncation
        ovl: ovl_parse_param_lowerdir: Add missed '\n' for pr_err
        ovl: fix wrong lowerdir number check for parameter Opt_lowerdir
        ovl: pass string to ovl_parse_layer()
        backing-file: convert to using fops->splice_write
        Revert "pidfd: prevent creation of pidfds for kthreads"
        romfs: fix romfs_read_folio()
        netfs, ceph: Partially revert "netfs: Replace PG_fscache by setting folio->private and marking dirty"
      3e9bff3b
  5. 26 Aug, 2024 15 commits
  6. 25 Aug, 2024 6 commits
    • Josef Bacik's avatar
      btrfs: run delayed iputs when flushing delalloc · 2d344726
      Josef Bacik authored
      We have transient failures with btrfs/301, specifically in the part
      where we do
      
        for i in $(seq 0 10); do
      	  write 50m to file
      	  rm -f file
        done
      
      Sometimes this will result in a transient quota error, and it's because
      sometimes we start writeback on the file which results in a delayed
      iput, and thus the rm doesn't actually clean the file up.  When we're
      flushing the quota space we need to run the delayed iputs to make sure
      all the unlinks that we think have completed have actually completed.
      This removes the small window where we could fail to find enough space
      in our quota.
      
      CC: stable@vger.kernel.org # 5.15+
      Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
      Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      2d344726
    • YOUNGJIN JOO's avatar
      ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book3 Ultra · 44ceabde
      YOUNGJIN JOO authored
      144d:c1cc requires the same workaround to enable the speaker amp
      as other Samsung models with the ALC298 codec.
      Signed-off-by: default avatarYOUNGJIN JOO <neoelec@gmail.com>
      Cc: <stable@vger.kernel.org>
      Link: https://patch.msgid.link/20240825092515.28728-1-neoelec@gmail.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      44ceabde
    • Miao Wang's avatar
      LoongArch: Remove the unused dma-direct.h · 58aec91e
      Miao Wang authored
      dma-direct.h is introduced in commit d4b6f156 ("LoongArch: Add
      Non-Uniform Memory Access (NUMA) support"). In commit c78c43fe
      ("LoongArch: Use acpi_arch_dma_setup() and remove ARCH_HAS_PHYS_TO_DMA"),
      ARCH_HAS_PHYS_TO_DMA was deselected and the coresponding phys_to_dma()/
      dma_to_phys() functions were removed. However, the unused dma-direct.h
      was left behind, which is removed by this patch.
      
      Cc: <stable@vger.kernel.org>
      Fixes: c78c43fe ("LoongArch: Use acpi_arch_dma_setup() and remove ARCH_HAS_PHYS_TO_DMA")
      Signed-off-by: default avatarMiao Wang <shankerwangmiao@gmail.com>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      58aec91e
    • David Howells's avatar
      cifs: Fix FALLOC_FL_PUNCH_HOLE support · 416871f4
      David Howells authored
      The cifs filesystem doesn't quite emulate FALLOC_FL_PUNCH_HOLE correctly
      (note that due to lack of protocol support, it can't actually implement it
      directly).  Whilst it will (partially) invalidate dirty folios in the
      pagecache, it doesn't write them back first, and so the EOF marker on the
      server may be lower than inode->i_size.
      
      This presents a problem, however, as if the punched hole invalidates the
      tail of the locally cached dirty data, writeback won't know it needs to
      move the EOF over to account for the hole punch (which isn't supposed to
      move the EOF).  We could just write zeroes over the punched out region of
      the pagecache and write that back - but this is supposed to be a
      deallocatory operation.
      
      Fix this by manually moving the EOF over on the server after the operation
      if the hole punched would corrupt it.
      
      Note that the FSCTL_SET_ZERO_DATA RPC and the setting of the EOF should
      probably be compounded to stop a third party interfering (or, at least,
      massively reduce the chance).
      
      This was reproducible occasionally by using fsx with the following script:
      
      	truncate 0x0 0x375e2 0x0
      	punch_hole 0x2f6d3 0x6ab5 0x375e2
      	truncate 0x0 0x3a71f 0x375e2
      	mapread 0xee05 0xcf12 0x3a71f
      	write 0x2078e 0x5604 0x3a71f
      	write 0x3ebdf 0x1421 0x3a71f *
      	punch_hole 0x379d0 0x8630 0x40000 *
      	mapread 0x2aaa2 0x85b 0x40000
      	fallocate 0x1b401 0x9ada 0x40000
      	read 0x15f2 0x7d32 0x40000
      	read 0x32f37 0x7a3b 0x40000 *
      
      The second "write" should extend the EOF to 0x40000, and the "punch_hole"
      should operate inside of that - but that depends on whether the VM gets in
      and writes back the data first.  If it doesn't, the file ends up 0x3a71f in
      size, not 0x40000.
      
      Fixes: 31742c5a ("enable fallocate punch hole ("fallocate -p") for SMB3")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Steve French <sfrench@samba.org>
      cc: Paulo Alcantara <pc@manguebit.com>
      cc: Shyam Prasad N <nspmangalore@gmail.com>
      cc: Jeff Layton <jlayton@kernel.org>
      cc: linux-cifs@vger.kernel.org
      cc: netfs@lists.linux.dev
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      416871f4
    • Stefan Metzmacher's avatar
      smb/client: fix rdma usage in smb2_async_writev() · 017d1701
      Stefan Metzmacher authored
      rqst.rq_iter needs to be truncated otherwise we'll
      also send the bytes into the stream socket...
      
      This is the logic behind rqst.rq_npages = 0, which was removed in
      "cifs: Change the I/O paths to use an iterator rather than a page list"
      (d08089f6).
      
      Cc: stable@vger.kernel.org
      Fixes: d08089f6 ("cifs: Change the I/O paths to use an iterator rather than a page list")
      Reviewed-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarStefan Metzmacher <metze@samba.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      017d1701
    • Stefan Metzmacher's avatar
      smb/client: remove unused rq_iter_size from struct smb_rqst · b608e2c3
      Stefan Metzmacher authored
      Reviewed-by: default avatarDavid Howells <dhowells@redhat.com>
      Fixes: d08089f6 ("cifs: Change the I/O paths to use an iterator rather than a page list")
      Signed-off-by: default avatarStefan Metzmacher <metze@samba.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      b608e2c3