1. 14 Jun, 2024 6 commits
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 0b320c86
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Three obvious driver fixes and two core fixes.
      
        The two core fixes are to disable Command Duration Limits by default
        to fix an inconsistency in SATA and some USB devices. The other is to
        change the default read size for block zero to follow the device
        preference (some USB bridges preferring 16 byte commands don't have a
        translation for READ(10) and thus don't scan properly)"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: mpi3mr: Fix ATA NCQ priority support
        scsi: ufs: core: Quiesce request queues before checking pending cmds
        scsi: core: Disable CDL by default
        scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory
        scsi: sd: Use READ(16) when reading block zero on large capacity disks
      0b320c86
    • Linus Torvalds's avatar
      Merge tag 'iommu-fix-v6.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 11100273
      Linus Torvalds authored
      Pull iommu fix from Joerg Roedel:
       "A single patch that fixes a regression which several people reported:
      
         - AMD-Vi: Fix regression causing panics"
      
      * tag 'iommu-fix-v6.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Fix panic accessing amd_iommu_enable_faulting
      11100273
    • Linus Torvalds's avatar
      Merge tag 'pm-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0cac73eb
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "Restore the behavior of the no_turbo sysfs attribute in the
        intel_pstate driver which allowed users to make the driver start using
        turbo P-states if they have been enabled on the fly by the firmware
        after OS initialization (Rafael Wysocki)"
      
      * tag 'pm-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: intel_pstate: Check turbo_is_disabled() in store_no_turbo()
      0cac73eb
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 94df82fe
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix a recent regression in the ACPI EC driver and make system
        suspend work on multiple platforms where StorageD3Enable _DSD is
        missing in the ACPI tables.
      
        Specifics:
      
         - Make the ACPI EC driver directly evaluate an "orphan" _REG method
           under the EC device, if present, which stopped being evaluated
           after the driver had started to install its EC address space
           handler at the root of the ACPI namespace (Rafael Wysocki)
      
         - Make more devices put NVMe storage devices into D3 at suspend to
           work around missing StorageD3Enable _DSD in the BIOS (Mario
           Limonciello)"
      
      * tag 'acpi-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: EC: Evaluate orphan _REG under EC device
        ACPI: x86: Force StorageD3Enable on more products
      94df82fe
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · cee84c0b
      Linus Torvalds authored
      Pull thermal control fixes from Rafael Wysocki:
       "These fix three issues introduced recently, two related to defects in
        ACPI tables supplied by the platform firmware and one cause by a
        thermal core change that went too far:
      
         - Prevent the thermal core from failing the registration of a cooling
           device if its .get_cur_state() reports an incorrect state to start
           with which may happen for fans handled through firmware-supplied
           AML in ACPI tables (Rafael Wysocki)
      
         - Make the ACPI thermal zone driver initialize all trip points with
           temperature of 0 centigrade and below as invalid because such trip
           point temperatures do not make sense on systems with ACPI thermal
           control and they cause performance regressions due to permanent
           thermal mitigations to occur (Rafael Wysocki)
      
         - Restore passive polling management in the Step-Wise thermal
           governor that uses it to ensure that all cooling devices used for
           thermal mitigation will go back to their initial states eventually
           (Rafael Wysocki)"
      
      * tag 'thermal-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: gov_step_wise: Restore passive polling management
        thermal: ACPI: Invalidate trip points with temperature of 0 or below
        thermal: core: Do not fail cdev registration because of invalid initial state
      cee84c0b
    • Rafael J. Wysocki's avatar
      Merge branch acpi-x86 · 04f82fbb
      Rafael J. Wysocki authored
      Merge a fix for a suspend issue related to storage handling on multiple
      systems based on AMD hardware:
      
       - Make more devices put NVMe storage devices into D3 at suspend to work
         around missing StorageD3Enable _DSD in the BIOS (Mario Limonciello).
      
      * branch acpi-x86:
        ACPI: x86: Force StorageD3Enable on more products
      04f82fbb
  2. 13 Jun, 2024 15 commits
  3. 12 Jun, 2024 12 commits
  4. 11 Jun, 2024 7 commits
    • Kent Overstreet's avatar
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.10-rc4.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 2ef5971f
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
       "Misc:
         - Restore debugfs behavior of ignoring unknown mount options
         - Fix kernel doc for netfs_wait_for_oustanding_io()
         - Fix struct statx comment after new addition for this cycle
         - Fix a check in find_next_fd()
      
        iomap:
         - Fix data zeroing behavior when an extent spans the block that
           contains i_size
         - Restore i_size increasing in iomap_write_end() for now to avoid
           stale data exposure on xfs with a realtime device
      
        Cachefiles:
         - Remove unneeded fdtable.h include
         - Improve trace output for cachefiles_obj_{get,put}_ondemand_fd()
         - Remove requests from the request list to prevent accessing already
           freed requests
         - Fix UAF when issuing restore command while the daemon is still
           alive by adding an additional reference count to requests
         - Fix UAF by grabbing a reference during xarray lookup with xa_lock()
           held
         - Simplify error handling in cachefiles_ondemand_daemon_read()
         - Add consistency checks read and open requests to avoid crashes
         - Add a spinlock to protect ondemand_id variable which is used to
           determine whether an anonymous cachefiles fd has already been
           closed
         - Make on-demand reads killable allowing to handle broken cachefiles
           daemon better
         - Flush all requests after the kernel has been marked dead via
           CACHEFILES_DEAD to avoid hung-tasks
         - Ensure that closed requests are marked as such to avoid reusing
           them with a reopen request
         - Defer fd_install() until after copy_to_user() succeeded and thereby
           get rid of having to use close_fd()
         - Ensure that anonymous cachefiles on-demand fds are reused while
           they are valid to avoid pinning already freed cookies"
      
      * tag 'vfs-6.10-rc4.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        iomap: Fix iomap_adjust_read_range for plen calculation
        iomap: keep on increasing i_size in iomap_write_end()
        cachefiles: remove unneeded include of <linux/fdtable.h>
        fs/file: fix the check in find_next_fd()
        cachefiles: make on-demand read killable
        cachefiles: flush all requests after setting CACHEFILES_DEAD
        cachefiles: Set object to close if ondemand_id < 0 in copen
        cachefiles: defer exposing anon_fd until after copy_to_user() succeeds
        cachefiles: never get a new anonymous fd if ondemand_id is valid
        cachefiles: add spin_lock for cachefiles_ondemand_info
        cachefiles: add consistency check for copen/cread
        cachefiles: remove err_put_fd label in cachefiles_ondemand_daemon_read()
        cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read()
        cachefiles: fix slab-use-after-free in cachefiles_ondemand_get_fd()
        cachefiles: remove requests from xarray during flushing requests
        cachefiles: add output string to cachefiles_obj_[get|put]_ondemand_fd
        statx: Update offset commentary for struct statx
        netfs: fix kernel doc for nets_wait_for_outstanding_io()
        debugfs: continue to ignore unknown mount options
      2ef5971f
    • Rafael J. Wysocki's avatar
      thermal: gov_step_wise: Restore passive polling management · b6846826
      Rafael J. Wysocki authored
      Consider a thermal zone with one passive trip point, a cooling device
      with 3 states (0, 1, 2) bound to it, passive polling enabled (nonzero
      passive_delay_jiffies) and no regular polling (polling_delay_jiffies
      equal to 0) that is managed by the Step-Wise governor.  Suppose that
      the initial state of the cooling device is 0 and the zone temperature
      is below the trip point to start with.
      
      When the trip point is crossed, tz->passive is incremented by the
      thermal core and the governor's .manage() callback is invoked.  It
      sets 'throttle' to 'true' for the trip in question and
      get_target_state() returns 1 for the instance corresponding to the
      cooling device (say that 'upper' and 'lower' are set to 2 and 0 for
      it, respectively), so its state changes to 1.
      
      Passive polling is still active for the zone, so next time the
      temperature is updated, the governor's .manage() callback will be
      invoked again.  If the temperature is still rising, it will change
      the state of the cooling device to 2.
      
      Now suppose that next time the zone temperature is updated, it falls
      below the trip point, so tz->passive is decremented for the zone (say
      it becomes 0 then) and the governor's .manage() callbacks runs.
      
      It finds that the temperature trend for the zone is 'falling' and
      'throttle' will be set to 'false' for the trip in question, so the
      cooling device's state will be changed to 1.  However, because
      tz->polling is 0 for the zone, the governor's .manage() callback
      may not be invoked again for a long time and the cooling device's
      state will not be reset back to 0.
      
      This can happen because commit 042a3d80 ("thermal: core: Move
      passive polling management to the core") removed passive polling
      management from the Step-Wise governor.
      
      Before that change, thermal_zone_trip_update() would bump up
      tz->passive when changing the target state for a thermal instance
      from "no target" to a specific value and it would drop tz->passive
      when changing it back to "no target" which would cause passive
      polling to be active for the zone until the governor has reset the
      states of all cooling devices.  In particular, in the example above
      tz->passive would be incremented when changing the state of the
      cooling device from 0 to 1 and then it would be still nonzero when
      the state of the cooling device was changed from 2 to 1.
      
      To prevent this problem from occurring, restore the passive polling
      management in the Step-Wise governor by partially reverting the
      commit in question and update the comment in the restored code
      to explain its role more clearly.
      
      Fixes: 042a3d80 ("thermal: core: Move passive polling management to the core")
      Closes: https://lore.kernel.org/linux-pm/ZmVfcEOxmjUHZTSX@hovoldconsulting.comReported-by: default avatarJohan Hovold <johan+linaro@kernel.org>
      Tested-by: default avatarJohan Hovold <johan+linaro@kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b6846826
    • Florian Westphal's avatar
      netfilter: Use flowlabel flow key when re-routing mangled packets · 6f8f132c
      Florian Westphal authored
      'ip6 dscp set $v' in an nftables outpute route chain has no effect.
      While nftables does detect the dscp change and calls the reroute hook.
      But ip6_route_me_harder never sets the dscp/flowlabel:
      flowlabel/dsfield routing rules are ignored and no reroute takes place.
      
      Thanks to Yi Chen for an excellent reproducer script that I used
      to validate this change.
      
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Reported-by: default avatarYi Chen <yiche@redhat.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      6f8f132c
    • Jozsef Kadlecsik's avatar
      netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type · 4e7aaa6b
      Jozsef Kadlecsik authored
      Lion Ackermann reported that there is a race condition between namespace cleanup
      in ipset and the garbage collection of the list:set type. The namespace
      cleanup can destroy the list:set type of sets while the gc of the set type is
      waiting to run in rcu cleanup. The latter uses data from the destroyed set which
      thus leads use after free. The patch contains the following parts:
      
      - When destroying all sets, first remove the garbage collectors, then wait
        if needed and then destroy the sets.
      - Fix the badly ordered "wait then remove gc" for the destroy a single set
        case.
      - Fix the missing rcu locking in the list:set type in the userspace test
        case.
      - Use proper RCU list handlings in the list:set type.
      
      The patch depends on c1193d9b (netfilter: ipset: Add list flush to cancel_gc).
      
      Fixes: 97f7cf1c (netfilter: ipset: fix performance regression in swap operation)
      Reported-by: default avatarLion Ackermann <nnamrec@gmail.com>
      Tested-by: default avatarLion Ackermann <nnamrec@gmail.com>
      Signed-off-by: default avatarJozsef Kadlecsik <kadlec@netfilter.org>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      4e7aaa6b
    • Davide Ornaghi's avatar
      netfilter: nft_inner: validate mandatory meta and payload · c4ab9da8
      Davide Ornaghi authored
      Check for mandatory netlink attributes in payload and meta expression
      when used embedded from the inner expression, otherwise NULL pointer
      dereference is possible from userspace.
      
      Fixes: a150d122 ("netfilter: nft_meta: add inner match support")
      Fixes: 3a07327d ("netfilter: nft_inner: support for inner tunnel header matching")
      Signed-off-by: default avatarDavide Ornaghi <d.ornaghi97@gmail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      c4ab9da8
    • Eric Dumazet's avatar
      tcp: use signed arithmetic in tcp_rtx_probe0_timed_out() · 36534d3c
      Eric Dumazet authored
      Due to timer wheel implementation, a timer will usually fire
      after its schedule.
      
      For instance, for HZ=1000, a timeout between 512ms and 4s
      has a granularity of 64ms.
      For this range of values, the extra delay could be up to 63ms.
      
      For TCP, this means that tp->rcv_tstamp may be after
      inet_csk(sk)->icsk_timeout whenever the timer interrupt
      finally triggers, if one packet came during the extra delay.
      
      We need to make sure tcp_rtx_probe0_timed_out() handles this case.
      
      Fixes: e89688e3 ("net: tcp: fix unexcepted socket die when snd_wnd is 0")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Menglong Dong <imagedong@tencent.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Reviewed-by: default avatarJason Xing <kerneljasonxing@gmail.com>
      Link: https://lore.kernel.org/r/20240607125652.1472540-1-edumazet@google.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      36534d3c