1. 22 Aug, 2024 4 commits
    • Leon Romanovsky's avatar
      dma-mapping: call ->unmap_page and ->unmap_sg unconditionally · f69e342e
      Leon Romanovsky authored
      Almost all instances of the dma_map_ops ->map_page()/map_sg() methods
      implement ->unmap_page()/unmap_sg() too.  The once instance which doesn't
      dma_dummy_ops which is used to fail the DMA mapping and thus there won't
      be any calls to ->unmap_page()/unmap_sg().
      
      Remove the checks for ->unmap_page()/unmap_sg() and call them directly to
      create an interface that is symmetrical to ->map_page()/map_sg().
      Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
      Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      f69e342e
    • Catalin Marinas's avatar
      arm64: support DMA zone above 4GB · 3be9b846
      Catalin Marinas authored
      Commit 791ab8b2 ("arm64: Ignore any DMA offsets in the
      max_zone_phys() calculation") made arm64 DMA/DMA32 zones span the entire
      RAM when RAM starts above 32-bits. This breaks hardware with DMA area
      that start above 32-bits. But the commit log says that "we haven't
      noticed any such hardware". It turns out that such hardware does exist.
      
      One such platform has RAM starting at 32GB with an internal bus that has
      the following DMA limits:
      
        #address-cells = <2>;
        #size-cells = <2>;
        dma-ranges = <0x00 0xc0000000 0x08 0x00000000 0x00 0x40000000>;
      
      That is, devices under this bus see 1GB of DMA range between 3GB-4GB in
      their address space. This range is mapped to CPU memory at 32GB-33GB.
      With current code DMA allocations for devices under this bus are not
      limited to DMA area, leading to run-time allocation failure.
      
      This commit reinstates DMA zone at the bottom of RAM. The result is DMA
      zone that properly reflects the hardware constraints as follows:
      
      [    0.000000] Zone ranges:
      [    0.000000]   DMA      [mem 0x0000000800000000-0x000000083fffffff]
      [    0.000000]   DMA32    empty
      [    0.000000]   Normal   [mem 0x0000000840000000-0x0000000bffffffff]
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      [baruch: split off the original patch]
      Signed-off-by: default avatarBaruch Siach <baruch@tkos.co.il>
      Reviewed-by: default avatarPetr Tesarik <ptesarik@suse.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      3be9b846
    • Catalin Marinas's avatar
      dma-mapping: replace zone_dma_bits by zone_dma_limit · ba0fb44a
      Catalin Marinas authored
      The hardware DMA limit might not be power of 2. When RAM range starts
      above 0, say 4GB, DMA limit of 30 bits should end at 5GB.  A single high
      bit can not encode this limit.
      
      Use a plain  address for the DMA zone limit instead.
      
      Since the DMA zone can now potentially span beyond 4GB physical limit of
      DMA32, make sure to use DMA zone for GFP_DMA32 allocations in that case.
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Co-developed-by: default avatarBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: default avatarBaruch Siach <baruch@tkos.co.il>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: default avatarPetr Tesarik <ptesarik@suse.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      ba0fb44a
    • Yosry Ahmed's avatar
      dma-mapping: use bit masking to check VM_DMA_COHERENT · fa3c109a
      Yosry Ahmed authored
      In dma_common_find_pages(), area->flags are compared directly with
      VM_DMA_COHERENT. This works because VM_DMA_COHERENT is the only set
      flag.
      
      During development of a new feature (ASI [1]), a new VM flag is
      introduced, and that flag can be injected into VM_DMA_COHERENT mappings
      (among others).  The presence of that flag caused
      dma_common_find_pages() to return NULL for VM_DMA_COHERENT addresses,
      leading to a lot of problems ending in crashing during boot. It took a
      bit of time to figure this problem out.
      
      It was a mistake to inject a VM flag to begin with, but it took a
      significant amount of debugging to figure out the problem. Most users of
      area->flags use bitmasking rather than equivalency to check for flags.
      Update dma_common_find_pages() and dma_common_free_remap() to do the
      same, which would have avoided the boot crashing. Instead, add a warning
      in dma_common_find_pages() if any extra VM flags are set to catch such
      problems more easily during development.
      
      No functional change intended.
      
      [1]https://lore.kernel.org/lkml/20240712-asi-rfc-24-v1-0-144b319a40d8@google.com/Signed-off-by: default avatarYosry Ahmed <yosryahmed@google.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      fa3c109a
  2. 18 Aug, 2024 9 commits
    • Linus Torvalds's avatar
      Linux 6.11-rc4 · 47ac09b9
      Linus Torvalds authored
      47ac09b9
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.11-rc4' of... · ccdbf91f
      Linus Torvalds authored
      Merge tag 'driver-core-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg KH:
       "Here are two driver fixes for regressions from 6.11-rc1 due to the
        driver core change making a structure in a driver core callback const.
      
        These were missed by all testing EXCEPT for what Bart happened to be
        running, so I appreciate the fixes provided here for some
        odd/not-often-used driver subsystems that nothing else happened to
        catch.
      
        Both of these fixes have been in linux-next all week with no reported
        issues"
      
      * tag 'driver-core-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        mips: sgi-ip22: Fix the build
        ARM: riscpc: ecard: Fix the build
      ccdbf91f
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · e1bc1132
      Linus Torvalds authored
      Pull char / misc fixes from Greg KH:
       "Here are some small char/misc fixes for 6.11-rc4 to resolve reported
        problems. Included in here are:
      
         - fastrpc revert of a change that broke userspace
      
         - xillybus fixes for reported issues
      
        Half of these have been in linux-next this week with no reported
        problems, I don't know if the last bit of xillybus driver changes made
        it in, but they are 'obviously correct' so will be safe :)"
      
      * tag 'char-misc-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        char: xillybus: Check USB endpoints when probing device
        char: xillybus: Refine workqueue handling
        Revert "misc: fastrpc: Restrict untrusted app to attach to privileged PD"
        char: xillybus: Don't destroy workqueue from work item running on it
      e1bc1132
    • Linus Torvalds's avatar
      Merge tag 'tty-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 394f33f9
      Linus Torvalds authored
      Pull tty / serial fixes from Greg KH:
       "Here are some small tty and serial driver fixes for 6.11-rc4 to
        resolve some reported problems. Included in here are:
      
         - conmakehash.c userspace build issues
      
         - fsl_lpuart driver fix
      
         - 8250_omap revert for reported regression
      
         - atmel_serial rts flag fix
      
        All of these have been in linux-next this week with no reported
        issues"
      
      * tag 'tty-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        Revert "serial: 8250_omap: Set the console genpd always on if no console suspend"
        tty: atmel_serial: use the correct RTS flag.
        tty: vt: conmakehash: remove non-portable code printing comment header
        tty: serial: fsl_lpuart: mark last busy before uart_add_one_port
      394f33f9
    • Linus Torvalds's avatar
      Merge tag 'usb-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 3d9061d2
      Linus Torvalds authored
      Pull USB / Thunderbolt driver fixes from Greg KH:
       "Here are some small USB and Thunderbolt driver fixes for 6.11-rc4 to
        resolve some reported issues. Included in here are:
      
         - thunderbolt driver fixes for reported problems
      
         - typec driver fixes
      
         - xhci fixes
      
         - new device id for ljca usb driver
      
        All of these have been in linux-next this week with no reported
        issues"
      
      * tag 'usb-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration
        usb: misc: ljca: Add Lunar Lake ljca GPIO HID to ljca_gpio_hids[]
        Revert "usb: typec: tcpm: clear pd_event queue in PORT_RESET"
        usb: typec: ucsi: Fix the return value of ucsi_run_command()
        usb: xhci: fix duplicate stall handling in handle_tx_event()
        usb: xhci: Check for xhci->interrupters being allocated in xhci_mem_clearup()
        thunderbolt: Mark XDomain as unplugged when router is removed
        thunderbolt: Fix memory leaks in {port|retimer}_sb_regs_write()
      3d9061d2
    • Linus Torvalds's avatar
      Merge tag 'for-6.11-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 57b14823
      Linus Torvalds authored
      Pull more btrfs fixes from David Sterba:
       "A more fixes. We got reports that shrinker added in 6.10 still causes
        latency spikes and the fixes don't handle all corner cases. Due to
        summer holidays we're taking a shortcut to disable it for release
        builds and will fix it in the near future.
      
         - only enable extent map shrinker for DEBUG builds, temporary quick
           fix to avoid latency spikes for regular builds
      
         - update target inode's ctime on unlink, mandated by POSIX
      
         - properly take lock to read/update block group's zoned variables
      
         - add counted_by() annotations"
      
      * tag 'for-6.11-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: only enable extent map shrinker for DEBUG builds
        btrfs: zoned: properly take lock to read/update block group's zoned variables
        btrfs: tree-checker: add dev extent item checks
        btrfs: update target inode's ctime on unlink
        btrfs: send: annotate struct name_cache_entry with __counted_by()
      57b14823
    • Jann Horn's avatar
      fuse: Initialize beyond-EOF page contents before setting uptodate · 3c0da3d1
      Jann Horn authored
      fuse_notify_store(), unlike fuse_do_readpage(), does not enable page
      zeroing (because it can be used to change partial page contents).
      
      So fuse_notify_store() must be more careful to fully initialize page
      contents (including parts of the page that are beyond end-of-file)
      before marking the page uptodate.
      
      The current code can leave beyond-EOF page contents uninitialized, which
      makes these uninitialized page contents visible to userspace via mmap().
      
      This is an information leak, but only affects systems which do not
      enable init-on-alloc (via CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y or the
      corresponding kernel command line parameter).
      
      Link: https://bugs.chromium.org/p/project-zero/issues/detail?id=2574
      Cc: stable@kernel.org
      Fixes: a1d75f25 ("fuse: add store request")
      Signed-off-by: default avatarJann Horn <jannh@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3c0da3d1
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-08-17-19-34' of... · c3f2d783
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-08-17-19-34' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "16 hotfixes. All except one are for MM. 10 of these are cc:stable and
        the others pertain to post-6.10 issues.
      
        As usual with these merges, singletons and doubletons all over the
        place, no identifiable-by-me theme. Please see the lovingly curated
        changelogs to get the skinny"
      
      * tag 'mm-hotfixes-stable-2024-08-17-19-34' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        mm/migrate: fix deadlock in migrate_pages_batch() on large folios
        alloc_tag: mark pages reserved during CMA activation as not tagged
        alloc_tag: introduce clear_page_tag_ref() helper function
        crash: fix riscv64 crash memory reserve dead loop
        selftests: memfd_secret: don't build memfd_secret test on unsupported arches
        mm: fix endless reclaim on machines with unaccepted memory
        selftests/mm: compaction_test: fix off by one in check_compaction()
        mm/numa: no task_numa_fault() call if PMD is changed
        mm/numa: no task_numa_fault() call if PTE is changed
        mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0
        mm/memory-failure: use raw_spinlock_t in struct memory_failure_cpu
        mm: don't account memmap per-node
        mm: add system wide stats items category
        mm: don't account memmap on failure
        mm/hugetlb: fix hugetlb vs. core-mm PT locking
        mseal: fix is_madv_discard()
      c3f2d783
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 810996a3
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix crashes on 85xx with some configs since the recent hugepd rework.
      
       - Fix boot warning with hugepages and CONFIG_DEBUG_VIRTUAL on some
         platforms.
      
       - Don't enable offline cores when changing SMT modes, to match existing
         userspace behaviour.
      
      Thanks to Christophe Leroy, Dr. David Alan Gilbert, Guenter Roeck, Nysal
      Jan K.A, Shrikanth Hegde, Thomas Gleixner, and Tyrel Datwyler.
      
      * tag 'powerpc-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/topology: Check if a core is online
        cpu/SMT: Enable SMT only if a core is online
        powerpc/mm: Fix boot warning with hugepages and CONFIG_DEBUG_VIRTUAL
        powerpc/mm: Fix size of allocated PGDIR
        soc: fsl: qbman: remove unused struct 'cgr_comp'
      810996a3
  3. 17 Aug, 2024 8 commits
    • Linus Torvalds's avatar
      Merge tag 'v6.11-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · e0fac5fc
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - fix for clang warning - additional null check
      
       - fix for cached write with posix locks
      
       - flexible structure fix
      
      * tag 'v6.11-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb: smb2pdu.h: Use static_assert() to check struct sizes
        smb3: fix lock breakage for cached writes
        smb/client: avoid possible NULL dereference in cifs_free_subrequest()
      e0fac5fc
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 98a1b2d7
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "I2C core fix replacing IS_ENABLED() with IS_REACHABLE()
      
        For host drivers, there are two fixes:
      
         - Tegra I2C Controller: Addresses a potential double-locking issue
           during probe. ACPI devices are not IRQ-safe when invoking runtime
           suspend and resume functions, so the irq_safe flag should not be
           set.
      
         - Qualcomm GENI I2C Controller: Fixes an oversight in the exit path
           of the runtime_resume() function, which was missed in the previous
           release"
      
      * tag 'i2c-for-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: tegra: Do not mark ACPI devices as irq safe
        i2c: Use IS_REACHABLE() for substituting empty ACPI functions
        i2c: qcom-geni: Add missing geni_icc_disable in geni_i2c_runtime_resume
      98a1b2d7
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · df6cbc62
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two small fixes to the mpi3mr driver. One to avoid oversize
        allocations in tracing and the other to fix an uninitialized spinlock
        in the user to driver feature request code (used to trigger dumps and
        the like)"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: mpi3mr: Avoid MAX_PAGE_ORDER WARNING for buffer allocations
        scsi: mpi3mr: Add missing spin_lock_init() for mrioc->trigger_lock
      df6cbc62
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.11-fixes-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · d09840f8
      Linus Torvalds authored
      Pull xfs fixes from Chandan Babu:
      
       - Check for presence of only 'attr' feature before scrubbing an inode's
         attribute fork.
      
       - Restore the behaviour of setting AIL thread to TASK_INTERRUPTIBLE for
         long (i.e. 50ms) sleep durations to prevent high load averages.
      
       - Do not allow users to change the realtime flag of a file unless the
         datadev and rtdev both support fsdax access modes.
      
      * tag 'xfs-6.11-fixes-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: conditionally allow FS_XFLAG_REALTIME changes if S_DAX is set
        xfs: revert AIL TASK_KILLABLE threshold
        xfs: attr forks require attr, not attr2
      d09840f8
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-08-16' of git://evilpiepirate.org/bcachefs · b7181758
      Linus Torvalds authored
      Pull bcachefs fixes from Kent OverstreetL
      
       - New on disk format version, bcachefs_metadata_version_disk_accounting_inum
      
         This adds one more disk accounting counter, which counts disk usage
         and number of extents per inode number. This lets us track
         fragmentation, for implementing defragmentation later, and it also
         counts disk usage per inode in all snapshots, which will be a useful
         thing to expose to users.
      
       - One performance issue we've observed is threads spinning when they
         should be waiting for dirty keys in the key cache to be flushed by
         journal reclaim, so we now have hysteresis for the waiting thread, as
         well as improving the tracepoint and a new time_stat, for tracking
         time blocked waiting on key cache flushing.
      
      ... and various assorted smaller fixes.
      
      * tag 'bcachefs-2024-08-16' of git://evilpiepirate.org/bcachefs:
        bcachefs: Fix locking in __bch2_trans_mark_dev_sb()
        bcachefs: fix incorrect i_state usage
        bcachefs: avoid overflowing LRU_TIME_BITS for cached data lru
        bcachefs: Fix forgetting to pass trans to fsck_err()
        bcachefs: Increase size of cuckoo hash table on too many rehashes
        bcachefs: bcachefs_metadata_version_disk_accounting_inum
        bcachefs: Kill __bch2_accounting_mem_mod()
        bcachefs: Make bkey_fsck_err() a wrapper around fsck_err()
        bcachefs: Fix warning in __bch2_fsck_err() for trans not passed in
        bcachefs: Add a time_stat for blocked on key cache flush
        bcachefs: Improve trans_blocked_journal_reclaim tracepoint
        bcachefs: Add hysteresis to waiting on btree key cache flush
        lib/generic-radix-tree.c: Fix rare race in __genradix_ptr_alloc()
        bcachefs: Convert for_each_btree_node() to lockrestart_do()
        bcachefs: Add missing downgrade table entry
        bcachefs: disk accounting: ignore unknown types
        bcachefs: bch2_accounting_invalid() fixup
        bcachefs: Fix bch2_trigger_alloc when upgrading from old versions
        bcachefs: delete faulty fastpath in bch2_btree_path_traverse_cached()
      b7181758
    • Kent Overstreet's avatar
      bcachefs: Fix locking in __bch2_trans_mark_dev_sb() · 0e49d3ff
      Kent Overstreet authored
      We run this in full RW mode now, so we have to guard against the
      superblock buffer being reallocated.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      0e49d3ff
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · e5fa841a
      Linus Torvalds authored
      Pull memcg-v1 fix from Al Viro:
       "memcg_write_event_control() oops fix"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        memcg_write_event_control(): fix a user-triggerable oops
      e5fa841a
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · c2cdb13a
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Fix the arm64 __get_mem_asm() to use the _ASM_EXTABLE_##type##ACCESS()
         macro instead of the *_ERR() one in order to avoid writing -EFAULT to
         the value register in case of a fault
      
       - Initialise all elements of the acpi_early_node_map[] to NUMA_NO_NODE.
         Prior to this fix, only the first element was initialised
      
       - Move the KASAN random tag seed initialisation after the per-CPU areas
         have been initialised (prng_state is __percpu)
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix KASAN random tag seed initialization
        arm64: ACPI: NUMA: initialize all values of acpi_early_node_map to NUMA_NO_NODE
        arm64: uaccess: correct thinko in __get_mem_asm()
      c2cdb13a
  4. 16 Aug, 2024 19 commits