1. 03 May, 2023 5 commits
    • Linus Torvalds's avatar
      x86-64: mm: clarify the 'positive addresses' user address rules · 798dec33
      Linus Torvalds authored
      Dave Hansen found the "(long) addr >= 0" code in the x86-64 access_ok
      checks somewhat confusing, and suggested using a helper to clarify what
      the code is doing.
      
      So this does exactly that: clarifying what the sign bit check is all
      about, by adding a helper macro that makes it clear what it is testing.
      
      This also adds some explicit comments talking about how even with LAM
      enabled, any addresses with the sign bit will still GP-fault in the
      non-canonical region just above the sign bit.
      
      This is all what allows us to do the user address checks with just the
      sign bit, and furthermore be a bit cavalier about accesses that might be
      done with an additional offset even past that point.
      
      (And yes, this talks about 'positive' even though zero is also a valid
      user address and so technically we should call them 'non-negative'.  But
      I don't think using 'non-negative' ends up being more understandable).
      Suggested-by: default avatarDave Hansen <dave.hansen@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      798dec33
    • Linus Torvalds's avatar
      x86: mm: remove 'sign' games from LAM untagged_addr*() macros · 1dbc0a95
      Linus Torvalds authored
      The intent of the sign games was to not modify kernel addresses when
      untagging them.  However, that had two issues:
      
       (a) it didn't actually work as intended, since the mask was calculated
           as 'addr >> 63' on an _unsigned_ address. So instead of getting a
           mask of all ones for kernel addresses, you just got '1'.
      
       (b) untagging a kernel address isn't actually a valid operation anyway.
      
      Now, (a) had originally been true for both 'untagged_addr()' and the
      remote version of it, but had accidentally been fixed for the regular
      version of untagged_addr() by commit e0bddc19 ("x86/mm: Reduce
      untagged_addr() overhead for systems without LAM").  That one rewrote
      the shift to be part of the alternative asm code, and in the process
      changed the unsigned shift into a signed 'sar' instruction.
      
      And while it is true that we don't want to turn what looks like a kernel
      address into a user address by masking off the high bit, that doesn't
      need these sign masking games - all it needs is that the mm context
      'untag_mask' value has the high bit set.
      
      Which it always does.
      
      So simplify the code by just removing the superfluous (and in the case
      of untagged_addr_remote(), still buggy) sign bit games in the address
      masking.
      Acked-by: default avatarDave Hansen <dave.hansen@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1dbc0a95
    • Linus Torvalds's avatar
      x86: uaccess: move 32-bit and 64-bit parts into proper <asm/uaccess_N.h> header · b9bd9f60
      Linus Torvalds authored
      The x86 <asm/uaccess.h> file has grown features that are specific to
      x86-64 like LAM support and the related access_ok() changes.  They
      really should be in the <asm/uaccess_64.h> file and not pollute the
      generic x86 header.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b9bd9f60
    • Linus Torvalds's avatar
      x86: mm: remove architecture-specific 'access_ok()' define · 6ccdc91d
      Linus Torvalds authored
      There's already a generic definition of 'access_ok()' in the
      asm-generic/access_ok.h header file, and the only difference bwteen that
      and the x86-specific one is the added check for WARN_ON_IN_IRQ().
      
      And it turns out that the reason for that check is long gone: it used to
      use a "user_addr_max()" inline function that depended on the current
      thread, and caused problems in non-thread contexts.
      
      For details, see commits 7c478895 ("x86/uaccess, sched/preempt:
      Verify access_ok() context") and in particular commit ae31fe51
      ("perf/x86: Restore TASK_SIZE check on frame pointer") about how and why
      this came to be.
      
      But that "current task" issue was removed in the big set_fs() removal by
      Christoph Hellwig in commit 47058bb5 ("x86: remove address space
      overrides using set_fs()").
      
      So the reason for the test and the architecture-specific access_ok()
      define no longer exists, and is actually harmful these days.  For
      example, it led various 'copy_from_user_nmi()' games (eg using
      __range_not_ok() instead, and then later converted to __access_ok() when
      that became ok).
      
      And that in turn meant that LAM was broken for the frame following
      before this series, because __access_ok() used to not do the address
      untagging.
      
      Accessing user state still needs care in many contexts, but access_ok()
      is not the place for this test.
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: Linus Torvalds torvalds@linux-foundation.org>
      6ccdc91d
    • Linus Torvalds's avatar
      x86-64: make access_ok() independent of LAM · 6014bc27
      Linus Torvalds authored
      The linear address masking (LAM) code made access_ok() more complicated,
      in that it now needs to untag the address in order to verify the access
      range.  See commit 74c228d2 ("x86/uaccess: Provide untagged_addr()
      and remove tags before address check").
      
      We were able to avoid that overhead in the get_user/put_user code paths
      by simply using the sign bit for the address check, and depending on the
      GP fault if the address was non-canonical, which made it all independent
      of LAM.
      
      And we can do the same thing for access_ok(): simply check that the user
      pointer range has the high bit clear.  No need to bother with any
      address bit masking.
      
      In fact, we can go a bit further, and just check the starting address
      for known small accesses ranges: any accesses that overflow will still
      be in the non-canonical area and will still GP fault.
      
      To still make syzkaller catch any potentially unchecked user addresses,
      we'll continue to warn about GP faults that are caused by accesses in
      the non-canonical range.  But we'll limit that to purely "high bit set
      and past the one-page 'slop' area".
      
      We could probably just do that "check only starting address" for any
      arbitrary range size: realistically all kernel accesses to user space
      will be done starting at the low address.  But let's leave that kind of
      optimization for later.  As it is, this already allows us to generate
      simpler code and not worry about any tag bits in the address.
      
      The one thing to look out for is the GUP address check: instead of
      actually copying data in the virtual address range (and thus bad
      addresses being caught by the GP fault), GUP will look up the page
      tables manually.  As a result, the page table limits need to be checked,
      and that was previously implicitly done by the access_ok().
      
      With the relaxed access_ok() check, we need to just do an explicit check
      for TASK_SIZE_MAX in the GUP code instead.  The GUP code already needs
      to do the tag bit unmasking anyway, so there this is all very
      straightforward, and there are no LAM issues.
      
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6014bc27
  2. 02 May, 2023 10 commits
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 348551dd
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "Mostly drivers! Nothing special: some new Qualcomm chips as usual, and
        the new NXP S32 and nVidia BlueField-3.
      
        Core changes:
      
         - Make a lot of pin controllers with GPIO and irqchips immutable,
           i.e. not living structs, but const structs. This is driving a
           changed initiated by the irqchip maintainers.
      
        New drivers:
      
         - New driver for the NXP S32 SoC pin controller
      
         - As part of a thorough cleanup and restructuring of the
           Ralink/Mediatek drivers, the Ralink MIPS pin control drivers were
           folded into the Mediatek directory and the family is renamed
           "mtmips". The Ralink chips live on as Mediatek MIPS family where
           new variants can be added. As part of this work also the device
           tree bindings were reworked.
      
         - New subdriver for the Qualcomm SM7150 SoC.
      
         - New subdriver for the Qualcomm IPQ9574 SoC.
      
         - New driver for the nVidia BlueField-3 SoC.
      
         - Support for the Qualcomm PMM8654AU mixed signal circuit GPIO.
      
         - Support for the Qualcomm PMI632 mixed signal circuit GPIO.
      
        Improvements:
      
         - Add some missing pins and generic cleanups on the Renesas r8a779g0
           and r8a779g0 pin controllers. Generic Renesas extension for power
           source selection on several SoCs.
      
         - Misc cleanups for the Atmel AT91 and AT91-PIO4 pin controllers
      
         - Make the GPIO mode work on the Qualcomm SM8550-lpass-lpi driver.
      
         - Several device tree binding cleanups as the binding YAML syntax is
           solidifying"
      
      * tag 'pinctrl-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (153 commits)
        pinctrl-bcm2835.c: fix race condition when setting gpio dir
        dt-bindings: pinctrl: qcom,sm8150: Drop duplicate function value "atest_usb2"
        dt-bindings: pinctrl: qcom: Add few missing functions
        pinctrl: qcom: spmi-gpio: Add PMI632 support
        dt-bindings: pinctrl: qcom,pmic-gpio: add PMI632
        pinctrl: wpcm450: select MFD_SYSCON
        pinctrl: qcom ssbi-gpio: Convert to immutable irq_chip
        pinctrl: qcom ssbi-mpp: Convert to immutable irq_chip
        pinctrl: qcom spmi-mpp: Convert to immutable irq_chip
        pinctrl: plgpio: Convert to immutable irq_chip
        pinctrl: pistachio: Convert to immutable irq_chip
        pinctrl: pic32: Convert to immutable irq_chip
        pinctrl: sx150x: Convert to immutable irq_chip
        pinctrl: stmfx: Convert to immutable irq_chip
        pinctrl: st: Convert to immutable irq_chip
        pinctrl: mcp23s08: Convert to immutable irq_chip
        pinctrl: equilibrium: Convert to immutable irq_chip
        pinctrl: npcm7xx: Convert to immutable irq_chip
        pinctrl: armada-37xx: Convert to immutable irq_chip
        pinctrl: nsp: Convert to immutable irq_chip
        ...
      348551dd
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.4-rc1' of https://github.com/awilliam/linux-vfio · 7df047b3
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Expose and allow R/W access to the PCIe DVSEC capability through
         vfio-pci, as we already do with the legacy vendor capability
         (K V P Satyanarayana)
      
       - Fix kernel-doc issues with structure definitions (Simon Horman)
      
       - Clarify ordering of operations relative to the kvm-vfio device for
         driver dependencies against the kvm pointer (Yi Liu)
      
      * tag 'vfio-v6.4-rc1' of https://github.com/awilliam/linux-vfio:
        docs: kvm: vfio: Suggest KVM_DEV_VFIO_GROUP_ADD vs VFIO_GROUP_GET_DEVICE_FD ordering
        vfio: correct kdoc for ops structures
        vfio/pci: Add DVSEC PCI Extended Config Capability to user visible list.
      7df047b3
    • Linus Torvalds's avatar
      Merge tag 'afs-fixes-20230502' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 21d2be64
      Linus Torvalds authored
      Pull AFS updates from David Howells:
       "Three fixes to AFS directory handling:
      
         - Make sure that afs_read_dir() sees any increase in file size if the
           file unexpectedly changed on the server (e.g. due to another client
           making a change).
      
         - Make afs_getattr() always return the server's dir file size, not
           the locally edited one, so that pagecache eviction doesn't cause
           the dir file size to change unexpectedly.
      
         - Prevent afs_read_dir() from getting into an endless loop if the
           server indicates that the directory file size is larger than
           expected"
      
      * tag 'afs-fixes-20230502' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Avoid endless loop if file is larger than expected
        afs: Fix getattr to report server i_size on dirs, not local size
        afs: Fix updating of i_size with dv jump from server
      21d2be64
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · d7b3ffe2
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Fix-ups:
         - Add / improve Device Tree bindings
         - Convert (int) .remove functions to (void) .remove_new
         - Rid 'defined but not used' warnings
         - Remove ineffective casts and pointer stubs
         - Use specifically crafted API for testing DT property presence"
      
      * tag 'backlight-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: as3711: Use of_property_read_bool() for boolean properties
        backlight: hx8357: Use of_property_present() for testing DT property presence
        backlight: arcxcnn_bl: Drop of_match_ptr for ID table
        backlight: lp855x: Mark OF related data as maybe unused
        backlight: sky81452-backlight: Convert to platform remove callback returning void
        backlight: rt4831-backlight: Convert to platform remove callback returning void
        backlight: qcom-wled: Convert to platform remove callback returning void
        backlight: pwm_bl: Convert to platform remove callback returning void
        backlight: mt6370-backlight: Convert to platform remove callback returning void
        backlight: lp8788_bl: Convert to platform remove callback returning void
        backlight: lm3533_bl: Convert to platform remove callback returning void
        backlight: led_bl: Convert to platform remove callback returning void
        backlight: hp680_bl: Convert to platform remove callback returning void
        backlight: da9052_bl: Convert to platform remove callback returning void
        backlight: cr_bllcd: Convert to platform remove callback returning void
        backlight: adp5520_bl: Convert to platform remove callback returning void
        backlight: aat2870_bl: Convert to platform remove callback returning void
        backlight: qcom-wled: Add PMI8950 compatible
      d7b3ffe2
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 3af49062
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Add support for  Renesas RZ/G2L MTU3
      
        New Device Support:
         - Add support for Lenovo Yoga Book X90F to Intel CHT WC
         - Add support for MAX5970 and MAX5978 to Simple MFD (I2C)
         - Add support for Meteor Lake PCH-S LPSS PCI to Intel LPSS PCI
         - Add support for AXP15060 PMIC to X-Powers PMIC collection
      
        Remove Device Support:
         - Remove support for Samsung 5M8751 and S5M8763 PMIC devices
      
        New Functionality:
         - Convert deprecated QCOM IRQ Chip to config registers
         - Add support for 32-bit address spaces to Renesas SMUs
      
        Fix-ups:
         - Make use of APIs / MACROs designed to simplify and demystify
         - Add / improve Device Tree bindings
         - Memory saving struct layout optimisations
         - Remove old / deprecated functionality
         - Factor out unassigned register addresses from ranges
         - Trivial: Spelling fixes, renames and coding style fixes
         - Rid 'defined but not used' warnings
         - Remove ineffective casts and pointer stubs
      
        Bug Fixes:
         - Fix incorrectly non-inverted mask/unmask IRQs on QCOM platforms
         - Remove MODULE_*() helpers from non-tristate drivers
         - Do not attempt to use out-of-range memory addresses associated with io_base
         - Provide missing export helpers
         - Fix remap bulk read optimisation fallout
         - Fix memory leak issues in error paths"
      
      * tag 'mfd-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (88 commits)
        dt-bindings: mfd: ti,j721e-system-controller: Add SoC chip ID
        leds: bd2606mvv: Driver for the Rohm 6 Channel i2c LED driver
        dt-bindings: mfd: qcom,spmi-pmic: Document flash LED controller
        dt-bindings: mfd: x-powers,axp152: Document the AXP15060 variant
        mfd: axp20x: Add support for AXP15060 PMIC
        dt-bindings: mfd: x-powers,axp152: Document the AXP313a variant
        counter: rz-mtu3-cnt: Unlock on error in rz_mtu3_count_ceiling_write()
        dt-bindings: mfd: dlg,da9063: Document voltage monitoring
        dt-bindings: mfd: stm32: Remove unnecessary blank lines
        dt-bindings: mfd: qcom,spmi-pmic: Use generic ADC node name in examples
        dt-bindings: mfd: syscon: Add nuvoton,ma35d1-sys compatible
        MAINTAINERS: Add entries for Renesas RZ/G2L MTU3a counter driver
        counter: Add Renesas RZ/G2L MTU3a counter driver
        Documentation: ABI: sysfs-bus-counter: add cascade_counts_enable and external_input_phase_clock_select
        mfd: Add Renesas RZ/G2L MTU3a core driver
        dt-bindings: timer: Document RZ/G2L MTU3a bindings
        mfd: rsmu_i2c: Convert to i2c's .probe_new() again
        mfd: intel-lpss: Add Intel Meteor Lake PCH-S LPSS PCI IDs
        mfd: dln2: Fix memory leak in dln2_probe()
        mfd: axp20x: Fix axp288 writable-ranges
        ...
      3af49062
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · c5eb8bf7
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
       "New Drivers:
         - Add support for MediaTek MT6370 LED Indicator
         - Add support for MediaTek MT6370 Flashlight
         - Add support for QCOM PMIC Flash
         - Add support for Rohm BD2606MVV Charge Pump LED
      
        New Device Support:
         - Add support for PMK8550 PWM to QCOM LPG
      
        New Functionality:
         - Add support for high resolution PWM to QCOM LPG
      
        Fix-ups:
         - Kconfig 'depends' and 'select' dependency changes
         - Remove unused / irrelevant includes
         - Remove unnecessary checks (already performed further into the call stack)
         - Trivial: Fix commentary, simplify error messages
         - Rid 'defined but not used' warnings
         - Provide documentation
         - Explicitly provide include files
      
        Bug Fixes:
         - Mark GPIO LED as BROKEN
         - Fix Kconfig entries
         - Fix various Smatch staticify reports
         - Fix error handling (or a lack there of)"
      
      * tag 'leds-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (30 commits)
        leds: bd2606mvv: Driver for the Rohm 6 Channel i2c LED driver
        dt-bindings: leds: Add ROHM BD2606MVV LED
        docs: leds: ledtrig-oneshot: Fix spelling mistake
        leds: pwm-multicolor: Simplify an error message
        dt-bindings: leds: Convert PCA9532 to dtschema
        leds: rgb: leds-qcom-lpg: Add support for PMK8550 PWM
        leds: rgb: leds-qcom-lpg: Add support for high resolution PWM
        dt-bindings: leds-qcom-lpg: Add qcom,pmk8550-pwm compatible string
        leds: tca6507: Fix error handling of using fwnode_property_read_string
        leds: flash: Set variables mvflash_{3,4}ch_regs storage-class-specifier to static
        leds: rgb: mt6370: Correct config name to select in LEDS_MT6370_RGB
        MAINTAINERS: Add entry for LED devices documentation
        Documentation: leds: MT6370: Use bullet lists for timing variables
        Documentation: leds: mt6370: Properly wrap hw_pattern chart
        Documentation: leds: Add MT6370 doc to the toctree
        leds: rgb: mt6370: Fix implicit declaration for FIELD_GET
        docs: leds: Add MT6370 RGB LED pattern document
        leds: flash: mt6370: Add MediaTek MT6370 flashlight support
        leds: rgb: mt6370: Add MediaTek MT6370 current sink type LED Indicator support
        dt-bindings: leds: spmi-flash-led: Add pm6150l compatible
        ...
      c5eb8bf7
    • Marc Dionne's avatar
      afs: Avoid endless loop if file is larger than expected · 9ea4eff4
      Marc Dionne authored
      afs_read_dir fetches an amount of data that's based on what the inode
      size is thought to be.  If the file on the server is larger than what
      was fetched, the code rechecks i_size and retries.  If the local i_size
      was not properly updated, this can lead to an endless loop of fetching
      i_size from the server and noticing each time that the size is larger on
      the server.
      
      If it is known that the remote size is larger than i_size, bump up the
      fetch size to that size.
      
      Fixes: f3ddee8d ("afs: Fix directory handling")
      Signed-off-by: default avatarMarc Dionne <marc.dionne@auristor.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: linux-afs@lists.infradead.org
      9ea4eff4
    • David Howells's avatar
      afs: Fix getattr to report server i_size on dirs, not local size · 45f66fa0
      David Howells authored
      Fix afs_getattr() to report the server's idea of the file size of a
      directory rather than the local size.  The local size may differ as we edit
      the local copy to avoid having to redownload it and we may end up with a
      differently structured blob of a different size.
      
      However, if the directory is discarded from the pagecache we then download
      it again and the user may see the directory file size apparently change.
      
      Fixes: 63a4681f ("afs: Locally edit directory data for mkdir/create/unlink/...")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      45f66fa0
    • Marc Dionne's avatar
      afs: Fix updating of i_size with dv jump from server · d7f74e9a
      Marc Dionne authored
      If the data version returned from the server is larger than expected,
      the local data is invalidated, but we may still want to note the remote
      file size.
      
      Since we're setting change_size, we have to also set data_changed
      for the i_size to get updated.
      
      Fixes: 3f4aa981 ("afs: Fix EOF corruption")
      Signed-off-by: default avatarMarc Dionne <marc.dionne@auristor.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: linux-afs@lists.infradead.org
      d7f74e9a
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.4-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 865fdb08
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - a new driver for Novatek touch controllers
      
       - a new driver for power button for NXP BBNSM
      
       - a skeleton KUnit tests for the input core
      
       - improvements to Xpad game controller driver to support more devices
      
       - improvements to edt-ft5x06, hideep and other drivers
      
      * tag 'input-for-v6.4-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (42 commits)
        Revert "Input: xpad - fix support for some third-party controllers"
        dt-bindings: input: pwm-beeper: convert to dt schema
        Input: xpad - fix PowerA EnWired Controller guide button
        Input: xpad - add constants for GIP interface numbers
        Input: synaptics-rmi4 - fix function name in kerneldoc
        Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe
        Input: edt-ft5x06 - select REGMAP_I2C
        Input: melfas_mip4 - report palm touches
        Input: cma3000_d0x - remove unneeded code
        Input: edt-ft5x06 - calculate points data length only once
        Input: edt-ft5x06 - unify the crc check
        Input: edt-ft5x06 - convert to use regmap API
        Input: edt-ft5x06 - don't print error messages with dev_dbg()
        Input: edt-ft5x06 - remove code duplication
        Input: edt-ft5x06 - don't recalculate the CRC
        Input: edt-ft5x06 - add spaces to ensure format specification
        Input: edt-ft5x06 - remove unnecessary blank lines
        Input: edt-ft5x06 - fix indentation
        Input: tsc2007 - enable cansleep pendown GPIO
        Input: Add KUnit tests for some of the input core helper functions
        ...
      865fdb08
  3. 01 May, 2023 9 commits
    • Dmitry Torokhov's avatar
      Merge branch 'next' into for-linus · 9a87ffc9
      Dmitry Torokhov authored
      Prepare input updates for 6.4 merge window.
      9a87ffc9
    • Dmitry Torokhov's avatar
      Revert "Input: xpad - fix support for some third-party controllers" · 53bea86b
      Dmitry Torokhov authored
      This reverts commit db7220c4 because it
      causes crashes when trying to dereference xpad->dev->dev in xpad_probe()
      which has not been set up yet.
      
      Reported-by: syzbot+a3f758b8d8cb7e49afec@syzkaller.appspotmail.com
      Reported-by: default avatarDongliang Mu <dzm91@hust.edu.cn>
      Link: https://groups.google.com/g/syzkaller-bugs/c/iMhTgpGuIbMSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      53bea86b
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · c8c655c3
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "s390:
      
         - More phys_to_virt conversions
      
         - Improvement of AP management for VSIE (nested virtualization)
      
        ARM64:
      
         - Numerous fixes for the pathological lock inversion issue that
           plagued KVM/arm64 since... forever.
      
         - New framework allowing SMCCC-compliant hypercalls to be forwarded
           to userspace, hopefully paving the way for some more features being
           moved to VMMs rather than be implemented in the kernel.
      
         - Large rework of the timer code to allow a VM-wide offset to be
           applied to both virtual and physical counters as well as a
           per-timer, per-vcpu offset that complements the global one. This
           last part allows the NV timer code to be implemented on top.
      
         - A small set of fixes to make sure that we don't change anything
           affecting the EL1&0 translation regime just after having having
           taken an exception to EL2 until we have executed a DSB. This
           ensures that speculative walks started in EL1&0 have completed.
      
         - The usual selftest fixes and improvements.
      
        x86:
      
         - Optimize CR0.WP toggling by avoiding an MMU reload when TDP is
           enabled, and by giving the guest control of CR0.WP when EPT is
           enabled on VMX (VMX-only because SVM doesn't support per-bit
           controls)
      
         - Add CR0/CR4 helpers to query single bits, and clean up related code
           where KVM was interpreting kvm_read_cr4_bits()'s "unsigned long"
           return as a bool
      
         - Move AMD_PSFD to cpufeatures.h and purge KVM's definition
      
         - Avoid unnecessary writes+flushes when the guest is only adding new
           PTEs
      
         - Overhaul .sync_page() and .invlpg() to utilize .sync_page()'s
           optimizations when emulating invalidations
      
         - Clean up the range-based flushing APIs
      
         - Revamp the TDP MMU's reaping of Accessed/Dirty bits to clear a
           single A/D bit using a LOCK AND instead of XCHG, and skip all of
           the "handle changed SPTE" overhead associated with writing the
           entire entry
      
         - Track the number of "tail" entries in a pte_list_desc to avoid
           having to walk (potentially) all descriptors during insertion and
           deletion, which gets quite expensive if the guest is spamming
           fork()
      
         - Disallow virtualizing legacy LBRs if architectural LBRs are
           available, the two are mutually exclusive in hardware
      
         - Disallow writes to immutable feature MSRs (notably
           PERF_CAPABILITIES) after KVM_RUN, similar to CPUID features
      
         - Overhaul the vmx_pmu_caps selftest to better validate
           PERF_CAPABILITIES
      
         - Apply PMU filters to emulated events and add test coverage to the
           pmu_event_filter selftest
      
         - AMD SVM:
             - Add support for virtual NMIs
             - Fixes for edge cases related to virtual interrupts
      
         - Intel AMX:
             - Don't advertise XTILE_CFG in KVM_GET_SUPPORTED_CPUID if
               XTILE_DATA is not being reported due to userspace not opting in
               via prctl()
             - Fix a bug in emulation of ENCLS in compatibility mode
             - Allow emulation of NOP and PAUSE for L2
             - AMX selftests improvements
             - Misc cleanups
      
        MIPS:
      
         - Constify MIPS's internal callbacks (a leftover from the hardware
           enabling rework that landed in 6.3)
      
        Generic:
      
         - Drop unnecessary casts from "void *" throughout kvm_main.c
      
         - Tweak the layout of "struct kvm_mmu_memory_cache" to shrink the
           struct size by 8 bytes on 64-bit kernels by utilizing a padding
           hole
      
        Documentation:
      
         - Fix goof introduced by the conversion to rST"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (211 commits)
        KVM: s390: pci: fix virtual-physical confusion on module unload/load
        KVM: s390: vsie: clarifications on setting the APCB
        KVM: s390: interrupt: fix virtual-physical confusion for next alert GISA
        KVM: arm64: Have kvm_psci_vcpu_on() use WRITE_ONCE() to update mp_state
        KVM: arm64: Acquire mp_state_lock in kvm_arch_vcpu_ioctl_vcpu_init()
        KVM: selftests: Test the PMU event "Instructions retired"
        KVM: selftests: Copy full counter values from guest in PMU event filter test
        KVM: selftests: Use error codes to signal errors in PMU event filter test
        KVM: selftests: Print detailed info in PMU event filter asserts
        KVM: selftests: Add helpers for PMC asserts in PMU event filter test
        KVM: selftests: Add a common helper for the PMU event filter guest code
        KVM: selftests: Fix spelling mistake "perrmited" -> "permitted"
        KVM: arm64: vhe: Drop extra isb() on guest exit
        KVM: arm64: vhe: Synchronise with page table walker on MMU update
        KVM: arm64: pkvm: Document the side effects of kvm_flush_dcache_to_poc()
        KVM: arm64: nvhe: Synchronise with page table walker on TLBI
        KVM: arm64: Handle 32bit CNTPCTSS traps
        KVM: arm64: nvhe: Synchronise with page table walker on vcpu run
        KVM: arm64: vgic: Don't acquire its_lock before config_lock
        KVM: selftests: Add test to verify KVM's supported XCR0
        ...
      c8c655c3
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of https://github.com/openrisc/linux · d75439d6
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "Two things for OpenRISC this cycle:
      
         - Small cleanup for device tree cpu iteration from Rob Herring
      
         - Add support for storing, restoring and accessing user space FPU
           state, to allow for libc to support the FPU on OpenRISC"
      
      * tag 'for-linus' of https://github.com/openrisc/linux:
        openrisc: Add floating point regset
        openrisc: Support floating point user api
        openrisc: Support storing and restoring fpu state
        openrisc: Properly store r31 to pt_regs on unhandled exceptions
        openrisc: Use common of_get_cpu_node() instead of open-coding
      d75439d6
    • Linus Torvalds's avatar
      Merge tag 'rtc-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 3f2a1903
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "Not much this cycle, there is the conversion to remove_new and many
        small fixes in drivers:
      
        Subsystem:
         - Convert to platform remove callback returning void
      
        Drivers:
         - meson-vrtc: fix a firmware display issue"
      
      * tag 'rtc-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (53 commits)
        rtc: armada38x: use devm_platform_ioremap_resource_byname()
        rtc: sunplus: use devm_platform_ioremap_resource_byname()
        rtc: jz4740: Make sure clock provider gets removed
        rtc: k3: handle errors while enabling wake irq
        rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
        dt-bindings: rtc: Drop unneeded quotes
        rtc: pcf8523: remove unnecessary OR operation
        rtc: pcf8523: fix coding-style issues
        rtc: ds1390: mark OF related data as maybe unused
        rtc: omap: include header for omap_rtc_power_off_program prototype
        rtc: sun6i: Use of_property_present() for testing DT property presence
        rtc: mpfs: convert SOC_MICROCHIP_POLARFIRE to ARCH_MICROCHIP_POLARFIRE
        rtc: zynqmp: Convert to platform remove callback returning void
        rtc: xgene: Convert to platform remove callback returning void
        rtc: wm8350: Convert to platform remove callback returning void
        rtc: vt8500: Convert to platform remove callback returning void
        rtc: twl: Convert to platform remove callback returning void
        rtc: tps6586x: Convert to platform remove callback returning void
        rtc: tegra: Convert to platform remove callback returning void
        rtc: sunplus: Convert to platform remove callback returning void
        ...
      3f2a1903
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · e0906f1f
      Linus Torvalds authored
      Pull i3c updates from Alexandre Belloni:
       "Subsystem:
         - OF alias bus numbering
         - convert to platform remove callback returning void
      
        New driver:
         - AST2600 controller, based on Synopsys DesignWare IP
      
        Driver update:
         - dw: add infrastructure to support different platform integrations"
      
      * tag 'i3c/for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c: ast2600: set variable ast2600_i3c_ops storage-class-specifier to static
        i3c: ast2600: fix register setting for 545 ohm pullups
        i3c: ast2600: enable IBI support
        i3c: dw: Add a platform facility for IBI PEC workarounds
        i3c: dw: Add support for in-band interrupts
        i3c: dw: Turn DAT array entry into a struct
        i3c: dw: Create a generic fifo read function
        i3c: Allow OF-alias-based persistent bus numbering
        i3c: ast2600: Add AST2600 platform-specific driver
        dt-bindings: i3c: Add AST2600 i3c controller
        i3c: dw: Add infrastructure for platform-specific implementations
        i3c: dw: use bus mode rather than device reg for conditional tCAS setting
        i3c: dw: Return the length from a read priv_xfer
        i3c: svc: Convert to platform remove callback returning void
        i3c: mipi-i3c-hci: Convert to platform remove callback returning void
        i3c: cdns: Convert to platform remove callback returning void
        i3c: dw: Convert to platform remove callback returning void
        i3c: Make i3c_master_unregister() return void
        i3c: dw: drop of_match_ptr for ID table
        i3c: Correct reference to the I²C device data type
      e0906f1f
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 06936aaf
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Some ext4 regression and bug fixes"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: clean up error handling in __ext4_fill_super()
        ext4: reflect error codes from ext4_multi_mount_protect() to its callers
        ext4: fix lost error code reporting in __ext4_fill_super()
        ext4: fix unused iterator variable warnings
        ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline
        ext4: fix i_disksize exceeding i_size problem in paritally written case
      06936aaf
    • Linus Torvalds's avatar
      Merge tag '6.4-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 26c009df
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
      
       - deferred close fix for an important case when cached file should be
         closed immediately
      
       - two fixes for missing locks
      
       - eight minor cleanup
      
      * tag '6.4-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal module version number for cifs.ko
        smb3: move some common open context structs to smbfs_common
        smb3: make query_on_disk_id open context consistent and move to common code
        SMB3.1.1: add new tree connect ShareFlags
        cifs: missing lock when updating session status
        SMB3: Close deferred file handles in case of handle lease break
        SMB3: Add missing locks to protect deferred close file list
        cifs: Avoid a cast in add_lease_context()
        cifs: Simplify SMB2_open_init()
        cifs: Simplify SMB2_open_init()
        cifs: Simplify SMB2_open_init()
      26c009df
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-v6.4-rc1-fix-v2' of... · ed9a65e5
      Linus Torvalds authored
      Merge tag 'tpmdd-v6.4-rc1-fix-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd
      
      Pull tpm fix from Jarkko Sakkinen:
       "This fixes a critical bug in my first pull request.
      
        I fixed the cherry pick issue and tested with real hardare and
        libvirt/qemu plus swtpm"
      
      * tag 'tpmdd-v6.4-rc1-fix-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm: Re-enable TPM chip boostrapping non-tpm_tis TPM drivers
      ed9a65e5
  4. 30 Apr, 2023 10 commits
    • Tom Rix's avatar
      i3c: ast2600: set variable ast2600_i3c_ops storage-class-specifier to static · 6b496a94
      Tom Rix authored
      smatch reports
      drivers/i3c/master/ast2600-i3c-master.c:121:34: warning: symbol
        'ast2600_i3c_ops' was not declared. Should it be static?
      
      This variable is only used in its defining file, so it should be static.
      Signed-off-by: default avatarTom Rix <trix@redhat.com>
      Reviewed-by: default avatarJeremy Kerr <jk@codeconstruct.com.au>
      Link: https://lore.kernel.org/r/20230429134601.2688558-1-trix@redhat.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      6b496a94
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 58390c8c
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - Convert to platform remove callback returning void
      
       - Extend changing default domain to normal group
      
       - Intel VT-d updates:
           - Remove VT-d virtual command interface and IOASID
           - Allow the VT-d driver to support non-PRI IOPF
           - Remove PASID supervisor request support
           - Various small and misc cleanups
      
       - ARM SMMU updates:
           - Device-tree binding updates:
               * Allow Qualcomm GPU SMMUs to accept relevant clock properties
               * Document Qualcomm 8550 SoC as implementing an MMU-500
               * Favour new "qcom,smmu-500" binding for Adreno SMMUs
      
           - Fix S2CR quirk detection on non-architectural Qualcomm SMMU
             implementations
      
           - Acknowledge SMMUv3 PRI queue overflow when consuming events
      
           - Document (in a comment) why ATS is disabled for bypass streams
      
       - AMD IOMMU updates:
           - 5-level page-table support
           - NUMA awareness for memory allocations
      
       - Unisoc driver: Support for reattaching an existing domain
      
       - Rockchip driver: Add missing set_platform_dma_ops callback
      
       - Mediatek driver: Adjust the dma-ranges
      
       - Various other small fixes and cleanups
      
      * tag 'iommu-updates-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (82 commits)
        iommu: Remove iommu_group_get_by_id()
        iommu: Make iommu_release_device() static
        iommu/vt-d: Remove BUG_ON in dmar_insert_dev_scope()
        iommu/vt-d: Remove a useless BUG_ON(dev->is_virtfn)
        iommu/vt-d: Remove BUG_ON in map/unmap()
        iommu/vt-d: Remove BUG_ON when domain->pgd is NULL
        iommu/vt-d: Remove BUG_ON in handling iotlb cache invalidation
        iommu/vt-d: Remove BUG_ON on checking valid pfn range
        iommu/vt-d: Make size of operands same in bitwise operations
        iommu/vt-d: Remove PASID supervisor request support
        iommu/vt-d: Use non-privileged mode for all PASIDs
        iommu/vt-d: Remove extern from function prototypes
        iommu/vt-d: Do not use GFP_ATOMIC when not needed
        iommu/vt-d: Remove unnecessary checks in iopf disabling path
        iommu/vt-d: Move PRI handling to IOPF feature path
        iommu/vt-d: Move pfsid and ats_qdep calculation to device probe path
        iommu/vt-d: Move iopf code from SVA to IOPF enabling path
        iommu/vt-d: Allow SVA with device-specific IOPF
        dmaengine: idxd: Add enable/disable device IOPF feature
        arm64: dts: mt8186: Add dma-ranges for the parent "soc" node
        ...
      58390c8c
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 7acc1372
      Linus Torvalds authored
      Pull compute express link updates from Dan Williams:
       "DOE support is promoted from drivers/cxl/ to drivers/pci/ with Bjorn's
        blessing, and the CXL core continues to mature its media management
        capabilities with support for listing and injecting media errors. Some
        late fixes that missed v6.3-final are also included:
      
         - Refactor the DOE infrastructure (Data Object Exchange
           PCI-config-cycle mailbox) to be a facility of the PCI core rather
           than the CXL core.
      
           This is foundational for upcoming support for PCI
           device-attestation and PCIe / CXL link encryption.
      
         - Add support for retrieving and injecting poison for CXL memory
           expanders.
      
           This enabling uses trace-events to convey CXL media error records
           to user tooling. It includes translation of device-local addresses
           (DPA) to system physical addresses (SPA) and their corresponding
           CXL region.
      
         - Fixes for decoder enumeration that missed v6.3-final
      
         - Miscellaneous fixups"
      
      * tag 'cxl-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (38 commits)
        cxl/test: Add mock test for set_timestamp
        cxl/mbox: Update CMD_RC_TABLE
        tools/testing/cxl: Require CONFIG_DEBUG_FS
        tools/testing/cxl: Add a sysfs attr to test poison inject limits
        tools/testing/cxl: Use injected poison for get poison list
        tools/testing/cxl: Mock the Clear Poison mailbox command
        tools/testing/cxl: Mock the Inject Poison mailbox command
        cxl/mem: Add debugfs attributes for poison inject and clear
        cxl/memdev: Trace inject and clear poison as cxl_poison events
        cxl/memdev: Warn of poison inject or clear to a mapped region
        cxl/memdev: Add support for the Clear Poison mailbox command
        cxl/memdev: Add support for the Inject Poison mailbox command
        tools/testing/cxl: Mock support for Get Poison List
        cxl/trace: Add an HPA to cxl_poison trace events
        cxl/region: Provide region info to the cxl_poison trace event
        cxl/memdev: Add trigger_poison_list sysfs attribute
        cxl/trace: Add TRACE support for CXL media-error records
        cxl/mbox: Add GET_POISON_LIST mailbox command
        cxl/mbox: Initialize the poison state
        cxl/mbox: Restrict poison cmds to debugfs cxl_raw_allow_all
        ...
      7acc1372
    • Linus Torvalds's avatar
      Merge tag 's390-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 10de638d
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Add support for stackleak feature. Also allow specifying
         architecture-specific stackleak poison function to enable faster
         implementation. On s390, the mvc-based implementation helps decrease
         typical overhead from a factor of 3 to just 25%
      
       - Convert all assembler files to use SYM* style macros, deprecating the
         ENTRY() macro and other annotations. Select ARCH_USE_SYM_ANNOTATIONS
      
       - Improve KASLR to also randomize module and special amode31 code base
         load addresses
      
       - Rework decompressor memory tracking to support memory holes and
         improve error handling
      
       - Add support for protected virtualization AP binding
      
       - Add support for set_direct_map() calls
      
       - Implement set_memory_rox() and noexec module_alloc()
      
       - Remove obsolete overriding of mem*() functions for KASAN
      
       - Rework kexec/kdump to avoid using nodat_stack to call purgatory
      
       - Convert the rest of the s390 code to use flexible-array member
         instead of a zero-length array
      
       - Clean up uaccess inline asm
      
       - Enable ARCH_HAS_MEMBARRIER_SYNC_CORE
      
       - Convert to using CONFIG_FUNCTION_ALIGNMENT and enable
         DEBUG_FORCE_FUNCTION_ALIGN_64B
      
       - Resolve last_break in userspace fault reports
      
       - Simplify one-level sysctl registration
      
       - Clean up branch prediction handling
      
       - Rework CPU counter facility to retrieve available counter sets just
         once
      
       - Other various small fixes and improvements all over the code
      
      * tag 's390-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (118 commits)
        s390/stackleak: provide fast __stackleak_poison() implementation
        stackleak: allow to specify arch specific stackleak poison function
        s390: select ARCH_USE_SYM_ANNOTATIONS
        s390/mm: use VM_FLUSH_RESET_PERMS in module_alloc()
        s390: wire up memfd_secret system call
        s390/mm: enable ARCH_HAS_SET_DIRECT_MAP
        s390/mm: use BIT macro to generate SET_MEMORY bit masks
        s390/relocate_kernel: adjust indentation
        s390/relocate_kernel: use SYM* macros instead of ENTRY(), etc.
        s390/entry: use SYM* macros instead of ENTRY(), etc.
        s390/purgatory: use SYM* macros instead of ENTRY(), etc.
        s390/kprobes: use SYM* macros instead of ENTRY(), etc.
        s390/reipl: use SYM* macros instead of ENTRY(), etc.
        s390/head64: use SYM* macros instead of ENTRY(), etc.
        s390/earlypgm: use SYM* macros instead of ENTRY(), etc.
        s390/mcount: use SYM* macros instead of ENTRY(), etc.
        s390/crc32le: use SYM* macros instead of ENTRY(), etc.
        s390/crc32be: use SYM* macros instead of ENTRY(), etc.
        s390/crypto,chacha: use SYM* macros instead of ENTRY(), etc.
        s390/amode31: use SYM* macros instead of ENTRY(), etc.
        ...
      10de638d
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · d55571c0
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Refactor scripts/kallsyms to make it faster and easier to maintain
      
       - Clean up menuconfig
      
       - Provide Clang with hard-coded target triple instead of CROSS_COMPILE
      
       - Use -z pack-relative-relocs flags instead of --use-android-relr-tags
         for arm64 CONFIG_RELR
      
       - Add srcdeb-pkg target to build only a Debian source package
      
       - Add KDEB_SOURCE_COMPRESS option to specify the compression for a
         Debian source package
      
       - Misc cleanups and fixes
      
      * tag 'kbuild-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: deb-pkg: specify targets in debian/rules as .PHONY
        sparc: unify sparc32/sparc64 archhelp
        kbuild: rpm-pkg: remove kernel-drm PROVIDES
        kbuild: deb-pkg: add KDEB_SOURCE_COMPRESS to specify source compression
        kbuild: add srcdeb-pkg target
        Makefile: use -z pack-relative-relocs
        kbuild: clang: do not use CROSS_COMPILE for target triple
        kconfig: menuconfig: reorder functions to remove forward declarations
        kconfig: menuconfig: remove unused M_EVENT macro
        kconfig: menuconfig: remove OLD_NCURSES macro
        kbuild: builddeb: Eliminate debian/arch use
        scripts/kallsyms: update the usage in the comment block
        scripts/kallsyms: decrease expand_symbol() / cleanup_symbol_name() calls
        scripts/kallsyms: change the output order
        scripts/kallsyms: move compiler-generated symbol patterns to mksysmap
        scripts/kallsyms: exclude symbols generated by itself dynamically
        scripts/mksysmap: use sed with in-line comments
        scripts/mksysmap: remove comments described in nm(1)
        scripts/kallsyms: remove redundant code for omitting U and N
        kallsyms: expand symbol name into comment for debugging
      d55571c0
    • Linus Torvalds's avatar
      Merge tag 'rust-6.4' of https://github.com/Rust-for-Linux/linux · 31089765
      Linus Torvalds authored
      Pull rust updates from Miguel Ojeda
       "More additions to the Rust core. Importantly, this adds the pin-init
        API, which will be used by other abstractions, such as the
        synchronization ones added here too:
      
         - pin-init API: a solution for the safe pinned initialization
           problem.
      
           This allows to reduce the need for 'unsafe' code in the kernel when
           dealing with data structures that require a stable address. Commit
           90e53c5e ("rust: add pin-init API core") contains a nice
           introduction -- here is an example of how it looks like:
      
              #[pin_data]
              struct Example {
                  #[pin]
                  value: Mutex<u32>,
      
                  #[pin]
                  value_changed: CondVar,
              }
      
              impl Example {
                  fn new() -> impl PinInit<Self> {
                      pin_init!(Self {
                          value <- new_mutex!(0),
                          value_changed <- new_condvar!(),
                      })
                  }
              }
      
              // In a `Box`.
              let b = Box::pin_init(Example::new())?;
      
              // In the stack.
              stack_pin_init!(let s = Example::new());
      
         - 'sync' module:
      
           New types 'LockClassKey' ('struct lock_class_key'), 'Lock',
           'Guard', 'Mutex' ('struct mutex'), 'SpinLock' ('spinlock_t'),
           'LockedBy' and 'CondVar' (uses 'wait_queue_head_t'), plus macros
           such as 'static_lock_class!' and 'new_spinlock!'.
      
           In particular, 'Lock' and 'Guard' are generic implementations that
           contain code that is common to all locks. Then, different backends
           (the new 'Backend' trait) are implemented and used to define types
           like 'Mutex':
      
              type Mutex<T> = Lock<T, MutexBackend>;
      
           In addition, new methods 'assume_init()', 'init_with()' and
           'pin_init_with()' for 'UniqueArc<MaybeUninit<T>>' and 'downcast()'
           for 'Arc<dyn Any + Send + Sync>'; as well as 'Debug' and 'Display'
           implementations for 'Arc' and 'UniqueArc'. Reduced stack usage of
           'UniqueArc::try_new_uninit()', too.
      
         - 'types' module:
      
           New trait 'AlwaysRefCounted' and new type 'ARef' (an owned
           reference to an always-reference-counted object, meant to be used
           in wrappers for C types that have their own ref counting
           functions).
      
           Moreover, new associated functions 'raw_get()' and 'ffi_init()' for
           'Opaque'.
      
         - New 'task' module with a new type 'Task' ('struct task_struct'),
           and a new macro 'current!' to safely get a reference to the current
           one.
      
         - New 'ioctl' module with new '_IOC*' const functions (equivalent to
           the C macros).
      
         - New 'uapi' crate, intended to be accessible by drivers directly.
      
         - 'macros' crate: new 'quote!' macro (similar to the one provided in
           userspace by the 'quote' crate); and the 'module!' macro now allows
           specifying multiple module aliases.
      
         - 'error' module:
      
           New associated functions for the 'Error' type, such as
           'from_errno()' and new functions such as 'to_result()'.
      
         - 'alloc' crate:
      
           More fallible 'Vec' methods: 'try_resize` and
           'try_extend_from_slice' and the infrastructure (imported from the
           Rust standard library) they need"
      
      * tag 'rust-6.4' of https://github.com/Rust-for-Linux/linux: (44 commits)
        rust: ioctl: Add ioctl number manipulation functions
        rust: uapi: Add UAPI crate
        rust: sync: introduce `CondVar`
        rust: lock: add `Guard::do_unlocked`
        rust: sync: introduce `LockedBy`
        rust: introduce `current`
        rust: add basic `Task`
        rust: introduce `ARef`
        rust: lock: introduce `SpinLock`
        rust: lock: introduce `Mutex`
        rust: sync: introduce `Lock` and `Guard`
        rust: sync: introduce `LockClassKey`
        MAINTAINERS: add Benno Lossin as Rust reviewer
        rust: init: broaden the blanket impl of `Init`
        rust: sync: add functions for initializing `UniqueArc<MaybeUninit<T>>`
        rust: sync: reduce stack usage of `UniqueArc::try_new_uninit`
        rust: types: add `Opaque::ffi_init`
        rust: prelude: add `pin-init` API items to prelude
        rust: init: add `Zeroable` trait and `init::zeroed` function
        rust: init: add `stack_pin_init!` macro
        ...
      31089765
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 825a0714
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
      
       - relocate the LoongArch kernel if the preferred address is already
         occupied
      
       - implement BTI annotations for arm64 EFI stub and zboot images
      
       - clean up arm64 zboot Kbuild rules for injecting the kernel code size
      
      * tag 'efi-next-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi/zboot: arm64: Grab code size from ELF symbol in payload
        efi/zboot: arm64: Inject kernel code size symbol into the zboot payload
        efi/zboot: Set forward edge CFI compat header flag if supported
        efi/zboot: Add BSS padding before compression
        arm64: efi: Enable BTI codegen and add PE/COFF annotation
        efi/pe: Import new BTI/IBT header flags from the spec
        efi/loongarch: Reintroduce efi_relocate_kernel() to relocate kernel
      825a0714
    • Linus Torvalds's avatar
      Merge tag 'for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 17d4ded2
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - power-supply core support for automatic handling of constant battery
         data supplied by firmware
      
       - generic-adc-battery: major cleanup
      
       - axp288_charger: fix ACPI issues on x86 Android tablets
      
       - rk817: cleanup and fix handling for low state of charge
      
      * tag 'for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (26 commits)
        power: supply: rk817: Fix low SOC bugs
        power: supply: rk817: Drop unneeded debugging code
        power: supply: axp288_charger: Use alt usb-id extcon on some x86 android tablets
        power: supply: generic-adc-battery: style fixes
        power: supply: generic-adc-battery: improve error message
        power: supply: generic-adc-battery: update copyright info
        power: supply: generic-adc-battery: add DT support
        power: supply: generic-adc-battery: add temperature support
        power: supply: generic-adc-battery: simplify read_channel logic
        power: supply: generic-adc-battery: use simple-battery API
        power: supply: generic-adc-battery: drop memory alloc error message
        power: supply: generic-adc-battery: drop charge now support
        power: supply: generic-adc-battery: drop jitter delay support
        power: supply: generic-adc-battery: fix unit scaling
        power: supply: generic-adc-battery: convert to managed resources
        power: supply: core: auto-exposure of simple-battery data
        dt-bindings: power: supply: adc-battery: add binding
        power: supply: bq256xx: Support to disable charger
        power: supply: charger-manager: Use of_property_read_bool() for boolean properties
        power: reset: qcom-pon: drop of_match_ptr for ID table
        ...
      17d4ded2
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · e81507ac
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "Nothing looks out of the ordinary in this batch of clk driver updates.
      
        There are a couple patches to the core clk framework, but they're all
        basically cleanups or debugging aids. The driver updates and new
        additions are dominated in the diffstat by Qualcomm and MediaTek
        drivers. Qualcomm gained a handful of new drivers for various SoCs,
        and MediaTek gained a bunch of drivers for MT8188. The MediaTek
        drivers are being modernized as well, so there are updates all over
        that vendor's clk drivers. There's also a couple other new clk drivers
        in here, for example the Starfive JH7110 SoC support is added.
      
        Outside of the two major SoC vendors though, we have the usual
        collection of non-critical fixes and cleanups to various clk drivers.
        It's good to see that we're getting more cleanups and modernization
        patches. Maybe one day we'll be able to properly split clk providers
        from clk consumers.
      
        Core:
         - Print an informational message before disabling unused clks
      
        New Drivers:
         - BCM63268 timer clock and reset controller
         - Frequency Hopping (FHCTL) on MediaTek MT6795, MT8173, MT8192 and
           MT8195 SoCs
         - Mediatek MT8188 SoC clk drivers
         - Clock driver for Sunplus SP7021 SoC
         - Clk driver support for Loongson-2 SoCs
         - Clock driver for Skyworks Si521xx I2C PCIe clock generators
         - Initial Starfive JH7110 clk/reset support
         - Global clock controller drivers for Qualcomm SM7150, IPQ9574,
           MSM8917 and IPQ5332 SoCs
         - GPU clock controller drivers for SM6115, SM6125, SM6375 and SA8775P
           SoCs
      
        Updates:
         - Shrink size of clk_fractional_divider a little
         - Convert various clk drivers to devm_of_clk_add_hw_provider()
         - Convert platform clk drivers to remove_new()
         - Converted most Mediatek clock drivers to struct platform_driver
         - MediaTek clock drivers can be built as modules
         - Reimplement Loongson-1 clk driver with DT support
         - Migrate socfpga clk driver to of_clk_add_hw_provider()
         - Support for i3c clks on Aspeed ast2600 SoCs
         - Add clock generic devm_clk_hw_register_gate_parent_data
         - Add audiomix block control for i.MX8MP
         - Add support for determine_rate to i.MX composite-8m
         - Let the LCDIF Pixel clock of i.MX8MM and i.MX8MN set parent rate
         - Provide clock name in error message for clk-gpr-mux on get parent
           failure
         - Drop duplicate imx_clk_mux_flags macro
         - Register the i.MX8MP Media Disp2 Pix clock as bus clock
         - Add Media LDB root clock to i.MX8MP
         - Make i.MX8MP nand_usdhc_bus clock as non-critical
         - Fix the rate table for i.MX fracn-gppll
         - Disable HW control for the fracn-gppll in order to be controlled by
           register write
         - Add support for interger PLL in fracn-gppll
         - Add mcore_booted module parameter to i.MX93 provider
         - Add NIC, A55 and ARM PLL clocks to i.MX93
         - Fix i.MX8ULP XBAR_DIVBUS and AD_SLOW clock parents
         - Use "divider closest" clock type for PLL4_PFD dividers on i.MX8ULP
           to get more accurate clock rates
         - Mark the MU0_Bi and TPM5 clocks on i.MX8ULP as critical
         - Update some of the i.MX critical clocks flags to allow glitchless
           on-the-fly rate change.
         - Add I2C5 clock on Renesas R-Car V3H
         - Exynos850: Add CMU_G3D clock controller for the Mali GPU
         - Extract Exynos5433 (ARM64) clock controller power management code
           to common driver parts
         - Exynos850: make PMU_ALIVE_PCLK clock critical
         - Add Audio, thermal, camera (CSI-2), Image Signal Processor/Channel
           Selector (ISPCS), and video capture (VIN) clocks on Renesas R-Car
           V4H
         - Add video capture (VIN) clocks on Renesas R-Car V3H
         - Add Cortex-A53 System CPU (Z2) clocks on Renesas R-Car V3M and V3H
         - Support for Stromer Plus PLL on Qualcomm IPQ5332
         - Add a missing reset to Qualcomm QCM2290
         - Migrate Qualcomm IPQ4019 to clk_parent_data
         - Make USB GDSCs enter retention state when disabled on Qualcomm
           SM6375, MSM8996 and MSM8998 SoCs
         - Set floor rounding clk_ops for Qualcomm QCM2290 SDCC2 clk
         - Add two EMAC GDSCs on Qualcomm SC8280XP
         - Use shared rcg clk ops in Qualcomm SM6115 GCC
         - Park Qualcomm SM8350 PCIe PIPE clks when disabled
         - Add GDSCs to Qualcomm SC7280 LPASS audio clock controller
         - Add missing XO clocks to Qualcomm MSM8226 and MSM8974
         - Convert some Qualcomm clk DT bindings to YAML
         - Reparenting fix for the clock supplying camera modules on Rockchip
           rk3399
         - Mark more critical (bus-)clocks on Rockchip rk3588"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (290 commits)
        clk: qcom: gcc-sc8280xp: Add EMAC GDSCs
        clk: starfive: Delete the redundant dev_set_drvdata() in JH7110 clock drivers
        clk: rockchip: rk3588: make gate linked clocks critical
        clk: qcom: dispcc-qcm2290: Remove inexistent DSI1PHY clk
        clk: qcom: add the GPUCC driver for sa8775p
        dt-bindings: clock: qcom: describe the GPUCC clock for SA8775P
        clk: qcom: gcc-sm8350: fix PCIe PIPE clocks handling
        clk: qcom: lpassaudiocc-sc7280: Add required gdsc power domain clks in lpass_cc_sc7280_desc
        clk: qcom: lpasscc-sc7280: Skip qdsp6ss clock registration
        dt-bindings: clock: qcom,sc7280-lpasscc: Add qcom,adsp-pil-mode property
        clk: starfive: Avoid casting iomem pointers
        clk: microchip: fix potential UAF in auxdev release callback
        clk: qcom: rpm: Use managed `of_clk_add_hw_provider()`
        clk: mediatek: fhctl: Mark local variables static
        clk: sifive: make SiFive clk drivers depend on ARCH_ symbols
        clk: uniphier: Use managed `of_clk_add_hw_provider()`
        clk: si5351: Use managed `of_clk_add_hw_provider()`
        clk: si570: Use managed `of_clk_add_hw_provider()`
        clk: si514: Use managed `of_clk_add_hw_provider()`
        clk: lmk04832: Use managed `of_clk_add_hw_provider()`
        ...
      e81507ac
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · af387726
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "Usual wide collection of unrelated items in drivers:
      
         - Driver bug fixes and treewide cleanups in hfi1, siw, qib, mlx5,
           rxe, usnic, usnic, bnxt_re, ocrdma, iser:
             - remove unnecessary NULL checks
             - kmap obsolescence
             - pci_enable_pcie_error_reporting() obsolescence
             - unused variables and macros
             - trace event related warnings
             - casting warnings
      
         - Code cleanups for irdm and erdma
      
         - EFA reporting of 128 byte PCIe TLP support
      
         - mlx5 more agressively uses the out of order HW feature
      
         - Big rework of how state machines and tasks work in rxe
      
         - Fix a syzkaller found crash netdev refcount leak in siw
      
         - bnxt_re revises their HW description header
      
         - Congestion control for bnxt_re
      
         - Use mmu_notifiers more safely in hfi1
      
         - mlx5 gets better support for PCIe relaxed ordering inside VMs"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (81 commits)
        RDMA/efa: Add rdma write capability to device caps
        RDMA/mlx5: Use correct device num_ports when modify DC
        RDMA/irdma: Drop spurious WQ_UNBOUND from alloc_ordered_workqueue() call
        RDMA/rxe: Fix spinlock recursion deadlock on requester
        RDMA/mlx5: Fix flow counter query via DEVX
        RDMA/rxe: Protect QP state with qp->state_lock
        RDMA/rxe: Move code to check if drained to subroutine
        RDMA/rxe: Remove qp->req.state
        RDMA/rxe: Remove qp->comp.state
        RDMA/rxe: Remove qp->resp.state
        RDMA/mlx5: Allow relaxed ordering read in VFs and VMs
        net/mlx5: Update relaxed ordering read HCA capabilities
        RDMA/mlx5: Check pcie_relaxed_ordering_enabled() in UMR
        RDMA/mlx5: Remove pcie_relaxed_ordering_enabled() check for RO write
        RDMA: Add ib_virt_dma_to_page()
        RDMA/rxe: Fix the error "trying to register non-static key in rxe_cleanup_task"
        RDMA/irdma: Slightly optimize irdma_form_ah_cm_frame()
        RDMA/rxe: Fix incorrect TASKLET_STATE_SCHED check in rxe_task.c
        IB/hfi1: Place struct mmu_rb_handler on cache line start
        IB/hfi1: Fix bugs with non-PAGE_SIZE-end multi-iovec user SDMA requests
        ...
      af387726
  5. 29 Apr, 2023 6 commits
    • Linus Torvalds's avatar
      Merge tag '6.4-rc-ksmbd-server-fixes' of git://git.samba.org/ksmbd · 1ae78a14
      Linus Torvalds authored
      Pull ksmbd server updates from Steve French:
      
       - SMB3.1.1 negotiate context fixes and cleanup
      
       - new lock_rename_child VFS helper
      
       - ksmbd fix to avoid unlink race and to use the new VFS helper to avoid
         rename race
      
      * tag '6.4-rc-ksmbd-server-fixes' of git://git.samba.org/ksmbd:
        ksmbd: fix racy issue from using ->d_parent and ->d_name
        ksmbd: remove unused compression negotiate ctx packing
        ksmbd: avoid duplicate negotiate ctx offset increments
        ksmbd: set NegotiateContextCount once instead of every inc
        fs: introduce lock_rename_child() helper
        ksmbd: remove internal.h include
      1ae78a14
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 4e1c80ae
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
       "The big ticket item for this release is that support for RPC-with-TLS
        [RFC 9289] has been added to the Linux NFS server.
      
        The goal is to provide a simple-to-deploy, low-overhead in-transit
        confidentiality and peer authentication mechanism. It can supplement
        NFS Kerberos and it can protect the use of legacy non-cryptographic
        user authentication flavors such as AUTH_SYS. The TLS Record protocol
        is handled entirely by kTLS, meaning it can use either software
        encryption or offload encryption to smart NICs.
      
        Aside from that, work continues on improving NFSD's open file cache.
        Among the many clean-ups in that area is a patch to convert the
        rhashtable to use the list-hashing version of that data structure"
      
      * tag 'nfsd-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (31 commits)
        NFSD: Handle new xprtsec= export option
        SUNRPC: Support TLS handshake in the server-side TCP socket code
        NFSD: Clean up xattr memory allocation flags
        NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop
        SUNRPC: Clear rq_xid when receiving a new RPC Call
        SUNRPC: Recognize control messages in server-side TCP socket code
        SUNRPC: Be even lazier about releasing pages
        SUNRPC: Convert svc_xprt_release() to the release_pages() API
        SUNRPC: Relocate svc_free_res_pages()
        nfsd: simplify the delayed disposal list code
        SUNRPC: Ignore return value of ->xpo_sendto
        SUNRPC: Ensure server-side sockets have a sock->file
        NFSD: Watch for rq_pages bounds checking errors in nfsd_splice_actor()
        sunrpc: simplify two-level sysctl registration for svcrdma_parm_table
        SUNRPC: return proper error from get_expiry()
        lockd: add some client-side tracepoints
        nfs: move nfs_fhandle_hash to common include file
        lockd: server should unlock lock if client rejects the grant
        lockd: fix races in client GRANTED_MSG wait logic
        lockd: move struct nlm_wait to lockd.h
        ...
      4e1c80ae
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-6.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs · 0127f25b
      Linus Torvalds authored
      Pull NFS client updates from Anna Schumaker:
       "New Features:
      
         - Convert the readdir path to use folios
      
         - Convert the NFS fscache code to use netfs
      
        Bugfixes and Cleanups:
      
         - Always send a RECLAIM_COMPLETE after establishing a lease
      
         - Simplify sysctl registrations and other cleanups
      
         - Handle out-of-order write replies on NFS v3
      
         - Have sunrpc call_bind_status use standard hard/soft task semantics
      
         - Other minor cleanups"
      
      * tag 'nfs-for-6.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs:
        NFSv4.2: Rework scratch handling for READ_PLUS
        NFS: Cleanup unused rpc_clnt variable
        NFS: set varaiable nfs_netfs_debug_id storage-class-specifier to static
        SUNRPC: remove the maximum number of retries in call_bind_status
        NFS: Convert readdir page array functions to use a folio
        NFS: Convert the readdir array-of-pages into an array-of-folios
        NFSv3: handle out-of-order write replies.
        NFS: Remove fscache specific trace points and NFS_INO_FSCACHE bit
        NFS: Remove all NFSIOS_FSCACHE counters due to conversion to netfs API
        NFS: Convert buffered read paths to use netfs when fscache is enabled
        NFS: Configure support for netfs when NFS fscache is configured
        NFS: Rename readpage_async_filler to nfs_read_add_folio
        sunrpc: simplify one-level sysctl registration for debug_table
        sunrpc: move sunrpc_table and proc routines above
        sunrpc: simplify one-level sysctl registration for xs_tunables_table
        sunrpc: simplify one-level sysctl registration for xr_tunables_table
        nfs: simplify two-level sysctl registration for nfs_cb_sysctls
        nfs: simplify two-level sysctl registration for nfs4_cb_sysctls
        lockd: simplify two-level sysctl registration for nlm_sysctls
        NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease
      0127f25b
    • Linus Torvalds's avatar
      Merge tag 'ntfs3_for_6.4' of https://github.com/Paragon-Software-Group/linux-ntfs3 · 1e098dec
      Linus Torvalds authored
      Pull ntfs3 updates from Konstantin Komarov:
       "New code:
      
         - add missed "nocase" in ntfs_show_options
      
         - extend information on failures/errors
      
         - small optimizations
      
        Fixes:
      
         - some logic errors
      
         - some dead code was removed
      
         - code is refactored and reformatted according to the new version of
           clang-format
      
        Code removal:
      
         - 'noacsrules' option.
      
           Currently, this option does not work properly, and its use leads to
           unstable results. If we figure out how to implement it without
           errors, we will add it later
      
         - writepage"
      
      * tag 'ntfs3_for_6.4' of https://github.com/Paragon-Software-Group/linux-ntfs3: (30 commits)
        fs/ntfs3: Fix root inode checking
        fs/ntfs3: Print details about mount fails
        fs/ntfs3: Add missed "nocase" in ntfs_show_options
        fs/ntfs3: Code formatting and refactoring
        fs/ntfs3: Changed ntfs_get_acl() to use dentry
        fs/ntfs3: Remove field sbi->used.bitmap.set_tail
        fs/ntfs3: Undo critial modificatins to keep directory consistency
        fs/ntfs3: Undo endian changes
        fs/ntfs3: Optimization in ntfs_set_state()
        fs/ntfs3: Fix ntfs_create_inode()
        fs/ntfs3: Remove noacsrules
        fs/ntfs3: Use bh_read to simplify code
        fs/ntfs3: Fix a possible null-pointer dereference in ni_clear()
        fs/ntfs3: Refactoring of various minor issues
        fs/ntfs3: Restore overflow checking for attr size in mi_enum_attr
        fs/ntfs3: Check for extremely large size of $AttrDef
        fs/ntfs3: Improved checking of attribute's name length
        fs/ntfs3: Add null pointer checks
        fs/ntfs3: fix spelling mistake "attibute" -> "attribute"
        fs/ntfs3: Add length check in indx_get_root
        ...
      1e098dec
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.4-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 56c455b3
      Linus Torvalds authored
      Pull xfs updates from Dave Chinner:
       "This consists mainly of online scrub functionality and the design
        documentation for the upcoming online repair functionality built on
        top of the scrub code:
      
         - Added detailed design documentation for the upcoming online repair
           feature
      
         - major update to online scrub to complete the reverse mapping
           cross-referencing infrastructure enabling us to fully validate
           allocated metadata against owner records. This is the last piece of
           scrub infrastructure needed before we can start merging online
           repair functionality.
      
         - Fixes for the ascii-ci hashing issues
      
         - deprecation of the ascii-ci functionality
      
         - on-disk format verification bug fixes
      
         - various random bug fixes for syzbot and other bug reports"
      
      * tag 'xfs-6.4-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (107 commits)
        xfs: fix livelock in delayed allocation at ENOSPC
        xfs: Extend table marker on deprecated mount options table
        xfs: fix duplicate includes
        xfs: fix BUG_ON in xfs_getbmap()
        xfs: verify buffer contents when we skip log replay
        xfs: _{attr,data}_map_shared should take ILOCK_EXCL until iread_extents is completely done
        xfs: remove WARN when dquot cache insertion fails
        xfs: don't consider future format versions valid
        xfs: deprecate the ascii-ci feature
        xfs: test the ascii case-insensitive hash
        xfs: stabilize the dirent name transformation function used for ascii-ci dir hash computation
        xfs: cross-reference rmap records with refcount btrees
        xfs: cross-reference rmap records with inode btrees
        xfs: cross-reference rmap records with free space btrees
        xfs: cross-reference rmap records with ag btrees
        xfs: introduce bitmap type for AG blocks
        xfs: convert xbitmap to interval tree
        xfs: drop the _safe behavior from the xbitmap foreach macro
        xfs: don't load local xattr values during scrub
        xfs: remove the for_each_xbitmap_ helpers
        ...
      56c455b3
    • Linus Torvalds's avatar
      Merge tag 'iomap-6.4-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · bedf1495
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "The only changes for this cycle are the addition of tracepoints to the
        iomap directio code so that Ritesh (who is working on porting ext2 to
        iomap) can observe the io flows more easily.
      
        Summary:
      
         - Remove an unused symbol
      
         - Add tracepoints for the directio code"
      
      * tag 'iomap-6.4-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: Add DIO tracepoints
        iomap: Remove IOMAP_DIO_NOSYNC unused dio flag
        fs.h: Add TRACE_IOCB_STRINGS for use in trace points
      bedf1495