1. 08 Dec, 2023 1 commit
    • Jens Axboe's avatar
      Merge tag 'md-next-20231208' of... · f788893d
      Jens Axboe authored
      Merge tag 'md-next-20231208' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.8/block
      
      Pull MD updates from Song:
      
      "1. Fix/Cleanup RCU usage from conf->disks[i].rdev, by Yu Kuai;
       2. Fix raid5 hang issue, by Junxiao Bi;
       3. Add Yu Kuai as Reviewer of the md subsystem."
      
      * tag 'md-next-20231208' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md:
        md: synchronize flush io with array reconfiguration
        MAINTAINERS: SOFTWARE RAID: Add Yu Kuai as Reviewer
        md/md-multipath: remove rcu protection to access rdev from conf
        md/raid5: remove rcu protection to access rdev from conf
        md/raid1: remove rcu protection to access rdev from conf
        md/raid10: remove rcu protection to access rdev from conf
        md: remove flag RemoveSynchronized
        Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
        md: bypass block throttle for superblock update
      f788893d
  2. 07 Dec, 2023 1 commit
    • Matthew Wilcox (Oracle)'s avatar
      block: Remove special-casing of compound pages · 1b151e24
      Matthew Wilcox (Oracle) authored
      The special casing was originally added in pre-git history; reproducing
      the commit log here:
      
      > commit a318a92567d77
      > Author: Andrew Morton <akpm@osdl.org>
      > Date:   Sun Sep 21 01:42:22 2003 -0700
      >
      >     [PATCH] Speed up direct-io hugetlbpage handling
      >
      >     This patch short-circuits all the direct-io page dirtying logic for
      >     higher-order pages.  Without this, we pointlessly bounce BIOs up to
      >     keventd all the time.
      
      In the last twenty years, compound pages have become used for more than
      just hugetlb.  Rewrite these functions to operate on folios instead
      of pages and remove the special case for hugetlbfs; I don't think
      it's needed any more (and if it is, we can put it back in as a call
      to folio_test_hugetlb()).
      
      This was found by inspection; as far as I can tell, this bug can lead
      to pages used as the destination of a direct I/O read not being marked
      as dirty.  If those pages are then reclaimed by the MM without being
      dirtied for some other reason, they won't be written out.  Then when
      they're faulted back in, they will not contain the data they should.
      It'll take a pretty unusual setup to produce this problem with several
      races all going the wrong way.
      
      This problem predates the folio work; it could for example have been
      triggered by mmaping a THP in tmpfs and using that as the target of an
      O_DIRECT read.
      
      Fixes: 800d8c63 ("shmem: add huge pages support")
      Cc:  <stable@vger.kernel.org>
      Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      1b151e24
  3. 02 Dec, 2023 5 commits
  4. 01 Dec, 2023 1 commit
  5. 28 Nov, 2023 2 commits
    • Song Liu's avatar
      MAINTAINERS: SOFTWARE RAID: Add Yu Kuai as Reviewer · 15da990f
      Song Liu authored
      Add Yu Kuai as reviewer for md/raid subsystem.
      Signed-off-by: default avatarSong Liu <song@kernel.org>
      Acked-by: default avatarYu Kuai <yukuai3@huawei.com>
      Link: https://lore.kernel.org/r/20231128035807.3191738-1-song@kernel.org
      15da990f
    • Song Liu's avatar
      Merge branch 'md-next-rcu-cleanup' into md-next · 726a9b67
      Song Liu authored
      From Yu Kuai:
      
      md: remove rcu protection to access rdev from conf
      
      The lifetime of rdev:
      
      1. md_import_device() generate a rdev based on underlying disk;
      
         mddev_lock()
         rdev = kzalloc();
         rdev->bdev = blkdev_get_by_dev();
         mddev_unlock()
      
      2. bind_rdev_to_array() add this rdev to mddev->disks;
      
         mddev_lock()
         kobject_add(&rdev->kobj, &mddev->kobj, ...);
         list_add_rcu(&rdev->same_set, &mddev->disks);
         mddev_unlock()
      
      3. remove_and_add_spares() add this rdev to conf;
      
         mddev_lock()
         rdev_addable();
         pers->hot_add_disk();
         rcu_assign_pointer(conf->rdev, rdev);
         mddev_unlock()
      
      4. Use this array with rdev;
      
      5. remove_and_add_spares() remove rdev from conf;
      
         // triggered by sysfs/ioctl
         mddev_lock()
         rdev_removeable();
         pers->hot_remove_disk();
          rcu_assign_pointer(conf->rdev, NULL);
          synchronize_rcu();
         mddev_unlock()
      
         // triggered by daemon
         mddev_lock()
         rdev_removeable();
         synchronize_rcu(); -> this can't protect accessing rdev from conf
         pers->hot_remove_disk();
          rcu_assign_pointer(conf->rdev, NULL);
         mddev_unlock()
      
      6. md_kick_rdev_from_array() remove rdev from mddev->disks;
      
         mddev_lock()
         list_del_rcu(&rdev->same_set);
         synchronize_rcu();
         list_add(&rdev->same_set, &mddev->deleting)
         mddev_unlock()
          export_rdev
      
      There are two separate rcu protection for rdev, and this pathset remove
      the protection of conf(step 3 and 5), because it's safe to access rdev
      from conf in following cases:
      
       - If 'reconfig_mutex' is held, because rdev can't be added or rmoved to
       conf;
       - If there is normal IO inflight, because mddev_suspend() will wait for
       IO to be done and prevent rdev to be added or removed to conf;
       - If sync thread is running, because remove_and_add_spares() can only be
       called from daemon thread when sync thread is done, and
       'MD_RECOVERY_RUNNING' is also checked for ioctl/sysfs;
       - if any spinlock or rcu_read_lock() is held, because synchronize_rcu()
       from step 6 prevent rdev to be freed until spinlock is released or
       rcu_read_unlock();
      726a9b67
  6. 27 Nov, 2023 12 commits
  7. 26 Nov, 2023 6 commits
    • Linus Torvalds's avatar
      Merge tag 'parisc-for-6.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · d2da77f4
      Linus Torvalds authored
      Pull parisc architecture fixes from Helge Deller:
       "This patchset fixes and enforces correct section alignments for the
        ex_table, altinstructions, parisc_unwind, jump_table and bug_table
        which are created by inline assembly.
      
        Due to not being correctly aligned at link & load time they can
        trigger unnecessarily the kernel unaligned exception handler at
        runtime. While at it, I switched the bug table to use relative
        addresses which reduces the size of the table by half on 64-bit.
      
        We still had the ENOSYM and EREMOTERELEASE errno symbols as left-overs
        from HP-UX, which now trigger build-issues with glibc. We can simply
        remove them.
      
        Most of the patches are tagged for stable kernel series.
      
        Summary:
      
         - Drop HP-UX ENOSYM and EREMOTERELEASE return codes to avoid glibc
           build issues
      
         - Fix section alignments for ex_table, altinstructions, parisc unwind
           table, jump_table and bug_table
      
         - Reduce size of bug_table on 64-bit kernel by using relative
           pointers"
      
      * tag 'parisc-for-6.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Reduce size of the bug_table on 64-bit kernel by half
        parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes
        parisc: Use natural CPU alignment for bug_table
        parisc: Ensure 32-bit alignment on parisc unwind section
        parisc: Mark lock_aligned variables 16-byte aligned on SMP
        parisc: Mark jump_table naturally aligned
        parisc: Mark altinstructions read-only and 32-bit aligned
        parisc: Mark ex_table entries 32-bit aligned in uaccess.h
        parisc: Mark ex_table entries 32-bit aligned in assembly.h
      d2da77f4
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2023-11-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4892711a
      Linus Torvalds authored
      Pull x86 microcode fixes from Ingo Molnar:
       "Fix/enhance x86 microcode version reporting: fix the bootup log spam,
        and remove the driver version announcement to avoid version confusion
        when distros backport fixes"
      
      * tag 'x86-urgent-2023-11-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Rework early revisions reporting
        x86/microcode: Remove the driver announcement and version
      4892711a
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2023-11-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e81fe505
      Linus Torvalds authored
      Pull x86 perf event fix from Ingo Molnar:
       "Fix a bug in the Intel hybrid CPUs hardware-capabilities enumeration
        code resulting in non-working events on those platforms"
      
      * tag 'perf-urgent-2023-11-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Correct incorrect 'or' operation for PMU capabilities
      e81fe505
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2023-11-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1d0dbc3d
      Linus Torvalds authored
      Pull locking fix from Ingo Molnar:
       "Fix lockdep block chain corruption resulting in KASAN warnings"
      
      * tag 'locking-urgent-2023-11-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        lockdep: Fix block chain corruption
      1d0dbc3d
    • Linus Torvalds's avatar
      Merge tag '6.7-rc2-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 4515866d
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - use after free fix in releasing multichannel interfaces
      
       - fixes for special file types (report char, block, FIFOs properly when
         created e.g. by NFS to Windows)
      
       - fixes for reporting various special file types and symlinks properly
         when using SMB1
      
      * tag '6.7-rc2-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb: client: introduce cifs_sfu_make_node()
        smb: client: set correct file type from NFS reparse points
        smb: client: introduce ->parse_reparse_point()
        smb: client: implement ->query_reparse_point() for SMB1
        cifs: fix use after free for iface while disabling secondary channels
      4515866d
    • Linus Torvalds's avatar
      Merge tag 'usb-6.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 090472ed
      Linus Torvalds authored
      Pull USB / PHY / Thunderbolt fixes from Greg KH:
       "Here are a number of reverts, fixes, and new device ids for 6.7-rc3
        for the USB, PHY, and Thunderbolt driver subsystems. Include in here
        are:
      
         - reverts of some PHY drivers that went into 6.7-rc1 that shouldn't
           have been merged yet, the author is reworking them based on review
           comments as they were using older apis that shouldn't be used
           anymore for newer drivers
      
         - small thunderbolt driver fixes for reported issues
      
         - USB driver fixes for a variety of small issues in dwc3, typec,
           xhci, and other smaller drivers.
      
         - new device ids for usb-serial and onboard_usb_hub drivers.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-6.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (33 commits)
        USB: serial: option: add Luat Air72*U series products
        USB: dwc3: qcom: fix ACPI platform device leak
        USB: dwc3: qcom: fix software node leak on probe errors
        USB: dwc3: qcom: fix resource leaks on probe deferral
        USB: dwc3: qcom: simplify wakeup interrupt setup
        USB: dwc3: qcom: fix wakeup after probe deferral
        dt-bindings: usb: qcom,dwc3: fix example wakeup interrupt types
        usb: misc: onboard-hub: add support for Microchip USB5744
        dt-bindings: usb: microchip,usb5744: Add second supply
        usb: misc: ljca: Fix enumeration error on Dell Latitude 9420
        USB: serial: option: add Fibocom L7xx modules
        USB: xhci-plat: fix legacy PHY double init
        usb: typec: tipd: Supply also I2C driver data
        usb: xhci-mtk: fix in-ep's start-split check failure
        usb: dwc3: set the dma max_seg_size
        usb: config: fix iteration issue in 'usb_get_bos_descriptor()'
        usb: dwc3: add missing of_node_put and platform_device_put
        USB: dwc2: write HCINT with INTMASK applied
        usb: misc: ljca: Drop _ADR support to get ljca children devices
        usb: cdnsp: Fix deadlock issue during using NCM gadget
        ...
      090472ed
  8. 25 Nov, 2023 12 commits