commit ac0fb4a55bde561c46fc7445642a722803176b33
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Feb 24 11:55:17 2025 +0000

    scsi: scsi_debug: Do not sleep in atomic sections
    
    Function stop_qc_helper() is called while the debug_scsi_cmd lock is held,
    and from here we may call cancel_work_sync(), which may sleep.
    
    Sleeping in atomic sections is not allowed.
    
    Hence change the cancel_work_sync() call into a cancel_work() call.
    
    However now it is not possible to know if the work callback is running when
    we return. This is relevant for eh_abort_handler handling, as the semantics
    of that callback are that success means that we do not keep a reference to
    the scsi_cmnd - now this is not possible. So return FAIL when we are unsure
    if the callback still running.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    jpg: return FAILED from scsi_debug_abort() when possible callback running
    Signed-off-by: John Garry <john.g.garry@oracle.com>
    Link: https://lore.kernel.org/r/20250224115517.495899-5-john.g.garry@oracle.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b441eafbd1ebb37676ba271295bf98ca8c8c6dfb
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Feb 24 11:55:16 2025 +0000

    scsi: scsi_debug: Simplify command handling
    
    Simplify command handling by moving struct sdebug_defer into the private
    SCSI command data instead of allocating it separately. The only functional
    change is that aborting a SCSI command now fails and is retried at a later
    time if the completion handler can't be cancelled.
    
    See also commit 1107c7b24ee3 ("scsi: scsi_debug: Dynamically allocate
    sdebug_queued_cmd").
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: John Garry <john.g.garry@oracle.com>
    Link: https://lore.kernel.org/r/20250224115517.495899-4-john.g.garry@oracle.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 7f92ca91c8efa095ab5607b7c67b90eee9ff4683
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Feb 24 11:55:15 2025 +0000

    scsi: scsi_debug: Remove a reference to in_use_bm
    
    Commit f1437cd1e535 ("scsi: scsi_debug: Drop sdebug_queue") removed the
    'in_use_bm' struct member. Hence remove a reference to that struct member
    from the procfs host info file.
    
    Fixes: f1437cd1e535 ("scsi: scsi_debug: Drop sdebug_queue")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: John Garry <john.g.garry@oracle.com>
    Link: https://lore.kernel.org/r/20250224115517.495899-3-john.g.garry@oracle.com
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 2af3b0c1082bd9365faf0a6c82264d09fe081f33
Author: John Garry <john.g.garry@oracle.com>
Date:   Mon Feb 24 11:55:14 2025 +0000

    scsi: scsi_debug: Remove sdebug_device_access_info
    
    This structure is not used, so delete it.
    
    It was originally intended for supporting checking for atomic writes
    overlapping with ongoing reads and writes, but that support never got
    added.
    
    SBC-4 r22 section 4.29.3.2 "Performing operations during an atomic write
    operation" describes two methods of handling overlapping atomic writes.
    Currently the only method supported is for the ongoing read or write to
    complete.
    
    Signed-off-by: John Garry <john.g.garry@oracle.com>
    Link: https://lore.kernel.org/r/20250224115517.495899-2-john.g.garry@oracle.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 0107fb8686b289f6685e9d9cc205616e100f2327
Author: Yuichiro Tsuji <yuichtsu@amazon.com>
Date:   Mon Feb 24 16:59:07 2025 +0900

    scsi: qla2xxx: Fix typos in a comment
    
    Fix typos in a comment.
    
    hapens -> happens
    recommeds -> recommends
    
    Signed-off-by: Yuichiro Tsuji <yuichtsu@amazon.com>
    Link: https://lore.kernel.org/r/20250224075907.2505-1-yuichtsu@amazon.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit c337ce64ea8a396b0b04f99be209c7957ee893dd
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Fri Feb 21 08:32:53 2025 +0000

    scsi: mpt3sas: Fix spelling mistake "receveid" -> "received"
    
    There is a spelling mistake in a ioc_err message. Fix it.
    
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Link: https://lore.kernel.org/r/20250221083253.77496-1-colin.i.king@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 95dc5b979f4be2e8c6e43a932ad7753e6c34024b
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Thu Feb 20 19:55:28 2025 +0530

    scsi: mpi3mr: Update driver version to 8.13.0.5.50
    
    Update driver version to 8.13.0.5.50
    
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250220142528.20837-5-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit ca41929b2ed5eaa459a90bbf3be59cada2da3777
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Thu Feb 20 19:55:27 2025 +0530

    scsi: mpi3mr: Check admin reply queue from Watchdog
    
    Admin reply processing can be called from multiple contexts. The driver
    uses an atomic flag for synchronization among multiple threads/context for
    draining the admin replies.
    
    Upon entering the admin processing routine, the driver will set the atomic
    flag and start reply processing. When exiting the routine, the driver
    resets the flag. However, there is a race condition when one thread (Thread
    1) has processed replies and is about to reset the flag but in the meantime
    few more replies are posted and another thread (Thread 2) is called to
    process replies. Since the synchronization flag is still set, Thread 2 will
    return without processing replies and those new replies will not be
    flushed.
    
    Make the watchdog thread monitor cases where admin ISR/poll call returns
    due to another thread processing admin replies. If such an instance is
    found, make driver call admin ISR to drain replies (if any).
    
    Co-developed-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250220142528.20837-4-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 83a9d30d29f275571f6e8f879f04b2379be7eb6c
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Thu Feb 20 19:55:26 2025 +0530

    scsi: mpi3mr: Update timestamp only for supervisor IOCs
    
    The driver issues the time stamp update command periodically. Even if the
    command fails with supervisor only IOC Status.
    
    Instead check the Non-Supervisor capability bit reported by IOC as part of
    IOC Facts.
    
    Co-developed-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250220142528.20837-3-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b9287574323afc1dd080eb2cd887e7e7b7c6a2a7
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Thu Feb 20 19:55:25 2025 +0530

    scsi: mpi3mr: Update MPI Headers to revision 35
    
    Update MPI Headers to revision 35
    
    Co-developed-by: Prayas Patel <prayas.patel@broadcom.com>
    Signed-off-by: Prayas Patel <prayas.patel@broadcom.com>
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250220142528.20837-2-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit c75e5e010fef2a62e6f2fe00ee8584e7b3ec82a6
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 5 14:15:56 2025 +0800

    scsi: arm64: dts: rockchip: Add UFS support for RK3576 SoC
    
    Add ufshc node to rk3576.dtsi, so the board using UFS could enable it.
    
    Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Link: https://lore.kernel.org/r/1738736156-119203-8-git-send-email-shawn.lin@rock-chips.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit d3cbe455d6eb600dee27bf5294f6fe8c2bb06b5f
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 5 14:15:55 2025 +0800

    scsi: ufs: rockchip: Initial support for UFS
    
    RK3576 SoC contains a UFS controller, add initial support for it.
    The features are:
    
      1. support UFS 2.0 features
      2. High speed up to HS-G3
      3. 2RX-2TX lanes
      4. auto H8 entry and exit
    
    Software limitation:
    
      1. HCE procedure: enable controller->enable intr->dme_reset->dme_enable
      2. disable unipro timeout values before power mode change
    
    [mkp: fix build errors]
    
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Link: https://lore.kernel.org/r/1738736156-119203-7-git-send-email-shawn.lin@rock-chips.com
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6b070711b702638622f4b7072e36328a47356576
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 5 14:15:54 2025 +0800

    scsi: ufs: core: Export ufshcd_dme_reset() and ufshcd_dme_enable()
    
    These two APIs will be used by glue driver if they need a different HCE
    process.
    
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Link: https://lore.kernel.org/r/1738736156-119203-6-git-send-email-shawn.lin@rock-chips.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit d90e9202377173f75bf7510d741b4bd1c76e5239
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 5 14:15:50 2025 +0800

    scsi: ufs: dt-bindings: Document Rockchip UFS host controller
    
    Document Rockchip UFS host controller for RK3576 SoC.
    
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Link: https://lore.kernel.org/r/1738736156-119203-2-git-send-email-shawn.lin@rock-chips.com
    Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit bc4bc2a1609712e6c5de01be8a20341b710dc99b
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Mon Feb 24 13:05:29 2025 +0100

    pmdomain: rockchip: Fix build error
    
    To resolve the build error with undefined reference to
    `arm_smccc_1_1_get_conduit', let's add a build dependency to
    HAVE_ARM_SMCCC_DISCOVERY.
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Fixes: 61eeb9678789 ("pmdomain: rockchip: Check if SMC could be handled by TA")
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

commit 23f4e82bb9eb326f798fc1a1d9a46f37c475fd41
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:36 2025 +0200

    scsi: scsi_debug: Add support for partitioning the tape
    
    This patch adds support for MEDIUM PARTITION PAGE in MODE SELECT and the
    FORMAT MEDIUM command for tapes. After these additions, the virtual tape
    can be partitioned containing either one or two partitions. The POFM flag
    in the mode page is set, meaning that the FORMAT MEDIUM command must be
    used to create the partitioning defined in the mode page.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-8-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 862a5556b1a40ebc30e7e234068090232e24a71f
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:35 2025 +0200

    scsi: scsi_debug: Reset tape setting at device reset
    
    Set tape block size, density and compression to default values when the
    device is reset (either directly or via target, bus or host reset).
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-7-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 568354b24c7ddef335e7c39a3fa8c54671187df5
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:34 2025 +0200

    scsi: scsi_debug: Add compression mode page for tapes
    
    Add support for compression mode page. The compression status
    is saved and returned. No UA is generated.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-6-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 0744d3114c60f664fcfe9c0d247f30dc8a1c0bed
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:33 2025 +0200

    scsi: scsi_debug: Add read support and update locate for tapes
    
    Support for the READ (6) and SPACE (6) commands for tapes based on the
    previous write patch is added. The LOCATE (10) command is updated to use
    the written data.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-5-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e1ac21310aaa5810e08b2d2a9dcee93b60ad3f87
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:32 2025 +0200

    scsi: scsi_debug: Add write support with block lengths and 4 bytes of data
    
    The tape is implemented as fixed number (10 000) of 8-byte units.  The
    first four bytes of a unit contains the type of the unit (data block,
    filemark or end-of-data mark). If the units is a data block, the first four
    bytes contain the block length and the remaining four bytes the first bytes
    of written data. This allows the user to use tags to see that the read
    block is what it was supposed to be.
    
    The tape can contain two partitions. Initially it is formatted as one
    partition consisting of all 10 000 units.
    
    This patch adds the WRITE(6) command for tapes and the WRITE FILEMARKS (6)
    command. The REWIND command is updated.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-4-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e7795366c41d7b31ab8c9c37bc07c1d058a99fed
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:31 2025 +0200

    scsi: scsi_debug: Add READ BLOCK LIMITS and modify LOAD for tapes
    
    The changes:
    
     - Add READ BLOCK LIMITS (512 - 1048576 bytes)
    
     - Make LOAD send New Media UA (not correct by the standard, but makes
       possible to test also this UA)
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-3-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f69da85d5d5cc5b7dfb963a6c6c1ac0dd9002341
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Thu Feb 13 11:26:30 2025 +0200

    scsi: scsi_debug: First fixes for tapes
    
    Patch includes the following:
    
     - Enable MODE SENSE/SELECT without actual page (to read/write only the
       Block Descriptor)
    
     - Store the density code and block size in the Block Descriptor (only
       short version for tapes)
    
     - Fix REWIND not to use the wrong page filling function
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250213092636.2510-2-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f27a95845b01e86d67c8b014b4f41bd3327daa63
Author: Arthur Simchaev <arthur.simchaev@sandisk.com>
Date:   Thu Feb 20 16:20:39 2025 +0200

    scsi: ufs: core: bsg: Fix crash when arpmb command fails
    
    If the device doesn't support arpmb we'll crash due to copying user data in
    bsg_transport_sg_io_fn().
    
    In the case where ufs_bsg_exec_advanced_rpmb_req() returns an error, do not
    set the job's reply_len.
    
    Memory crash backtrace:
    3,1290,531166405,-;ufshcd 0000:00:12.5: ARPMB OP failed: error code -22
    
    4,1308,531166555,-;Call Trace:
    
    4,1309,531166559,-; <TASK>
    
    4,1310,531166565,-; ? show_regs+0x6d/0x80
    
    4,1311,531166575,-; ? die+0x37/0xa0
    
    4,1312,531166583,-; ? do_trap+0xd4/0xf0
    
    4,1313,531166593,-; ? do_error_trap+0x71/0xb0
    
    4,1314,531166601,-; ? usercopy_abort+0x6c/0x80
    
    4,1315,531166610,-; ? exc_invalid_op+0x52/0x80
    
    4,1316,531166622,-; ? usercopy_abort+0x6c/0x80
    
    4,1317,531166630,-; ? asm_exc_invalid_op+0x1b/0x20
    
    4,1318,531166643,-; ? usercopy_abort+0x6c/0x80
    
    4,1319,531166652,-; __check_heap_object+0xe3/0x120
    
    4,1320,531166661,-; check_heap_object+0x185/0x1d0
    
    4,1321,531166670,-; __check_object_size.part.0+0x72/0x150
    
    4,1322,531166679,-; __check_object_size+0x23/0x30
    
    4,1323,531166688,-; bsg_transport_sg_io_fn+0x314/0x3b0
    
    Fixes: 6ff265fc5ef6 ("scsi: ufs: core: bsg: Add advanced RPMB support in ufs_bsg")
    Cc: stable@vger.kernel.org
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Signed-off-by: Arthur Simchaev <arthur.simchaev@sandisk.com>
    Link: https://lore.kernel.org/r/20250220142039.250992-1-arthur.simchaev@sandisk.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6d7696b4d447028315038645f8a47f7539819be8
Author: Ziqi Chen <quic_ziqichen@quicinc.com>
Date:   Thu Feb 13 16:00:08 2025 +0800

    scsi: ABI: sysfs-driver-ufs: Add missing UFS sysfs attributes
    
    Add UFS driver sysfs attributes clkscale_enable, clkgate_enable and
    clkgate_delay_ms to this document.
    
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-9-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 2a25cbaa81d27f212439576fb5d406466055cfd0
Author: Can Guo <quic_cang@quicinc.com>
Date:   Thu Feb 13 16:00:07 2025 +0800

    scsi: ufs: core: Toggle Write Booster during clock scaling base on gear speed
    
    During clock scaling, Write Booster is toggled on or off based on whether
    the clock is scaled up or down. However, with OPP V2 powered multi-level
    gear scaling, the gear can be scaled amongst multiple gear speeds, e.g., it
    may scale down from G5 to G4, or from G4 to G2. To provide flexibilities,
    add a new field for clock scaling such that during clock scaling Write
    Booster can be enabled or disabled based on gear speeds but not based on
    scaling up or down.
    
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-8-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit eff26ad4c34fc78303c14be749e10ca61c4d211f
Author: Ziqi Chen <quic_ziqichen@quicinc.com>
Date:   Thu Feb 13 16:00:06 2025 +0800

    scsi: ufs: core: Check if scaling up is required when disable clkscale
    
    When disabling clkscale via the clkscale_enable sysfs entry, UFS driver
    shall perform scaling up once regardless. Check if scaling up is required
    or not first to avoid repetitive work.
    
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Co-developed-by: Can Guo <quic_cang@quicinc.com>
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-7-quic_ziqichen@quicinc.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 129b44c27c8a51cb74b2f68fde57f2a2e7f5696b
Author: Can Guo <quic_cang@quicinc.com>
Date:   Thu Feb 13 16:00:05 2025 +0800

    scsi: ufs: core: Enable multi-level gear scaling
    
    With OPP V2 enabled, devfreq can scale clocks amongst multiple frequency
    plans. However, the gear speed is only toggled between min and max during
    clock scaling. Enable multi-level gear scaling by mapping clock frequencies
    to gear speeds, so that when devfreq scales clock frequencies we can put
    the UFS link at the appropriate gear speeds accordingly.
    
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-6-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit c02fe9e222d16bed8c270608c42f77bc62562ac3
Author: Can Guo <quic_cang@quicinc.com>
Date:   Thu Feb 13 16:00:04 2025 +0800

    scsi: ufs: qcom: Implement the freq_to_gear_speed() vop
    
    Implement the freq_to_gear_speed() vop to map the unipro core clock
    frequency to the corresponding maximum supported gear speed.
    
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-5-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit d7bead60b08e61abde46d63eae6cd72f44939358
Author: Can Guo <quic_cang@quicinc.com>
Date:   Thu Feb 13 16:00:03 2025 +0800

    scsi: ufs: core: Add a vop to map clock frequency to gear speed
    
    Add a vop to map UFS host controller clock frequencies to the corresponding
    maximum supported UFS high speed gear speeds. During clock scaling, we can
    map the target clock frequency, demanded by devfreq, to the maximum
    supported gear speed, so that devfreq can scale the gear to the highest
    gear speed supported at the target clock frequency, instead of just scaling
    up/down the gear between the min and max gear speeds.
    
    Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-4-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 367a0f017c6145a7e7fc7df37a4535627f81356b
Author: Can Guo <quic_cang@quicinc.com>
Date:   Thu Feb 13 16:00:02 2025 +0800

    scsi: ufs: qcom: Pass target_freq to clk scale pre and post change
    
    Instead of only two frequencies, if OPP V2 is used, the UFS devfreq clock
    scaling may scale the clock among multiple frequencies. In the case of
    scaling up, the devfreq may decide to scale the clock to an intermediate
    freq based on load, but the clock scale up pre change operation uses
    settings for the max clock freq unconditionally. Fix it by passing the
    target_freq to clock scale up pre change so that the correct settings for
    the target_freq can be used.
    
    In the case of scaling down, the clock scale down post change operation is
    doing fine, because it reads the actual clock rate to tell freq, but to
    keep symmetry with clock scale up pre change operation, just use the
    target_freq instead of reading clock rate.
    
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-3-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 5e011fcc7d16d050ff2ec3977890137cfd163d32
Author: Can Guo <quic_cang@quicinc.com>
Date:   Thu Feb 13 16:00:01 2025 +0800

    scsi: ufs: core: Pass target_freq to clk_scale_notify() vop
    
    Instead of only two frequencies, if OPP V2 is used, the UFS devfreq clock
    scaling may scale the clock among multiple frequencies, so just passing
    up/down to vop clk_scale_notify() is not enough to cover the intermediate
    clock freqs between the min and max freqs. Hence pass the target_freq,
    which will be used in successive commits, to clk_scale_notify() to allow
    the vop to perform corresponding configurations with regard to the clock
    freqs.
    
    Signed-off-by: Can Guo <quic_cang@quicinc.com>
    Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
    Link: https://lore.kernel.org/r/20250213080008.2984807-2-quic_ziqichen@quicinc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 51edde19f008eacaeba87aadbcea143076fd8a27
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Wed Feb 12 17:26:56 2025 -0800

    scsi: mpt3sas: update driver version to 52.100.00.00
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Link: https://lore.kernel.org/r/1739410016-27503-6-git-send-email-shivasharan.srikanteshwara@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 5612d6d51ed2634a033c95de2edec7449409cbb9
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Wed Feb 12 17:26:55 2025 -0800

    scsi: mpt3sas: Send a diag reset if target reset fails
    
    When an IOCTL times out and driver issues a target reset, if firmware
    fails the task management elevate the recovery by issuing a diag reset to
    controller.
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Link: https://lore.kernel.org/r/1739410016-27503-5-git-send-email-shivasharan.srikanteshwara@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 8c2465e202006e17fefaaac364e9942bd9002c34
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Wed Feb 12 17:26:54 2025 -0800

    scsi: mpt3sas: Report driver capability as part of IOCINFO command
    
    Add a new capability field to report the MCTP passthrough support to
    applications.
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Link: https://lore.kernel.org/r/1739410016-27503-4-git-send-email-shivasharan.srikanteshwara@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit c72be4b5bb7cb1a9059d0b845f87223b52399cc2
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Wed Feb 12 17:26:53 2025 -0800

    scsi: mpt3sas: Add support for MCTP Passthrough commands
    
    The MPI specification defines support for sending MCTP management commands
    as a passthrough function to the IOC. Add support for driver to discover
    the IOC capability to support MCTP passthrough function. Driver will
    support applications and kernel modules to send MPT commands containing the
    MCTP passthrough request to firmware through an MPI request.
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Signed-off-by: Sathya Prakash <sathya.prakash@broadcom.com>
    Link: https://lore.kernel.org/r/1739410016-27503-3-git-send-email-shivasharan.srikanteshwara@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 70684dcbec3ac54a6d111646a02128c0b53e9f75
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Wed Feb 12 17:26:52 2025 -0800

    scsi: mpt3sas: Update MPI headers to 02.00.62 version
    
    Updated MPI header files to version 02.00.62.
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Link: https://lore.kernel.org/r/1739410016-27503-2-git-send-email-shivasharan.srikanteshwara@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit fe06b7c07f3fbcce2a2ca6f7b0d543b5699ea00f
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Wed Feb 19 16:20:47 2025 +0530

    scsi: ufs: core: Set default runtime/system PM levels before ufshcd_hba_init()
    
    Commit bb9850704c04 ("scsi: ufs: core: Honor runtime/system PM levels if
    set by host controller drivers") introduced the check for setting default
    PM levels only if the levels are uninitialized by the host controller
    drivers. But it missed the fact that the levels could be initialized to 0
    (UFS_PM_LVL_0) on purpose by the controller drivers. Even though none of
    the drivers are doing so now, the logic should be fixed irrespectively.
    
    So set the default levels unconditionally before calling ufshcd_hba_init()
    API which initializes the controller drivers. It ensures that the
    controller drivers could override the default levels if required.
    
    Fixes: bb9850704c04 ("scsi: ufs: core: Honor runtime/system PM levels if set by host controller drivers")
    Reported-by: Bao D. Nguyen <quic_nguyenb@quicinc.com>
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Link: https://lore.kernel.org/r/20250219105047.49932-1-manivannan.sadhasivam@linaro.org
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 476cda1949031a6102057eb2b4f73e9d901ffc4c
Author: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Date:   Wed Feb 19 09:16:06 2025 -0800

    scsi: ufs: qcom: Remove dead code in ufs_qcom_cfg_timers()
    
    Since 'commit 104cd58d9af8 ("scsi: ufs: qcom: Remove support for host
    controllers older than v2.0")', some of the parameters passed into the
    ufs_qcom_cfg_timers() function have become dead code. Clean up
    ufs_qcom_cfg_timers() function to improve the readability.
    
    Signed-off-by: Bao D. Nguyen <quic_nguyenb@quicinc.com>
    Link: https://lore.kernel.org/r/547c484ce80fe3624ee746954b84cae28bd38a09.1739985266.git.quic_nguyenb@quicinc.com
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit dce5c4afd035e8090a26e5d776b1682c0e649683
Author: Ye Bin <yebin10@huawei.com>
Date:   Mon Feb 17 10:16:28 2025 +0800

    scsi: core: Clear driver private data when retrying request
    
    After commit 1bad6c4a57ef ("scsi: zero per-cmd private driver data for each
    MQ I/O"), the xen-scsifront/virtio_scsi/snic drivers all removed code that
    explicitly zeroed driver-private command data.
    
    In combination with commit 464a00c9e0ad ("scsi: core: Kill DRIVER_SENSE"),
    after virtio_scsi performs a capacity expansion, the first request will
    return a unit attention to indicate that the capacity has changed. And then
    the original command is retried. As driver-private command data was not
    cleared, the request would return UA again and eventually time out and fail.
    
    Zero driver-private command data when a request is retried.
    
    Fixes: f7de50da1479 ("scsi: xen-scsifront: Remove code that zeroes driver-private command data")
    Fixes: c2bb87318baa ("scsi: virtio_scsi: Remove code that zeroes driver-private command data")
    Fixes: c3006a926468 ("scsi: snic: Remove code that zeroes driver-private command data")
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250217021628.2929248-1-yebin@huaweicloud.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 61eeb9678789644f118eff608d9031b5de4f719d
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 19 08:58:09 2025 +0800

    pmdomain: rockchip: Check if SMC could be handled by TA
    
    Non-existent trusted-firmware could lead to SMC calls into some unset
    location, that breaks the system. Let's check that it's supported before
    executing the SMC.
    
    Reported-by: Steven Price <steven.price@arm.com>
    Suggested-by: Heiko Stuebner <heiko@sntech.de>
    Fixes: 58ebba35ddab ("pmdomain: rockchip: Add smc call to inform firmware")
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Tested-by: Steven Price <steven.price@arm.com>
    Link: https://lore.kernel.org/r/1739926689-151827-1-git-send-email-shawn.lin@rock-chips.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

commit 38afcf0660f5c408ba6c2f0ba3a9729e0102fe2e
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Feb 10 12:39:36 2025 -0800

    scsi: mpt3sas: Fix a locking bug in an error path
    
    Call mutex_unlock(&ioc->hostdiag_unlock_mutex) once from error paths
    instead of twice.
    
    This patch fixes the following Clang -Wthread-safety errors:
    
    drivers/scsi/mpt3sas/mpt3sas_base.c:8085:2: error: mutex 'ioc->hostdiag_unlock_mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis]
     8085 |         pci_cfg_access_unlock(ioc->pdev);
          |         ^
    drivers/scsi/mpt3sas/mpt3sas_base.c:8019:2: note: mutex acquired here
     8019 |         mutex_lock(&ioc->hostdiag_unlock_mutex);
          |         ^
    ./include/linux/mutex.h:171:26: note: expanded from macro 'mutex_lock'
      171 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
          |                          ^
    drivers/scsi/mpt3sas/mpt3sas_base.c:8085:2: error: mutex 'ioc->hostdiag_unlock_mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis]
     8085 |         pci_cfg_access_unlock(ioc->pdev);
          |         ^
    drivers/scsi/mpt3sas/mpt3sas_base.c:8019:2: note: mutex acquired here
     8019 |         mutex_lock(&ioc->hostdiag_unlock_mutex);
          |         ^
    ./include/linux/mutex.h:171:26: note: expanded from macro 'mutex_lock'
      171 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
          |                          ^
    drivers/scsi/mpt3sas/mpt3sas_base.c:8087:2: error: releasing mutex 'ioc->hostdiag_unlock_mutex' that was not held [-Werror,-Wthread-safety-analysis]
     8087 |         mutex_unlock(&ioc->hostdiag_unlock_mutex);
          |         ^
    
    Cc: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Fixes: c0767560b012 ("scsi: mpt3sas: Reload SBR without rebooting HBA")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250210203936.2946494-3-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit c733741ae1c3a5927f72664b0d760d5f4c14f96b
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Feb 10 12:39:35 2025 -0800

    scsi: mpi3mr: Fix locking in an error path
    
    Make all error paths unlock rioc->bsg_cmds.mutex.
    
    This patch fixes the following Clang -Wthread-safety errors:
    
    drivers/scsi/mpi3mr/mpi3mr_app.c:2835:1: error: mutex 'mrioc->bsg_cmds.mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis]
     2835 | }
          | ^
    drivers/scsi/mpi3mr/mpi3mr_app.c:2332:6: note: mutex acquired here
     2332 |         if (mutex_lock_interruptible(&mrioc->bsg_cmds.mutex))
          |             ^
    ./include/linux/mutex.h:172:40: note: expanded from macro 'mutex_lock_interruptible'
      172 | #define mutex_lock_interruptible(lock) mutex_lock_interruptible_nested(lock, 0)
          |                                        ^
    
    Cc: Sathya Prakash <sathya.prakash@broadcom.com>
    Fixes: fb231d7deffb ("scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-2")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250210203936.2946494-2-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit ac3b7425db298aa88f22a4c5a6d0a4c26f7ed338
Author: Thorsten Blum <thorsten.blum@linux.dev>
Date:   Thu Feb 13 12:40:48 2025 +0100

    scsi: hpsa: Replace deprecated strncpy() with strscpy_pad()
    
    strncpy() is deprecated for NUL-terminated destination buffers. Replace
    memset() and strncpy() with strscpy_pad() to copy the version string and
    fill the remaining bytes in the destination buffer with NUL bytes. This
    avoids zeroing the memory before copying the string.
    
    Compile-tested only.
    
    Link: https://github.com/KSPP/linux/issues/90
    Cc: linux-hardening@vger.kernel.org
    Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
    Link: https://lore.kernel.org/r/20250213114047.2366-2-thorsten.blum@linux.dev
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Kees Cook <kees@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit d69ddae194ca2c8ea426747efba730bfec20fe04
Author: Thorsten Blum <thorsten.blum@linux.dev>
Date:   Fri Feb 14 12:43:02 2025 +0100

    scsi: hpsa: Remove deprecated and unnecessary strncpy()
    
    While replacing strncpy() with strscpy(), Bart Van Assche pointed out
    that the code occurs inside sysfs write callbacks, which already uses
    NUL-terminated strings. This allows the string to be passed directly to
    sscanf() without requiring a temporary copy.
    
    Remove the deprecated and unnecessary strncpy() and the corresponding
    local variables, and pass the buffer buf directly to sscanf().
    
    Replace sscanf() with kstrtoint() to silence checkpatch warnings.
    
    Compile-tested only.
    
    Link: https://github.com/KSPP/linux/issues/90
    Cc: linux-hardening@vger.kernel.org
    Cc: Kees Cook <kees@kernel.org>
    Cc: David Laight <david.laight.linux@gmail.com>
    Suggested-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
    Link: https://lore.kernel.org/r/20250214114302.86001-2-thorsten.blum@linux.dev
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 583e518e7100362e3937b583976f9470c39d1db2
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Fri Feb 14 16:29:36 2025 +0800

    scsi: ufs: core: Add hba parameter to trace events
    
    Include the ufs_hba structure as a parameter in various trace events to
    provide more context and improve debugging capabilities.  Also remove
    dev_name which can replace by dev_name(hba->dev).
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250214083026.1177880-1-peter.wang@mediatek.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 4fa382be430421e1445f9c95c4dc9b7e0949ae8a
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Feb 14 14:43:44 2025 -0800

    scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out()
    
    ufshcd_is_ufs_dev_busy(), ufshcd_print_host_state() and
    ufshcd_eh_timed_out() are used in both modes (legacy mode and MCQ mode).
    hba->outstanding_reqs only represents the outstanding requests in legacy
    mode. Hence, change hba->outstanding_reqs into scsi_host_busy(hba->host) in
    these functions.
    
    Fixes: eacb139b77ff ("scsi: ufs: core: mcq: Enable multi-circular queue")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250214224352.3025151-1-bvanassche@acm.org
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 58ebba35ddab4868c921f970b60a77032362ef4c
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 5 14:15:53 2025 +0800

    pmdomain: rockchip: Add smc call to inform firmware
    
    Inform firmware to keep the power domain on or off.
    
    Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Acked-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://lore.kernel.org/r/1738736156-119203-5-git-send-email-shawn.lin@rock-chips.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

commit cd3fa304ba5c93ce57b9b55b3cd893af2be96527
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Wed Feb 5 14:15:52 2025 +0800

    pmdomain: core: Introduce dev_pm_genpd_rpm_always_on()
    
    For some usecases a consumer driver requires its device to remain power-on
    from the PM domain perspective during runtime. Using dev PM qos along with
    the genpd governors, doesn't work for this case as would potentially
    prevent the device from being runtime suspended too.
    
    To support these usecases, let's introduce dev_pm_genpd_rpm_always_on() to
    allow consumers drivers to dynamically control the behaviour in genpd for a
    device that is attached to it.
    
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Link: https://lore.kernel.org/r/1738736156-119203-4-git-send-email-shawn.lin@rock-chips.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

commit 184055a9ae2b7b19f6fd6e9c0b7e1edce6930b2f
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Wed Feb 5 14:15:51 2025 +0800

    soc: rockchip: add header for suspend mode SIP interface
    
    Add ROCKCHIP_SIP_SUSPEND_MODE to pass down parameters to Trusted Firmware
    in order to decide suspend mode. Currently only add ROCKCHIP_SLEEP_PD_CONFIG
    which teaches firmware to power down controllers or not.
    
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Acked-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://lore.kernel.org/r/1738736156-119203-3-git-send-email-shawn.lin@rock-chips.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

commit 3bcd901e4257d88cd3fc0e5cfa7d2fb3a1a1af99
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Feb 12 13:38:02 2025 -0800

    scsi: ufs: Constify the third pwr_change_notify() argument
    
    The third pwr_change_notify() argument is an input parameter. Make this
    explicit by declaring it 'const'.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250212213838.1044917-1-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 0ea163a18b17f9e0f8350bb348ae69c4a376be66
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Feb 10 12:50:09 2025 -0800

    scsi: usb: Rename the RESERVE and RELEASE constants
    
    The names RESERVE and RELEASE are not only used in <scsi/scsi_proto.h> but
    also elsewhere in the kernel:
    
    $ git grep -nHE 'define[[:blank:]]*(RESERVE|RELEASE)[[:blank:]]'
    drivers/input/joystick/walkera0701.c:13:#define RESERVE 20000
    drivers/s390/char/tape_std.h:56:#define RELEASE                 0xD4    /* 3420 NOP, 3480 REJECT */
    drivers/s390/char/tape_std.h:58:#define RESERVE                 0xF4    /* 3420 NOP, 3480 REJECT */
    
    Additionally, while the names of the symbolic constants RESERVE_10 and
    RELEASE_10 include the command length, the command length is not included
    in the RESERVE and RELEASE names. Address both issues by renaming the
    RESERVE and RELEASE constants into RESERVE_6 and RELEASE_6 respectively.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250210205031.2970833-1-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit edfaf868f3ae65099b41ec28724cb5241eeb9edf
Author: Avri Altman <avri.altman@wdc.com>
Date:   Tue Feb 11 08:58:13 2025 +0200

    scsi: ufs: core: Critical health condition
    
    Martin hi,
    
    The UFS4.1 standard, released on January 8, 2025, added a new exception
    event: HEALTH_CRITICAL, which notifies the host of a device's critical
    health condition. This notification implies that the device is approaching
    the end of its lifetime based on the amount of performed program/erase
    cycles.
    
    Once an EOL (End-of-Life) exception event is received, we increment a
    designated member, which is exposed via a sysfs entry. This new entry, will
    report the number of times a critical health event has been reported by a
    UFS device.
    
    To handle this new sysfs entry, userspace applications can use select(),
    poll(), or epoll() to monitor changes in the critical_health attribute. The
    kernel will call sysfs_notify() to signal changes, allowing the userspace
    application to detect and respond to these changes efficiently.
    
    The host can gain further insight into the specific issue by reading one of
    the following attributes: bPreEOLInfo, bDeviceLifeTimeEstA,
    bDeviceLifeTimeEstB, bWriteBoosterBufferLifeTimeEst, and
    bRPMBLifeTimeEst. All those are available for reading via the driver's
    sysfs entries or through an applicable utility. It is up to userspace to
    read these attributes if needed.
    
    Signed-off-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20250211065813.58091-1-avri.altman@wdc.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 92186c1455a2d3563dcea58a6f4729d518b5be50
Author: Eric Biggers <ebiggers@google.com>
Date:   Thu Feb 6 20:17:24 2025 -0800

    scsi: iscsi_tcp: Switch to using the crc32c library
    
    Now that the crc32c() library function directly takes advantage of
    architecture-specific optimizations, it is unnecessary to go through the
    crypto API.  Just use crc32c().  This is much simpler, and it improves
    performance due to eliminating the crypto API overhead.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Link: https://lore.kernel.org/r/20250207041724.70733-1-ebiggers@kernel.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 035b9fa023fb4645e9cf104e0f1b4641b1938d08
Author: Andrew Kreimer <algonell@gmail.com>
Date:   Thu Feb 6 10:47:03 2025 +0200

    scsi: target: iscsi: Fix typos
    
    There are some typos in comments/messages:
    
     - Nin -> Min
     - occuring -> occurring
    
    Fix them via codespell.
    
    Signed-off-by: Andrew Kreimer <algonell@gmail.com>
    Link: https://lore.kernel.org/r/20250206084905.11327-1-algonell@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 7c1b882ccb1320cc131d4f0e2e1032c11a08293c
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Wed Feb 5 09:11:18 2025 +0000

    scsi: mpi3mr: Fix spelling mistake "skiping" -> "skipping"
    
    There is a spelling mistake in a dprint_bsg_err message. Fix it.
    
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Link: https://lore.kernel.org/r/20250205091119.715630-1-colin.i.king@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit fb27da6e06a0869d2e36255bb7e0b6102daf712f
Author: Paul Menzel <pmenzel@molgen.mpg.de>
Date:   Fri Jan 31 18:16:40 2025 +0100

    scsi: mpt3sas: Reduce log level of ignore_delay_remove message to KERN_INFO
    
    On several systems with Dell HBA controller Linux prints the warning below:
    
        $ dmesg | grep -e "Linux version" -e "DMI: Dell"  -e "ignore_delay_remove"
        [    0.000000] Linux version 6.12.11.mx64.479 (root@lucy.molgen.mpg.de) (gcc (GCC) 12.3.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT_DYNAMIC Fri Jan 24 13:30:47 CET 2025
        [    0.000000] DMI: Dell Inc. PowerEdge R7625/0M7YXP, BIOS 1.10.6 12/06/2024
        [    9.386551] scsi 0:0:4:0: set ignore_delay_remove for handle(0x0012)
    
    A user does not know, what to do about it, and everything seems to work as
    expected. Therefore, remove the log level from warning to info.
    
    Device information:
    
        $ dmesg | grep -e 0:4:0 -e '12)'
        [    8.857606] mpt3sas_cm0: config page(0x00000000db0e4179) - dma(0xfd5f6000): size(512)
        [    9.133856] scsi 0:0:0:0: SATA: handle(0x0017), sas_addr(0x3c0470e0d40cc20c), phy(12), device_name(0x5000039db8d2284b)
        [    9.366341] mpt3sas_cm0: handle(0x12) sas_address(0x3c0570e0d40cc208) port_type(0x0)
        [    9.378867] scsi 0:0:4:0: Enclosure         DP       BP_PSV           7.10 PQ: 0 ANSI: 7
        [    9.386551] scsi 0:0:4:0: set ignore_delay_remove for handle(0x0012)
        [    9.387465] scsi 0:0:4:0: SES: handle(0x0012), sas_addr(0x3c0570e0d40cc208), phy(17), device_name(0x3c0570e0d40cc208)
        [    9.387465] scsi 0:0:4:0: enclosure logical id (0x3c0470e0d4092108), slot(8)
        [    9.387465] scsi 0:0:4:0: enclosure level(0x0001), connector name( C0  )
        [    9.390495] scsi 0:0:4:0: qdepth(1), tagged(0), scsi_level(8), cmd_que(0)
        [    9.401700]  end_device-0:4: add: handle(0x0012), sas_addr(0x3c0570e0d40cc208)
        [    9.471916] ses 0:0:4:0: Attached Enclosure device
        [    9.480088] ses 0:0:4:0: Attached scsi generic sg4 type 13
        $ lspci -nn -k -s 41:
        41:00.0 Serial Attached SCSI controller [0107]: Broadcom / LSI Fusion-MPT 12GSAS/PCIe Secure SAS38xx [1000:00e6]
            DeviceName: SL3 NonRAID
            Subsystem: Dell HBA355i Front [1028:200c]
            Kernel driver in use: mpt3sas
    
    Fixes: 30158dc9bbc9 ("mpt3sas: Never block the Enclosure device")
    Cc: Tomas Henzl <thenzl@redhat.com>
    Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Link: https://lore.kernel.org/r/20250131171640.30721-1-pmenzel@molgen.mpg.de
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 04ad06e41d1c74cc323b20a7bd023c47bd0e0c38
Author: Chaohai Chen <wdhh66@163.com>
Date:   Fri Jan 24 16:55:42 2025 +0800

    scsi: target: spc: Fix loop traversal in spc_rsoc_get_descr()
    
    Stop traversing after finding the appropriate descriptor.
    
    Signed-off-by: Chaohai Chen <wdhh66@163.com>
    Link: https://lore.kernel.org/r/20250124085542.109088-1-wdhh66@163.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b50532318793d28a7628c1ffc129a2226e83e495
Author: Chaohai Chen <wdhh66@163.com>
Date:   Wed Jan 15 15:07:39 2025 +0800

    scsi: target: spc: Fix RSOC parameter data header size
    
    The SPC document states that "The COMMAND DATA LENGTH field indicates the
    length in bytes of the command descriptor list".
    
    The length should be subtracted by 4 to represent the length of the
    description list, not 3.
    
    Signed-off-by: Chaohai Chen <wdhh66@163.com>
    Link: https://lore.kernel.org/r/20250115070739.216154-1-wdhh66@163.com
    Reviewed-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit a64dcfb451e254085a7daee5fe51bf22959d52d3
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Feb 9 12:45:03 2025 -0800

    Linux 6.14-rc2

commit 7585946243d614bd2cd4e13377be2c711c9539e0
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Sat Feb 8 18:54:28 2025 +0100

    PM: sleep: core: Restrict power.set_active propagation
    
    Commit 3775fc538f53 ("PM: sleep: core: Synchronize runtime PM status of
    parents and children") exposed an issue related to simple_pm_bus_pm_ops
    that uses pm_runtime_force_suspend() and pm_runtime_force_resume() as
    bus type PM callbacks for the noirq phases of system-wide suspend and
    resume.
    
    The problem is that pm_runtime_force_suspend() does not distinguish
    runtime-suspended devices from devices for which runtime PM has never
    been enabled, so if it sees a device with runtime PM status set to
    RPM_ACTIVE, it will assume that runtime PM is enabled for that device
    and so it will attempt to suspend it with the help of its runtime PM
    callbacks which may not be ready for that.  As it turns out, this
    causes simple_pm_bus_runtime_suspend() to crash due to a NULL pointer
    dereference.
    
    Another problem related to the above commit and simple_pm_bus_pm_ops is
    that setting runtime PM status of a device handled by the latter to
    RPM_ACTIVE will actually prevent it from being resumed because
    pm_runtime_force_resume() only resumes devices with runtime PM status
    set to RPM_SUSPENDED.
    
    To mitigate these issues, do not allow power.set_active to propagate
    beyond the parent of the device with DPM_FLAG_SMART_SUSPEND set that
    will need to be resumed, which should be a sufficient stop-gap for the
    time being, but they will need to be properly addressed in the future
    because in general during system-wide resume it is necessary to resume
    all devices in a dependency chain in which at least one device is going
    to be resumed.
    
    Fixes: 3775fc538f53 ("PM: sleep: core: Synchronize runtime PM status of parents and children")
    Closes: https://lore.kernel.org/linux-pm/1c2433d4-7e0f-4395-b841-b8eac7c25651@nvidia.com/
    Reported-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Johan Hovold <johan+linaro@kernel.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Link: https://patch.msgid.link/6137505.lOV4Wx5bFT@rjwysocki.net

commit c8c9b1d2d5b4377c72a979f5a26e842a869aefc9
Author: Steven Rostedt <rostedt@goodmis.org>
Date:   Sat Feb 8 00:15:11 2025 -0500

    fgraph: Fix set_graph_notrace with setting TRACE_GRAPH_NOTRACE_BIT
    
    The code was restructured where the function graph notrace code, that
    would not trace a function and all its children is done by setting a
    NOTRACE flag when the function that is not to be traced is hit.
    
    There's a TRACE_GRAPH_NOTRACE_BIT which defines the bit in the flags and a
    TRACE_GRAPH_NOTRACE which is the mask with that bit set. But the
    restructuring used TRACE_GRAPH_NOTRACE_BIT when it should have used
    TRACE_GRAPH_NOTRACE.
    
    For example:
    
     # cd /sys/kernel/tracing
     # echo set_track_prepare stack_trace_save  > set_graph_notrace
     # echo function_graph > current_tracer
     # cat trace
    [..]
     0)               |                          __slab_free() {
     0)               |                            free_to_partial_list() {
     0)               |                                  arch_stack_walk() {
     0)               |                                    __unwind_start() {
     0)   0.501 us    |                                      get_stack_info();
    
    Where a non filter trace looks like:
    
     # echo > set_graph_notrace
     # cat trace
     0)               |                            free_to_partial_list() {
     0)               |                              set_track_prepare() {
     0)               |                                stack_trace_save() {
     0)               |                                  arch_stack_walk() {
     0)               |                                    __unwind_start() {
    
    Where the filter should look like:
    
     # cat trace
     0)               |                            free_to_partial_list() {
     0)               |                              _raw_spin_lock_irqsave() {
     0)   0.350 us    |                                preempt_count_add();
     0)   0.351 us    |                                do_raw_spin_lock();
     0)   2.440 us    |                              }
    
    Cc: stable@vger.kernel.org
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Link: https://lore.kernel.org/20250208001511.535be150@batman.local.home
    Fixes: b84214890a9bc ("function_graph: Move graph notrace bit to shadow stack global var")
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

commit 8f6629c004b193d23612641c3607e785819e97ab
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Thu Oct 17 10:09:22 2024 -0700

    kbuild: Move -Wenum-enum-conversion to W=2
    
    -Wenum-enum-conversion was strengthened in clang-19 to warn for C, which
    caused the kernel to move it to W=1 in commit 75b5ab134bb5 ("kbuild:
    Move -Wenum-{compare-conditional,enum-conversion} into W=1") because
    there were numerous instances that would break builds with -Werror.
    Unfortunately, this is not a full solution, as more and more developers,
    subsystems, and distributors are building with W=1 as well, so they
    continue to see the numerous instances of this warning.
    
    Since the move to W=1, there have not been many new instances that have
    appeared through various build reports and the ones that have appeared
    seem to be following similar existing patterns, suggesting that most
    instances of this warning will not be real issues. The only alternatives
    for silencing this warning are adding casts (which is generally seen as
    an ugly practice) or refactoring the enums to macro defines or a unified
    enum (which may be undesirable because of type safety in other parts of
    the code).
    
    Move the warning to W=2, where warnings that occur frequently but may be
    relevant should reside.
    
    Cc: stable@vger.kernel.org
    Fixes: 75b5ab134bb5 ("kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1")
    Link: https://lore.kernel.org/ZwRA9SOcOjjLJcpi@google.com/
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit f354fc88a72ae83dacd68370f6fa040e5733bcfe
Author: WangYuli <wangyuli@uniontech.com>
Date:   Fri Feb 7 15:08:55 2025 +0800

    kbuild: install-extmod-build: add missing quotation marks for CC variable
    
    While attempting to build a Debian packages with CC="ccache gcc", I
    saw the following error as builddeb builds linux-headers-$KERNELVERSION:
    
      make HOSTCC=ccache gcc VPATH= srcroot=. -f ./scripts/Makefile.build obj=debian/linux-headers-6.14.0-rc1/usr/src/linux-headers-6.14.0-rc1/scripts
      make[6]: *** No rule to make target 'gcc'.  Stop.
    
    Upon investigation, it seems that one instance of $(CC) variable reference
    in ./scripts/package/install-extmod-build was missing quotation marks,
    causing the above error.
    
    Add the missing quotation marks around $(CC) to fix build.
    
    Fixes: 5f73e7d0386d ("kbuild: refactor cross-compiling linux-headers package")
    Co-developed-by: Mingcong Bai <jeffbai@aosc.io>
    Signed-off-by: Mingcong Bai <jeffbai@aosc.io>
    Tested-by: WangYuli <wangyuli@uniontech.com>
    Signed-off-by: WangYuli <wangyuli@uniontech.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

commit 1b3291f00013c86a9bb349d6158a9a7a4f0334fe
Author: Hector Martin <marcan@marcan.st>
Date:   Fri Feb 7 03:21:46 2025 +0900

    MAINTAINERS: Remove myself
    
    I no longer have any faith left in the kernel development process or
    community management approach.
    
    Apple/ARM platform development will continue downstream. If I feel like
    sending some patches upstream in the future myself for whatever subtree
    I may, or I may not. Anyone who feels like fighting the upstreaming
    fight themselves is welcome to do so.
    
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 511121a48bbd12df4ae50a099a8936e833df8c46
Author: Pavel Machek <pavel@ucw.cz>
Date:   Wed Feb 5 19:42:01 2025 +0100

    MAINTAINERS: Move Pavel to kernel.org address
    
    I need to filter my emails better, switch to pavel@kernel.org address
    to help with that.
    
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 37d11cfc63604b3886308e2111d845d148ced8bc
Author: Mateusz Guzik <mjguzik@gmail.com>
Date:   Tue Feb 4 22:32:07 2025 +0100

    vfs: sanity check the length passed to inode_set_cached_link()
    
    This costs a strlen() call when instatianating a symlink.
    
    Preferably it would be hidden behind VFS_WARN_ON (or compatible), but
    there is no such facility at the moment. With the facility in place the
    call can be patched out in production kernels.
    
    In the meantime, since the cost is being paid unconditionally, use the
    result to a fixup the bad caller.
    
    This is not expected to persist in the long run (tm).
    
    Sample splat:
    bad length passed for symlink [/tmp/syz-imagegen43743633/file0/file0] (got 131109, expected 37)
    [rest of WARN blurp goes here]
    
    Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
    Link: https://lore.kernel.org/r/20250204213207.337980-1-mjguzik@gmail.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 091ee63e36e8289f9067f659a48d497911e49d6f
Author: Christian Brauner <brauner@kernel.org>
Date:   Tue Feb 4 14:51:20 2025 +0100

    pidfs: improve ioctl handling
    
    Pidfs supports extensible and non-extensible ioctls. The extensible
    ioctls need to check for the ioctl number itself not just the ioctl
    command otherwise both backward- and forward compatibility are broken.
    
    The pidfs ioctl handler also needs to look at the type of the ioctl
    command to guard against cases where "[...] a daemon receives some
    random file descriptor from a (potentially less privileged) client and
    expects the FD to be of some specific type, it might call ioctl() on
    this FD with some type-specific command and expect the call to fail if
    the FD is of the wrong type; but due to the missing type check, the
    kernel instead performs some action that userspace didn't expect."
    (cf. [1]]
    
    Link: https://lore.kernel.org/r/20250204-work-pidfs-ioctl-v1-1-04987d239575@kernel.org
    Link: https://lore.kernel.org/r/CAG48ez2K9A5GwtgqO31u9ZL292we8ZwAA=TJwwEv7wRuJ3j4Lw@mail.gmail.com [1]
    Fixes: 8ce352818820 ("pidfs: check for valid ioctl commands")
    Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
    Reported-by: Jann Horn <jannh@google.com>
    Cc: stable@vger.kernel.org # v6.13; please backport with 8ce352818820 ("pidfs: check for valid ioctl commands")
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 711f9b8fbe4f4936302804e246e206f0829f628f
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Mon Feb 3 23:32:05 2025 +0100

    fsnotify: disable pre-content and permission events by default
    
    After introducing pre-content events, we had a regression related to
    disabling huge faults on files that should never have pre-content events
    enabled.
    
    This happened because the default f_mode of allocated files (0) does
    not disable pre-content events.
    
    Pre-content events are disabled in file_set_fsnotify_mode_by_watchers()
    but internal files may not get to call this helper.
    
    Initialize f_mode to disable permission and pre-content events for all
    files and if needed they will be enabled for the callers of
    file_set_fsnotify_mode_by_watchers().
    
    Fixes: 20bf82a898b6 ("mm: don't allow huge faults for files with pre content watches")
    Reported-by: Alex Williamson <alex.williamson@redhat.com>
    Closes: https://lore.kernel.org/linux-fsdevel/20250131121703.1e4d00a7.alex.williamson@redhat.com/
    Tested-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Link: https://lore.kernel.org/r/20250203223205.861346-4-amir73il@gmail.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 2cc02059fbc79306b53a44b1f1a4444aa3c76598
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Jan 29 17:06:41 2025 +0100

    selftests: always check mask returned by statmount(2)
    
    STATMOUNT_MNT_OPTS can actually be missing if there are no options.  This
    is a change of behavior since 75ead69a7173 ("fs: don't let statmount return
    empty strings").
    
    The other checks shouldn't actually trigger, but add them for correctness
    and for easier debugging if the test fails.
    
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Link: https://lore.kernel.org/r/20250129160641.35485-1-mszeredi@redhat.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 2a42754b3104d78a2bc7a2ad8844427411c76ca6
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Mon Feb 3 23:32:04 2025 +0100

    fsnotify: disable notification by default for all pseudo files
    
    Most pseudo files are not applicable for fsnotify events at all,
    let alone to the new pre-content events.
    
    Disable notifications to all files allocated with alloc_file_pseudo()
    and enable legacy inotify events for the specific cases of pipe and
    socket, which have known users of inotify events.
    
    Pre-content events are also kept disabled for sockets and pipes.
    
    Fixes: 20bf82a898b6 ("mm: don't allow huge faults for files with pre content watches")
    Reported-by: Alex Williamson <alex.williamson@redhat.com>
    Closes: https://lore.kernel.org/linux-fsdevel/20250131121703.1e4d00a7.alex.williamson@redhat.com/
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/linux-fsdevel/CAHk-=wi2pThSVY=zhO=ZKxViBj5QCRX-=AS2+rVknQgJnHXDFg@mail.gmail.com/
    Tested-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Link: https://lore.kernel.org/r/20250203223205.861346-3-amir73il@gmail.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 5eb987105357cb7cfa7cf3b1e2f66d5c0977e412
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Jan 29 16:12:53 2025 +0100

    fs: fix adding security options to statmount.mnt_opt
    
    Prepending security options was made conditional on sb->s_op->show_options,
    but security options are independent of sb options.
    
    Fixes: 056d33137bf9 ("fs: prepend statmount.mnt_opts string with security_sb_mnt_opts()")
    Fixes: f9af549d1fd3 ("fs: export mount options via statmount()")
    Cc: stable@vger.kernel.org # v6.11
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Link: https://lore.kernel.org/r/20250129151253.33241-1-mszeredi@redhat.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 95101401bb50ae2cf9deee1bbf4d2b28d0dfdc26
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Mon Feb 3 23:32:03 2025 +0100

    fsnotify: use accessor to set FMODE_NONOTIFY_*
    
    The FMODE_NONOTIFY_* bits are a 2-bits mode.  Open coding manipulation
    of those bits is risky.  Use an accessor file_set_fsnotify_mode() to
    set the mode.
    
    Rename file_set_fsnotify_mode() => file_set_fsnotify_mode_from_watchers()
    to make way for the simple accessor name.
    
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Link: https://lore.kernel.org/r/20250203223205.861346-2-amir73il@gmail.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit bb504b4d64266fa0d7460c218c85afed371db03a
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Thu Jan 30 14:56:23 2025 +0100

    lockref: remove count argument of lockref_init
    
    All users of lockref_init() now initialize the count to 1, so hardcode
    that and remove the count argument.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Link: https://lore.kernel.org/r/20250130135624.1899988-4-agruenba@redhat.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 34ad6fa2add2b38f2a89d28518de0142bff8fb43
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Thu Jan 30 14:56:22 2025 +0100

    gfs2: switch to lockref_init(..., 1)
    
    In qd_alloc(), initialize the lockref count to 1 to cover the common
    case.  Compensate for that in gfs2_quota_init() by adjusting the count
    back down to 0; this only occurs when mounting the filesystem rw.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Link: https://lore.kernel.org/r/20250130135624.1899988-3-agruenba@redhat.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit d9b3a3c70df2c2b87c83ca3f6e8ab49bd092fdbd
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Thu Jan 30 14:56:21 2025 +0100

    gfs2: use lockref_init for gl_lockref
    
    Move the initialization of gl_lockref from gfs2_init_glock_once() to
    gfs2_glock_get().  This allows to use lockref_init() there.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Link: https://lore.kernel.org/r/20250130135624.1899988-2-agruenba@redhat.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit e52e97f09fb66fd868260d05bd6b74a9a3db39ee
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jan 30 13:15:00 2025 +0100

    statmount: let unset strings be empty
    
    Just like it's normal for unset values to be zero, unset strings should be
    empty instead of containing random values.
    
    It seems to be a typical mistake that the mask returned by statmount is not
    checked, which can result in various bugs.
    
    With this fix, these bugs are prevented, since it is highly likely that
    userspace would just want to turn the missing mask case into an empty
    string anyway (most of the recently found cases are of this type).
    
    Link: https://lore.kernel.org/all/CAJfpegsVCPfCn2DpM8iiYSS5DpMsLB8QBUCHecoj6s0Vxf4jzg@mail.gmail.com/
    Fixes: 68385d77c05b ("statmount: simplify string option retrieval")
    Fixes: 46eae99ef733 ("add statmount(2) syscall")
    Cc: stable@vger.kernel.org # v6.8
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Link: https://lore.kernel.org/r/20250130121500.113446-1-mszeredi@redhat.com
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 4e7487245abcbc5a1a1aea54e4d3b33c53804bda
Author: Brahmajit Das <brahmajit.xyz@gmail.com>
Date:   Tue Jan 21 21:56:48 2025 +0530

    vboxsf: fix building with GCC 15
    
    Building with GCC 15 results in build error
    fs/vboxsf/super.c:24:54: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
       24 | static const unsigned char VBSF_MOUNT_SIGNATURE[4] = "\000\377\376\375";
          |                                                      ^~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors
    
    Due to GCC having enabled -Werror=unterminated-string-initialization[0]
    by default. Separately initializing each array element of
    VBSF_MOUNT_SIGNATURE to ensure NUL termination, thus satisfying GCC 15
    and fixing the build error.
    
    [0]: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wno-unterminated-string-initialization
    
    Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com>
    Link: https://lore.kernel.org/r/20250121162648.1408743-1-brahmajit.xyz@gmail.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 0fac3ed473dd2955053be6671cdd747807f5e488
Author: Su Hui <suhui@nfschina.com>
Date:   Sun Jan 19 10:59:47 2025 +0800

    fs/stat.c: avoid harmless garbage value problem in vfs_statx_path()
    
    Clang static checker(scan-build) warning:
    fs/stat.c:287:21: warning: The left expression of the compound assignment is
    an uninitialized value. The computed value will also be garbage.
      287 |                 stat->result_mask |= STATX_MNT_ID_UNIQUE;
          |                 ~~~~~~~~~~~~~~~~~ ^
    fs/stat.c:290:21: warning: The left expression of the compound assignment is
    an uninitialized value. The computed value will also be garbage.
      290 |                 stat->result_mask |= STATX_MNT_ID;
    
    When vfs_getattr() failed because of security_inode_getattr(), 'stat' is
    uninitialized. In this case, there is a harmless garbage problem in
    vfs_statx_path(). It's better to return error directly when
    vfs_getattr() failed, avoiding garbage value and more clearly.
    
    Signed-off-by: Su Hui <suhui@nfschina.com>
    Link: https://lore.kernel.org/r/20250119025946.1168957-1-suhui@nfschina.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>

commit 868c9037df626b3c245ee26a290a03ae1f9f58d3
Author: Frederic Weisbecker <frederic@kernel.org>
Date:   Wed Feb 5 17:02:20 2025 +0100

    timers/migration: Fix off-by-one root mis-connection
    
    Before attaching a new root to the old root, the children counter of the
    new root is checked to verify that only the upcoming CPU's top group have
    been connected to it. However since the recently added commit b729cc1ec21a
    ("timers/migration: Fix another race between hotplug and idle entry/exit")
    this check is not valid anymore because the old root is pre-accounted
    as a child to the new root. Therefore after connecting the upcoming
    CPU's top group to the new root, the children count to be expected must
    be 2 and not 1 anymore.
    
    This omission results in the old root to not be connected to the new
    root. Then eventually the system may run with more than one top level,
    which defeats the purpose of a single idle migrator.
    
    Also the old root is pre-accounted but not connected upon the new root
    creation. But it can be connected to the new root later on. Therefore
    the old root may be accounted twice to the new root. The propagation of
    such overcommit can end up creating a double final top-level root with a
    groupmask incorrectly initialized. Although harmless given that the final
    top level roots will never have a parent to walk up to, this oddity
    opportunistically reported the core issue:
    
      WARNING: CPU: 8 PID: 0 at kernel/time/timer_migration.c:543 tmigr_requires_handle_remote
      CPU: 8 UID: 0 PID: 0 Comm: swapper/8
      RIP: 0010:tmigr_requires_handle_remote
      Call Trace:
       <IRQ>
       ? tmigr_requires_handle_remote
       ? hrtimer_run_queues
       update_process_times
       tick_periodic
       tick_handle_periodic
       __sysvec_apic_timer_interrupt
       sysvec_apic_timer_interrupt
      </IRQ>
    
    Fix the problem by taking the old root into account in the children count
    of the new root so the connection is not omitted.
    
    Also warn when more than one top level group exists to better detect
    similar issues in the future.
    
    Fixes: b729cc1ec21a ("timers/migration: Fix another race between hotplug and idle entry/exit")
    Reported-by: Matt Fleming <mfleming@cloudflare.com>
    Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20250205160220.39467-1-frederic@kernel.org

commit 29a61a1f40637ae010b828745fb41f60301c3a3d
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Feb 5 15:22:56 2025 +0100

    genirq: Remove leading space from irq_chip::irq_print_chip() callbacks
    
    The space separator was factored out from the multiple chip name prints,
    but several irq_chip::irq_print_chip() callbacks still print a leading
    space.  Remove the superfluous double spaces.
    
    Fixes: 9d9f204bdf7243bf ("genirq/proc: Add missing space separator back")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/all/893f7e9646d8933cd6786d5a1ef3eb076d263768.1738764803.git.geert+renesas@glider.be

commit 4be214c26936813b636eed2fac906f585ddbf0f9
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date:   Sat Jan 25 21:29:45 2025 -0500

    bcachefs: bch2_bkey_sectors_need_rebalance() now only depends on bch_extent_rebalance
    
    Previously, bch2_bkey_sectors_need_rebalance() called
    bch2_target_accepts_data(), checking whether the target is writable.
    
    However, this means that adding or removing devices from a target would
    change the value of bch2_bkey_sectors_need_rebalance() for an existing
    extent; this needs to be invariant so that the extent trigger can
    correctly maintain rebalance_work accounting.
    
    Instead, check target_accepts_data() in io_opts_to_rebalance_opts(),
    before creating the bch_extent_rebalance entry.
    
    This fixes (one?) cause of rebalance_work accounting being off.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

commit 3539880ef1a5f8c970d0f69a6fdcfeffc000e63d
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date:   Mon Feb 3 11:35:11 2025 -0500

    bcachefs: Fix rcu imbalance in bch2_fs_btree_key_cache_exit()
    
    Spotted by sparse.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

commit 9e9033522ad1e4bb697c9493aa449630fa2c98d2
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date:   Mon Jan 27 01:21:44 2025 -0500

    bcachefs: Fix discard path journal flushing
    
    The discard path is supposed to issue journal flushes when there's too
    many buckets empty buckets that need a journal commit before they can be
    written to again, but at some point this code seems to have been lost.
    
    Bring it back with a new optimization to make sure we don't issue too
    many journal flushes: the journal now tracks the sequence number of the
    most recent flush in progress, which the discard path uses when deciding
    which buckets need a journal flush.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

commit 2ef995df0ce592f665d312008dbe1ad1c4bcf87f
Author: Jeongjun Park <aha310510@gmail.com>
Date:   Sun Feb 2 15:13:51 2025 +0900

    bcachefs: fix deadlock in journal_entry_open()
    
    In the previous commit b3d82c2f2761, code was added to prevent journal sequence
    overflow. Among them, the code added to journal_entry_open() uses the
    bch2_fs_fatal_err_on() function to handle errors.
    
    However, __journal_res_get() , which calls journal_entry_open() , calls
    journal_entry_open() while holding journal->lock , but bch2_fs_fatal_err_on()
    internally tries to acquire journal->lock , which results in a deadlock.
    
    So we need to add a locked helper to handle fatal errors even when the
    journal->lock is held.
    
    Fixes: b3d82c2f2761 ("bcachefs: Guard against journal seq overflow")
    Signed-off-by: Jeongjun Park <aha310510@gmail.com>
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

commit 6b37037d6d1b42083642340efcf80f7a30203039
Author: Jeongjun Park <aha310510@gmail.com>
Date:   Sat Feb 1 01:20:31 2025 +0900

    bcachefs: fix incorrect pointer check in __bch2_subvolume_delete()
    
    For some unknown reason, checks on struct bkey_s_c_snapshot and struct
    bkey_s_c_snapshot_tree pointers are missing.
    
    Therefore, I think it would be appropriate to fix the incorrect pointer checking
    through this patch.
    
    Fixes: 4bd06f07bcb5 ("bcachefs: Fixes for snapshot_tree.master_subvol")
    Signed-off-by: Jeongjun Park <aha310510@gmail.com>
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

commit fdfd0ad82890f678398ee670c4e59747738540e7
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date:   Sat Feb 1 12:56:51 2025 -0500

    bcachefs docs: SubmittingPatches.rst
    
    Add an (initial?) patch submission checklist, focusing mainly on
    testing.
    
    Yes, all patches must be tested, and that starts (but does not end) with
    the patch author.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

commit 6270f4deba3fbd77d1717fb8634f1fc612ff69e2
Author: Kees Cook <kees@kernel.org>
Date:   Wed Feb 5 13:45:26 2025 -0800

    string.h: Use ARRAY_SIZE() for memtostr*()/strtomem*()
    
    The destination argument of memtostr*() and strtomem*() must be a
    fixed-size char array at compile time, so there is no need to use
    __builtin_object_size() (which is useful for when an argument is
    either a pointer or unknown). Instead use ARRAY_SIZE(), which has the
    benefit of working around a bug in Clang (fixed[1] in 15+) that got
    __builtin_object_size() wrong sometimes.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501310832.kiAeOt2z-lkp@intel.com/
    Suggested-by: Kent Overstreet <kent.overstreet@linux.dev>
    Link: https://github.com/llvm/llvm-project/commit/d8e0a6d5e9dd2311641f9a8a5d2bf90829951ddc [1]
    Tested-by: Suren Baghdasaryan <surenb@google.com>
    Signed-off-by: Kees Cook <kees@kernel.org>

commit 20e5cc26e56db09cc612721f90b4994cce5e5b7b
Author: Kees Cook <kees@kernel.org>
Date:   Wed Feb 5 12:48:07 2025 -0800

    compiler.h: Introduce __must_be_byte_array()
    
    In preparation for adding stricter type checking to the str/mem*()
    helpers, provide a way to check that a variable is a byte array
    via __must_be_byte_array().
    
    Suggested-by: Kent Overstreet <kent.overstreet@linux.dev>
    Signed-off-by: Kees Cook <kees@kernel.org>

commit cb7380de9e4cbc9a24216b722ec50e092ae83036
Author: Kees Cook <kees@kernel.org>
Date:   Wed Feb 5 12:32:49 2025 -0800

    compiler.h: Move C string helpers into C-only kernel section
    
    The C kernel helpers for evaluating C Strings were positioned where they
    were visible to assembly inclusion, which was not intended. Move them
    into the kernel and C-only area of the header so future changes won't
    confuse the assembler.
    
    Fixes: d7a516c6eeae ("compiler.h: Fix undefined BUILD_BUG_ON_ZERO()")
    Fixes: 559048d156ff ("string: Check for "nonstring" attribute on strscpy() arguments")
    Reviewed-by: Miguel Ojeda <ojeda@kernel.org>
    Signed-off-by: Kees Cook <kees@kernel.org>

commit 6273a058383e05465083b535ed9469f2c8a48321
Author: Alice Ryhl <aliceryhl@google.com>
Date:   Mon Feb 3 08:40:57 2025 +0000

    x86: rust: set rustc-abi=x86-softfloat on rustc>=1.86.0
    
    When using Rust on the x86 architecture, we are currently using the
    unstable target.json feature to specify the compilation target. Rustc is
    going to change how softfloat is specified in the target.json file on
    x86, thus update generate_rust_target.rs to specify softfloat using the
    new option.
    
    Note that if you enable this parameter with a compiler that does not
    recognize it, then that triggers a warning but it does not break the
    build.
    
    [ For future reference, this solves the following error:
    
            RUSTC L rust/core.o
          error: Error loading target specification: target feature
          `soft-float` is incompatible with the ABI but gets enabled in
          target spec. Run `rustc --print target-list` for a list of
          built-in targets
    
      - Miguel ]
    
    Cc: <stable@vger.kernel.org> # Needed in 6.12.y and 6.13.y only (Rust is pinned in older LTSs).
    Link: https://github.com/rust-lang/rust/pull/136146
    Signed-off-by: Alice Ryhl <aliceryhl@google.com>
    Acked-by: Dave Hansen <dave.hansen@linux.intel.com> # for x86
    Link: https://lore.kernel.org/r/20250203-rustc-1-86-x86-softfloat-v1-1-220a72a5003e@google.com
    [ Added 6.13.y too to Cc: stable tag and added reasoning to avoid
      over-backporting. - Miguel ]
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

commit c2debdb8544f415eaf9292a866d4073912eeb561
Author: Eyal Birger <eyal.birger@gmail.com>
Date:   Sun Feb 2 08:29:21 2025 -0800

    selftests/seccomp: validate uretprobe syscall passes through seccomp
    
    The uretprobe syscall is implemented as a performance enhancement on
    x86_64 by having the kernel inject a call to it on function exit; User
    programs cannot call this system call explicitly.
    
    As such, this syscall is considered a kernel implementation detail and
    should not be filtered by seccomp.
    
    Enhance the seccomp bpf test suite to check that uretprobes can be
    attached to processes without the killing the process regardless of
    seccomp policy.
    
    Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
    Link: https://lore.kernel.org/r/20250202162921.335813-3-eyal.birger@gmail.com
    [kees: Skip archs without __NR_uretprobe]
    Signed-off-by: Kees Cook <kees@kernel.org>

commit cf6cb56ef24410fb5308f9655087f1eddf4452e6
Author: Eyal Birger <eyal.birger@gmail.com>
Date:   Sun Feb 2 08:29:20 2025 -0800

    seccomp: passthrough uretprobe systemcall without filtering
    
    When attaching uretprobes to processes running inside docker, the attached
    process is segfaulted when encountering the retprobe.
    
    The reason is that now that uretprobe is a system call the default seccomp
    filters in docker block it as they only allow a specific set of known
    syscalls. This is true for other userspace applications which use seccomp
    to control their syscall surface.
    
    Since uretprobe is a "kernel implementation detail" system call which is
    not used by userspace application code directly, it is impractical and
    there's very little point in forcing all userspace applications to
    explicitly allow it in order to avoid crashing tracked processes.
    
    Pass this systemcall through seccomp without depending on configuration.
    
    Note: uretprobe is currently only x86_64 and isn't expected to ever be
    supported in i386.
    
    Fixes: ff474a78cef5 ("uprobe: Add uretprobe syscall to speed up return probe")
    Reported-by: Rafael Buchbinder <rafi@rbk.io>
    Closes: https://lore.kernel.org/lkml/CAHsH6Gs3Eh8DFU0wq58c_LF8A4_+o6z456J7BidmcVY2AqOnHQ@mail.gmail.com/
    Link: https://lore.kernel.org/lkml/20250121182939.33d05470@gandalf.local.home/T/#me2676c378eff2d6a33f3054fed4a5f3afa64e65b
    Link: https://lore.kernel.org/lkml/20250128145806.1849977-1-eyal.birger@gmail.com/
    Cc: stable@vger.kernel.org
    Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
    Link: https://lore.kernel.org/r/20250202162921.335813-2-eyal.birger@gmail.com
    [kees: minimized changes for easier backporting, tweaked commit log]
    Signed-off-by: Kees Cook <kees@kernel.org>

commit 78bba6097b9318f4aa645afeade14024af86af4e
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Feb 3 15:34:07 2025 +0100

    stackinit: Fix comment for test_small_end
    
    In union test_small_end, the small members are three and four.
    
    Fixes: e71a29db79da1946 ("stackinit: Add union initialization to selftests")
    Closes: https://lore.kernel.org/CAMuHMdWvcKOc6v5o3-9-SqP_4oh5-GZQjZZb=-krhY=mVRED_Q@mail.gmail.com
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/3f8faa2d7d0d6b36571093ab0fb1fd5157abd7bb.1738593178.git.geert+renesas@glider.be
    Signed-off-by: Kees Cook <kees@kernel.org>

commit bb5408801a5f2ecd76b61dcd539a5c466ebaac4c
Author: Kees Cook <kees@kernel.org>
Date:   Tue Feb 4 09:45:13 2025 -0800

    stackinit: Keep selftest union size small on m68k
    
    The stack frame on m68k is very sensitive to the size of what needs to
    be stored. Like done for long string testing, reduce the size of the
    large trailing struct in the union initialization testing.
    
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Closes: https://lore.kernel.org/all/CAMuHMdXW8VbtOAixO7w+aDOG70aZtZ50j1Ybcr8B3eYnRUcrcA@mail.gmail.com
    Fixes: e71a29db79da ("stackinit: Add union initialization to selftests")
    Link: https://lore.kernel.org/r/20250204174509.work.711-kees@kernel.org
    Signed-off-by: Kees Cook <kees@kernel.org>
    Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>

commit 3ace20038e19f23fe73259513f1f08d4bf1a3c83
Author: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
Date:   Wed Feb 5 11:25:20 2025 +0000

    cpufreq/amd-pstate: Fix cpufreq_policy ref counting
    
    amd_pstate_update_limits() takes a cpufreq_policy reference but doesn't
    decrement the refcount in one of the exit paths, fix that.
    
    Fixes: 45722e777fd9 ("cpufreq: amd-pstate: Optimize amd_pstate_update_limits()")
    Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://lore.kernel.org/r/20250205112523.201101-10-dhananjay.ugwekar@amd.com
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

commit 0e446e3145011b8fe39759b59bd69d39fb47cfeb
Author: Matthew Maurer <mmaurer@google.com>
Date:   Wed Jan 22 00:14:43 2025 +0000

    rust: kbuild: do not export generated KASAN ODR symbols
    
    ASAN generates special synthetic symbols to help check for ODR
    violations. These synthetic symbols lack debug information, so
    gendwarfksyms emits warnings when processing them. No code should ever
    have a dependency on these symbols, so we should not be exporting them,
    just like the __cfi symbols.
    
    Signed-off-by: Matthew Maurer <mmaurer@google.com>
    Reviewed-by: Alice Ryhl <aliceryhl@google.com>
    Link: https://lore.kernel.org/r/20250122-gendwarfksyms-kasan-rust-v1-1-5ee5658f4fb6@google.com
    [ Fixed typo in commit message. Slightly reworded title. - Miguel ]
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

commit 6f64b83d9fe9729000a0616830cb1606945465d8
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Wed Feb 5 12:52:13 2025 +0000

    PCI/TPH: Restore TPH Requester Enable correctly
    
    When we reenable TPH after changing a Steering Tag value, we need the
    actual TPH Requester Enable value, not the ST Mode (which only happens to
    work out by chance for non-extended TPH in interrupt vector mode).
    
    Link: https://lore.kernel.org/r/13118098116d7bce07aa20b8c52e28c7d1847246.1738759933.git.robin.murphy@arm.com
    Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Wei Huang <wei.huang2@amd.com>

commit a9c621a217128eb3fb7522cf763992d9437fd5ba
Author: Justin M. Forbes <jforbes@fedoraproject.org>
Date:   Wed Jan 29 14:50:02 2025 -0700

    rust: kbuild: add -fzero-init-padding-bits to bindgen_skip_cflags
    
    This seems to break the build when building with gcc15:
    
        Unable to generate bindings: ClangDiagnostic("error: unknown
        argument: '-fzero-init-padding-bits=all'\n")
    
    Thus skip that flag.
    
    Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
    Fixes: dce4aab8441d ("kbuild: Use -fzero-init-padding-bits=all")
    Reviewed-by: Kees Cook <kees@kernel.org>
    Link: https://lore.kernel.org/r/20250129215003.1736127-1-jforbes@fedoraproject.org
    [ Slightly reworded commit. - Miguel ]
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

commit 57e4a9bd61c308f607bc3e55e8fa02257b06b552
Author: Meetakshi Setiya <msetiya@microsoft.com>
Date:   Thu Feb 6 01:50:41 2025 -0500

    smb: client: change lease epoch type from unsigned int to __u16
    
    MS-SMB2 section 2.2.13.2.10 specifies that 'epoch' should be a 16-bit
    unsigned integer used to track lease state changes. Change the data
    type of all instances of 'epoch' from unsigned int to __u16. This
    simplifies the epoch change comparisons and makes the code more
    compliant with the protocol spec.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Meetakshi Setiya <msetiya@microsoft.com>
    Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 7507eb3e7bfac7c3baef8dd377fdf5871eefd42b
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Fri Jan 31 17:29:13 2025 +0200

    PCI/ASPM: Fix L1SS saving
    
    Commit 1db806ec06b7 ("PCI/ASPM: Save parent L1SS config in
    pci_save_aspm_l1ss_state()") aimed to perform L1SS config save for both the
    Upstream Port and its upstream bridge when handling an Upstream Port, which
    matches what the L1SS restore side does. However, parent->state_saved can
    be set true at an earlier time when the upstream bridge saved other parts
    of its state. Then later when attempting to save the L1SS config while
    handling the Upstream Port, parent->state_saved is true in
    pci_save_aspm_l1ss_state() resulting in early return and skipping saving
    bridge's L1SS config because it is assumed to be already saved. Later on
    restore, junk is written into L1SS config which causes issues with some
    devices.
    
    Remove parent->state_saved check and unconditionally save L1SS config also
    for the upstream bridge from an Upstream Port which ought to be harmless
    from correctness point of view. With the Upstream Port check now present,
    saving the L1SS config more than once for the bridge is no longer a problem
    (unlike when the parent->state_saved check got introduced into the fix
    during its development).
    
    Link: https://lore.kernel.org/r/20250131152913.2507-1-ilpo.jarvinen@linux.intel.com
    Fixes: 1db806ec06b7 ("PCI/ASPM: Save parent L1SS config in pci_save_aspm_l1ss_state()")
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219731
    Reported-by: Niklāvs Koļesņikovs <pinkflames.linux@gmail.com>
    Reported by: Rafael J. Wysocki <rafael@kernel.org>
    Closes: https://lore.kernel.org/r/CAJZ5v0iKmynOQ5vKSQbg1J_FmavwZE-nRONovOZ0mpMVauheWg@mail.gmail.com
    Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Closes: https://lore.kernel.org/r/d7246feb-4f3f-4d0c-bb64-89566b170671@molgen.mpg.de
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Tested-by: Niklāvs Koļesņikovs <pinkflames.linux@gmail.com>
    Tested-by: Paul Menzel <pmenzel@molgen.mpg.de> # Dell XPS 13 9360

commit b029628be267cba3c7684ec684749fe3e4372398
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sun Jan 12 23:39:01 2025 -0600

    alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
    
    Richard Henderson <richard.henderson@linaro.org> writes[1]:
    
    > There was a Spec benchmark (I forget which) which was memory bound and ran
    > twice as fast with 32-bit pointers.
    >
    > I copied the idea from DEC to the ELF abi, but never did all the other work
    > to allow the toolchain to take advantage.
    >
    > Amusingly, a later Spec changed the benchmark data sets to not fit into a
    > 32-bit address space, specifically because of this.
    >
    > I expect one could delete the ELF bit and personality and no one would
    > notice. Not even the 10 remaining Alpha users.
    
    In [2] it was pointed out that parts of setarch weren't working
    properly on alpha because it has it's own SET_PERSONALITY
    implementation.  In the discussion that followed Richard Henderson
    pointed out that the 32bit pointer support for alpha was never
    completed.
    
    Fix this by removing alpha's 32bit pointer support.
    
    As a bit of paranoia refuse to execute any alpha binaries that have
    the EF_ALPHA_32BIT flag set.  Just in case someone somewhere has
    binaries that try to use alpha's 32bit pointer support.
    
    Link: https://lkml.kernel.org/r/CAFXwXrkgu=4Qn-v1PjnOR4SG0oUb9LSa0g6QXpBq4ttm52pJOQ@mail.gmail.com [1]
    Link: https://lkml.kernel.org/r/20250103140148.370368-1-glaubitz@physik.fu-berlin.de [2]
    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Link: https://lore.kernel.org/r/87y0zfs26i.fsf_-_@email.froward.int.ebiederm.org
    Signed-off-by: Kees Cook <kees@kernel.org>

commit 2a64c96356c87aa8af826605943e5524bf45e24d
Author: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Date:   Wed Feb 5 12:57:47 2025 +0000

    Revert "net: stmmac: Specify hardware capability value when FIFO size isn't specified"
    
    This reverts commit 8865d22656b4, which caused breakage for platforms
    which are not using xgmac2 or gmac4. Only these two cores have the
    capability of providing the FIFO sizes from hardware capability fields
    (which are provided in priv->dma_cap.[tr]x_fifo_size.)
    
    All other cores can not, which results in these two fields containing
    zero. We also have platforms that do not provide a value in
    priv->plat->[tr]x_fifo_size, resulting in these also being zero.
    
    This causes the new tests introduced by the reverted commit to fail,
    and produce e.g.:
    
            stmmaceth f0804000.eth: Can't specify Rx FIFO size
    
    An example of such a platform which fails is QEMU's npcm750-evb.
    This uses dwmac1000 which, as noted above, does not have the capability
    to provide the FIFO sizes from hardware.
    
    Therefore, revert the commit to maintain compatibility with the way
    the driver used to work.
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/4e98f967-f636-46fb-9eca-d383b9495b86@roeck-us.net
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Tested-by: Steven Price <steven.price@arm.com>
    Fixes: 8865d22656b4 ("net: stmmac: Specify hardware capability value when FIFO size isn't specified")
    Link: https://patch.msgid.link/E1tfeyR-003YGJ-Gb@rmk-PC.armlinux.org.uk
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

commit ba958ac74800573f7f54dbe2a7a7b9a9a523ed52
Author: Oleh Zadorozhnyi <lesorubshayan@gmail.com>
Date:   Tue Feb 4 07:17:30 2025 +0200

    kbuild: fix misspelling in scripts/Makefile.lib
    
    Signed-off-by: Oleh Zadorozhnyi <lesorubshayan@gmail.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

commit 82b02a7c459922bbf80e45d5f7e2c4cfef617943
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Tue Feb 4 13:57:50 2025 -0800

    MAINTAINERS: add a sample ethtool section entry
    
    I feel like we don't do a good enough keeping authors of driver
    APIs around. The ethtool code base was very nicely compartmentalized
    by Michal. Establish a precedent of creating MAINTAINERS entries
    for "sections" of the ethtool API. Use Andrew and cable test as
    a sample entry. The entry should ideally cover 3 elements:
    a core file, test(s), and keywords. The last one is important
    because we intend the entries to cover core code *and* reviews
    of drivers implementing given API!
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250204215750.169249-1-kuba@kernel.org
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

commit 1e3835a8aea5118d58ff9daa656395e69c8806b2
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Tue Feb 4 13:57:29 2025 -0800

    MAINTAINERS: add entry for ethtool
    
    Michal did an amazing job converting ethtool to Netlink, but never
    added an entry to MAINTAINERS for himself. Create a formal entry
    so that we can delegate (portions) of this code to folks.
    
    Over the last 3 years majority of the reviews have been done by
    Andrew and I. I suppose Michal didn't want to be on the receiving
    end of the flood of patches.
    
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Link: https://patch.msgid.link/20250204215729.168992-1-kuba@kernel.org
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

commit be1963dd4ce4e467f062b023d1e696f40c926a04
Author: Paulo Alcantara <pc@manguebit.com>
Date:   Wed Feb 5 13:41:32 2025 -0300

    smb: client: get rid of kstrdup() in get_ses_refpath()
    
    After commit 36008fe6e3dc ("smb: client: don't try following DFS links
    in cifs_tree_connect()"), TCP_Server_Info::leaf_fullpath will no
    longer be changed, so there is no need to kstrdup() it.
    
    Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 773dc23ff81838b6f74d7fabba5a441cc6a93982
Author: Paulo Alcantara <pc@manguebit.com>
Date:   Wed Feb 5 13:22:11 2025 -0300

    smb: client: fix noisy when tree connecting to DFS interlink targets
    
    When the client attempts to tree connect to a domain-based DFS
    namespace from a DFS interlink target, the server will return
    STATUS_BAD_NETWORK_NAME and the following will appear on dmesg:
    
            CIFS: VFS:  BAD_NETWORK_NAME: \\dom\dfs
    
    Since a DFS share might contain several DFS interlinks and they expire
    after 10 minutes, the above message might end up being flooded on
    dmesg when mounting or accessing them.
    
    Print this only once per share.
    
    Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 77c2e45dbf9d2ced21d2cf6cc3b2a048d57ab7ad
Author: Paulo Alcantara <pc@manguebit.com>
Date:   Wed Feb 5 13:03:33 2025 -0300

    smb: client: don't trust DFSREF_STORAGE_SERVER bit
    
    Some servers don't respect the DFSREF_STORAGE_SERVER bit, so
    unconditionally tree connect to DFS link target and then decide
    whether or not continue chasing DFS referrals for DFS interlinks.
    Otherwise the client would fail to mount such shares.
    
    Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 2d7b30aef34dae942e9ab7812b288ce14658ae66
Author: David Howells <dhowells@redhat.com>
Date:   Tue Feb 4 23:05:54 2025 +0000

    rxrpc: Fix race in call state changing vs recvmsg()
    
    There's a race in between the rxrpc I/O thread recording the end of the
    receive phase of a call and recvmsg() examining the state of the call to
    determine whether it has completed.
    
    The problem is that call->_state records the I/O thread's view of the call,
    not the application's view (which may lag), so that alone is not
    sufficient.  To this end, the application also checks whether there is
    anything left in call->recvmsg_queue for it to pick up.  The call must be
    in state RXRPC_CALL_COMPLETE and the recvmsg_queue empty for the call to be
    considered fully complete.
    
    In rxrpc_input_queue_data(), the latest skbuff is added to the queue and
    then, if it was marked as LAST_PACKET, the state is advanced...  But this
    is two separate operations with no locking around them.
    
    As a consequence, the lack of locking means that sendmsg() can jump into
    the gap on a service call and attempt to send the reply - but then get
    rejected because the I/O thread hasn't advanced the state yet.
    
    Simply flipping the order in which things are done isn't an option as that
    impacts the client side, causing the checks in rxrpc_kernel_check_life() as
    to whether the call is still alive to race instead.
    
    Fix this by moving the update of call->_state inside the skb queue
    spinlocked section where the packet is queued on the I/O thread side.
    
    rxrpc's recvmsg() will then automatically sync against this because it has
    to take the call->recvmsg_queue spinlock in order to dequeue the last
    packet.
    
    rxrpc's sendmsg() doesn't need amending as the app shouldn't be calling it
    to send a reply until recvmsg() indicates it has returned all of the
    request.
    
    Fixes: 93368b6bd58a ("rxrpc: Move call state changes from recvmsg to I/O thread")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: Simon Horman <horms@kernel.org>
    cc: linux-afs@lists.infradead.org
    Link: https://patch.msgid.link/20250204230558.712536-3-dhowells@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 41b996ce83bf944de5569d6263c8dbd5513e7ed0
Author: David Howells <dhowells@redhat.com>
Date:   Tue Feb 4 23:05:53 2025 +0000

    rxrpc: Fix call state set to not include the SERVER_SECURING state
    
    The RXRPC_CALL_SERVER_SECURING state doesn't really belong with the other
    states in the call's state set as the other states govern the call's Rx/Tx
    phase transition and govern when packets can and can't be received or
    transmitted.  The "Securing" state doesn't actually govern the reception of
    packets and would need to be split depending on whether or not we've
    received the last packet yet (to mirror RECV_REQUEST/ACK_REQUEST).
    
    The "Securing" state is more about whether or not we can start forwarding
    packets to the application as recvmsg will need to decode them and the
    decoding can't take place until the challenge/response exchange has
    completed.
    
    Fix this by removing the RXRPC_CALL_SERVER_SECURING state from the state
    set and, instead, using a flag, RXRPC_CALL_CONN_CHALLENGING, to track
    whether or not we can queue the call for reception by recvmsg() or notify
    the kernel app that data is ready.  In the event that we've already
    received all the packets, the connection event handler will poke the app
    layer in the appropriate manner.
    
    Also there's a race whereby the app layer sees the last packet before rxrpc
    has managed to end the rx phase and change the state to one amenable to
    allowing a reply.  Fix this by queuing the packet after calling
    rxrpc_end_rx_phase().
    
    Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: Simon Horman <horms@kernel.org>
    cc: linux-afs@lists.infradead.org
    Link: https://patch.msgid.link/20250204230558.712536-2-dhowells@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 811b8f534fd85e17077bd2ac0413bcd16cc8fb9b
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Tue Feb 4 14:38:39 2025 +0200

    net: sched: Fix truncation of offloaded action statistics
    
    In case of tc offload, when user space queries the kernel for tc action
    statistics, tc will query the offloaded statistics from device drivers.
    Among other statistics, drivers are expected to pass the number of
    packets that hit the action since the last query as a 64-bit number.
    
    Unfortunately, tc treats the number of packets as a 32-bit number,
    leading to truncation and incorrect statistics when the number of
    packets since the last query exceeds 0xffffffff:
    
    $ tc -s filter show dev swp2 ingress
    filter protocol all pref 1 flower chain 0
    filter protocol all pref 1 flower chain 0 handle 0x1
      skip_sw
      in_hw in_hw_count 1
            action order 1: mirred (Egress Redirect to device swp1) stolen
            index 1 ref 1 bind 1 installed 58 sec used 0 sec
            Action statistics:
            Sent 1133877034176 bytes 536959475 pkt (dropped 0, overlimits 0 requeues 0)
    [...]
    
    According to the above, 2111-byte packets were redirected which is
    impossible as only 64-byte packets were transmitted and the MTU was
    1500.
    
    Fix by treating packets as a 64-bit number:
    
    $ tc -s filter show dev swp2 ingress
    filter protocol all pref 1 flower chain 0
    filter protocol all pref 1 flower chain 0 handle 0x1
      skip_sw
      in_hw in_hw_count 1
            action order 1: mirred (Egress Redirect to device swp1) stolen
            index 1 ref 1 bind 1 installed 61 sec used 0 sec
            Action statistics:
            Sent 1370624380864 bytes 21416005951 pkt (dropped 0, overlimits 0 requeues 0)
    [...]
    
    Which shows that only 64-byte packets were redirected (1370624380864 /
    21416005951 = 64).
    
    Fixes: 380407023526 ("net/sched: Enable netdev drivers to update statistics of offloaded actions")
    Reported-by: Joe Botha <joe@atomic.ac>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Petr Machata <petrm@nvidia.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250204123839.1151804-1-idosch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit a70c7b3cbc0688016810bb2e0b9b8a0d6a530045
Author: Willem de Bruijn <willemb@google.com>
Date:   Tue Feb 4 11:10:06 2025 -0500

    tun: revert fix group permission check
    
    This reverts commit 3ca459eaba1bf96a8c7878de84fa8872259a01e3.
    
    The blamed commit caused a regression when neither tun->owner nor
    tun->group is set. This is intended to be allowed, but now requires
    CAP_NET_ADMIN.
    
    Discussion in the referenced thread pointed out that the original
    issue that prompted this patch can be resolved in userspace.
    
    The relaxed access control may also make a device accessible when it
    previously wasn't, while existing users may depend on it to not be.
    
    This is a clean pure git revert, except for fixing the indentation on
    the gid_valid line that checkpatch correctly flagged.
    
    Fixes: 3ca459eaba1b ("tun: fix group permission check")
    Link: https://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Cc: Ondrej Mosnacek <omosnace@redhat.com>
    Cc: Stas Sergeev <stsp2@yandex.ru>
    Link: https://patch.msgid.link/20250204161015.739430-1-willemdebruijn.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 91aadc16ee73cf958be6b0896da3caea49b7f414
Author: Cong Wang <cong.wang@bytedance.com>
Date:   Mon Feb 3 16:58:41 2025 -0800

    selftests/tc-testing: Add a test case for qdisc_tree_reduce_backlog()
    
    Integrate the test case provided by Mingi Cho into TDC.
    
    All test results:
    
    1..4
    ok 1 ca5e - Check class delete notification for ffff:
    ok 2 e4b7 - Check class delete notification for root ffff:
    ok 3 33a9 - Check ingress is not searchable on backlog update
    ok 4 a4b9 - Test class qlen notification
    
    Cc: Mingi Cho <mincho@theori.io>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://patch.msgid.link/20250204005841.223511-5-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 638ba5089324796c2ee49af10427459c2de35f71
Author: Cong Wang <cong.wang@bytedance.com>
Date:   Mon Feb 3 16:58:40 2025 -0800

    netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()
    
    qdisc_tree_reduce_backlog() notifies parent qdisc only if child
    qdisc becomes empty, therefore we need to reduce the backlog of the
    child qdisc before calling it. Otherwise it would miss the opportunity
    to call cops->qlen_notify(), in the case of DRR, it resulted in UAF
    since DRR uses ->qlen_notify() to maintain its active list.
    
    Fixes: f8d4bc455047 ("net/sched: netem: account for backlog updates from child qdisc")
    Cc: Martin Ottens <martin.ottens@fau.de>
    Reported-by: Mingi Cho <mincho@theori.io>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://patch.msgid.link/20250204005841.223511-4-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 3fe5648d1df1798ce14b5464b2ea49f10cd9db31
Author: Quang Le <quanglex97@gmail.com>
Date:   Mon Feb 3 16:58:39 2025 -0800

    selftests/tc-testing: Add a test case for pfifo_head_drop qdisc when limit==0
    
    When limit == 0, pfifo_tail_enqueue() must drop new packet and
    increase dropped packets count of the qdisc.
    
    All test results:
    
    1..16
    ok 1 a519 - Add bfifo qdisc with system default parameters on egress
    ok 2 585c - Add pfifo qdisc with system default parameters on egress
    ok 3 a86e - Add bfifo qdisc with system default parameters on egress with handle of maximum value
    ok 4 9ac8 - Add bfifo qdisc on egress with queue size of 3000 bytes
    ok 5 f4e6 - Add pfifo qdisc on egress with queue size of 3000 packets
    ok 6 b1b1 - Add bfifo qdisc with system default parameters on egress with invalid handle exceeding maximum value
    ok 7 8d5e - Add bfifo qdisc on egress with unsupported argument
    ok 8 7787 - Add pfifo qdisc on egress with unsupported argument
    ok 9 c4b6 - Replace bfifo qdisc on egress with new queue size
    ok 10 3df6 - Replace pfifo qdisc on egress with new queue size
    ok 11 7a67 - Add bfifo qdisc on egress with queue size in invalid format
    ok 12 1298 - Add duplicate bfifo qdisc on egress
    ok 13 45a0 - Delete nonexistent bfifo qdisc
    ok 14 972b - Add prio qdisc on egress with invalid format for handles
    ok 15 4d39 - Delete bfifo qdisc twice
    ok 16 d774 - Check pfifo_head_drop qdisc enqueue behaviour when limit == 0
    
    Signed-off-by: Quang Le <quanglex97@gmail.com>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://patch.msgid.link/20250204005841.223511-3-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 647cef20e649c576dff271e018d5d15d998b629d
Author: Quang Le <quanglex97@gmail.com>
Date:   Mon Feb 3 16:58:38 2025 -0800

    pfifo_tail_enqueue: Drop new packet when sch->limit == 0
    
    Expected behaviour:
    In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a
    packet in scheduler's queue and decrease scheduler's qlen by one.
    Then, pfifo_tail_enqueue() enqueue new packet and increase
    scheduler's qlen by one. Finally, pfifo_tail_enqueue() return
    `NET_XMIT_CN` status code.
    
    Weird behaviour:
    In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a
    scheduler that has no packet, the 'drop a packet' step will do nothing.
    This means the scheduler's qlen still has value equal 0.
    Then, we continue to enqueue new packet and increase scheduler's qlen by
    one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by
    one and return `NET_XMIT_CN` status code.
    
    The problem is:
    Let's say we have two qdiscs: Qdisc_A and Qdisc_B.
     - Qdisc_A's type must have '->graft()' function to create parent/child relationship.
       Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.
     - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.
     - Qdisc_B is configured to have `sch->limit == 0`.
     - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.
    
    Enqueue packet through Qdisc_A will lead to:
     - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)
     - Qdisc_B->q.qlen += 1
     - pfifo_tail_enqueue() return `NET_XMIT_CN`
     - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.
    
    The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1.
    Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem.
    This violate the design where parent's qlen should equal to the sum of its childrens'qlen.
    
    Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.
    
    Fixes: 57dbb2d83d10 ("sched: add head drop fifo queue")
    Reported-by: Quang Le <quanglex97@gmail.com>
    Signed-off-by: Quang Le <quanglex97@gmail.com>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://patch.msgid.link/20250204005841.223511-2-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 5368a67307b3b2c347dc8965ac55b888be665934
Author: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Date:   Tue Feb 4 23:19:53 2025 +0100

    selftests: mptcp: connect: -f: no reconnect
    
    The '-f' parameter is there to force the kernel to emit MPTCP FASTCLOSE
    by closing the connection with unread bytes in the receive queue.
    
    The xdisconnect() helper was used to stop the connection, but it does
    more than that: it will shut it down, then wait before reconnecting to
    the same address. This causes the mptcp_join's "fastclose test" to fail
    all the time.
    
    This failure is due to a recent change, with commit 218cc166321f
    ("selftests: mptcp: avoid spurious errors on disconnect"), but that went
    unnoticed because the test is currently ignored. The recent modification
    only shown an existing issue: xdisconnect() doesn't need to be used
    here, only the shutdown() part is needed.
    
    Fixes: 6bf41020b72b ("selftests: mptcp: update and extend fastclose test-cases")
    Cc: stable@vger.kernel.org
    Reviewed-by: Mat Martineau <martineau@kernel.org>
    Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Link: https://patch.msgid.link/20250204-net-mptcp-sft-conn-f-v1-1-6b470c72fffa@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit c21bdb3d8a850afdfa4afe77eea39ae9533629b0
Author: Miguel Ojeda <ojeda@kernel.org>
Date:   Tue Jan 21 21:09:34 2025 +0100

    rust: init: use explicit ABI to clean warning in future compilers
    
    Starting with Rust 1.86.0 (currently in nightly, to be released on
    2025-04-03), the `missing_abi` lint is warn-by-default [1]:
    
        error: extern declarations without an explicit ABI are deprecated
            --> rust/doctests_kernel_generated.rs:3158:1
             |
        3158 | extern {
             | ^^^^^^ help: explicitly specify the C ABI: `extern "C"`
             |
             = note: `-D missing-abi` implied by `-D warnings`
             = help: to override `-D warnings` add `#[allow(missing_abi)]`
    
    Thus clean it up.
    
    Cc: <stable@vger.kernel.org> # Needed in 6.12.y and 6.13.y only (Rust is pinned in older LTSs).
    Fixes: 7f8977a7fe6d ("rust: init: add `{pin_}chain` functions to `{Pin}Init<T, E>`")
    Link: https://github.com/rust-lang/rust/pull/132397 [1]
    Reviewed-by: Gary Guo <gary@garyguo.net>
    Reviewed-by: Alice Ryhl <aliceryhl@google.com>
    Reviewed-by: Fiona Behrens <me@kloenk.dev>
    Link: https://lore.kernel.org/r/20250121200934.222075-1-ojeda@kernel.org
    [ Added 6.13.y to Cc: stable tag. - Miguel ]
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

commit b1749432a52d3605151634b000fec0361ad45067
Author: Tamir Duberstein <tamird@gmail.com>
Date:   Sat Feb 1 12:40:38 2025 -0500

    rust: kbuild: use host dylib naming in rusttestlib-kernel
    
    There seems to have been merge skew between commit b2c261fa8629 ("rust:
    kbuild: expand rusttest target for macros") and commit 0730422bced5
    ("rust: use host dylib naming convention to support macOS") ; the latter
    replaced `libmacros.so` with `$(libmacros_name)` and the former added an
    instance of `libmacros.so`. The former was not yet applied when the
    latter was sent, resulting in a stray `libmacros.so`. Replace the stray
    with `$(libmacros_name)` to allow `rusttest` to build on macOS.
    
    Fixes: 0730422bced5 ("rust: use host dylib naming convention to support macOS")
    Signed-off-by: Tamir Duberstein <tamird@gmail.com>
    Link: https://lore.kernel.org/r/20250201-fix-mac-build-again-v1-1-ca665f5d7de7@gmail.com
    [ Slightly reworded title. - Miguel ]
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

commit 7f5704b6a143b8eca640cba820968e798d065e91
Author: Aubrey Li <aubrey.li@linux.intel.com>
Date:   Sun Jan 26 10:22:50 2025 +0800

    ACPI: PRM: Remove unnecessary strict handler address checks
    
    Commit 088984c8d54c ("ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM
    handler and context") added unnecessary strict handler address checks,
    causing the PRM module to fail in translating memory error addresses.
    
    Both static data buffer address and ACPI parameter buffer address may
    be NULL if they are not needed, as described in section 4.1.2 PRM Handler
    Information Structure of Platform Runtime Mechanism specification [1].
    
    Here are two examples from real hardware:
    
    ----PRMT.dsl----
    
    - staic data address is not used
    [10Ch 0268   2]                     Revision : 0000
    [10Eh 0270   2]                       Length : 002C
    [110h 0272  16]                 Handler GUID : F6A58D47-E04F-4F5A-86B8-2A50D4AA109B
    [120h 0288   8]              Handler address : 0000000065CE51F4
    [128h 0296   8]           Satic Data Address : 0000000000000000
    [130h 0304   8]       ACPI Parameter Address : 000000006522A718
    
    - ACPI parameter address is not used
    [1B0h 0432   2]                     Revision : 0000
    [1B2h 0434   2]                       Length : 002C
    [1B4h 0436  16]                 Handler GUID : 657E8AE6-A8FC-4877-BB28-42E7DE1899A5
    [1C4h 0452   8]              Handler address : 0000000065C567C8
    [1CCh 0460   8]           Satic Data Address : 000000006113FB98
    [1D4h 0468   8]       ACPI Parameter Address : 0000000000000000
    
    Fixes: 088984c8d54c ("ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context")
    Reported-and-tested-by: Shi Liu <aurelianliu@tencent.com>
    Cc: All applicable <stable@vger.kernel.org>
    Signed-off-by: Aubrey Li <aubrey.li@linux.intel.com>
    Link: https://uefi.org/sites/default/files/resources/Platform%20Runtime%20Mechanism%20-%20with%20legal%20notice.pdf # [1]
    Reviewed-by: Koba Ko <kobak@nvidia.com>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Link: https://patch.msgid.link/20250126022250.3014210-1-aubrey.li@linux.intel.com
    [ rjw: Minor changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit 607ab6f85f4194b644ea95ac5fe660ef575db3b4
Author: Gannon Kolding <gannon.kolding@gmail.com>
Date:   Mon Jan 27 02:39:02 2025 -0700

    ACPI: resource: IRQ override for Eluktronics MECH-17
    
    The Eluktronics MECH-17 (GM7RG7N) needs IRQ overriding for the
    keyboard to work.
    
    Adding a DMI_MATCH entry for this laptop model makes the internal
    keyboard function normally.
    
    Signed-off-by: Gannon Kolding <gannon.kolding@gmail.com>
    Link: https://patch.msgid.link/20250127093902.328361-1-gannon.kolding@gmail.com
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit ab930483eca9f3e816c35824b5868599af0c61d7
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon Feb 3 21:46:29 2025 +0200

    ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read()
    
    While analysing code for software and OF node for the corner case when
    caller asks to read zero items in the supposed to be an array of values
    I found that ACPI behaves differently to what OF does, i.e.
    
     1. It returns -EINVAL when caller asks to read zero items from integer
        array, while OF returns 0, if no other errors happened.
    
     2. It returns -EINVAL when caller asks to read zero items from string
        array, while OF returns -ENODATA, if no other errors happened.
    
    Amend ACPI implementation to follow what OF does.
    
    Fixes: b31384fa5de3 ("Driver core: Unified device properties interface for platform firmware")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://patch.msgid.link/20250203194629.3731895-1-andriy.shevchenko@linux.intel.com
    [ rjw: Added empty line after a conditional ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit 0813fd2e14ca6ecd4e6ba005a9766f08e26020d7
Author: Aboorva Devarajan <aboorvad@linux.ibm.com>
Date:   Wed Feb 5 23:43:47 2025 +0530

    cpufreq: prevent NULL dereference in cpufreq_online()
    
    Ensure cpufreq_driver->set_boost is non-NULL before using it in
    cpufreq_online() to prevent a potential NULL pointer dereference.
    
    Reported-by: Gautam Menghani <gautam@linux.ibm.com>
    Closes: https://lore.kernel.org/all/c9e56c5f54cc33338762c94e9bed7b5a0d5de812.camel@linux.ibm.com/
    Fixes: dd016f379ebc ("cpufreq: Introduce a more generic way to set default per-policy boost flag")
    Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Aboorva Devarajan <aboorvad@linux.ibm.com>
    Link: https://patch.msgid.link/20250205181347.2079272-1-aboorvad@linux.ibm.com
    [ rjw: Minor edits in the subject and changelog ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit 90508a1bb8f00618fa12cb2ad2276bc783656fc5
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Feb 3 16:24:15 2025 +0530

    cpufreq: airoha: modify CONFIG_OF dependency
    
    Compile-testing without CONFIG_OF leads to a harmless build warning:
    
    drivers/cpufreq/airoha-cpufreq.c:109:34: error: 'airoha_cpufreq_match_list' defined but not used [-Werror=unused-const-variable=]
      109 | static const struct of_device_id airoha_cpufreq_match_list[] __initconst = {
          |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
    
    It would be possible to mark the variable as __maybe_unused to shut up
    that warning, but a Kconfig dependency seems more appropriate as this still
    allows build testing in allmodconfig and randconfig builds on all
    architectures.
    
    An earlier commit, b865a8404642 ("cpufreq: airoha: Depends on OF"),
    tried to fix it incorrectly. ARCH_AIROHA already requires CONFIG_OF, so
    this change does nothing, and the dependency is still missing for the
    COMPILE_TEST case.
    
    Fix it properly.
    
    Fixes: 84cf9e541ccc ("cpufreq: airoha: Add EN7581 CPUFreq SMCCC driver")
    Fixes: b865a8404642 ("cpufreq: airoha: Depends on OF")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    [ Viresh: updated commit log and fixed rebase conflict ]
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Link: https://patch.msgid.link/9d51d2710061dfa7f2568287c6ed125b858b7318.1738580005.git.viresh.kumar@linaro.org
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit 069504f1fcfa1532e4e221290df428b15bd9d284
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Tue Feb 4 17:49:25 2025 +0200

    drm/i915/dp: Fix potential infinite loop in 128b/132b SST
    
    Passing 0 as the step only works when there are other reasons to break
    out of the BPP loop in intel_dp_mtp_tu_compute_config(). Otherwise, an
    infinite loop might occur. Fix it by explicitly checking for 0 step.
    
    Fixes: ef0a0757bbea ("drm/i915/dp: compute config for 128b/132b SST w/o DSC")
    Reported-by: Imre Deak <imre.deak@intel.com>
    Closes: https://lore.kernel.org/r/Z6I0knh2Kt5T0JrT@ideak-desk.fi.intel.com
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250204154925.3001781-1-jani.nikula@intel.com
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    (cherry picked from commit a40e718d34d3d02c781c295466b013415f68c4f1)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 55db9b73c3a77544efc671d5e796d9674772c330
Author: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
Date:   Wed Feb 5 11:25:13 2025 +0000

    cpufreq/amd-pstate: Fix max_perf updation with schedutil
    
    In adjust_perf() callback, we are setting the max_perf to highest_perf,
    as opposed to the correct limit value i.e. max_limit_perf. Fix that.
    
    Fixes: 3f7b835fa4d0 ("cpufreq/amd-pstate: Move limit updating code")
    Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://lore.kernel.org/r/20250205112523.201101-3-dhananjay.ugwekar@amd.com
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

commit d364eee14c682b141f4667efc3c65191339d88bd
Author: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
Date:   Wed Feb 5 11:25:12 2025 +0000

    cpufreq/amd-pstate: Remove the goto label in amd_pstate_update_limits
    
    Scope based guard/cleanup macros should not be used together with goto
    labels. Hence, remove the goto label.
    
    Fixes: 6c093d5a5b73 ("cpufreq/amd-pstate: convert mutex use to guard()")
    Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://lore.kernel.org/r/20250205112523.201101-2-dhananjay.ugwekar@amd.com
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

commit aaf5eefd374b6e006e1c224a2b37bac9d3737aa2
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Feb 5 11:24:47 2025 +0100

    x86/xen: remove unneeded dummy push from xen_hypercall_hvm()
    
    Stack alignment of the kernel in 64-bit mode is 8, not 16, so the
    dummy push in xen_hypercall_hvm() for aligning the stack to 16 bytes
    can be removed.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>

commit 0bd797b801bd8ee06c822844e20d73aaea0878dd
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Feb 5 10:07:56 2025 +0100

    x86/xen: add FRAME_END to xen_hypercall_hvm()
    
    xen_hypercall_hvm() is missing a FRAME_END at the end, add it.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202502030848.HTNTTuo9-lkp@intel.com/
    Fixes: b4845bb63838 ("x86/xen: add central hypercall functions")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>

commit 98a5cfd2320966f40fe049a9855f8787f0126825
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Feb 5 09:43:31 2025 +0100

    x86/xen: fix xen_hypercall_hvm() to not clobber %rbx
    
    xen_hypercall_hvm(), which is used when running as a Xen PVH guest at
    most only once during early boot, is clobbering %rbx. Depending on
    whether the caller relies on %rbx to be preserved across the call or
    not, this clobbering might result in an early crash of the system.
    
    This can be avoided by using an already saved register instead of %rbx.
    
    Fixes: b4845bb63838 ("x86/xen: add central hypercall functions")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>

commit 4c56eb33e603c3b9eb4bd24efbfdd0283c1c37e4
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Sun Feb 2 03:51:41 2025 +0900

    kbuild: keep symbols for symbol_get() even with CONFIG_TRIM_UNUSED_KSYMS
    
    Linus observed that the symbol_request(utf8_data_table) call fails when
    CONFIG_UNICODE=y and CONFIG_TRIM_UNUSED_KSYMS=y.
    
    symbol_get() relies on the symbol data being present in the ksymtab for
    symbol lookups. However, EXPORT_SYMBOL_GPL(utf8_data_table) is dropped
    due to CONFIG_TRIM_UNUSED_KSYMS, as no module references it in this case.
    
    Probably, this has been broken since commit dbacb0ef670d ("kconfig option
    for TRIM_UNUSED_KSYMS").
    
    This commit addresses the issue by leveraging modpost. Symbol names
    passed to symbol_get() are recorded in the special .no_trim_symbol
    section, which is then parsed by modpost to forcibly keep such symbols.
    The .no_trim_symbol section is discarded by the linker scripts, so there
    is no impact on the size of the final vmlinux or modules.
    
    This commit cannot resolve the issue for direct calls to __symbol_get()
    because the symbol name is not known at compile-time.
    
    Although symbol_get() may eventually be deprecated, this workaround
    should be good enough meanwhile.
    
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

commit 738fc998b639407346a9e026514f0562301462cd
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Fri Jan 31 15:55:28 2025 -0700

    scripts/Makefile.extrawarn: Do not show clang's non-kprintf warnings at W=1
    
    Clang's -Wformat-overflow and -Wformat-truncation have chosen to check
    '%p' unlike GCC but it does not know about the kernel's pointer
    extensions in lib/vsprintf.c, so the developers split that part of the
    warning out for the kernel to disable because there will always be false
    positives.
    
    Commit 908dd508276d ("kbuild: enable -Wformat-truncation on clang") did
    disabled these warnings but only in a block that would be called when
    W=1 was not passed, so they would appear with W=1. Move the disabling of
    the non-kprintf warnings to a block that always runs so that they are
    never seen, regardless of warning level.
    
    Fixes: 908dd508276d ("kbuild: enable -Wformat-truncation on clang")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501291646.VtwF98qd-lkp@intel.com/
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

commit 59ff2040f0a58923c787fdba5999100667338230
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Tue Feb 4 13:45:15 2025 +0200

    MAINTAINERS: Use my kernel.org address for ACPI GPIO work
    
    Switch to use my kernel.org address for ACPI GPIO work.
    
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/r/20250204114515.3971923-1-mika.westerberg@linux.intel.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

commit 5393f40a640b8c4f716bf87e7b0d4328bf1f22b2
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Feb 5 14:05:03 2025 +0100

    gpio: GPIO_GRGPIO should depend on OF
    
    While the Aeroflex Gaisler GRGPIO driver has no build-time dependency on
    gpiolib-of, it supports only DT-based configuration, and is used only on
    DT systems.  Hence add a dependency on OF, to prevent asking the user
    about this driver when configuring a kernel without DT support.
    
    Fixes: bc40668def384256 ("gpio: grgpio: drop Kconfig dependency on OF_GPIO")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Andreas Larsson <andreas@gaisler.com>
    Link: https://lore.kernel.org/r/db6da3d11bf850d89f199e5c740d8f133e38078d.1738760539.git.geert+renesas@glider.be
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

commit 015b7dae084fa95465ff89f6cbf15fe49906a370
Author: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Date:   Mon Feb 3 12:01:23 2025 +0100

    gpio: sim: lock hog configfs items if present
    
    Depending on the user config, the leaf entry may be the hog directory,
    not line. Check it and lock the correct item.
    
    Fixes: 8bd76b3d3f3a ("gpio: sim: lock up configfs that an instantiated device depends on")
    Tested-by: Koichiro Den <koichiro.den@canonical.com>
    Link: https://lore.kernel.org/r/20250203110123.87701-1-brgl@bgdev.pl
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

commit 3bfa08fe9ec8dd79e183c88e1275be74191e7bc8
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Wed Feb 5 14:22:12 2025 +0100

    Revert "i2c: Replace list-based mechanism for handling auto-detected clients"
    
    This reverts commit 56a50667cbcfaf95eea9128d5676af94e54b51a8. Mux
    handling is not sufficiently implemented. It needs more time.
    
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

commit c4d3dfd8ccaef2cbd374860e307f1e056854a472
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Wed Feb 5 14:21:36 2025 +0100

    Revert "i2c: Replace list-based mechanism for handling userspace-created clients"
    
    This reverts commit 3cfe39b3a845593a485ab1c716615979004ef9f6. Mux
    handling is not sufficiently implemented. It needs more time.
    
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

commit f245b400a223a71d6d5f4c72a2cb9b573a7fc2b6
Author: Tom Chung <chiahsuan.chung@amd.com>
Date:   Tue Feb 4 15:07:44 2025 +0800

    Revert "drm/amd/display: Use HW lock mgr for PSR1"
    
    This reverts commit
    a2b5a9956269 ("drm/amd/display: Use HW lock mgr for PSR1")
    
    Because it may cause system hang while connect with two edp panel.
    
    Acked-by: Wayne Lin <wayne.lin@amd.com>
    Signed-off-by: Tom Chung <chiahsuan.chung@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

commit 820ccf8cb2b145ab9fc12651f7f80339614fa46c
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Fri Jan 31 15:31:19 2025 -0700

    drm/amd/display: Respect user's CONFIG_FRAME_WARN more for dml files
    
    Currently, there are several files in drm/amd/display that aim to have a
    higher -Wframe-larger-than value to avoid instances of that warning with
    a lower value from the user's configuration. However, with the way that
    it is currently implemented, it does not respect the user's request via
    CONFIG_FRAME_WARN for a higher stack frame limit, which can cause pain
    when new instances of the warning appear and break the build due to
    CONFIG_WERROR.
    
    Adjust the logic to switch from a hard coded -Wframe-larger-than value
    to only using the value as a minimum clamp and deferring to the
    requested value from CONFIG_FRAME_WARN if it is higher.
    
    Suggested-by: Harry Wentland <harry.wentland@amd.com>
    Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Closes: https://lore.kernel.org/2025013003-audience-opposing-7f95@gregkh/
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

commit a1300691aed9ee852b0a9192e29e2bdc2411a7e6
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Feb 3 17:08:38 2025 +0000

    net: rose: lock the socket in rose_bind()
    
    syzbot reported a soft lockup in rose_loopback_timer(),
    with a repro calling bind() from multiple threads.
    
    rose_bind() must lock the socket to avoid this issue.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+7ff41b5215f0c534534e@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/67a0f78d.050a0220.d7c5a.00a0.GAE@google.com/T/#u
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Paolo Abeni <pabeni@redhat.com>
    Link: https://patch.msgid.link/20250203170838.3521361-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 028676bb189ed6d1b550a0fc570a9d695b6acfd3
Author: Jacob Moroni <mail@jakemoroni.com>
Date:   Mon Feb 3 09:36:05 2025 -0500

    net: atlantic: fix warning during hot unplug
    
    Firmware deinitialization performs MMIO accesses which are not
    necessary if the device has already been removed. In some cases,
    these accesses happen via readx_poll_timeout_atomic which ends up
    timing out, resulting in a warning at hw_atl2_utils_fw.c:112:
    
    [  104.595913] Call Trace:
    [  104.595915]  <TASK>
    [  104.595918]  ? show_regs+0x6c/0x80
    [  104.595923]  ? __warn+0x8d/0x150
    [  104.595925]  ? aq_a2_fw_deinit+0xcf/0xe0 [atlantic]
    [  104.595934]  ? report_bug+0x182/0x1b0
    [  104.595938]  ? handle_bug+0x6e/0xb0
    [  104.595940]  ? exc_invalid_op+0x18/0x80
    [  104.595942]  ? asm_exc_invalid_op+0x1b/0x20
    [  104.595944]  ? aq_a2_fw_deinit+0xcf/0xe0 [atlantic]
    [  104.595952]  ? aq_a2_fw_deinit+0xcf/0xe0 [atlantic]
    [  104.595959]  aq_nic_deinit.part.0+0xbd/0xf0 [atlantic]
    [  104.595964]  aq_nic_deinit+0x17/0x30 [atlantic]
    [  104.595970]  aq_ndev_close+0x2b/0x40 [atlantic]
    [  104.595975]  __dev_close_many+0xad/0x160
    [  104.595978]  dev_close_many+0x99/0x170
    [  104.595979]  unregister_netdevice_many_notify+0x18b/0xb20
    [  104.595981]  ? __call_rcu_common+0xcd/0x700
    [  104.595984]  unregister_netdevice_queue+0xc6/0x110
    [  104.595986]  unregister_netdev+0x1c/0x30
    [  104.595988]  aq_pci_remove+0xb1/0xc0 [atlantic]
    
    Fix this by skipping firmware deinitialization altogether if the
    PCI device is no longer present.
    
    Tested with an AQC113 attached via Thunderbolt by performing
    repeated unplug cycles while traffic was running via iperf.
    
    Fixes: 97bde5c4f909 ("net: ethernet: aquantia: Support for NIC-specific code")
    Signed-off-by: Jacob Moroni <mail@jakemoroni.com>
    Reviewed-by: Igor Russkikh <irusskikh@marvell.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250203143604.24930-3-mail@jakemoroni.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit d6179f6c6204f9932aed3a7a2100b4a295dfed9d
Author: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Date:   Thu Jun 6 15:31:02 2024 +1200

    gpio: pca953x: Improve interrupt support
    
    The GPIO drivers with latch interrupt support (typically types starting
    with PCAL) have interrupt status registers to determine which particular
    inputs have caused an interrupt. Unfortunately there is no atomic
    operation to read these registers and clear the interrupt. Clearing the
    interrupt is done by reading the input registers.
    
    The code was reading the interrupt status registers, and then reading
    the input registers. If an input changed between these two events it was
    lost.
    
    The solution in this patch is to revert to the non-latch version of
    code, i.e. remembering the previous input status, and looking for the
    changes. This system results in no more I2C transfers, so is no slower.
    The latch property of the device still means interrupts will still be
    noticed if the input changes back to its initial state.
    
    Fixes: 44896beae605 ("gpio: pca953x: add PCAL9535 interrupt support for Galileo Gen2")
    Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20240606033102.2271916-1-mark.tomlinson@alliedtelesis.co.nz
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

commit ecee4d0695067ae04959b121028b42a588e75370
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Tue Feb 4 11:40:25 2025 -0600

    accel/amdxdna: Add MODULE_FIRMWARE() declarations
    
    Initramfs building tools such as dracut will look for a MODULE_FIRMWARE()
    declaration to determine which firmware to include in the initramfs
    when a driver is included in the initramfs.
    
    As amdxdna doesn't declare any firmware this causes the driver to fail
    to load with -ENOENT when in the initramfs.  Add the missing declaration
    for possible firmware.
    
    Reported-by: Renjith Pananchikkal <Renjith.Pananchikkal@amd.com>
    Suggested-by: Alexander Deucher <Alexander.Deucher@amd.com>
    Fixes: 8c9ff1b181ba ("accel/amdxdna: Add a new driver for AMD AI Engine")
    Reviewed-by: Lizhi Hou <lizhi.hou@amd.com>
    Link: https://lore.kernel.org/r/20250204174031.3425762-1-superm1@kernel.org
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250204174031.3425762-1-superm1@kernel.org

commit 230b19bc2bcc5897d0e20b4ce7e9790a469a2db0
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Fri Jan 31 14:49:54 2025 +0200

    drm/i915/dp: Iterate DSC BPP from high to low on all platforms
    
    Commit 1c56e9a39833 ("drm/i915/dp: Get optimal link config to have best
    compressed bpp") tries to find the best compressed bpp for the
    link. However, it iterates from max to min bpp on display 13+, and from
    min to max on other platforms. This presumably leads to minimum
    compressed bpp always being chosen on display 11-12.
    
    Iterate from high to low on all platforms to actually use the best
    possible compressed bpp.
    
    Fixes: 1c56e9a39833 ("drm/i915/dp: Get optimal link config to have best compressed bpp")
    Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Cc: Imre Deak <imre.deak@intel.com>
    Cc: <stable@vger.kernel.org> # v6.7+
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/3bba67923cbcd13a59d26ef5fa4bb042b13c8a9b.1738327620.git.jani.nikula@intel.com
    (cherry picked from commit 56b0337d429356c3b9ecc36a03023c8cc856b196)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 43fb96ae78551d7bfa4ecca956b258f085d67c40
Author: Sean Christopherson <seanjc@google.com>
Date:   Fri Jan 24 15:46:23 2025 -0800

    KVM: x86/mmu: Ensure NX huge page recovery thread is alive before waking
    
    When waking a VM's NX huge page recovery thread, ensure the thread is
    actually alive before trying to wake it.  Now that the thread is spawned
    on-demand during KVM_RUN, a VM without a recovery thread is reachable via
    the related module params.
    
      BUG: kernel NULL pointer dereference, address: 0000000000000040
      #PF: supervisor read access in kernel mode
      #PF: error_code(0x0000) - not-present page
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
      RIP: 0010:vhost_task_wake+0x5/0x10
      Call Trace:
       <TASK>
       set_nx_huge_pages+0xcc/0x1e0 [kvm]
       param_attr_store+0x8a/0xd0
       module_attr_store+0x1a/0x30
       kernfs_fop_write_iter+0x12f/0x1e0
       vfs_write+0x233/0x3e0
       ksys_write+0x60/0xd0
       do_syscall_64+0x5b/0x160
       entry_SYSCALL_64_after_hwframe+0x4b/0x53
      RIP: 0033:0x7f3b52710104
       </TASK>
      Modules linked in: kvm_intel kvm
      CR2: 0000000000000040
    
    Fixes: 931656b9e2ff ("kvm: defer huge page recovery vhost task to later")
    Cc: stable@vger.kernel.org
    Cc: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Message-ID: <20250124234623.3609069-1-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

commit 6f61269495260531e15d84d090ee63618110c470
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Fri Jan 24 10:26:22 2025 -0500

    KVM: remove kvm_arch_post_init_vm
    
    The only statement in a kvm_arch_post_init_vm implementation
    can be moved into the x86 kvm_arch_init_vm.  Do so and remove all
    traces from architecture-independent code.
    
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

commit 203a53029a9c6935ad38e0343d048e51488797cf
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Tue Feb 4 10:56:47 2025 +0000

    KVM: selftests: Fix spelling mistake "initally" -> "initially"
    
    There is a spelling mistake in a literal string and in the function
    test_get_inital_dirty. Fix them.
    
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Message-ID: <20250204105647.367743-1-colin.i.king@gmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

commit ee3a66f431d689b796b9cb48aefd3d223540381c
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Feb 4 11:13:24 2025 -0500

    kvm: x86: SRSO_USER_KERNEL_NO is not synthesized
    
    SYNTHESIZED_F() generally is used together with setup_force_cpu_cap(),
    i.e. when it makes sense to present the feature even if cpuid does not
    have it *and* the VM is not able to see the difference.  For example,
    it can be used when mitigations on the host automatically protect
    the guest as well.
    
    The "SYNTHESIZED_F(SRSO_USER_KERNEL_NO)" line came in as a conflict
    resolution between the CPUID overhaul from the KVM tree and support
    for the feature in the x86 tree.  Using it right now does not hurt,
    or make a difference for that matter, because there is no
    setup_force_cpu_cap(X86_FEATURE_SRSO_USER_KERNEL_NO).  However, it
    is a little less future proof in case such a setup_force_cpu_cap()
    appears later, for a case where the kernel somehow is not vulnerable
    but the guest would have to apply the mitigation.
    
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

commit 0e459810285503fb354537e84049e212c5917c33
Author: Marc Zyngier <maz@kernel.org>
Date:   Tue Feb 4 11:00:50 2025 +0000

    KVM: arm64: timer: Don't adjust the EL2 virtual timer offset
    
    The way we deal with the EL2 virtual timer is a bit odd.
    
    We try to cope with E2H being flipped, and adjust which offset
    applies to that timer depending on the current E2H value. But that's
    a complexity we shouldn't have to worry about.
    
    What we have to deal with is either E2H being RES1, in which case
    there is no offset, or E2H being RES0, and the virtual timer simply
    does not exist.
    
    Drop the adjusting of the timer offset, which makes things a bit
    simpler. At the same time, make sure that accessing the HV timer
    when E2H is RES0 results in an UNDEF in the guest.
    
    Suggested-by: Oliver Upton <oliver.upton@linux.dev>
    Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
    Link: https://lore.kernel.org/r/20250204110050.150560-4-maz@kernel.org
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit 1b8705ad5365b5333240b46d5cd24e88ef2ddb14
Author: Marc Zyngier <maz@kernel.org>
Date:   Tue Feb 4 11:00:49 2025 +0000

    KVM: arm64: timer: Correctly handle EL1 timer emulation when !FEAT_ECV
    
    Both Wei-Lin Chang and Volodymyr Babchuk report that the way we
    handle the emulation of EL1 timers with NV is completely wrong,
    specially in the case of HCR_EL2.E2H==0.
    
    There are three problems in about as many lines of code:
    
    - With E2H==0, the EL1 timers are overwritten with the EL1 state,
      while they should actually contain the EL2 state (as per the timer
      map)
    
    - With E2H==1, we run the full EL1 timer emulation even when ECV
      is present, hiding a bug in timer_emulate() (see previous patch)
    
    - The comments are actively misleading, and say all the wrong things.
    
    This is only attributable to the code having been initially written
    for FEAT_NV, hacked up to handle FEAT_NV2 *in parallel*, and vaguely
    hacked again to be FEAT_NV2 only. Oh, and yours truly being a gold
    plated idiot.
    
    The fix is obvious: just delete most of the E2H==0 code, have a unified
    handling of the timers (because they really are E2H agnostic), and
    make sure we don't execute any of that when FEAT_ECV is present.
    
    Fixes: 4bad3068cfa9f ("KVM: arm64: nv: Sync nested timer state with FEAT_NV2")
    Reported-by: Wei-Lin Chang <r09922117@csie.ntu.edu.tw>
    Reported-by: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
    Link: https://lore.kernel.org/r/fqiqfjzwpgbzdtouu2pwqlu7llhnf5lmy4hzv5vo6ph4v3vyls@jdcfy3fjjc5k
    Link: https://lore.kernel.org/r/87frl51tse.fsf@epam.com
    Tested-by: Dmytro Terletskyi <dmytro_terletskyi@epam.com>
    Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
    Link: https://lore.kernel.org/r/20250204110050.150560-3-maz@kernel.org
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit b450dcce93bc2cf6d2bfaf5a0de88a94ebad8f89
Author: Marc Zyngier <maz@kernel.org>
Date:   Tue Feb 4 11:00:48 2025 +0000

    KVM: arm64: timer: Always evaluate the need for a soft timer
    
    When updating the interrupt state for an emulated timer, we return
    early and skip the setup of a soft timer that runs in parallel
    with the guest.
    
    While this is OK if we have set the interrupt pending, it is pretty
    wrong if the guest moved CVAL into the future.  In that case,
    no timer is armed and the guest can wait for a very long time
    (it will take a full put/load cycle for the situation to resolve).
    
    This is specially visible with EDK2 running at EL2, but still
    using the EL1 virtual timer, which in that case is fully emulated.
    Any key-press takes ages to be captured, as there is no UART
    interrupt and EDK2 relies on polling from a timer...
    
    The fix is simply to drop the early return. If the timer interrupt
    is pending, we will still return early, and otherwise arm the soft
    timer.
    
    Fixes: 4d74ecfa6458b ("KVM: arm64: Don't arm a hrtimer for an already pending timer")
    Cc: stable@vger.kernel.org
    Tested-by: Dmytro Terletskyi <dmytro_terletskyi@epam.com>
    Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
    Link: https://lore.kernel.org/r/20250204110050.150560-2-maz@kernel.org
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit 5417a2e9b130a78bf48cb4cf92630efcee5ccf38
Author: Marc Zyngier <maz@kernel.org>
Date:   Tue Feb 4 14:55:54 2025 +0000

    KVM: arm64: Fix nested S2 MMU structures reallocation
    
    For each vcpu that userspace creates, we allocate a number of
    s2_mmu structures that will eventually contain our shadow S2
    page tables.
    
    Since this is a dynamically allocated array, we reallocate
    the array and initialise the newly allocated elements. Once
    everything is correctly initialised, we adjust pointer and size
    in the kvm structure, and move on.
    
    But should that initialisation fail *and* the reallocation triggered
    a copy to another location, we end-up returning early, with the
    kvm structure still containing the (now stale) old pointer. Weeee!
    
    Cure it by assigning the pointer early, and use this to perform
    the initialisation. If everything succeeds, we adjust the size.
    Otherwise, we just leave the size as it was, no harm done, and the
    new memory is as good as the ol' one (we hope...).
    
    Fixes: 4f128f8e1aaac ("KVM: arm64: nv: Support multiple nested Stage-2 mmu structures")
    Reported-by: Alexander Potapenko <glider@google.com>
    Tested-by: Alexander Potapenko <glider@google.com>
    Link: https://lore.kernel.org/r/20250204145554.774427-1-maz@kernel.org
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit 4241a702e0d0c2ca9364cfac08dbf134264962de
Author: David Howells <dhowells@redhat.com>
Date:   Mon Feb 3 11:03:04 2025 +0000

    rxrpc: Fix the rxrpc_connection attend queue handling
    
    The rxrpc_connection attend queue is never used because conn::attend_link
    is never initialised and so is always NULL'd out and thus always appears to
    be busy.  This requires the following fix:
    
     (1) Fix this the attend queue problem by initialising conn::attend_link.
    
    And, consequently, two further fixes for things masked by the above bug:
    
     (2) Fix rxrpc_input_conn_event() to handle being invoked with a NULL
         sk_buff pointer - something that can now happen with the above change.
    
     (3) Fix the RXRPC_SKB_MARK_SERVICE_CONN_SECURED message to carry a pointer
         to the connection and a ref on it.
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: Jakub Kicinski <kuba@kernel.org>
    cc: "David S. Miller" <davem@davemloft.net>
    cc: Eric Dumazet <edumazet@google.com>
    cc: Paolo Abeni <pabeni@redhat.com>
    cc: Simon Horman <horms@kernel.org>
    cc: linux-afs@lists.infradead.org
    cc: netdev@vger.kernel.org
    Fixes: f2cce89a074e ("rxrpc: Implement a mechanism to send an event notification to a connection")
    Link: https://patch.msgid.link/20250203110307.7265-3-dhowells@redhat.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

commit 32392e04cb50d87bb7a6a7d9213f44a1a0961820
Author: Oliver Upton <oliver.upton@linux.dev>
Date:   Mon Feb 3 15:15:43 2025 -0800

    KVM: arm64: Fail protected mode init if no vgic hardware is present
    
    Protected mode assumes that at minimum vgic-v3 is present, however KVM
    fails to actually enforce this at the time of initialization. As such,
    when running protected mode in a half-baked state on GICv2 hardware we
    see the hyp go belly up at vcpu_load() when it tries to restore the
    vgic-v3 cpuif:
    
      $ ./arch_timer_edge_cases
      [  130.599140] kvm [4518]: nVHE hyp panic at: [<ffff800081102b58>] __kvm_nvhe___vgic_v3_restore_vmcr_aprs+0x8/0x84!
      [  130.603685] kvm [4518]: Cannot dump pKVM nVHE stacktrace: !CONFIG_PROTECTED_NVHE_STACKTRACE
      [  130.611962] kvm [4518]: Hyp Offset: 0xfffeca95ed000000
      [  130.617053] Kernel panic - not syncing: HYP panic:
      [  130.617053] PS:800003c9 PC:0000b56a94102b58 ESR:0000000002000000
      [  130.617053] FAR:ffff00007b98d4d0 HPFAR:00000000007b98d0 PAR:0000000000000000
      [  130.617053] VCPU:0000000000000000
      [  130.638013] CPU: 0 UID: 0 PID: 4518 Comm: arch_timer_edge Tainted: G         C         6.13.0-rc3-00009-gf7d03fcbf1f4 #1
      [  130.648790] Tainted: [C]=CRAP
      [  130.651721] Hardware name: Libre Computer AML-S905X-CC (DT)
      [  130.657242] Call trace:
      [  130.659656]  show_stack+0x18/0x24 (C)
      [  130.663279]  dump_stack_lvl+0x38/0x90
      [  130.666900]  dump_stack+0x18/0x24
      [  130.670178]  panic+0x388/0x3e8
      [  130.673196]  nvhe_hyp_panic_handler+0x104/0x208
      [  130.677681]  kvm_arch_vcpu_load+0x290/0x548
      [  130.681821]  vcpu_load+0x50/0x80
      [  130.685013]  kvm_arch_vcpu_ioctl_run+0x30/0x868
      [  130.689498]  kvm_vcpu_ioctl+0x2e0/0x974
      [  130.693293]  __arm64_sys_ioctl+0xb4/0xec
      [  130.697174]  invoke_syscall+0x48/0x110
      [  130.700883]  el0_svc_common.constprop.0+0x40/0xe0
      [  130.705540]  do_el0_svc+0x1c/0x28
      [  130.708818]  el0_svc+0x30/0xd0
      [  130.711837]  el0t_64_sync_handler+0x10c/0x138
      [  130.716149]  el0t_64_sync+0x198/0x19c
      [  130.719774] SMP: stopping secondary CPUs
      [  130.723660] Kernel Offset: disabled
      [  130.727103] CPU features: 0x000,00000800,02800000,0200421b
      [  130.732537] Memory Limit: none
      [  130.735561] ---[ end Kernel panic - not syncing: HYP panic:
      [  130.735561] PS:800003c9 PC:0000b56a94102b58 ESR:0000000002000000
      [  130.735561] FAR:ffff00007b98d4d0 HPFAR:00000000007b98d0 PAR:0000000000000000
      [  130.735561] VCPU:0000000000000000 ]---
    
    Fix it by failing KVM initialization if the system doesn't implement
    vgic-v3, as protected mode will never do anything useful on such
    hardware.
    
    Reported-by: Mark Brown <broonie@kernel.org>
    Closes: https://lore.kernel.org/kvmarm/5ca7588c-7bf2-4352-8661-e4a56a9cd9aa@sirena.org.uk/
    Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
    Link: https://lore.kernel.org/r/20250203231543.233511-1-oliver.upton@linux.dev
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit a787ab73e2e43c0a3df10bc8d9b9b7a679129d49
Author: Jithu Joseph <jithu.joseph@intel.com>
Date:   Fri Jan 31 12:53:15 2025 -0800

    platform/x86/intel/ifs: Update documentation with image download path
    
    The documentation previously listed the path to download In Field Scan
    (IFS) test images as "TBD".
    
    Update the documentation to include the correct image download
    location. Also move the download link to the appropriate section within
    the documentation.
    
    Reported-by: Anisse Astier <anisse@astier.eu>
    Signed-off-by: Jithu Joseph <jithu.joseph@intel.com>
    Link: https://lore.kernel.org/r/20250131205315.1585663-1-jithu.joseph@intel.com
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

commit 640a6af5099ae8f6a858a8612bec70048a4aee69
Author: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
Date:   Mon Feb 3 16:57:39 2025 +0530

    scsi: ufs: qcom: Enable UFS Shared ICE Feature
    
    By default, the UFS controller allocates a fixed number of RX and TX
    engines statically. Consequently, when UFS reads are in progress, the TX
    ICE engines remain idle, and vice versa.  This leads to inefficient
    utilization of RX and TX engines.
    
    To address this limitation, enable the UFS shared ICE feature for Qualcomm
    UFS V5.0 and above. This feature utilizes a pool of crypto cores for both
    TX streams (UFS Write – Encryption) and RX streams (UFS Read –
    Decryption). With this approach, crypto cores are dynamically allocated to
    either the RX or TX stream as needed.
    
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Co-developed-by: Naveen Kumar Goud Arepalli <quic_narepall@quicinc.com>
    Signed-off-by: Naveen Kumar Goud Arepalli <quic_narepall@quicinc.com>
    Co-developed-by: Nitin Rawat <quic_nitirawa@quicinc.com>
    Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
    Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
    Link: https://lore.kernel.org/r/20250203112739.11425-1-quic_rdwivedi@quicinc.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit ef12deb6ce74e85f6933a01e4d5ced70f5c12d2a
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Thu Jan 30 16:05:24 2025 -0800

    scsi: lpfc: Copyright updates for 14.4.0.8 patches
    
    Update copyrights to 2025 for files modified in the 14.4.0.8 patch set.
    
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20250131000524.163662-7-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 8be7202ad3afa76a3bec9bfc18e9e5cb988832d5
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Thu Jan 30 16:05:23 2025 -0800

    scsi: lpfc: Update lpfc version to 14.4.0.8
    
    Update lpfc version to 14.4.0.8
    
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20250131000524.163662-6-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 56c3d809b7b450379162d0b8a70bbe71ab8db706
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Thu Jan 30 16:05:22 2025 -0800

    scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine
    
    After a port swap between separate fabrics, there may be multiple nodes in
    the vport's fc_nodes list with the same fabric well known address.
    Duplication is temporary and eventually resolves itself after dev_loss_tmo
    expires, but nameserver queries may still occur before dev_loss_tmo.  This
    possibly results in returning stale fabric ndlp objects.  Fix by adding an
    nlp_state check to ensure the ndlp search routine returns the correct newer
    allocated ndlp fabric object.
    
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20250131000524.163662-5-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 23ed62897746f49f195d819ce6edeb1db27d1b72
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Thu Jan 30 16:05:21 2025 -0800

    scsi: lpfc: Ignore ndlp rport mismatch in dev_loss_tmo callbk
    
    With repeated port swaps between separate fabrics, there can be multiple
    registrations for fabric well known address 0xfffffe.  This can cause ndlp
    reference confusion due to the usage of a single ndlp ptr that stores the
    rport object in fc_rport struct private storage during transport
    registration.  Subsequent registrations update the ndlp->rport field with
    the newer rport, so when transport layer triggers dev_loss_tmo for the
    earlier registered rport the ndlp->rport private storage is referencing the
    newer rport instead of the older rport in dev_loss_tmo callbk.
    
    Because the older ndlp->rport object is already cleaned up elsewhere in
    driver code during the time of fabric swap, check that the rport provided
    in dev_loss_tmo callbk actually matches the rport stored in the LLDD's
    ndlp->rport field.  Otherwise, skip dev_loss_tmo work on a stale rport.
    
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20250131000524.163662-4-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f0842902b383982d1f72c490996aa8fc29a7aa0d
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Thu Jan 30 16:05:20 2025 -0800

    scsi: lpfc: Free phba irq in lpfc_sli4_enable_msi() when pci_irq_vector() fails
    
    Fix smatch warning regarding missed calls to free_irq().  Free the phba IRQ
    in the failed pci_irq_vector cases.
    
    lpfc_init.c: lpfc_sli4_enable_msi() warn: 'phba->pcidev->irq' from
                 request_irq() not released.
    
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20250131000524.163662-3-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 8eccc58d71eafbd2635077916b68fda15791d270
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Thu Jan 30 16:05:19 2025 -0800

    scsi: lpfc: Reduce log message generation during ELS ring clean up
    
    A clean up log message is output from lpfc_els_flush_cmd() for each
    outstanding ELS I/O and repeated for every NPIV instance.  The log message
    should only be generated for active I/Os matching the NPIV vport.  Thus,
    move the vport check to before logging the message.
    
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20250131000524.163662-2-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 35a0437d9f33071d81d51af70432ecab1e686078
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Wed Jan 29 15:38:50 2025 +0530

    scsi: mpi3mr: Update driver version to 8.12.1.0.50
    
    Update driver version to 8.12.1.0.50
    
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250129100850.25430-5-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f195fc060c738d303a21fae146dbf85e1595fb4c
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Wed Jan 29 15:38:49 2025 +0530

    scsi: mpi3mr: Synchronous access b/w reset and tm thread for reply queue
    
    When the task management thread processes reply queues while the reset
    thread resets them, the task management thread accesses an invalid queue ID
    (0xFFFF), set by the reset thread, which points to unallocated memory,
    causing a crash.
    
    Add flag 'io_admin_reset_sync' to synchronize access between the reset,
    I/O, and admin threads. Before a reset, the reset handler sets this flag to
    block I/O and admin processing threads. If any thread bypasses the initial
    check, the reset thread waits up to 10 seconds for processing to finish. If
    the wait exceeds 10 seconds, the controller is marked as unrecoverable.
    
    Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250129100850.25430-4-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 339a7b32a371a667dccfcd0e945add38f2cbe596
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Wed Jan 29 15:38:48 2025 +0530

    scsi: mpi3mr: Support for Segmented Hardware Trace buffer
    
    Allocate segmented trace buffer if firmware advertises the capability in
    IOCfacts.
    
    Upon driver load, read the trace buffer size from driver page 1, calculate
    the required segments for trace buffer, and allocate segmented buffers.
    Each segment is 4096 bytes in size.
    
    While posting driver diagnostic buffer to firmware, advertise that trace
    buffer is segmented.
    
    Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250129100850.25430-3-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f08b24d82749117ce779cc66689e8594341130d3
Author: Ranjan Kumar <ranjan.kumar@broadcom.com>
Date:   Wed Jan 29 15:38:47 2025 +0530

    scsi: mpi3mr: Avoid reply queue full condition
    
    To avoid reply queue full condition, update the driver to check IOCFacts
    capabilities for qfull.
    
    Update the operational reply queue's Consumer Index after processing 100
    replies. If pending I/Os on a reply queue exceeds a threshold
    (reply_queue_depth - 200), then return I/O back to OS to retry.
    
    Also increase default admin reply queue size to 2K.
    
    Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
    Link: https://lore.kernel.org/r/20250129100850.25430-2-ranjan.kumar@broadcom.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit d3ed6dee73c560fad0a8e152c8e233b3fb3a2e44
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Sat Feb 1 19:02:51 2025 +0100

    net: harmonize tstats and dstats
    
    After the blamed commits below, some UDP tunnel use dstats for
    accounting. On the xmit path, all the UDP-base tunnels ends up
    using iptunnel_xmit_stats() for stats accounting, and the latter
    assumes the relevant (tunnel) network device uses tstats.
    
    The end result is some 'funny' stat report for the mentioned UDP
    tunnel, e.g. when no packet is actually dropped and a bunch of
    packets are transmitted:
    
    gnv2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue \
                    state UNKNOWN mode DEFAULT group default qlen 1000
        link/ether ee:7d:09:87:90:ea brd ff:ff:ff:ff:ff:ff
        RX:  bytes packets errors dropped  missed   mcast
             14916      23      0      15       0       0
        TX:  bytes packets errors dropped carrier collsns
                 0    1566      0       0       0       0
    
    Address the issue ensuring the same binary layout for the overlapping
    fields of dstats and tstats. While this solution is a bit hackish, is
    smaller and with no performance pitfall compared to other alternatives
    i.e. supporting both dstat and tstat in iptunnel_xmit_stats() or
    reverting the blamed commit.
    
    With time we should possibly move all the IP-based tunnel (and virtual
    devices) to dstats.
    
    Fixes: c77200c07491 ("bareudp: Handle stats using NETDEV_PCPU_STAT_DSTATS.")
    Fixes: 6fa6de302246 ("geneve: Handle stats using NETDEV_PCPU_STAT_DSTATS.")
    Fixes: be226352e8dc ("vxlan: Handle stats using NETDEV_PCPU_STAT_DSTATS.")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Guillaume Nault <gnault@redhat.com>
    Link: https://patch.msgid.link/2e1c444cf0f63ae472baff29862c4c869be17031.1738432804.git.pabeni@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit c3da585509aeb8476886adf75a266c81a9b0df6c
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jan 31 17:30:40 2025 -0800

    selftests: drv-net: rss_ctx: don't fail reconfigure test if queue offset not supported
    
    Vast majority of drivers does not support queue offset.
    Simply return if the rss context + queue ntuple fails.
    
    Reviewed-by: Joe Damato <jdamato@fastly.com>
    Link: https://patch.msgid.link/20250201013040.725123-5-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit de379dfd9ada2995699052f4a1ecebe5d8f8d70f
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jan 31 17:30:39 2025 -0800

    selftests: drv-net: rss_ctx: add missing cleanup in queue reconfigure
    
    Commit under Fixes adds ntuple rules but never deletes them.
    
    Fixes: 29a4bc1fe961 ("selftest: extend test_rss_context_queue_reconfigure for action addition")
    Reviewed-by: Joe Damato <jdamato@fastly.com>
    Link: https://patch.msgid.link/20250201013040.725123-4-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 2b91cc1214b165c25ac9b0885db89a0d3224028a
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jan 31 17:30:38 2025 -0800

    ethtool: ntuple: fix rss + ring_cookie check
    
    The info.flow_type is for RXFH commands, ntuple flow_type is inside
    the flow spec. The check currently does nothing, as info.flow_type
    is 0 (or even uninitialized by user space) for ETHTOOL_SRXCLSRLINS.
    
    Fixes: 9e43ad7a1ede ("net: ethtool: only allow set_rxnfc with rss + ring_cookie if driver opts in")
    Reviewed-by: Gal Pressman <gal@nvidia.com>
    Reviewed-by: Joe Damato <jdamato@fastly.com>
    Link: https://patch.msgid.link/20250201013040.725123-3-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 244f8aa46fa9e2f4ea5fe0e04988b395d5e30fc7
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jan 31 17:30:37 2025 -0800

    ethtool: rss: fix hiding unsupported fields in dumps
    
    Commit ec6e57beaf8b ("ethtool: rss: don't report key if device
    doesn't support it") intended to stop reporting key fields for
    additional rss contexts if device has a global hashing key.
    
    Later we added dump support and the filtering wasn't properly
    added there. So we end up reporting the key fields in dumps
    but not in dos:
    
      # ./pyynl/cli.py --spec netlink/specs/ethtool.yaml --do rss-get \
                    --json '{"header": {"dev-index":2}, "context": 1 }'
      {
         "header": { ... },
         "context": 1,
         "indir": [0, 1, 2, 3, ...]]
      }
    
      # ./pyynl/cli.py --spec netlink/specs/ethtool.yaml --dump rss-get
      [
         ... snip context 0 ...
         { "header": { ... },
           "context": 1,
           "indir": [0, 1, 2, 3, ...],
     ->    "input_xfrm": 255,
     ->    "hfunc": 1,
     ->    "hkey": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
         }
      ]
    
    Hide these fields correctly.
    
    The drivers/net/hw/rss_ctx.py selftest catches this when run on
    a device with single key, already:
    
      # Check| At /root/./ksft-net-drv/drivers/net/hw/rss_ctx.py, line 381, in test_rss_context_dump:
      # Check|     ksft_ne(set(data.get('hkey', [1])), {0}, "key is all zero")
      # Check failed {0} == {0} key is all zero
      not ok 8 rss_ctx.test_rss_context_dump
    
    Fixes: f6122900f4e2 ("ethtool: rss: support dumping RSS contexts")
    Reviewed-by: Gal Pressman <gal@nvidia.com>
    Reviewed-by: Joe Damato <jdamato@fastly.com>
    Link: https://patch.msgid.link/20250201013040.725123-2-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 1b0332a42656b798bea867631d739de023633ec6
Author: Yu-Chun Lin <eleanor15x@gmail.com>
Date:   Thu Jan 30 22:48:49 2025 +0800

    kthread: Fix return value on kzalloc() failure in kthread_affine_preferred()
    
    kthread_affine_preferred() incorrectly returns 0 instead of -ENOMEM
    when kzalloc() fails. Return 'ret' to ensure the correct error code is
    propagated.
    
    Fixes: 4d13f4304fa4 ("kthread: Implement preferred affinity")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501301528.t0cZVbnq-lkp@intel.com/
    Signed-off-by: Yu-Chun Lin <eleanor15x@gmail.com>
    Signed-off-by: Frederic Weisbecker <frederic@kernel.org>

commit 772ba9b5bd2701a9967c084b66ff1daaee0367eb
Author: Andrew Donnellan <ajd@linux.ibm.com>
Date:   Mon Feb 3 18:27:59 2025 +1100

    scsi: cxlflash: Remove driver
    
    Remove the cxlflash driver for IBM CAPI Flash devices.
    
    The cxlflash driver has received minimal maintenance for some time, and
    the CAPI Flash hardware that uses it is no longer commercially available.
    
    Thanks to Uma Krishnan, Matthew Ochs and Manoj Kumar for their work on
    this driver over the years.
    
    Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250203072801.365551-2-ajd@linux.ibm.com
    Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 08795f4c096c55def0ecb99218917851b9b993bc
Author: Dr. David Alan Gilbert <linux@treblig.org>
Date:   Mon Jan 27 00:28:51 2025 +0000

    scsi: mpt3sas: Remove unused config functions
    
    mpt3sas_config_get_manufacturing_pg7() and
    mpt3sas_config_get_sas_device_pg1() were added as part of 2012's
    commit f92363d12359 ("[SCSI] mpt3sas: add new driver supporting 12GB SAS")
    but haven't been used.
    
    Remove them.
    
    Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
    Link: https://lore.kernel.org/r/20250127002851.113711-1-linux@treblig.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b932ff7d0459ff792c00c2350c2fe9e6545eca48
Author: Dr. David Alan Gilbert <linux@treblig.org>
Date:   Mon Jan 27 00:27:16 2025 +0000

    scsi: message: fusion: Remove unused mptscsih_target_reset()
    
    mptscsih_target_reset() was added in 2023 by commit e6629081fb12 ("scsi:
    message: fusion: Correct definitions for mptscsih_dev_reset()") but never
    used.
    
    Remove it.
    
    Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
    Link: https://lore.kernel.org/r/20250127002716.113641-1-linux@treblig.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit a307d6ec12394c069f539d6d7de1c2e247765fb4
Author: Dr. David Alan Gilbert <linux@treblig.org>
Date:   Mon Jan 27 00:26:01 2025 +0000

    scsi: mvsas: Remove unused mvs_phys_reset()
    
    mvs_phys_reset() was added in 2009's commit 20b09c2992fe ("[SCSI] mvsas:
    add support for 94xx; layout change; bug fixes") but hasn't been used.
    
    Remove it.
    
    Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
    Link: https://lore.kernel.org/r/20250127002601.113555-1-linux@treblig.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 5233e3235dec3065ccc632729675575dbe3c6b8a
Author: Magnus Lindholm <linmag7@gmail.com>
Date:   Sat Jan 25 10:49:22 2025 +0100

    scsi: qla1280: Fix kernel oops when debug level > 2
    
    A null dereference or oops exception will eventually occur when qla1280.c
    driver is compiled with DEBUG_QLA1280 enabled and ql_debug_level > 2.  I
    think its clear from the code that the intention here is sg_dma_len(s) not
    length of sg_next(s) when printing the debug info.
    
    Signed-off-by: Magnus Lindholm <linmag7@gmail.com>
    Link: https://lore.kernel.org/r/20250125095033.26188-1-linmag7@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 120430bff6126870b571c378e6828c7c0b5cba51
Author: Charles Han <hanchunchao@inspur.com>
Date:   Fri Jan 24 16:13:30 2025 +0800

    scsi: isci: Fix double word in comments
    
    Remove the repeated word "for" in comments.
    
    Signed-off-by: Charles Han <hanchunchao@inspur.com>
    Link: https://lore.kernel.org/r/20250124081330.210724-1-hanchunchao@inspur.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 2c445d5f832a51dfd8527fcce7323f79d37c0432
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Sat Feb 1 17:11:06 2025 +0200

    scsi: st: Add sysfs file position_lost_in_reset
    
    If the value read from the file is 1, reads and writes from/to the device
    are blocked because the tape position may not match user's expectation
    (tape rewound after device reset).
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250201151106.25529-1-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 341128dfe10a7c8681d86e81b5bc63902da644ef
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Mon Jan 20 21:49:24 2025 +0200

    scsi: st: Modify st.c to use the new scsi_error counters
    
    Compare the stored values of por_ctr and new_media_ctr against the values
    in the device struct. In case of mismatch, the Unit Attention corresponding
    to the counter has happened.  This is a safeguard against another ULD
    catching the Unit Attention sense data.
    
    Macros scsi_get_ua_new_media_ctr and scsi_get_ua_por_ctr are added to read
    the current values of the counters.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250120194925.44432-4-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit a5d518cd4e3e592eaa59b888a5d75ad639d554ea
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Mon Jan 20 21:49:23 2025 +0200

    scsi: core: Add counters for New Media and Power On/Reset UNIT ATTENTIONs
    
    The purpose of the counters is to enable all ULDs attached to a device to
    find out that a New Media or/and Power On/Reset Unit Attentions has/have
    been set, even if another ULD catches the Unit Attention as response to a
    SCSI command.
    
    The ULDs can read the counters and see if the values have changed from the
    previous check.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250120194925.44432-3-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 7081dc75df79696d8322d01821c28e53416c932c
Author: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Date:   Mon Jan 20 21:49:22 2025 +0200

    scsi: st: Restore some drive settings after reset
    
    Some of the allowed operations put the tape into a known position to
    continue operation assuming only the tape position has changed.  But reset
    sets partition, density and block size to drive default values. These
    should be restored to the values before reset.
    
    Normally the current block size and density are stored by the drive.  If
    the settings have been changed, the changed values have to be saved by the
    driver across reset.
    
    Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
    Link: https://lore.kernel.org/r/20250120194925.44432-2-Kai.Makisara@kolumbus.fi
    Reviewed-by: John Meneghini <jmeneghi@redhat.com>
    Tested-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 14807b4a4e03b66c26f4c82f495fc8fbe35fb95d
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Jan 19 21:29:39 2025 +0100

    scsi: Constify struct pci_error_handlers
    
    'struct pci_error_handlers' are not modified in these drivers.
    
    Constifying these structures moves some data to a read-only section, so
    increase overall security, especially when the structure holds some
    function pointers.
    
    On a x86_64, with allmodconfig, as an example:
    Before:
    ======
       text    data     bss     dec     hex filename
      39049    6429     112   45590    b216 drivers/scsi/aacraid/linit.o
    
    After:
    =====
       text    data     bss     dec     hex filename
      39113    6365     112   45590    b216 drivers/scsi/aacraid/linit.o
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/efdec8425981e10fc398fa2ac599c9c45d930561.1737318548.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 1a78a56ea65252bb089e0daace989167227f2d31
Author: Seunghui Lee <sh043.lee@samsung.com>
Date:   Sat Jan 18 11:38:08 2025 +0900

    scsi: ufs: core: Fix error return with query response
    
    There is currently no mechanism to return error from query responses.
    Return the error and print the corresponding error message with it.
    
    Signed-off-by: Seunghui Lee <sh043.lee@samsung.com>
    Link: https://lore.kernel.org/r/20250118023808.24726-1-sh043.lee@samsung.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 87c4b5e8a6b65189abd9ea5010ab308941f964a4
Author: Long Li <longli@microsoft.com>
Date:   Wed Jan 22 19:07:22 2025 -0800

    scsi: storvsc: Set correct data length for sending SCSI command without payload
    
    In StorVSC, payload->range.len is used to indicate if this SCSI command
    carries payload. This data is allocated as part of the private driver data
    by the upper layer and may get passed to lower driver uninitialized.
    
    For example, the SCSI error handling mid layer may send TEST_UNIT_READY or
    REQUEST_SENSE while reusing the buffer from a failed command. The private
    data section may have stale data from the previous command.
    
    If the SCSI command doesn't carry payload, the driver may use this value as
    is for communicating with host, resulting in possible corruption.
    
    Fix this by always initializing this value.
    
    Fixes: be0cf6ca301c ("scsi: storvsc: Set the tablesize based on the information given by the host")
    Cc: stable@kernel.org
    Tested-by: Roman Kisel <romank@linux.microsoft.com>
    Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
    Reviewed-by: Michael Kelley <mhklinux@outlook.com>
    Signed-off-by: Long Li <longli@microsoft.com>
    Link: https://lore.kernel.org/r/1737601642-7759-1-git-send-email-longli@linuxonhyperv.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f8fb2403ddebb5eea0033d90d9daae4c88749ada
Author: André Draszik <andre.draszik@linaro.org>
Date:   Fri Jan 24 15:09:00 2025 +0000

    scsi: ufs: core: Fix use-after free in init error and remove paths
    
    devm_blk_crypto_profile_init() registers a cleanup handler to run when
    the associated (platform-) device is being released. For UFS, the
    crypto private data and pointers are stored as part of the ufs_hba's
    data structure 'struct ufs_hba::crypto_profile'. This structure is
    allocated as part of the underlying ufshcd and therefore Scsi_host
    allocation.
    
    During driver release or during error handling in ufshcd_pltfrm_init(),
    this structure is released as part of ufshcd_dealloc_host() before the
    (platform-) device associated with the crypto call above is released.
    Once this device is released, the crypto cleanup code will run, using
    the just-released 'struct ufs_hba::crypto_profile'. This causes a
    use-after-free situation:
    
      Call trace:
       kfree+0x60/0x2d8 (P)
       kvfree+0x44/0x60
       blk_crypto_profile_destroy_callback+0x28/0x70
       devm_action_release+0x1c/0x30
       release_nodes+0x6c/0x108
       devres_release_all+0x98/0x100
       device_unbind_cleanup+0x20/0x70
       really_probe+0x218/0x2d0
    
    In other words, the initialisation code flow is:
    
      platform-device probe
        ufshcd_pltfrm_init()
          ufshcd_alloc_host()
            scsi_host_alloc()
              allocation of struct ufs_hba
              creation of scsi-host devices
        devm_blk_crypto_profile_init()
          devm registration of cleanup handler using platform-device
    
    and during error handling of ufshcd_pltfrm_init() or during driver
    removal:
    
      ufshcd_dealloc_host()
        scsi_host_put()
          put_device(scsi-host)
            release of struct ufs_hba
      put_device(platform-device)
        crypto cleanup handler
    
    To fix this use-after free, change ufshcd_alloc_host() to register a
    devres action to automatically cleanup the underlying SCSI device on
    ufshcd destruction, without requiring explicit calls to
    ufshcd_dealloc_host(). This way:
    
        * the crypto profile and all other ufs_hba-owned resources are
          destroyed before SCSI (as they've been registered after)
        * a memleak is plugged in tc-dwc-g210-pci.c remove() as a
          side-effect
        * EXPORT_SYMBOL_GPL(ufshcd_dealloc_host) can be removed fully as
          it's not needed anymore
        * no future drivers using ufshcd_alloc_host() could ever forget
          adding the cleanup
    
    Fixes: cb77cb5abe1f ("blk-crypto: rename blk_keyslot_manager to blk_crypto_profile")
    Fixes: d76d9d7d1009 ("scsi: ufs: use devm_blk_ksm_init()")
    Cc: stable@vger.kernel.org
    Signed-off-by: André Draszik <andre.draszik@linaro.org>
    Link: https://lore.kernel.org/r/20250124-ufshcd-fix-v4-1-c5d0144aae59@linaro.org
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Acked-by: Eric Biggers <ebiggers@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 9ff7c383b8ac0c482a1da7989f703406d78445c6
Author: Igor Pylypiv <ipylypiv@google.com>
Date:   Fri Jan 31 10:44:07 2025 -0800

    scsi: core: Do not retry I/Os during depopulation
    
    Fail I/Os instead of retry to prevent user space processes from being
    blocked on the I/O completion for several minutes.
    
    Retrying I/Os during "depopulation in progress" or "depopulation restore in
    progress" results in a continuous retry loop until the depopulation
    completes or until the I/O retry loop is aborted due to a timeout by the
    scsi_cmd_runtime_exceeced().
    
    Depopulation is slow and can take 24+ hours to complete on 20+ TB HDDs.
    Most I/Os in the depopulation retry loop end up taking several minutes
    before returning the failure to user space.
    
    Cc: stable@vger.kernel.org # 4.18.x: 2bbeb8d scsi: core: Handle depopulation and restoration in progress
    Cc: stable@vger.kernel.org # 4.18.x
    Fixes: e37c7d9a0341 ("scsi: core: sanitize++ in progress")
    Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
    Link: https://lore.kernel.org/r/20250131184408.859579-1-ipylypiv@google.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 5363ee9d110e139584c2d92a0b640bc210588506
Author: Rik van Riel <riel@surriel.com>
Date:   Tue Jan 28 16:35:39 2025 -0500

    scsi: core: Use GFP_NOIO to avoid circular locking dependency
    
    Filesystems can write to disk from page reclaim with __GFP_FS
    set. Marc found a case where scsi_realloc_sdev_budget_map() ends up in
    page reclaim with GFP_KERNEL, where it could try to take filesystem
    locks again, leading to a deadlock.
    
    WARNING: possible circular locking dependency detected
    6.13.0 #1 Not tainted
    ------------------------------------------------------
    kswapd0/70 is trying to acquire lock:
    ffff8881025d5d78 (&q->q_usage_counter(io)){++++}-{0:0}, at: blk_mq_submit_bio+0x461/0x6e0
    
    but task is already holding lock:
    ffffffff81ef5f40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat+0x9f/0x760
    
    The full lockdep splat can be found in Marc's report:
    
    https://lkml.org/lkml/2025/1/24/1101
    
    Avoid the potential deadlock by doing the allocation with GFP_NOIO, which
    prevents both filesystem and block layer recursion.
    
    Reported-by: Marc Aurèle La France <tsi@tuyoix.net>
    Signed-off-by: Rik van Riel <riel@surriel.com>
    Link: https://lore.kernel.org/r/20250129104525.0ae8421e@fangorn
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 839a74b5649c9f41d939a05059b5ca6b17156d03
Author: Avri Altman <avri.altman@wdc.com>
Date:   Tue Jan 28 09:12:07 2025 +0200

    scsi: ufs: Fix toggling of clk_gating.state when clock gating is not allowed
    
    This commit addresses an issue where clk_gating.state is being toggled in
    ufshcd_setup_clocks() even if clock gating is not allowed.
    
    The fix is to add a check for hba->clk_gating.is_initialized before toggling
    clk_gating.state in ufshcd_setup_clocks().
    
    Since clk_gating.lock is now initialized unconditionally, it can no longer
    lead to the spinlock being used before it is properly initialized, but
    instead it is mostly for documentation purposes.
    
    Fixes: 1ab27c9cf8b6 ("ufs: Add support for clock gating")
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20250128071207.75494-3-avri.altman@wdc.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 3d4114a1d34413dfffa0094c2eb7b95e61087abd
Author: Avri Altman <avri.altman@wdc.com>
Date:   Tue Jan 28 09:12:06 2025 +0200

    scsi: ufs: core: Ensure clk_gating.lock is used only after initialization
    
    Address a lockdep warning triggered by the use of the clk_gating.lock before
    it is properly initialized. The warning is as follows:
    
    [    4.388838] INFO: trying to register non-static key.
    [    4.395673] The code is fine but needs lockdep annotation, or maybe
    [    4.402118] you didn't initialize this object before use?
    [    4.407673] turning off the locking correctness validator.
    [    4.413334] CPU: 5 UID: 0 PID: 58 Comm: kworker/u32:1 Not tainted 6.12-rc1 #185
    [    4.413343] Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
    [    4.413362] Call trace:
    [    4.413364]  show_stack+0x18/0x24 (C)
    [    4.413374]  dump_stack_lvl+0x90/0xd0
    [    4.413384]  dump_stack+0x18/0x24
    [    4.413392]  register_lock_class+0x498/0x4a8
    [    4.413400]  __lock_acquire+0xb4/0x1b90
    [    4.413406]  lock_acquire+0x114/0x310
    [    4.413413]  _raw_spin_lock_irqsave+0x60/0x88
    [    4.413423]  ufshcd_setup_clocks+0x2c0/0x490
    [    4.413433]  ufshcd_init+0x198/0x10ec
    [    4.413437]  ufshcd_pltfrm_init+0x600/0x7c0
    [    4.413444]  ufs_qcom_probe+0x20/0x58
    [    4.413449]  platform_probe+0x68/0xd8
    [    4.413459]  really_probe+0xbc/0x268
    [    4.413466]  __driver_probe_device+0x78/0x12c
    [    4.413473]  driver_probe_device+0x40/0x11c
    [    4.413481]  __device_attach_driver+0xb8/0xf8
    [    4.413489]  bus_for_each_drv+0x84/0xe4
    [    4.413495]  __device_attach+0xfc/0x18c
    [    4.413502]  device_initial_probe+0x14/0x20
    [    4.413510]  bus_probe_device+0xb0/0xb4
    [    4.413517]  deferred_probe_work_func+0x8c/0xc8
    [    4.413524]  process_scheduled_works+0x250/0x658
    [    4.413534]  worker_thread+0x15c/0x2c8
    [    4.413542]  kthread+0x134/0x200
    [    4.413550]  ret_from_fork+0x10/0x20
    
    To fix this issue, ensure that the spinlock is only used after it has been
    properly initialized before using it in ufshcd_setup_clocks().  Do that
    unconditionally as initializing a spinlock is a fast operation.
    
    Fixes: 209f4e43b806 ("scsi: ufs: core: Introduce a new clock_gating lock")
    Reported-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20250128071207.75494-2-avri.altman@wdc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 8a2e22f665a0b5c212057031e94b75cfdc11a4a6
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Sat Feb 1 17:47:28 2025 -0800

    MAINTAINERS: add entry for UNIX sockets
    
    Add a MAINTAINERS entry for UNIX socket, Kuniyuki has been
    the de-facto maintainer of this code for a while.
    
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250202014728.1005003-4-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit ae0585b04ab741b536b0db20c12baf24bf7118d2
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Sat Feb 1 17:47:27 2025 -0800

    MAINTAINERS: add a general entry for BSD sockets
    
    Create a MAINTAINERS entry for BSD sockets. List the top 3
    reviewers as maintainers. The entry is meant to cover core
    socket code (of which there isn't much) but also reviews
    of any new socket families.
    
    Reviewed-by: Simon Horman <horms@kernel.org>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250202014728.1005003-3-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 4d896b35394144c246daaeb5280a015a630958e7
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Sat Feb 1 17:47:26 2025 -0800

    MAINTAINERS: add Kuniyuki Iwashima to TCP reviewers
    
    List Kuniyuki as an official TCP reviewer.
    
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250202014728.1005003-2-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 3a4e7193ec37ee2476ce726589de4495a066b565
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Sat Feb 1 16:50:24 2025 -0800

    MAINTAINERS: list openvswitch docs under its entry
    
    Submissions to the docs seem to not get properly CCed.
    
    Acked-by: Ilya Maximets <i.maximets@ovn.org>
    Link: https://patch.msgid.link/20250202005024.964262-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 902e09c8acde117b00369521f54df817a983d4ab
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Feb 3 16:16:09 2025 -0500

    fix braino in "9p: fix ->rename_sem exclusion"
    
    ->d_op can bloody well be NULL
    
    Fucked-up-by: Al Viro <viro@zeniv.linux.org.uk>
    Fixes: 30d61efe118c "9p: fix ->rename_sem exclusion"
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

commit a9ab6591b45258b79af1cb66112fd9f83c8855da
Author: Lucas De Marchi <lucas.demarchi@intel.com>
Date:   Thu Jan 23 12:22:03 2025 -0800

    drm/xe: Fix and re-enable xe_print_blob_ascii85()
    
    Commit 70fb86a85dc9 ("drm/xe: Revert some changes that break a mesa
    debug tool") partially reverted some changes to workaround breakage
    caused to mesa tools. However, in doing so it also broke fetching the
    GuC log via debugfs since xe_print_blob_ascii85() simply bails out.
    
    The fix is to avoid the extra newlines: the devcoredump interface is
    line-oriented and adding random newlines in the middle breaks it. If a
    tool is able to parse it by looking at the data and checking for chars
    that are out of the ascii85 space, it can still do so. A format change
    that breaks the line-oriented output on devcoredump however needs better
    coordination with existing tools.
    
    v2: Add suffix description comment
    v3: Reword explanation of xe_print_blob_ascii85() calling drm_puts()
        in a loop
    
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Cc: John Harrison <John.C.Harrison@Intel.com>
    Cc: Julia Filipchuk <julia.filipchuk@intel.com>
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Cc: stable@vger.kernel.org
    Fixes: 70fb86a85dc9 ("drm/xe: Revert some changes that break a mesa debug tool")
    Fixes: ec1455ce7e35 ("drm/xe/devcoredump: Add ASCII85 dump helper function")
    Link: https://patchwork.freedesktop.org/patch/msgid/20250123202307.95103-2-jose.souza@intel.com
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    (cherry picked from commit 2c95bbf5002776117a69caed3b31c10bf7341bec)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 042c48b73699c47d84b6ace73036e5a31a0d4cfc
Author: Lucas De Marchi <lucas.demarchi@intel.com>
Date:   Wed Jan 22 21:11:11 2025 -0800

    drm/xe/devcoredump: Move exec queue snapshot to Contexts section
    
    Having the exec queue snapshot inside a "GuC CT" section was always
    wrong.  Commit c28fd6c358db ("drm/xe/devcoredump: Improve section
    headings and add tile info") tried to fix that bug, but with that also
    broke the mesa tool that parses the devcoredump, hence it was reverted
    in commit a53da2fb25a3 ("drm/xe: Revert some changes that break a mesa
    debug tool").
    
    With the mesa tool also fixed, this can propagate as a fix on both
    kernel and userspace side to avoid unnecessary headache for a debug
    feature.
    
    Cc: John Harrison <John.C.Harrison@Intel.com>
    Cc: Julia Filipchuk <julia.filipchuk@intel.com>
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Cc: stable@vger.kernel.org
    Fixes: a53da2fb25a3 ("drm/xe: Revert some changes that break a mesa debug tool")
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250123051112.1938193-2-lucas.demarchi@intel.com
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    (cherry picked from commit a37934ea75d331fafa7fe80b6180642ba5193422)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 990d35edc5d333ca6cd3acfdfc13683dc5bb105f
Author: Ashutosh Dixit <ashutosh.dixit@intel.com>
Date:   Wed Jan 15 14:20:29 2025 -0800

    drm/xe/oa: Set stream->pollin in xe_oa_buffer_check_unlocked
    
    We rely on stream->pollin to decide whether or not to block during
    poll/read calls. However, currently there are blocking read code paths
    which don't even set stream->pollin. The best place to consistently set
    stream->pollin for all code paths is therefore to set it in
    xe_oa_buffer_check_unlocked.
    
    Fixes: e936f885f1e9 ("drm/xe/oa/uapi: Expose OA stream fd")
    Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
    Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
    Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250115222029.3002103-1-ashutosh.dixit@intel.com
    (cherry picked from commit d3fedff828bb7e4a422c42caeafd5d974e24ee43)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 9f706fd8024208b0686bb8ec68589d758f765672
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date:   Tue Jan 21 00:24:43 2025 +0100

    drm/xe/pf: Fix migration initialization
    
    The migration support only needs to be initialized once, but it
    was incorrectly called from the xe_gt_sriov_pf_init_hw(), which
    is part of the reset flow and may be called multiple times.
    
    Fixes: d86e3737c7ab ("drm/xe/pf: Add functions to save and restore VF GuC state")
    Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Michał Winiarski <michal.winiarski@intel.com>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250120232443.544-1-michal.wajdeczko@intel.com
    (cherry picked from commit 9ebb5846e1a3b1705f8a7cbc528888a1aa0b163e)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 588c20079e17dae9e1f49ba42981a05de1c9136e
Author: Ashutosh Dixit <ashutosh.dixit@intel.com>
Date:   Thu Jan 16 19:21:55 2025 -0800

    drm/xe/oa: Preserve oa_ctrl unused bits
    
    UMD's have interest in setting unused bits of the oa_ctrl register "out of
    band" for certain experiments. To facilitate this, don't clobber previous
    oa_ctrl unused bits, i.e. rmw the values rather than simply write them.
    
    Fixes: e936f885f1e9 ("drm/xe/oa/uapi: Expose OA stream fd")
    Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
    Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250117032155.3048063-1-ashutosh.dixit@intel.com
    (cherry picked from commit cfa9d40db8c30d894171010fe765d96e9bc6a47e)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit e01f07cb92513ca4b9b219ab9caa34d607bc1e2d
Author: Lo-an Chen <lo-an.chen@amd.com>
Date:   Fri Jan 17 17:56:25 2025 +0800

    drm/amd/display: Fix seamless boot sequence
    
    [WHY]
    When the system powers up eDP with external monitors in seamless boot
    sequence, stutter get enabled before TTU and HUBP registers being
    programmed, which resulting in underflow.
    
    [HOW]
    Enable TTU in hubp_init.
    Change the sequence that do not perpare_bandwidth and optimize_bandwidth
    while having seamless boot streams.
    
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Signed-off-by: Lo-an Chen <lo-an.chen@amd.com>
    Signed-off-by: Paul Hsieh <paul.hsieh@amd.com>
    Signed-off-by: Alex Hung <alex.hung@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

commit 8adbb2a98b00926315fd513b5fe2596b5716b82d
Author: Alex Hung <alex.hung@amd.com>
Date:   Fri Jan 17 12:37:11 2025 -0700

    drm/amd/display: Fix out-of-bound accesses
    
    [WHAT & HOW]
    hpo_stream_to_link_encoder_mapping has size MAX_HPO_DP2_ENCODERS(=4),
    but location can have size up to 6. As a result, it is necessary to
    check location against MAX_HPO_DP2_ENCODERS.
    
    Similiarly, disp_cfg_stream_location can be used as an array index which
    should be 0..5, so the ASSERT's conditions should be less without equal.
    
    Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3904
    Reviewed-by: Austin Zheng <Austin.Zheng@amd.com>
    Reviewed-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
    Signed-off-by: Alex Hung <alex.hung@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

commit 2255b40cacc2e5ef1b127770fc1808c60de4a2fc
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Fri Jan 24 09:43:45 2025 -0500

    drm/amdgpu: add a BO metadata flag to disable write compression for Vulkan
    
    Vulkan can't support DCC and Z/S compression on GFX12 without
    WRITE_COMPRESS_DISABLE in this commit or a completely different DCC
    interface.
    
    AMDGPU_TILING_GFX12_SCANOUT is added because it's already used by userspace.
    
    Cc: stable@vger.kernel.org # 6.12.x
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

commit 6bb05a33337b2c842373857b63de5c9bf1ae2a09
Author: Waiman Long <longman@redhat.com>
Date:   Fri Jan 31 12:33:23 2025 -0500

    clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context
    
    The following bug report happened with a PREEMPT_RT kernel:
    
      BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
      in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 2012, name: kwatchdog
      preempt_count: 1, expected: 0
      RCU nest depth: 0, expected: 0
      get_random_u32+0x4f/0x110
      clocksource_verify_choose_cpus+0xab/0x1a0
      clocksource_verify_percpu.part.0+0x6b/0x330
      clocksource_watchdog_kthread+0x193/0x1a0
    
    It is due to the fact that clocksource_verify_choose_cpus() is invoked with
    preemption disabled.  This function invokes get_random_u32() to obtain
    random numbers for choosing CPUs.  The batched_entropy_32 local lock and/or
    the base_crng.lock spinlock in driver/char/random.c will be acquired during
    the call. In PREEMPT_RT kernel, they are both sleeping locks and so cannot
    be acquired in atomic context.
    
    Fix this problem by using migrate_disable() to allow smp_processor_id() to
    be reliably used without introducing atomic context. preempt_disable() is
    then called after clocksource_verify_choose_cpus() but before the
    clocksource measurement is being run to avoid introducing unexpected
    latency.
    
    Fixes: 7560c02bdffb ("clocksource: Check per-CPU clock synchronization when marked unstable")
    Suggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
    Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Link: https://lore.kernel.org/all/20250131173323.891943-2-longman@redhat.com

commit 3cf3ec911d70ee7774978f639fd3364c98d42b2c
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Tue Jan 21 06:52:03 2025 -0800

    drm/i915/backlight: Return immediately when scale() finds invalid parameters
    
    The scale() functions detects invalid parameters, but continues
    its calculations anyway. This causes bad results if negative values
    are used for unsigned operations. Worst case, a division by 0 error
    will be seen if source_min == source_max.
    
    On top of that, after v6.13, the sequence of WARN_ON() followed by clamp()
    may result in a build error with gcc 13.x.
    
    drivers/gpu/drm/i915/display/intel_backlight.c: In function 'scale':
    include/linux/compiler_types.h:542:45: error:
            call to '__compiletime_assert_415' declared with attribute error:
            clamp() low limit source_min greater than high limit source_max
    
    This happens if the compiler decides to rearrange the code as follows.
    
            if (source_min > source_max) {
                    WARN(..);
                    /* Do the clamp() knowing that source_min > source_max */
                    source_val = clamp(source_val, source_min, source_max);
            } else {
                    /* Do the clamp knowing that source_min <= source_max */
                    source_val = clamp(source_val, source_min, source_max);
            }
    
    Fix the problem by evaluating the return values from WARN_ON and returning
    immediately after a warning. While at it, fix divide by zero error seen
    if source_min == source_max.
    
    Analyzed-by: Linus Torvalds <torvalds@linux-foundation.org>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Suggested-by: David Laight <david.laight.linux@gmail.com>
    Cc: David Laight <david.laight.linux@gmail.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250121145203.2851237-1-linux@roeck-us.net
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    (cherry picked from commit 6f71507415841d1a6d38118e5fa0eaf0caab9c17)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 985a44b02484a47f2c6ecbe971a5f0c47830120b
Author: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Date:   Fri Jan 31 09:43:42 2025 +0530

    drm/i915/dp: Return min bpc supported by source instead of 0
    
    Currently, intel_dp_dsc_max_src_input_bpc can return 0 for platforms not
    supporting DSC, which could theoretically cause issues in clamp()
    due to a low limit being greater than the high limit.
    
    Instead, return the minimum bpc supported by the source to prevent
    such issues.
    
    Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Closes: https://lore.kernel.org/all/CA+G9fYtNfM399_=_ff81zeRJv=0+z7oFJfPGmJgTp6yrJmU+1w@mail.gmail.com/
    Fixes: 160672b86b0d ("drm/i915/dp: Use clamp for pipe_bpp limits with DSC")
    Cc: Suraj Kandpal <suraj.kandpal@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
    Tested-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250131041342.3086716-1-ankit.k.nautiyal@intel.com
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    (cherry picked from commit a67221b5eb8d59fb7e1f0df3ef9945b6a0f32cca)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 4466302262b38f5e6c65325035b4036a42efc934
Author: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Date:   Thu Jan 30 10:46:06 2025 +0530

    drm/i915/dp: fix the Adaptive sync Operation mode for SDP
    
    Currently we support Adaptive sync operation mode with dynamic frame
    rate, but instead the operation mode with fixed rate is set.
    This was initially set correctly in the earlier version of changes but
    later got changed, while defining a macro for the same.
    
    Fixes: a5bd5991cb8a ("drm/i915/display: Compute AS SDP parameters")
    Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
    Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
    Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250130051609.1796524-4-mitulkumar.ajitkumar.golani@intel.com
    (cherry picked from commit c5806862543ff6c2ad242409fcdf0667eac26dae)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 57965269896313e1629a518d3971ad55f599b792
Author: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Date:   Tue Jan 14 16:13:34 2025 -0800

    drm/i915/guc: Debug print LRC state entries only if the context is pinned
    
    After the context is unpinned the backing memory can also be unpinned,
    so any accesses via the lrc_reg_state pointer can end up in unmapped
    memory. To avoid that, make sure to only access that memory if the
    context is pinned when printing its info.
    
    v2: fix newline alignment
    
    Fixes: 28ff6520a34d ("drm/i915/guc: Update GuC debugfs to support new GuC")
    Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: John Harrison <John.C.Harrison@Intel.com>
    Cc: Matthew Brost <matthew.brost@intel.com>
    Cc: <stable@vger.kernel.org> # v5.15+
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250115001334.3875347-1-daniele.ceraolospurio@intel.com
    (cherry picked from commit 5bea40687c5cf2a33bf04e9110eb2e2b80222ef5)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit c7b49506b3ba7a62335e6f666a43f67d5cd9fd1e
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Wed Dec 18 19:36:47 2024 +0200

    drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes
    
    I'm seeing underruns with these 64bpp YUV formats on TGL.
    
    The weird details:
    - only happens on pipe B/C/D SDR planes, pipe A SDR planes
      seem fine, as do all HDR planes
    - somehow CDCLK related, higher CDCLK allows for bigger plane
      with these formats without underruns. With 300MHz CDCLK I
      can only go up to 1200 pixels wide or so, with 650MHz even
      a 3840 pixel wide plane was OK
    - ICL and ADL so far appear unaffected
    
    So not really sure what's the deal with this, but bspec does
    state "64-bit formats supported only on the HDR planes" so
    let's just drop these formats from the SDR planes. We already
    disallow 64bpp RGB formats.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241218173650.19782-2-ville.syrjala@linux.intel.com
    Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
    (cherry picked from commit 35e1aacfe536d6e8d8d440cd7155366da2541ad4)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit fa6182c8b13ebfdc70ebdc09161a70dd8131f3b1
Author: Brian Geffon <bgeffon@google.com>
Date:   Mon Jan 27 15:43:32 2025 -0500

    drm/i915: Fix page cleanup on DMA remap failure
    
    When converting to folios the cleanup path of shmem_get_pages() was
    missed. When a DMA remap fails and the max segment size is greater than
    PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd segment
    size. The cleanup code isn't properly using the folio apis and as a
    result isn't handling compound pages correctly.
    
    v2 -> v3:
    (Ville) Just use shmem_sg_free_table() as-is in the failure path of
    shmem_get_pages(). shmem_sg_free_table() will clear mapping unevictable
    but it will be reset when it retries in shmem_sg_alloc_table().
    
    v1 -> v2:
    (Ville) Fixed locations where we were not clearing mapping unevictable.
    
    Cc: stable@vger.kernel.org
    Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
    Cc: Vidya Srinivas <vidya.srinivas@intel.com>
    Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
    Link: https://lore.kernel.org/lkml/20250116135636.410164-1-bgeffon@google.com/
    Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a folio_batch")
    Signed-off-by: Brian Geffon <bgeffon@google.com>
    Suggested-by: Tomasz Figa <tfiga@google.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250127204332.336665-1-bgeffon@google.com
    Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
    Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    (cherry picked from commit 9e304a18630875352636ad52a3d2af47c3bde824)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit cb5fab2afd906307876d79537ef0329033c40dd3
Author: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Date:   Thu Jan 23 11:38:39 2025 -0800

    drm/i915/pmu: Fix zero delta busyness issue
    
    When running igt@gem_exec_balancer@individual for multiple iterations,
    it is seen that the delta busyness returned by PMU is 0. The issue stems
    from a combination of 2 implementation specific details:
    
    1) gt_park is throttling __update_guc_busyness_stats() so that it does
    not hog PCI bandwidth for some use cases. (Ref: 59bcdb564b3ba)
    
    2) busyness implementation always returns monotonically increasing
    counters. (Ref: cf907f6d29421)
    
    If an application queried an engine while it was active,
    engine->stats.guc.running is set to true. Following that, if all PM
    wakeref's are released, then gt is parked. At this time the throttling
    of __update_guc_busyness_stats() may result in a missed update to the
    running state of the engine (due to (1) above). This means subsequent
    calls to guc_engine_busyness() will think that the engine is still
    running and they will keep updating the cached counter (stats->total).
    This results in an inflated cached counter.
    
    Later when the application runs a workload and queries for busyness, we
    return the cached value since it is larger than the actual value (due to
    (2) above)
    
    All subsequent queries will return the same large (inflated) value, so
    the application sees a delta busyness of zero.
    
    Fix the issue by resetting the running state of engines each time
    intel_guc_busyness_park() is called.
    
    v2: (Rodrigo)
    - Use the correct tag in commit message
    - Drop the redundant wakeref check in guc_engine_busyness() and update
      commit message
    
    Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13366
    Fixes: cf907f6d2942 ("i915/guc: Ensure busyness counter increases motonically")
    Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250123193839.2394694-1-umesh.nerlige.ramappa@intel.com
    (cherry picked from commit 431b742e2bfc9f6dd713f261629741980996d001)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 8dd5a5eb6a209e3bdb4e536e36698400445c6c2e
Author: Suraj Kandpal <suraj.kandpal@intel.com>
Date:   Fri Jan 17 09:42:48 2025 +0530

    drm/i915/hdcp: Use correct function to check if encoder is HDMI
    
    Use intel_encoder_is_hdmi function which was recently introduced to
    see if encoder is HDMI or not.
    
    --v2
    -Add Fixes tag [Jani]
    
    Fixes: 6a3691ca4799 ("drm/i915/hdcp: Disable HDCP Line Rekeying for HDCP2.2 on HDMI")
    Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250117041247.1084381-1-suraj.kandpal@intel.com
    (cherry picked from commit 2499212e21601740ed7d5563563f39cf7e7d833a)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 448060463198924c0a485e7e1622fa8a9c03cf3e
Author: Suraj Kandpal <suraj.kandpal@intel.com>
Date:   Tue Dec 17 14:07:23 2024 +0530

    drm/i915/hdcp: Fix Repeater authentication during topology change
    
    When topology changes, before beginning a new HDCP authentication by
    sending AKE_init message we need to first authenticate only the
    repeater. Only after repeater authentication failure, it makes sense
    to start a new HDCP authentication. Even though it made sense to not
    enable HDCP directly from check_link and schedule it for later, repeater
    authentication needs to be done immediately.
    
    --v2
    -Fix comment grammatical errors [Ankit]
    
    Fixes: 47ef55a8b784 ("drm/i915/hdcp: Don't enable HDCP2.2 directly from check_link")
    Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
    Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241217083723.2883317-1-suraj.kandpal@intel.com
    (cherry picked from commit 605a33e765890e4f1345315afc25268d4ae0fb7c)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

commit 235174b2bed88501fda689c113c55737f99332d8
Author: Yan Zhai <yan@cloudflare.com>
Date:   Fri Jan 31 00:31:39 2025 -0800

    udp: gso: do not drop small packets when PMTU reduces
    
    Commit 4094871db1d6 ("udp: only do GSO if # of segs > 1") avoided GSO
    for small packets. But the kernel currently dismisses GSO requests only
    after checking MTU/PMTU on gso_size. This means any packets, regardless
    of their payload sizes, could be dropped when PMTU becomes smaller than
    requested gso_size. We encountered this issue in production and it
    caused a reliability problem that new QUIC connection cannot be
    established before PMTU cache expired, while non GSO sockets still
    worked fine at the same time.
    
    Ideally, do not check any GSO related constraints when payload size is
    smaller than requested gso_size, and return EMSGSIZE instead of EINVAL
    on MTU/PMTU check failure to be more specific on the error cause.
    
    Fixes: 4094871db1d6 ("udp: only do GSO if # of segs > 1")
    Signed-off-by: Yan Zhai <yan@cloudflare.com>
    Suggested-by: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e0efe83ed325277bb70f9435d4d9fc70bebdcca8
Author: Lenny Szubowicz <lszubowi@redhat.com>
Date:   Thu Jan 30 16:57:54 2025 -0500

    tg3: Disable tg3 PCIe AER on system reboot
    
    Disable PCIe AER on the tg3 device on system reboot on a limited
    list of Dell PowerEdge systems. This prevents a fatal PCIe AER event
    on the tg3 device during the ACPI _PTS (prepare to sleep) method for
    S5 on those systems. The _PTS is invoked by acpi_enter_sleep_state_prep()
    as part of the kernel's reboot sequence as a result of commit
    38f34dba806a ("PM: ACPI: reboot: Reinstate S5 for reboot").
    
    There was an earlier fix for this problem by commit 2ca1c94ce0b6
    ("tg3: Disable tg3 device on system reboot to avoid triggering AER").
    But it was discovered that this earlier fix caused a reboot hang
    when some Dell PowerEdge servers were booted via ipxe. To address
    this reboot hang, the earlier fix was essentially reverted by commit
    9fc3bc764334 ("tg3: power down device only on SYSTEM_POWER_OFF").
    This re-exposed the tg3 PCIe AER on reboot problem.
    
    This fix is not an ideal solution because the root cause of the AER
    is in system firmware. Instead, it's a targeted work-around in the
    tg3 driver.
    
    Note also that the PCIe AER must be disabled on the tg3 device even
    if the system is configured to use "firmware first" error handling.
    
    V3:
       - Fix sparse warning on improper comparison of pdev->current_state
       - Adhere to netdev comment style
    
    Fixes: 9fc3bc764334 ("tg3: power down device only on SYSTEM_POWER_OFF")
    Signed-off-by: Lenny Szubowicz <lszubowi@redhat.com>
    Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 41a2d8286c905614f29007f1bc8e652d54654b82
Author: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Date:   Wed Jan 29 13:40:09 2025 +0100

    accel/ivpu: Fix error handling in recovery/reset
    
    Disable runtime PM for the duration of reset/recovery so it is possible
    to set the correct runtime PM state depending on the outcome of the
    `ivpu_resume()`. Don’t suspend or reset the HW if the NPU is suspended
    when the reset/recovery is requested. Also, move common reset/recovery
    code to separate functions for better code readability.
    
    Fixes: 27d19268cf39 ("accel/ivpu: Improve recovery and reset support")
    Cc: stable@vger.kernel.org # v6.8+
    Reviewed-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
    Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250129124009.1039982-4-jacek.lawrynowicz@linux.intel.com

commit f2bc2afe34c107a02ce829a4039e85514feafe55
Author: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Date:   Wed Jan 29 13:40:08 2025 +0100

    accel/ivpu: Clear runtime_error after pm_runtime_resume_and_get() fails
    
    pm_runtime_resume_and_get() sets dev->power.runtime_error that causes
    all subsequent pm_runtime_get_sync() calls to fail.
    Clear the runtime_error using pm_runtime_set_suspended(), so the driver
    doesn't have to be reloaded to recover when the NPU fails to boot during
    runtime resume.
    
    Fixes: 7d4b4c74432d ("accel/ivpu: Remove suspend_reschedule_counter")
    Cc: stable@vger.kernel.org # v6.11+
    Reviewed-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
    Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250129124009.1039982-3-jacek.lawrynowicz@linux.intel.com

commit f3be8a9b1afffbcc70f8e41063b151b1038d7813
Author: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Date:   Wed Jan 29 13:40:07 2025 +0100

    accel/ivpu: Fix error handling in ivpu_boot()
    
    Ensure IRQs and IPC are properly disabled if HW sched or DCT
    initialization fails.
    
    Fixes: cc3c72c7e610 ("accel/ivpu: Refactor failure diagnostics during boot")
    Cc: stable@vger.kernel.org # v6.13+
    Reviewed-by: Karol Wachowski <karol.wachowski@intel.com>
    Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250129124009.1039982-2-jacek.lawrynowicz@linux.intel.com

commit 583ef25bb2a094813351a727ddec38b35a15b9f8
Author: Dmitry Kandybka <d.kandybka@gmail.com>
Date:   Fri Jan 24 01:07:39 2025 +0300

    platform/x86/intel: pmc: fix ltr decode in pmc_core_ltr_show()
    
    In pmc_core_ltr_show(), promote 'val' to 'u64' to avoid possible integer
    overflow. Values (10 bit) are multiplied by the scale, the result of
    expression is in a range from 1 to 34,326,183,936 which is bigger then
    UINT32_MAX. Compile tested only.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Dmitry Kandybka <d.kandybka@gmail.com>
    Reviewed-by: Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20250123220739.68087-1-d.kandybka@gmail.com
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

commit e4d4648eac8b4ef39f412d07715eb26f1ccd7342
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Tue Jan 28 00:02:01 2025 +0300

    platform/x86: ideapad-laptop: pass a correct pointer to the driver data
    
    devm_platform_profile_register() expects a pointer to the private driver
    data but instead an address of the pointer variable is passed due to a
    typo. This leads to the crashes later:
    
    BUG: unable to handle page fault for address: 00000000fe0d0044
    PGD 0 P4D 0
    Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 6 UID: 0 PID: 1284 Comm: tuned Tainted: G        W          6.13.0+ #7
    Tainted: [W]=WARN
    Hardware name: LENOVO 21D0/LNVNB161216, BIOS J6CN45WW 03/17/2023
    RIP: 0010:__mutex_lock.constprop.0+0x6bf/0x7f0
    Call Trace:
     <TASK>
     dytc_profile_set+0x4a/0x140 [ideapad_laptop]
     _store_and_notify+0x13/0x40 [platform_profile]
     class_for_each_device+0x145/0x180
     platform_profile_store+0xc0/0x130 [platform_profile]
     kernfs_fop_write_iter+0x13e/0x1f0
     vfs_write+0x290/0x450
     ksys_write+0x6c/0xe0
     do_syscall_64+0x82/0x160
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Found by Linux Verification Center (linuxtesting.org).
    
    Fixes: 249c576f0f9d ("ACPI: platform_profile: Let drivers set drvdata to the class device")
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Reviewed-by: Kurt Borja <kuurtb@gmail.com>
    Link: https://lore.kernel.org/r/20250127210202.568691-1-pchelkin@ispras.ru
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

commit fa803513ab68ba07369643393f1754b845160030
Author: Lifeng Zheng <zhenglifeng1@huawei.com>
Date:   Fri Jan 10 17:19:49 2025 +0800

    cpufreq/amd-pstate: Fix per-policy boost flag incorrect when fail
    
    Commit c8c68c38b56f ("cpufreq: amd-pstate: initialize core precision
    boost state") sets per-policy boost flag to false when boost fail.
    However, this boost flag will be set to reverse value in
    store_local_boost() and cpufreq_boost_trigger_state() in cpufreq.c. This
    will cause the per-policy boost flag set to true when fail to set boost.
    Remove the extra assignment in amd_pstate_set_boost() and keep all
    operations on per-policy boost flag outside of set_boost() to fix this
    problem.
    
    Fixes: c8c68c38b56f ("cpufreq: amd-pstate: initialize core precision boost state")
    Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://lore.kernel.org/r/20250110091949.3610770-1-zhenglifeng1@huawei.com
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

commit 64b48ec36dbed561ab1cd99708c33d96f4b7b729
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Mon Feb 3 12:47:17 2025 +1100

    drivers/block/sunvdc.c: update the correct AIP call
    
    My sparc64 defconfig build failed like this:
    
    drivers/block/sunvdc.c: In function 'vdc_queue_drain':
    drivers/block/sunvdc.c:1130:9: error: too many arguments to function 'blk_mq_unquiesce_queue'
     1130 |         blk_mq_unquiesce_queue(q, memflags);
          |         ^~~~~~~~~~~~~~~~~~~~~~
    In file included from drivers/block/sunvdc.c:10:
    include/linux/blk-mq.h:895:6: note: declared here
      895 | void blk_mq_unquiesce_queue(struct request_queue *q);
          |      ^~~~~~~~~~~~~~~~~~~~~~
    drivers/block/sunvdc.c:1131:9: error: too few arguments to function 'blk_mq_unfreeze_queue'
     1131 |         blk_mq_unfreeze_queue(q);
          |         ^~~~~~~~~~~~~~~~~~~~~
    In file included from drivers/block/sunvdc.c:10:
    include/linux/blk-mq.h:914:1: note: declared here
      914 | blk_mq_unfreeze_queue(struct request_queue *q, unsigned int memflags)
          | ^~~~~~~~~~~~~~~~~~~~~
    
    Fixes: 1e1a9cecfab3 ("block: force noio scope in blk_mq_freeze_queue")
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 3f1baa91a1fdf3de9dbad4bd615b35fab347874b
Author: Sankararaman Jayaraman <sankararaman.jayaraman@broadcom.com>
Date:   Fri Jan 31 09:53:41 2025 +0530

    vmxnet3: Fix tx queue race condition with XDP
    
    If XDP traffic runs on a CPU which is greater than or equal to
    the number of the Tx queues of the NIC, then vmxnet3_xdp_get_tq()
    always picks up queue 0 for transmission as it uses reciprocal scale
    instead of simple modulo operation.
    
    vmxnet3_xdp_xmit() and vmxnet3_xdp_xmit_frame() use the above
    returned queue without any locking which can lead to race conditions
    when multiple XDP xmits run in parallel on different CPU's.
    
    This patch uses a simple module scheme when the current CPU equals or
    exceeds the number of Tx queues on the NIC. It also adds locking in
    vmxnet3_xdp_xmit() and vmxnet3_xdp_xmit_frame() functions.
    
    Fixes: 54f00cce1178 ("vmxnet3: Add XDP support.")
    Signed-off-by: Sankararaman Jayaraman <sankararaman.jayaraman@broadcom.com>
    Signed-off-by: Ronak Doshi <ronak.doshi@broadcom.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250131042340.156547-1-sankararaman.jayaraman@broadcom.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit a8aa6a6ddce9b5585f2b74f27f3feea1427fb4e7
Author: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Date:   Fri Jan 31 01:38:32 2025 +0000

    ice: Add check for devm_kzalloc()
    
    Add check for the return value of devm_kzalloc() to guarantee the success
    of allocation.
    
    Fixes: 42c2eb6b1f43 ("ice: Implement devlink-rate API")
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Link: https://patch.msgid.link/20250131013832.24805-1-jiashengjiangcool@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 92191dd1073088753821b862b791dcc83e558e07
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Wed Jan 29 19:15:19 2025 -0800

    net: ipv6: fix dst ref loops in rpl, seg6 and ioam6 lwtunnels
    
    Some lwtunnels have a dst cache for post-transformation dst.
    If the packet destination did not change we may end up recording
    a reference to the lwtunnel in its own cache, and the lwtunnel
    state will never be freed.
    
    Discovered by the ioam6.sh test, kmemleak was recently fixed
    to catch per-cpu memory leaks. I'm not sure if rpl and seg6
    can actually hit this, but in principle I don't see why not.
    
    Fixes: 8cb3bf8bff3c ("ipv6: ioam: Add support for the ip6ip6 encapsulation")
    Fixes: 6c8702c60b88 ("ipv6: sr: add support for SRH encapsulation and injection with lwtunnels")
    Fixes: a7a29f9c361f ("net: ipv6: add rpl sr tunnel")
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250130031519.2716843-2-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit c71a192976ded2f2f416d03c4f595cdd4478b825
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Wed Jan 29 19:15:18 2025 -0800

    net: ipv6: fix dst refleaks in rpl, seg6 and ioam6 lwtunnels
    
    dst_cache_get() gives us a reference, we need to release it.
    
    Discovered by the ioam6.sh test, kmemleak was recently fixed
    to catch per-cpu memory leaks.
    
    Fixes: 985ec6f5e623 ("net: ipv6: rpl_iptunnel: mitigate 2-realloc issue")
    Fixes: 40475b63761a ("net: ipv6: seg6_iptunnel: mitigate 2-realloc issue")
    Fixes: dce525185bc9 ("net: ipv6: ioam6_iptunnel: mitigate 2-realloc issue")
    Reviewed-by: Justin Iurman <justin.iurman@uliege.be>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250130031519.2716843-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 46ded709232344b5750a852747a8881763c721ab
Author: Florian Fainelli <florian.fainelli@broadcom.com>
Date:   Wed Jan 29 15:13:42 2025 -0800

    net: bcmgenet: Correct overlaying of PHY and MAC Wake-on-LAN
    
    Some Wake-on-LAN modes such as WAKE_FILTER may only be supported by the MAC,
    while others might be only supported by the PHY. Make sure that the .get_wol()
    returns the union of both rather than only that of the PHY if the PHY supports
    Wake-on-LAN.
    
    When disabling Wake-on-LAN, make sure that this is done at both the PHY
    and MAC level, rather than doing an early return from the PHY driver.
    
    Fixes: 7e400ff35cbe ("net: bcmgenet: Add support for PHY-based Wake-on-LAN")
    Fixes: 9ee09edc05f2 ("net: bcmgenet: Properly overlay PHY and MAC Wake-on-LAN capabilities")
    Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Link: https://patch.msgid.link/20250129231342.35013-1-florian.fainelli@broadcom.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

commit 0f1a6c5c9784eff7e31e4915e17285fb89ad3644
Author: Oliver Upton <oliver.upton@linux.dev>
Date:   Fri Jan 31 22:29:24 2025 +0000

    KVM: arm64: Flush/sync debug state in protected mode
    
    The recent changes to debug state management broke self-hosted debug for
    guests when running in protected mode, since both the debug owner and
    the debug state itself aren't shared with the hyp's view of the vcpu.
    
    Fix it by flushing/syncing the relevant bits with the hyp vcpu.
    
    Fixes: beb470d96cec ("KVM: arm64: Use debug_owner to track if debug regs need save/restore")
    Reported-by: Mark Brown <broonie@kernel.org>
    Closes: https://lore.kernel.org/kvmarm/5f62740f-a065-42d9-9f56-8fb648b9c63f@sirena.org.uk/
    Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
    Link: https://lore.kernel.org/r/20250131222922.1548780-3-oliver.upton@linux.dev
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit a572593ac80e51eb69ecede7e614289fcccdbf8d
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Jan 29 14:56:35 2025 -0800

    md: Fix linear_set_limits()
    
    queue_limits_cancel_update() must only be called if
    queue_limits_start_update() is called first. Remove the
    queue_limits_cancel_update() call from linear_set_limits() because
    there is no corresponding queue_limits_start_update() call.
    
    This bug was discovered by annotating all mutex operations with clang
    thread-safety attributes and by building the kernel with clang and
    -Wthread-safety.
    
    Cc: Yu Kuai <yukuai3@huawei.com>
    Cc: Coly Li <colyli@kernel.org>
    Cc: Mike Snitzer <snitzer@kernel.org>
    Cc: Christoph Hellwig <hch@lst.de>
    Fixes: 127186cfb184 ("md: reintroduce md-linear")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20250129225636.2667932-1-bvanassche@acm.org
    Signed-off-by: Song Liu <song@kernel.org>

commit c8ed6cb5d37bc09c7e25e49a670e9fd1a3bd1dfa
Author: Daniel Wagner <wagi@kernel.org>
Date:   Tue Jan 28 17:34:47 2025 +0100

    nvme-fc: use ctrl state getter
    
    Do not access the state variable directly, instead use proper
    synchronization so not stale data is read.
    
    Fixes: e6e7f7ac03e4 ("nvme: ensure reset state check ordering")
    Signed-off-by: Daniel Wagner <wagi@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit 2d1a2dab95cdc6f2e0c6af3c0514b0bea94af482
Author: Keith Busch <kbusch@kernel.org>
Date:   Tue Jan 28 07:22:31 2025 -0800

    nvme: make nvme_tls_attrs_group static
    
    To suppress the compiler "warning: symbol 'nvme_tls_attrs_group' was not
    declared. Should it be static?"
    
    Fixes: 1e48b34c9bc79a ("nvme: split off TLS sysfs attributes into a separate group")
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit 468a1952df78f65c5991b7ac885c8b5b7dd87bab
Author: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Date:   Thu Jan 23 16:01:18 2025 +0100

    ice: stop storing XDP verdict within ice_rx_buf
    
    Idea behind having ice_rx_buf::act was to simplify and speed up the Rx
    data path by walking through buffers that were representing cleaned HW
    Rx descriptors. Since it caused us a major headache recently and we
    rolled back to old approach that 'puts' Rx buffers right after running
    XDP prog/creating skb, this is useless now and should be removed.
    
    Get rid of ice_rx_buf::act and related logic. We still need to take care
    of a corner case where XDP program releases a particular fragment.
    
    Make ice_run_xdp() to return its result and use it within
    ice_put_rx_mbuf().
    
    Fixes: 2fba7dc5157b ("ice: Add support for XDP multi-buffer on Rx side")
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>

commit 11c4aa074d547d825b19cd8d9f288254d89d805c
Author: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Date:   Thu Jan 23 16:01:17 2025 +0100

    ice: gather page_count()'s of each frag right before XDP prog call
    
    If we store the pgcnt on few fragments while being in the middle of
    gathering the whole frame and we stumbled upon DD bit not being set, we
    terminate the NAPI Rx processing loop and come back later on. Then on
    next NAPI execution we work on previously stored pgcnt.
    
    Imagine that second half of page was used actively by networking stack
    and by the time we came back, stack is not busy with this page anymore
    and decremented the refcnt. The page reuse algorithm in this case should
    be good to reuse the page but given the old refcnt it will not do so and
    attempt to release the page via page_frag_cache_drain() with
    pagecnt_bias used as an arg. This in turn will result in negative refcnt
    on struct page, which was initially observed by Xu Du.
    
    Therefore, move the page count storage from ice_get_rx_buf() to a place
    where we are sure that whole frame has been collected, but before
    calling XDP program as it internally can also change the page count of
    fragments belonging to xdp_buff.
    
    Fixes: ac0753391195 ("ice: Store page count inside ice_rx_buf")
    Reported-and-tested-by: Xu Du <xudu@redhat.com>
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Co-developed-by: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>

commit 743bbd93cf29f653fae0e1416a31f03231689911
Author: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Date:   Thu Jan 23 16:01:16 2025 +0100

    ice: put Rx buffers after being done with current frame
    
    Introduce a new helper ice_put_rx_mbuf() that will go through gathered
    frags from current frame and will call ice_put_rx_buf() on them. Current
    logic that was supposed to simplify and optimize the driver where we go
    through a batch of all buffers processed in current NAPI instance turned
    out to be broken for jumbo frames and very heavy load that was coming
    from both multi-thread iperf and nginx/wrk pair between server and
    client. The delay introduced by approach that we are dropping is simply
    too big and we need to take the decision regarding page
    recycling/releasing as quick as we can.
    
    While at it, address an error path of ice_add_xdp_frag() - we were
    missing buffer putting from day 1 there.
    
    As a nice side effect we get rid of annoying and repetitive three-liner:
    
            xdp->data = NULL;
            rx_ring->first_desc = ntc;
            rx_ring->nr_frags = 0;
    
    by embedding it within introduced routine.
    
    Fixes: 1dc1a7e7f410 ("ice: Centrallize Rx buffer recycling")
    Reported-and-tested-by: Xu Du <xudu@redhat.com>
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Co-developed-by: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>

commit 6daaae5ff7f3b23a2dacc9c387ff3d4f95b67cad
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Wed Jan 29 10:51:48 2025 +0100

    gpu: drm_dp_cec: fix broken CEC adapter properties check
    
    If the hotplug detect of a display is low for longer than one second
    (configurable through drm_dp_cec_unregister_delay), then the CEC adapter
    is unregistered since we assume the display was disconnected. If the
    HPD went low for less than one second, then we check if the properties
    of the CEC adapter have changed, since that indicates that we actually
    switch to new hardware and we have to unregister the old CEC device and
    register a new one.
    
    Unfortunately, the test for changed properties was written poorly, and
    after a new CEC capability was added to the CEC core code the test always
    returned true (i.e. the properties had changed).
    
    As a result the CEC device was unregistered and re-registered for every
    HPD toggle. If the CEC remote controller integration was also enabled
    (CONFIG_MEDIA_CEC_RC was set), then the corresponding input device was
    also unregistered and re-registered. As a result the input device in
    /sys would keep incrementing its number, e.g.:
    
    /sys/devices/pci0000:00/0000:00:08.1/0000:e7:00.0/rc/rc0/input20
    
    Since short HPD toggles are common, the number could over time get into
    the thousands.
    
    While not a serious issue (i.e. nothing crashes), it is not intended
    to work that way.
    
    This patch changes the test so that it only checks for the single CEC
    capability that can actually change, and it ignores any other
    capabilities, so this is now safe as well if new caps are added in
    the future.
    
    With the changed test the bit under #ifndef CONFIG_MEDIA_CEC_RC can be
    dropped as well, so that's a nice cleanup.
    
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Reported-by: Farblos <farblos@vodafonemail.de>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Fixes: 2c6d1fffa1d9 ("drm: add support for DisplayPort CEC-Tunneling-over-AUX")
    Tested-by: Farblos <farblos@vodafonemail.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/361bb03d-1691-4e23-84da-0861ead5dbdc@xs4all.nl
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

commit 32239066776a27287837a193b37c6e55259e5c10
Author: Christoph Schlameuss <schlameuss@linux.ibm.com>
Date:   Tue Jan 28 14:18:03 2025 +0100

    KVM: s390: selftests: Streamline uc_skey test to issue iske after sske
    
    In some rare situations a non default storage key is already set on the
    memory used by the test. Within normal VMs the key is reset / zapped
    when the memory is added to the VM. This is not the case for ucontrol
    VMs. With the initial iske check removed this test case can work in all
    situations. The function of the iske instruction is still validated by
    the remaining code.
    
    Fixes: 0185fbc6a2d3 ("KVM: s390: selftests: Add uc_skey VM test case")
    Signed-off-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250128131803.1047388-1-schlameuss@linux.ibm.com
    Message-ID: <20250128131803.1047388-1-schlameuss@linux.ibm.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

commit 84b7387692a8c849bd8bddd0f5c5474d4923aa6e
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:27 2025 +0100

    KVM: s390: remove the last user of page->index
    
    Shadow page tables use page->index to keep the g2 address of the guest
    page table being shadowed.
    
    Instead of keeping the information in page->index, split the address
    and smear it over the 16-bit softbits areas of 4 PGSTEs.
    
    This removes the last s390 user of page->index.
    
    Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-16-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-16-imbrenda@linux.ibm.com>

commit 1f4389931e9fea7e8b3c1f189d505b040b25be8a
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:26 2025 +0100

    KVM: s390: move PGSTE softbits
    
    Move the softbits in the PGSTEs to the other usable area.
    
    This leaves the 16-bit block of usable bits free, which will be used in the
    next patch for something else.
    
    Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-15-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-15-imbrenda@linux.ibm.com>

commit c27e002626b9fbd2729fa00ddda789319648e7ba
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:25 2025 +0100

    KVM: s390: remove useless page->index usage
    
    The page->index field for VSIE dat tables is only used for segment
    tables.
    
    Stop setting the field for all region tables.
    
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-14-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-14-imbrenda@linux.ibm.com>

commit 43656f774a4b4a2841035947e89dcde8ee136caa
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:24 2025 +0100

    KVM: s390: move gmap_shadow_pgt_lookup() into kvm
    
    Move gmap_shadow_pgt_lookup() from mm/gmap.c into kvm/gaccess.c .
    
    Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-13-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-13-imbrenda@linux.ibm.com>

commit ef0c8ef8485d9629c6d042cea8f2082f159b467e
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:23 2025 +0100

    KVM: s390: stop using lists to keep track of used dat tables
    
    Until now, every dat table allocated to map a guest was put in a
    linked list. The page->lru field of struct page was used to keep track
    of which pages were being used, and when the gmap is torn down, the
    list was walked and all pages freed.
    
    This patch gets rid of the usage of page->lru. Page tables are now
    freed by recursively walking the dat table tree.
    
    Since s390_unlist_old_asce() becomes useless now, remove it.
    
    Acked-by: Steffen Eiden <seiden@linux.ibm.com>
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-12-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-12-imbrenda@linux.ibm.com>

commit 37d1b5d8d588a9761e47d9941005e2da7def8310
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:22 2025 +0100

    KVM: s390: stop using page->index for non-shadow gmaps
    
    The host_to_guest radix tree will now map userspace addresses to guest
    addresses, instead of userspace addresses to segment tables.
    
    When segment tables and page tables are needed, they are found using an
    additional gmap_table_walk().
    
    This gets rid of all usage of page->index for non-shadow gmaps.
    
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-11-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-11-imbrenda@linux.ibm.com>

commit c9f721ed8ec6942dad951d2d8c4fca291170165e
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:21 2025 +0100

    KVM: s390: move some gmap shadowing functions away from mm/gmap.c
    
    Move some gmap shadowing functions from mm/gmap.c to kvm/kvm-s390.c and
    the newly created kvm/gmap-vsie.c
    
    This is a step toward removing gmap from mm.
    
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-10-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-10-imbrenda@linux.ibm.com>

commit d41993f71385ce7e9661c203e02a588a93a59b24
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:20 2025 +0100

    KVM: s390: get rid of gmap_translate()
    
    Add gpa_to_hva(), which uses memslots, and use it to replace all uses
    of gmap_translate().
    
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-9-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-9-imbrenda@linux.ibm.com>

commit 6eb84e130075b9ea35a946dcf9a2476ac2c749a0
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:19 2025 +0100

    KVM: s390: get rid of gmap_fault()
    
    All gmap page faults are already handled in kvm by the function
    kvm_s390_handle_dat_fault(); only few users of gmap_fault remained, all
    within kvm.
    
    Convert those calls to use kvm_s390_handle_dat_fault() instead.
    
    Remove gmap_fault() entirely since it has no more users.
    
    Acked-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-8-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-8-imbrenda@linux.ibm.com>

commit 3762e905ec2e498c96464e094b7d46be98151d3b
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:18 2025 +0100

    KVM: s390: use __kvm_faultin_pfn()
    
    Refactor the existing page fault handling code to use __kvm_faultin_pfn().
    
    This possible now that memslots are always present.
    
    Acked-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-7-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-7-imbrenda@linux.ibm.com>

commit 5cbe24350b7d8ef6d466a37d56b07ae643c622ca
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:17 2025 +0100

    KVM: s390: move pv gmap functions into kvm
    
    Move gmap related functions from kernel/uv into kvm.
    
    Create a new file to collect gmap-related functions.
    
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    [fixed unpack_one(), thanks mhartmay@linux.ibm.com]
    Link: https://lore.kernel.org/r/20250123144627.312456-6-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-6-imbrenda@linux.ibm.com>

commit 63e71519891024b622d00c486c4d0348c44ca911
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:16 2025 +0100

    KVM: s390: selftests: fix ucontrol memory region test
    
    With the latest patch, attempting to create a memslot from userspace
    will result in an EEXIST error for UCONTROL VMs, instead of EINVAL,
    since the new memslot will collide with the internal memslot. There is
    no simple way to bring back the previous behaviour.
    
    This is not a problem, but the test needs to be fixed accordingly.
    
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-5-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-5-imbrenda@linux.ibm.com>

commit 413c98f24c63b3b8aff202fce6f01e8950730511
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:15 2025 +0100

    KVM: s390: fake memslot for ucontrol VMs
    
    Create a fake memslot for ucontrol VMs. The fake memslot identity-maps
    userspace.
    
    Now memslots will always be present, and ucontrol is not a special case
    anymore.
    
    Suggested-by: Sean Christopherson <seanjc@google.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-4-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-4-imbrenda@linux.ibm.com>

commit decff09adbeba4b75a1982b1dc3991761914e2df
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Thu Jan 23 15:46:14 2025 +0100

    KVM: s390: wrapper for KVM_BUG
    
    Wrap the call to KVM_BUG; this reduces code duplication and improves
    readability.
    
    Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-3-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-3-imbrenda@linux.ibm.com>

commit 66119f8ce135de664cb2fb88d9aaa322d7451a1f
Author: Sean Christopherson <seanjc@google.com>
Date:   Thu Jan 23 15:46:13 2025 +0100

    KVM: Do not restrict the size of KVM-internal memory regions
    
    Exempt KVM-internal memslots from the KVM_MEM_MAX_NR_PAGES restriction, as
    the limit on the number of pages exists purely to play nice with dirty
    bitmap operations, which use 32-bit values to index the bitmaps, and dirty
    logging isn't supported for KVM-internal memslots.
    
    Link: https://lore.kernel.org/all/20240802205003.353672-6-seanjc@google.com
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Link: https://lore.kernel.org/r/20250123144627.312456-2-imbrenda@linux.ibm.com
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-ID: <20250123144627.312456-2-imbrenda@linux.ibm.com>

commit 4514eda4c1dbd0b7062e06c769d2ceafd25c9284
Author: David Hildenbrand <david@redhat.com>
Date:   Tue Jan 7 16:43:44 2025 +0100

    KVM: s390: vsie: stop using "struct page" for vsie page
    
    Now that we no longer use page->index and the page refcount explicitly,
    let's avoid messing with "struct page" completely.
    
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Tested-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Message-ID: <20250107154344.1003072-5-david@redhat.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

commit 905f5ce0835c938c501237d9371cdbc91d8f7e02
Author: David Hildenbrand <david@redhat.com>
Date:   Tue Jan 7 16:43:43 2025 +0100

    KVM: s390: vsie: stop messing with page refcount
    
    Let's stop messing with the page refcount, and use a flag that is set /
    cleared atomically to remember whether a vsie page is currently in use.
    
    Note that we could use a page flag, or a lower bit of the scb_gpa. Let's
    keep it simple for now, we have sufficient space.
    
    While at it, stop passing "struct kvm *" to put_vsie_page(), it's
    unused.
    
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Tested-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Message-ID: <20250107154344.1003072-4-david@redhat.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

commit c5f64c98a1f7e4ca0e55b441620473389b8c7a72
Author: David Hildenbrand <david@redhat.com>
Date:   Tue Jan 7 16:43:42 2025 +0100

    KVM: s390: vsie: stop using page->index
    
    Let's stop using page->index, and instead use a field inside "struct
    vsie_page" to hold that value. We have plenty of space left in there.
    
    This is one part of stopping using "struct page" when working with vsie
    pages. We place the "page_to_virt(page)" strategically, so the next
    cleanups requires less churn.
    
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Tested-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Message-ID: <20250107154344.1003072-3-david@redhat.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

commit 5f230f41fdd9e799f43a699348dc572bca7159aa
Author: David Hildenbrand <david@redhat.com>
Date:   Tue Jan 7 16:43:41 2025 +0100

    KVM: s390: vsie: fix some corner-cases when grabbing vsie pages
    
    We try to reuse the same vsie page when re-executing the vsie with a
    given SCB address. The result is that we use the same shadow SCB --
    residing in the vsie page -- and can avoid flushing the TLB when
    re-running the vsie on a CPU.
    
    So, when we allocate a fresh vsie page, or when we reuse a vsie page for
    a different SCB address -- reusing the shadow SCB in different context --
    we set ihcpu=0xffff to trigger the flush.
    
    However, after we looked up the SCB address in the radix tree, but before
    we grabbed the vsie page by raising the refcount to 2, someone could reuse
    the vsie page for a different SCB address, adjusting page->index and the
    radix tree. In that case, we would be reusing the vsie page with a
    wrong page->index.
    
    Another corner case is that we might set the SCB address for a vsie
    page, but fail the insertion into the radix tree. Whoever would reuse
    that page would remove the corresponding radix tree entry -- which might
    now be a valid entry pointing at another page, resulting in the wrong
    vsie page getting removed from the radix tree.
    
    Let's handle such races better, by validating that the SCB address of a
    vsie page didn't change after we grabbed it (not reuse for a different
    SCB; the alternative would be performing another tree lookup), and by
    setting the SCB address to invalid until the insertion in the tree
    succeeded (SCB addresses are aligned to 512, so ULONG_MAX is invalid).
    
    These scenarios are rare, the effects a bit unclear, and these issues were
    only found by code inspection. Let's CC stable to be safe.
    
    Fixes: a3508fbe9dc6 ("KVM: s390: vsie: initial support for nested virtualization")
    Cc: stable@vger.kernel.org
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Tested-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Message-ID: <20250107154344.1003072-2-david@redhat.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

commit 9065ce69754dece78606c8bbb3821449272e56bf
Author: Christian Loehle <christian.loehle@arm.com>
Date:   Wed Jan 29 17:59:44 2025 +0000

    sched/debug: Provide slice length for fair tasks
    
    Since commit:
    
      857b158dc5e8 ("sched/eevdf: Use sched_attr::sched_runtime to set request/slice suggestion")
    
    ... we have the userspace per-task tunable slice length, which is
    a key parameter that is otherwise difficult to obtain, so provide
    it in /proc/$PID/sched.
    
    [ mingo: Clarified the changelog. ]
    
    Signed-off-by: Christian Loehle <christian.loehle@arm.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/453349b1-1637-42f5-a7b2-2385392b5956@arm.com

commit bb2784d9ab49587ba4fbff37a319fff2924db289
Author: Easwar Hariharan <eahariha@linux.microsoft.com>
Date:   Thu Jan 30 19:26:58 2025 +0000

    jiffies: Cast to unsigned long in secs_to_jiffies() conversion
    
    While converting users of msecs_to_jiffies(), lkp reported that some range
    checks would always be true because of the mismatch between the implied int
    value of secs_to_jiffies() vs the unsigned long return value of the
    msecs_to_jiffies() calls it was replacing.
    
    Fix this by casting the secs_to_jiffies() input value to unsigned long.
    
    Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20250130192701.99626-1-eahariha@linux.microsoft.com
    Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR-lkp@intel.com/

commit ee2ab467bddfb2d7f68d996dbab94d7b88f8eaf7
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Tue Jan 21 18:11:33 2025 -0700

    x86/boot: Use '-std=gnu11' to fix build with GCC 15
    
    GCC 15 changed the default C standard version to C23, which should not
    have impacted the kernel because it requests the gnu11 standard via
    '-std=' in the main Makefile. However, the x86 compressed boot Makefile
    uses its own set of KBUILD_CFLAGS without a '-std=' value (i.e., using
    the default), resulting in errors from the kernel's definitions of bool,
    true, and false in stddef.h, which are reserved keywords under C23.
    
      ./include/linux/stddef.h:11:9: error: expected identifier before ‘false’
         11 |         false   = 0,
      ./include/linux/types.h:35:33: error: two or more data types in declaration specifiers
         35 | typedef _Bool                   bool;
    
    Set '-std=gnu11' in the x86 compressed boot Makefile to resolve the
    error and consistently use the same C standard version for the entire
    kernel.
    
    Closes: https://lore.kernel.org/4OAhbllK7x4QJGpZjkYjtBYNLd_2whHx9oFiuZcGwtVR4hIzvduultkgfAIRZI3vQpZylu7Gl929HaYFRGeMEalWCpeMzCIIhLxxRhq4U-Y=@protonmail.com/
    Closes: https://lore.kernel.org/Z4467umXR2PZ0M1H@tucnak/
    Reported-by: Kostadin Shishmanov <kostadinshishmanov@protonmail.com>
    Reported-by: Jakub Jelinek <jakub@redhat.com>
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Cc:stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20250121-x86-use-std-consistently-gcc-15-v1-1-8ab0acf645cb%40kernel.org

commit 79fc672a092d93a7eac24fe20a571d4efd8fa5a4
Author: Haoxiang Li <haoxiang_li2024@163.com>
Date:   Thu Dec 19 17:02:56 2024 +0800

    drm/komeda: Add check for komeda_get_layer_fourcc_list()
    
    Add check for the return value of komeda_get_layer_fourcc_list()
    to catch the potential exception.
    
    Fixes: 5d51f6c0da1b ("drm/komeda: Add writeback support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
    Acked-by: Liviu Dudau <liviu.dudau@arm.com>
    Link: https://lore.kernel.org/r/20241219090256.146424-1-haoxiang_li2024@163.com
    Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>

commit 07e0d99a2f701123ad3104c0f1a1e66bce74d6e5
Author: Chengen Du <chengen.du@canonical.com>
Date:   Tue Jan 14 12:12:34 2025 +0800

    iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
    
    When performing an iSCSI boot using IPv6, iscsistart still reads the
    /sys/firmware/ibft/ethernetX/subnet-mask entry. Since the IPv6 prefix
    length is 64, this causes the shift exponent to become negative,
    triggering a UBSAN warning. As the concept of a subnet mask does not
    apply to IPv6, the value is set to ~0 to suppress the warning message.
    
    Signed-off-by: Chengen Du <chengen.du@canonical.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

commit e1e17a1715982201034024863efbf238bee2bdf9
Author: Prasad Pandit <pjp@fedoraproject.org>
Date:   Mon Mar 11 16:21:22 2024 +0530

    firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry
    
    Fix ISCSI_IBFT Kconfig entry, replace tab with a space character.
    
    Fixes: 138fe4e0697 ("Firmware: add iSCSI iBFT Support")
    Signed-off-by: Prasad Pandit <pjp@fedoraproject.org>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

commit cc3d4671a0db9499b201c43faba6c46e1a21274c
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Jan 28 08:55:34 2025 +0100

    nvmet: add a missing endianess conversion in nvmet_execute_admin_connect
    
    The kato field is little endian on the wire, but native endian in
    the in-core structure, add the missing byte swap.
    
    Fixes: 6202783184bf ("nvmet: Improve nvmet_alloc_ctrl() interface and implementation")
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit 7bf6b497a747b0e28a411beacdd62f1488d0781c
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Jan 28 08:55:33 2025 +0100

    nvmet: the result field in nvmet_alloc_ctrl_args is little endian
    
    So use the __le32 type for it.
    
    Fixes: 6202783184bf ("nvmet: Improve nvmet_alloc_ctrl() interface and implementation")
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit fd39c41bcd82d5ebaaebadb944eab5598c668a90
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date:   Mon Jan 27 14:44:14 2025 +0100

    drm/ast: astdp: Fix timeout for enabling video signal
    
    The ASTDP transmitter sometimes takes up to 1 second for enabling the
    video signal, while the timeout is only 200 msec. This results in a
    kernel error message. Increase the timeout to 1 second. An example
    of the error message is shown below.
    
    [  697.084433] ------------[ cut here ]------------
    [  697.091115] ast 0000:02:00.0: [drm] drm_WARN_ON(!__ast_dp_wait_enable(ast, enabled))
    [  697.091233] WARNING: CPU: 1 PID: 160 at drivers/gpu/drm/ast/ast_dp.c:232 ast_dp_set_enable+0x123/0x140 [ast]
    [...]
    [  697.272469] RIP: 0010:ast_dp_set_enable+0x123/0x140 [ast]
    [...]
    [  697.415283] Call Trace:
    [  697.420727]  <TASK>
    [  697.425908]  ? show_trace_log_lvl+0x196/0x2c0
    [  697.433304]  ? show_trace_log_lvl+0x196/0x2c0
    [  697.440693]  ? drm_atomic_helper_commit_modeset_enables+0x30a/0x470
    [  697.450115]  ? ast_dp_set_enable+0x123/0x140 [ast]
    [  697.458059]  ? __warn.cold+0xaf/0xca
    [  697.464713]  ? ast_dp_set_enable+0x123/0x140 [ast]
    [  697.472633]  ? report_bug+0x134/0x1d0
    [  697.479544]  ? handle_bug+0x58/0x90
    [  697.486127]  ? exc_invalid_op+0x13/0x40
    [  697.492975]  ? asm_exc_invalid_op+0x16/0x20
    [  697.500224]  ? preempt_count_sub+0x14/0xc0
    [  697.507473]  ? ast_dp_set_enable+0x123/0x140 [ast]
    [  697.515377]  ? ast_dp_set_enable+0x123/0x140 [ast]
    [  697.523227]  drm_atomic_helper_commit_modeset_enables+0x30a/0x470
    [  697.532388]  drm_atomic_helper_commit_tail+0x58/0x90
    [  697.540400]  ast_mode_config_helper_atomic_commit_tail+0x30/0x40 [ast]
    [  697.550009]  commit_tail+0xfe/0x1d0
    [  697.556547]  drm_atomic_helper_commit+0x198/0x1c0
    
    This is a cosmetical problem. Enabling the video signal still works
    even with the error message. The problem has always been present, but
    only recent versions of the ast driver warn about missing the timeout.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Fixes: 4e29cc7c5c67 ("drm/ast: astdp: Replace ast_dp_set_on_off()")
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: Jocelyn Falempe <jfalempe@redhat.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: <stable@vger.kernel.org> # v6.13+
    Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250127134423.84266-1-tzimmermann@suse.de

commit a9ab28b3d21aec6d0f56fe722953e20ce470237b
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Jan 28 06:22:58 2025 +0100

    xfs: remove xfs_buf_cache.bc_lock
    
    xfs_buf_cache.bc_lock serializes adding buffers to and removing them from
    the hashtable.  But as the rhashtable code already uses fine grained
    internal locking for inserts and removals the extra protection isn't
    actually required.
    
    It also happens to fix a lock order inversion vs b_lock added by the
    recent lookup race fix.
    
    Fixes: ee10f6fcdb96 ("xfs: fix buffer lookup vs release race")
    Reported-by: Lai, Yi <yi1.lai@linux.intel.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>

commit 698244bbb3bfd32ddf9a0b70a12b1c7d69056497
Author: Nick Chan <towinchenmi@gmail.com>
Date:   Sun Jan 19 00:31:42 2025 +0800

    irqchip/apple-aic: Only handle PMC interrupt as FIQ when configured so
    
    The CPU PMU in Apple SoCs can be configured to fire its interrupt in one of
    several ways, and since Apple A11 one of the methods is FIQ, but the check
    of the configuration register fails to test explicitely for FIQ mode. It
    tests whether the IMODE bitfield is zero or not and the PMCRO_IACT bit is
    set. That results in false positives when the IMODE bitfield is not zero,
    but does not have the mode PMCR0_IMODE_FIQ.
    
    Only handle the PMC interrupt as a FIQ when the CPU PMU has been configured
    to fire FIQs, i.e. the IMODE bitfield value is PMCR0_IMODE_FIQ and
    PMCR0_IACT is set.
    
    Fixes: c7708816c944 ("irqchip/apple-aic: Wire PMU interrupts")
    Signed-off-by: Nick Chan <towinchenmi@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20250118163554.16733-1-towinchenmi@gmail.com

commit 26b63bee2f6e711c5a169997fd126fddcfb90848
Author: Wentao Liang <vulab@iscas.ac.cn>
Date:   Fri Jan 24 11:45:09 2025 +0800

    xfs: Add error handling for xfs_reflink_cancel_cow_range
    
    In xfs_inactive(), xfs_reflink_cancel_cow_range() is called
    without error handling, risking unnoticed failures and
    inconsistent behavior compared to other parts of the code.
    
    Fix this issue by adding an error handling for the
    xfs_reflink_cancel_cow_range(), improving code robustness.
    
    Fixes: 6231848c3aa5 ("xfs: check for cow blocks before trying to clear them")
    Cc: stable@vger.kernel.org # v4.17
    Reviewed-by: Darrick J. Wong <djwong@kernel.org>
    Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>

commit 28aecef5b1015bf6023ddc12b1a67f6678271fcb
Author: Madhavan Srinivasan <maddy@linux.ibm.com>
Date:   Sun Jan 19 22:02:38 2025 +0530

    selftests: livepatch: handle PRINTK_CALLER in check_result()
    
    Some arch configs (like ppc64) enable CONFIG_PRINTK_CALLER,
    which adds the caller id as part of the dmesg. With recent
    util-linux's update 467a5b3192f16 ('dmesg: add caller_id support')
    the standard "dmesg" has been enhanced to print PRINTK_CALLER fields.
    
    Due to this, even though the expected vs observed are same,
    end testcase results are failed.
    
     -% insmod test_modules/test_klp_livepatch.ko
     -livepatch: enabling patch 'test_klp_livepatch'
     -livepatch: 'test_klp_livepatch': initializing patching transition
     -livepatch: 'test_klp_livepatch': starting patching transition
     -livepatch: 'test_klp_livepatch': completing patching transition
     -livepatch: 'test_klp_livepatch': patching complete
     -% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
     -livepatch: 'test_klp_livepatch': initializing unpatching transition
     -livepatch: 'test_klp_livepatch': starting unpatching transition
     -livepatch: 'test_klp_livepatch': completing unpatching transition
     -livepatch: 'test_klp_livepatch': unpatching complete
     -% rmmod test_klp_livepatch
     +[   T3659] % insmod test_modules/test_klp_livepatch.ko
     +[   T3682] livepatch: enabling patch 'test_klp_livepatch'
     +[   T3682] livepatch: 'test_klp_livepatch': initializing patching transition
     +[   T3682] livepatch: 'test_klp_livepatch': starting patching transition
     +[    T826] livepatch: 'test_klp_livepatch': completing patching transition
     +[    T826] livepatch: 'test_klp_livepatch': patching complete
     +[   T3659] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
     +[   T3659] livepatch: 'test_klp_livepatch': initializing unpatching transition
     +[   T3659] livepatch: 'test_klp_livepatch': starting unpatching transition
     +[    T789] livepatch: 'test_klp_livepatch': completing unpatching transition
     +[    T789] livepatch: 'test_klp_livepatch': unpatching complete
     +[   T3659] % rmmod test_klp_livepatch
    
      ERROR: livepatch kselftest(s) failed
     not ok 1 selftests: livepatch: test-livepatch.sh # exit=1
    
    Currently the check_result() handles the "[time]" removal from
    the dmesg. Enhance the check to also handle removal of "[Thread Id]"
    or "[CPU Id]".
    
    Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
    Acked-by: Miroslav Benes <mbenes@suse.cz>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Tested-by: Petr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/20250119163238.749847-1-maddy@linux.ibm.com
    Signed-off-by: Petr Mladek <pmladek@suse.com>

commit fb95897b8c60653805aa09daec575ca30983f768
Author: Wentao Liang <vulab@iscas.ac.cn>
Date:   Fri Jan 24 11:22:28 2025 +0800

    xfs: Propagate errors from xfs_reflink_cancel_cow_range in xfs_dax_write_iomap_end
    
    In xfs_dax_write_iomap_end(), directly return the result of
    xfs_reflink_cancel_cow_range() when !written, ensuring proper
    error propagation and improving code robustness.
    
    Fixes: ea6c49b784f0 ("xfs: support CoW in fsdax mode")
    Cc: stable@vger.kernel.org # v6.0
    Reviewed-by: Darrick J. Wong <djwong@kernel.org>
    Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>

commit 987f379b54091cc1b1db986bde71cee1081350b3
Author: Stefan Eichenberger <eichest@gmail.com>
Date:   Fri Jan 24 09:50:39 2025 +0100

    irqchip/irq-mvebu-icu: Fix access to msi_data from irq_domain::host_data
    
    mvebu_icu_translate() incorrectly casts irq_domain::host_data directly to
    mvebu_icu_msi_data. However, host_data actually points to a structure of
    type msi_domain_info.
    
    This incorrect cast causes issues such as the thermal sensors of the
    CP110 platform malfunctioning. Specifically, the translation of the SEI
    interrupt to IRQ_TYPE_EDGE_RISING fails, preventing proper interrupt
    handling. The following error was observed:
    
      genirq: Setting trigger mode 4 for irq 85 failed (irq_chip_set_type_parent+0x0/0x34)
      armada_thermal f2400000.system-controller:thermal-sensor@70: Cannot request threaded IRQ 85
    
    Resolve the issue by first casting host_data to msi_domain_info and then
    accessing mvebu_icu_msi_data through msi_domain_info::chip_data.
    
    Fixes: d929e4db22b6 ("irqchip/irq-mvebu-icu: Prepare for real per device MSI")
    Signed-off-by: Stefan Eichenberger <eichest@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20250124085140.44792-1-eichest@gmail.com

commit 825c78e6a60c309a59d18d5ac5968aa79cef0bd6
Author: Xu Lu <luxu.kernel@bytedance.com>
Date:   Mon Jan 27 17:38:46 2025 +0800

    irqchip/riscv: Ensure ordering of memory writes and IPI writes
    
    RISC-V distinguishes between memory accesses and device I/O and uses FENCE
    instruction to order them as viewed by other RISC-V harts and external
    devices or coprocessors. The FENCE instruction can order any combination of
    device input(I), device output(O), memory reads(R) and memory
    writes(W). For example, 'fence w, o' is used to ensure all memory writes
    from instructions preceding the FENCE instruction appear earlier in the
    global memory order than device output writes from instructions after the
    FENCE instruction.
    
    RISC-V issues IPIs by writing to the IMSIC/ACLINT MMIO registers, which is
    regarded as device output operation. However, the existing implementation
    of the IMSIC/ACLINT drivers issue the IPI via writel_relaxed(), which does
    not guarantee the order of device output operation and preceding memory
    writes. As a consequence the hart receiving the IPI might not observe the
    IPI related data.
    
    Fix this by replacing writel_relaxed() with writel() when issuing IPIs,
    which uses 'fence w, o' to ensure all previous writes made by the current
    hart are visible to other harts before they receive the IPI.
    
    Signed-off-by: Xu Lu <luxu.kernel@bytedance.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/all/20250127093846.98625-1-luxu.kernel@bytedance.com

commit 1f566840a82982141f94086061927a90e79440e5
Author: Waiman Long <longman@redhat.com>
Date:   Fri Jan 24 20:54:41 2025 -0500

    clocksource: Use pr_info() for "Checking clocksource synchronization" message
    
    The "Checking clocksource synchronization" message is normally printed
    when clocksource_verify_percpu() is called for a given clocksource if
    both the CLOCK_SOURCE_UNSTABLE and CLOCK_SOURCE_VERIFY_PERCPU flags
    are set.
    
    It is an informational message and so pr_info() is the correct choice.
    
    Signed-off-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
    Acked-by: John Stultz <jstultz@google.com>
    Link: https://lore.kernel.org/all/20250125015442.3740588-1-longman@redhat.com

commit e0f63bc68f59d281e2d06e596f6c1bd9382a15cd
Author: Gustavo Sousa <gustavo.sousa@intel.com>
Date:   Tue Jan 21 18:09:25 2025 -0300

    drm/print: Include drm_device.h
    
    The header drm_print.h uses members of struct drm_device pointers, as
    such, it should include drm_device.h to let the compiler know the full
    type definition.
    
    Without such include, users of drm_print.h that don't explicitly need
    drm_device.h would bump into build errors and be forced to include the
    latter.
    
    Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250121210935.84357-1-gustavo.sousa@intel.com
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>

commit 58f5c8d5ca07a2f9fa93fb073f5b1646ec482ff2
Author: Sagi Grimberg <sagi@grimberg.me>
Date:   Fri Jan 24 13:00:33 2025 +0200

    nvmet: fix a memory leak in controller identify
    
    Simply free an allocated buffer once we copied its content
    to the request sgl.
    
    kmemleak complaint:
    unreferenced object 0xffff8cd40c388000 (size 4096):
      comm "kworker/2:2H", pid 14739, jiffies 4401313113
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace (crc 0):
        [<ffffffff9e01087a>] kmemleak_alloc+0x4a/0x90
        [<ffffffff9d30324a>] __kmalloc_cache_noprof+0x35a/0x420
        [<ffffffffc180b0e2>] nvmet_execute_identify+0x912/0x9f0 [nvmet]
        [<ffffffffc181a72c>] nvmet_tcp_try_recv_pdu+0x84c/0xc90 [nvmet_tcp]
        [<ffffffffc181ac02>] nvmet_tcp_io_work+0x82/0x8b0 [nvmet_tcp]
        [<ffffffff9cfa7158>] process_one_work+0x178/0x3e0
        [<ffffffff9cfa8e9c>] worker_thread+0x2ec/0x420
        [<ffffffff9cfb2140>] kthread+0xf0/0x120
        [<ffffffff9cee36a4>] ret_from_fork+0x44/0x70
        [<ffffffff9ce7fdda>] ret_from_fork_asm+0x1a/0x30
    
    Fixes: 84909f7decbd ("nvmet: use kzalloc instead of ZERO_PAGE in nvme_execute_identify_ns_nvm()")
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit f5f0ed89f13e3e5246404a322ee85169a226bfb5
Author: Christoph Hellwig <hch@lst.de>
Date:   Wed Jan 22 06:43:21 2025 +0100

    xfs: don't call remap_verify_area with sb write protection held
    
    The XFS_IOC_EXCHANGE_RANGE ioctl with the XFS_EXCHANGE_RANGE_TO_EOF flag
    operates on a range bounded by the end of the file.  This means the
    actual amount of blocks exchanged is derived from the inode size, which
    is only stable with the IOLOCK (i_rwsem) held.  Do that, it currently
    calls remap_verify_area from inside the sb write protection which nests
    outside the IOLOCK.  But this makes fsnotify_file_area_perm which is
    called from remap_verify_area unhappy when the kernel is built with
    lockdep and the recently added CONFIG_FANOTIFY_ACCESS_PERMISSIONS
    option.
    
    Fix this by always calling remap_verify_area before taking the write
    protection, and passing a 0 size to remap_verify_area similar to
    the FICLONE/FICLONERANGE ioctls when they are asked to clone until
    the file end.
    
    (Note: the size argument gets passed to fsnotify_file_area_perm, but
    then isn't actually used there).
    
    Fixes: 9a64d9b3109d ("xfs: introduce new file range exchange ioctl")
    Cc: <stable@vger.kernel.org> # v6.10
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Darrick J. Wong <djwong@kernel.org>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>

commit 89841b23809f5fb12cbead142204064739fef25a
Author: Christoph Hellwig <hch@lst.de>
Date:   Thu Jan 16 07:03:35 2025 +0100

    xfs: remove an out of data comment in _xfs_buf_alloc
    
    There hasn't been anything like an io_length for a long time.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Darrick J. Wong <djwong@kernel.org>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>

commit 915175b49f65d9edeb81659e82cbb27b621dbc17
Author: Jinliang Zheng <alexjlzheng@gmail.com>
Date:   Wed Jan 15 20:35:25 2025 +0800

    xfs: fix the entry condition of exact EOF block allocation optimization
    
    When we call create(), lseek() and write() sequentially, offset != 0
    cannot be used as a judgment condition for whether the file already
    has extents.
    
    Furthermore, when xfs_bmap_adjacent() has not given a better blkno,
    it is not necessary to use exact EOF block allocation.
    
    Suggested-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jinliang Zheng <alexjlzheng@tencent.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>

commit 5e0e02f0d7e52cfc8b1adfc778dd02181d8b47b4
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Jan 15 09:05:15 2025 -0700

    futex: Pass in task to futex_queue()
    
    futex_queue() -> __futex_queue() uses 'current' as the task to store in
    the struct futex_q->task field. This is fine for synchronous usage of
    the futex infrastructure, but it's not always correct when used by
    io_uring where the task doing the initial futex_queue() might not be
    available later on. This doesn't lead to any issues currently, as the
    io_uring side doesn't support PI futexes, but it does leave a
    potentially dangling pointer which is never a good idea.
    
    Have futex_queue() take a task_struct argument, and have the regular
    callers pass in 'current' for that. Meanwhile io_uring can just pass in
    NULL, as the task should never be used off that path. In theory
    req->tctx->task could be used here, but there's no point populating it
    with a task field that will never be used anyway.
    
    Reported-by: Jann Horn <jannh@google.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/all/22484a23-542c-4003-b721-400688a0d055@kernel.dk

commit fdef89ce6fada462aef9cb90a140c93c8c209f0f
Author: Filipe Manana <fdmanana@suse.com>
Date:   Tue Jan 21 12:24:39 2025 +0000

    btrfs: avoid starting new transaction when cleaning qgroup during subvolume drop
    
    At btrfs_qgroup_cleanup_dropped_subvolume() all we want to commit the
    current transaction in order to have all the qgroup rfer/excl numbers up
    to date. However we are using btrfs_start_transaction(), which joins the
    current transaction if there is one that is not yet committing, but also
    starts a new one if there is none or if the current one is already
    committing (its state is >= TRANS_STATE_COMMIT_START). This later case
    results in unnecessary IO, wasting time and a pointless rotation of the
    backup roots in the super block.
    
    So instead of using btrfs_start_transaction() followed by a
    btrfs_commit_transaction(), use btrfs_commit_current_transaction() which
    achieves our purpose and avoids starting and committing new transactions.
    
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>

commit e2f0943cf37305dbdeaf9846e3c941451bcdef63
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Jan 20 17:26:10 2025 +0000

    btrfs: fix use-after-free when attempting to join an aborted transaction
    
    When we are trying to join the current transaction and if it's aborted,
    we read its 'aborted' field after unlocking fs_info->trans_lock and
    without holding any extra reference count on it. This means that a
    concurrent task that is aborting the transaction may free the transaction
    before we read its 'aborted' field, leading to a use-after-free.
    
    Fix this by reading the 'aborted' field while holding fs_info->trans_lock
    since any freeing task must first acquire that lock and set
    fs_info->running_transaction to NULL before freeing the transaction.
    
    This was reported by syzbot and Dmitry with the following stack traces
    from KASAN:
    
       ==================================================================
       BUG: KASAN: slab-use-after-free in join_transaction+0xd9b/0xda0 fs/btrfs/transaction.c:278
       Read of size 4 at addr ffff888011839024 by task kworker/u4:9/1128
    
       CPU: 0 UID: 0 PID: 1128 Comm: kworker/u4:9 Not tainted 6.13.0-rc7-syzkaller-00019-gc45323b7560e #0
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
       Workqueue: events_unbound btrfs_async_reclaim_data_space
       Call Trace:
        <TASK>
        __dump_stack lib/dump_stack.c:94 [inline]
        dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
        print_address_description mm/kasan/report.c:378 [inline]
        print_report+0x169/0x550 mm/kasan/report.c:489
        kasan_report+0x143/0x180 mm/kasan/report.c:602
        join_transaction+0xd9b/0xda0 fs/btrfs/transaction.c:278
        start_transaction+0xaf8/0x1670 fs/btrfs/transaction.c:697
        flush_space+0x448/0xcf0 fs/btrfs/space-info.c:803
        btrfs_async_reclaim_data_space+0x159/0x510 fs/btrfs/space-info.c:1321
        process_one_work kernel/workqueue.c:3236 [inline]
        process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317
        worker_thread+0x870/0xd30 kernel/workqueue.c:3398
        kthread+0x2f0/0x390 kernel/kthread.c:389
        ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
        ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
        </TASK>
    
       Allocated by task 5315:
        kasan_save_stack mm/kasan/common.c:47 [inline]
        kasan_save_track+0x3f/0x80 mm/kasan/common.c:68
        poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
        __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:394
        kasan_kmalloc include/linux/kasan.h:260 [inline]
        __kmalloc_cache_noprof+0x243/0x390 mm/slub.c:4329
        kmalloc_noprof include/linux/slab.h:901 [inline]
        join_transaction+0x144/0xda0 fs/btrfs/transaction.c:308
        start_transaction+0xaf8/0x1670 fs/btrfs/transaction.c:697
        btrfs_create_common+0x1b2/0x2e0 fs/btrfs/inode.c:6572
        lookup_open fs/namei.c:3649 [inline]
        open_last_lookups fs/namei.c:3748 [inline]
        path_openat+0x1c03/0x3590 fs/namei.c:3984
        do_filp_open+0x27f/0x4e0 fs/namei.c:4014
        do_sys_openat2+0x13e/0x1d0 fs/open.c:1402
        do_sys_open fs/open.c:1417 [inline]
        __do_sys_creat fs/open.c:1495 [inline]
        __se_sys_creat fs/open.c:1489 [inline]
        __x64_sys_creat+0x123/0x170 fs/open.c:1489
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       Freed by task 5336:
        kasan_save_stack mm/kasan/common.c:47 [inline]
        kasan_save_track+0x3f/0x80 mm/kasan/common.c:68
        kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:582
        poison_slab_object mm/kasan/common.c:247 [inline]
        __kasan_slab_free+0x59/0x70 mm/kasan/common.c:264
        kasan_slab_free include/linux/kasan.h:233 [inline]
        slab_free_hook mm/slub.c:2353 [inline]
        slab_free mm/slub.c:4613 [inline]
        kfree+0x196/0x430 mm/slub.c:4761
        cleanup_transaction fs/btrfs/transaction.c:2063 [inline]
        btrfs_commit_transaction+0x2c97/0x3720 fs/btrfs/transaction.c:2598
        insert_balance_item+0x1284/0x20b0 fs/btrfs/volumes.c:3757
        btrfs_balance+0x992/0x10c0 fs/btrfs/volumes.c:4633
        btrfs_ioctl_balance+0x493/0x7c0 fs/btrfs/ioctl.c:3670
        vfs_ioctl fs/ioctl.c:51 [inline]
        __do_sys_ioctl fs/ioctl.c:906 [inline]
        __se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       The buggy address belongs to the object at ffff888011839000
        which belongs to the cache kmalloc-2k of size 2048
       The buggy address is located 36 bytes inside of
        freed 2048-byte region [ffff888011839000, ffff888011839800)
    
       The buggy address belongs to the physical page:
       page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x11838
       head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
       flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff)
       page_type: f5(slab)
       raw: 00fff00000000040 ffff88801ac42000 ffffea0000493400 dead000000000002
       raw: 0000000000000000 0000000000080008 00000001f5000000 0000000000000000
       head: 00fff00000000040 ffff88801ac42000 ffffea0000493400 dead000000000002
       head: 0000000000000000 0000000000080008 00000001f5000000 0000000000000000
       head: 00fff00000000003 ffffea0000460e01 ffffffffffffffff 0000000000000000
       head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
       page dumped because: kasan: bad access detected
       page_owner tracks the page as allocated
       page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 57, tgid 57 (kworker/0:2), ts 67248182943, free_ts 67229742023
        set_page_owner include/linux/page_owner.h:32 [inline]
        post_alloc_hook+0x1f3/0x230 mm/page_alloc.c:1558
        prep_new_page mm/page_alloc.c:1566 [inline]
        get_page_from_freelist+0x365c/0x37a0 mm/page_alloc.c:3476
        __alloc_pages_noprof+0x292/0x710 mm/page_alloc.c:4753
        alloc_pages_mpol_noprof+0x3e1/0x780 mm/mempolicy.c:2269
        alloc_slab_page+0x6a/0x110 mm/slub.c:2423
        allocate_slab+0x5a/0x2b0 mm/slub.c:2589
        new_slab mm/slub.c:2642 [inline]
        ___slab_alloc+0xc27/0x14a0 mm/slub.c:3830
        __slab_alloc+0x58/0xa0 mm/slub.c:3920
        __slab_alloc_node mm/slub.c:3995 [inline]
        slab_alloc_node mm/slub.c:4156 [inline]
        __do_kmalloc_node mm/slub.c:4297 [inline]
        __kmalloc_node_track_caller_noprof+0x2e9/0x4c0 mm/slub.c:4317
        kmalloc_reserve+0x111/0x2a0 net/core/skbuff.c:609
        __alloc_skb+0x1f3/0x440 net/core/skbuff.c:678
        alloc_skb include/linux/skbuff.h:1323 [inline]
        alloc_skb_with_frags+0xc3/0x820 net/core/skbuff.c:6612
        sock_alloc_send_pskb+0x91a/0xa60 net/core/sock.c:2884
        sock_alloc_send_skb include/net/sock.h:1803 [inline]
        mld_newpack+0x1c3/0xaf0 net/ipv6/mcast.c:1747
        add_grhead net/ipv6/mcast.c:1850 [inline]
        add_grec+0x1492/0x19a0 net/ipv6/mcast.c:1988
        mld_send_cr net/ipv6/mcast.c:2114 [inline]
        mld_ifc_work+0x691/0xd90 net/ipv6/mcast.c:2651
       page last free pid 5300 tgid 5300 stack trace:
        reset_page_owner include/linux/page_owner.h:25 [inline]
        free_pages_prepare mm/page_alloc.c:1127 [inline]
        free_unref_page+0xd3f/0x1010 mm/page_alloc.c:2659
        __slab_free+0x2c2/0x380 mm/slub.c:4524
        qlink_free mm/kasan/quarantine.c:163 [inline]
        qlist_free_all+0x9a/0x140 mm/kasan/quarantine.c:179
        kasan_quarantine_reduce+0x14f/0x170 mm/kasan/quarantine.c:286
        __kasan_slab_alloc+0x23/0x80 mm/kasan/common.c:329
        kasan_slab_alloc include/linux/kasan.h:250 [inline]
        slab_post_alloc_hook mm/slub.c:4119 [inline]
        slab_alloc_node mm/slub.c:4168 [inline]
        __do_kmalloc_node mm/slub.c:4297 [inline]
        __kmalloc_noprof+0x236/0x4c0 mm/slub.c:4310
        kmalloc_noprof include/linux/slab.h:905 [inline]
        kzalloc_noprof include/linux/slab.h:1037 [inline]
        fib_create_info+0xc14/0x25b0 net/ipv4/fib_semantics.c:1435
        fib_table_insert+0x1f6/0x1f20 net/ipv4/fib_trie.c:1231
        fib_magic+0x3d8/0x620 net/ipv4/fib_frontend.c:1112
        fib_add_ifaddr+0x40c/0x5e0 net/ipv4/fib_frontend.c:1156
        fib_netdev_event+0x375/0x490 net/ipv4/fib_frontend.c:1494
        notifier_call_chain+0x1a5/0x3f0 kernel/notifier.c:85
        __dev_notify_flags+0x207/0x400
        dev_change_flags+0xf0/0x1a0 net/core/dev.c:9045
        do_setlink+0xc90/0x4210 net/core/rtnetlink.c:3109
        rtnl_changelink net/core/rtnetlink.c:3723 [inline]
        __rtnl_newlink net/core/rtnetlink.c:3875 [inline]
        rtnl_newlink+0x1bb6/0x2210 net/core/rtnetlink.c:4012
    
       Memory state around the buggy address:
        ffff888011838f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
        ffff888011838f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
       >ffff888011839000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                      ^
        ffff888011839080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
        ffff888011839100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
       ==================================================================
    
    Reported-by: syzbot+45212e9d87a98c3f5b42@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/linux-btrfs/678e7da5.050a0220.303755.007c.GAE@google.com/
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Link: https://lore.kernel.org/linux-btrfs/CACT4Y+ZFBdo7pT8L2AzM=vegZwjp-wNkVJZQf0Ta3vZqtExaSw@mail.gmail.com/
    Fixes: 871383be592b ("btrfs: add missing unlocks to transaction abort paths")
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>

commit c9c863793395cf0a66c2778a29d72c48c02fbb66
Author: Qu Wenruo <wqu@suse.com>
Date:   Mon Jan 20 09:40:43 2025 +1030

    btrfs: do not output error message if a qgroup has been already cleaned up
    
    [BUG]
    There is a bug report that btrfs outputs the following error message:
    
      BTRFS info (device nvme0n1p2): qgroup scan completed (inconsistency flag cleared)
      BTRFS warning (device nvme0n1p2): failed to cleanup qgroup 0/1179: -2
    
    [CAUSE]
    The error itself is pretty harmless, and the end user should ignore it.
    
    When a subvolume is fully dropped, btrfs will call
    btrfs_qgroup_cleanup_dropped_subvolume() to delete the qgroup.
    
    However if a qgroup rescan happened before a subvolume fully dropped,
    qgroup for that subvolume will not be re-created, as rescan will only
    create new qgroup if there is a BTRFS_ROOT_REF_KEY found.
    
    But before we drop a subvolume, the subvolume is unlinked thus there is no
    BTRFS_ROOT_REF_KEY.
    
    In that case, btrfs_remove_qgroup() will fail with -ENOENT and trigger
    the above error message.
    
    [FIX]
    Just ignore -ENOENT error from btrfs_remove_qgroup() inside
    btrfs_qgroup_cleanup_dropped_subvolume().
    
    Reported-by: John Shand <jshand2013@gmail.com>
    Link: https://bugzilla.suse.com/show_bug.cgi?id=1236056
    Fixes: 839d6ea4f86d ("btrfs: automatically remove the subvolume qgroup")
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>

commit 0d85f5c2dd91df6b5da454406756f463ba923b69
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Jan 13 15:01:08 2025 +0000

    btrfs: fix assertion failure when splitting ordered extent after transaction abort
    
    If while we are doing a direct IO write a transaction abort happens, we
    mark all existing ordered extents with the BTRFS_ORDERED_IOERR flag (done
    at btrfs_destroy_ordered_extents()), and then after that if we enter
    btrfs_split_ordered_extent() and the ordered extent has bytes left
    (meaning we have a bio that doesn't cover the whole ordered extent, see
    details at btrfs_extract_ordered_extent()), we will fail on the following
    assertion at btrfs_split_ordered_extent():
    
       ASSERT(!(flags & ~BTRFS_ORDERED_TYPE_FLAGS));
    
    because the BTRFS_ORDERED_IOERR flag is set and the definition of
    BTRFS_ORDERED_TYPE_FLAGS is just the union of all flags that identify the
    type of write (regular, nocow, prealloc, compressed, direct IO, encoded).
    
    Fix this by returning an error from btrfs_extract_ordered_extent() if we
    find the BTRFS_ORDERED_IOERR flag in the ordered extent. The error will
    be the error that resulted in the transaction abort or -EIO if no
    transaction abort happened.
    
    This was recently reported by syzbot with the following trace:
    
       FAULT_INJECTION: forcing a failure.
       name failslab, interval 1, probability 0, space 0, times 1
       CPU: 0 UID: 0 PID: 5321 Comm: syz.0.0 Not tainted 6.13.0-rc5-syzkaller #0
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
       Call Trace:
        <TASK>
        __dump_stack lib/dump_stack.c:94 [inline]
        dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
        fail_dump lib/fault-inject.c:53 [inline]
        should_fail_ex+0x3b0/0x4e0 lib/fault-inject.c:154
        should_failslab+0xac/0x100 mm/failslab.c:46
        slab_pre_alloc_hook mm/slub.c:4072 [inline]
        slab_alloc_node mm/slub.c:4148 [inline]
        __do_kmalloc_node mm/slub.c:4297 [inline]
        __kmalloc_noprof+0xdd/0x4c0 mm/slub.c:4310
        kmalloc_noprof include/linux/slab.h:905 [inline]
        kzalloc_noprof include/linux/slab.h:1037 [inline]
        btrfs_chunk_alloc_add_chunk_item+0x244/0x1100 fs/btrfs/volumes.c:5742
        reserve_chunk_space+0x1ca/0x2c0 fs/btrfs/block-group.c:4292
        check_system_chunk fs/btrfs/block-group.c:4319 [inline]
        do_chunk_alloc fs/btrfs/block-group.c:3891 [inline]
        btrfs_chunk_alloc+0x77b/0xf80 fs/btrfs/block-group.c:4187
        find_free_extent_update_loop fs/btrfs/extent-tree.c:4166 [inline]
        find_free_extent+0x42d1/0x5810 fs/btrfs/extent-tree.c:4579
        btrfs_reserve_extent+0x422/0x810 fs/btrfs/extent-tree.c:4672
        btrfs_new_extent_direct fs/btrfs/direct-io.c:186 [inline]
        btrfs_get_blocks_direct_write+0x706/0xfa0 fs/btrfs/direct-io.c:321
        btrfs_dio_iomap_begin+0xbb7/0x1180 fs/btrfs/direct-io.c:525
        iomap_iter+0x697/0xf60 fs/iomap/iter.c:90
        __iomap_dio_rw+0xeb9/0x25b0 fs/iomap/direct-io.c:702
        btrfs_dio_write fs/btrfs/direct-io.c:775 [inline]
        btrfs_direct_write+0x610/0xa30 fs/btrfs/direct-io.c:880
        btrfs_do_write_iter+0x2a0/0x760 fs/btrfs/file.c:1397
        do_iter_readv_writev+0x600/0x880
        vfs_writev+0x376/0xba0 fs/read_write.c:1050
        do_pwritev fs/read_write.c:1146 [inline]
        __do_sys_pwritev2 fs/read_write.c:1204 [inline]
        __se_sys_pwritev2+0x196/0x2b0 fs/read_write.c:1195
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
       RIP: 0033:0x7f1281f85d29
       RSP: 002b:00007f12819fe038 EFLAGS: 00000246 ORIG_RAX: 0000000000000148
       RAX: ffffffffffffffda RBX: 00007f1282176080 RCX: 00007f1281f85d29
       RDX: 0000000000000001 RSI: 0000000020000240 RDI: 0000000000000005
       RBP: 00007f12819fe090 R08: 0000000000000000 R09: 0000000000000003
       R10: 0000000000007000 R11: 0000000000000246 R12: 0000000000000002
       R13: 0000000000000000 R14: 00007f1282176080 R15: 00007ffcb9e23328
        </TASK>
       BTRFS error (device loop0 state A): Transaction aborted (error -12)
       BTRFS: error (device loop0 state A) in btrfs_chunk_alloc_add_chunk_item:5745: errno=-12 Out of memory
       BTRFS info (device loop0 state EA): forced readonly
       assertion failed: !(flags & ~BTRFS_ORDERED_TYPE_FLAGS), in fs/btrfs/ordered-data.c:1234
       ------------[ cut here ]------------
       kernel BUG at fs/btrfs/ordered-data.c:1234!
       Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
       CPU: 0 UID: 0 PID: 5321 Comm: syz.0.0 Not tainted 6.13.0-rc5-syzkaller #0
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
       RIP: 0010:btrfs_split_ordered_extent+0xd8d/0xe20 fs/btrfs/ordered-data.c:1234
       RSP: 0018:ffffc9000d1df2b8 EFLAGS: 00010246
       RAX: 0000000000000057 RBX: 000000000006a000 RCX: 9ce21886c4195300
       RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
       RBP: 0000000000000091 R08: ffffffff817f0a3c R09: 1ffff92001a3bdf4
       R10: dffffc0000000000 R11: fffff52001a3bdf5 R12: 1ffff1100a45f401
       R13: ffff8880522fa018 R14: dffffc0000000000 R15: 000000000006a000
       FS:  00007f12819fe6c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000557750bd7da8 CR3: 00000000400ea000 CR4: 0000000000352ef0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
       Call Trace:
        <TASK>
        btrfs_extract_ordered_extent fs/btrfs/direct-io.c:702 [inline]
        btrfs_dio_submit_io+0x4be/0x6d0 fs/btrfs/direct-io.c:737
        iomap_dio_submit_bio fs/iomap/direct-io.c:85 [inline]
        iomap_dio_bio_iter+0x1022/0x1740 fs/iomap/direct-io.c:447
        __iomap_dio_rw+0x13b7/0x25b0 fs/iomap/direct-io.c:703
        btrfs_dio_write fs/btrfs/direct-io.c:775 [inline]
        btrfs_direct_write+0x610/0xa30 fs/btrfs/direct-io.c:880
        btrfs_do_write_iter+0x2a0/0x760 fs/btrfs/file.c:1397
        do_iter_readv_writev+0x600/0x880
        vfs_writev+0x376/0xba0 fs/read_write.c:1050
        do_pwritev fs/read_write.c:1146 [inline]
        __do_sys_pwritev2 fs/read_write.c:1204 [inline]
        __se_sys_pwritev2+0x196/0x2b0 fs/read_write.c:1195
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
       RIP: 0033:0x7f1281f85d29
       RSP: 002b:00007f12819fe038 EFLAGS: 00000246 ORIG_RAX: 0000000000000148
       RAX: ffffffffffffffda RBX: 00007f1282176080 RCX: 00007f1281f85d29
       RDX: 0000000000000001 RSI: 0000000020000240 RDI: 0000000000000005
       RBP: 00007f12819fe090 R08: 0000000000000000 R09: 0000000000000003
       R10: 0000000000007000 R11: 0000000000000246 R12: 0000000000000002
       R13: 0000000000000000 R14: 00007f1282176080 R15: 00007ffcb9e23328
        </TASK>
       Modules linked in:
       ---[ end trace 0000000000000000 ]---
       RIP: 0010:btrfs_split_ordered_extent+0xd8d/0xe20 fs/btrfs/ordered-data.c:1234
       RSP: 0018:ffffc9000d1df2b8 EFLAGS: 00010246
       RAX: 0000000000000057 RBX: 000000000006a000 RCX: 9ce21886c4195300
       RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
       RBP: 0000000000000091 R08: ffffffff817f0a3c R09: 1ffff92001a3bdf4
       R10: dffffc0000000000 R11: fffff52001a3bdf5 R12: 1ffff1100a45f401
       R13: ffff8880522fa018 R14: dffffc0000000000 R15: 000000000006a000
       FS:  00007f12819fe6c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000557750bd7da8 CR3: 00000000400ea000 CR4: 0000000000352ef0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    In this case the transaction abort was due to (an injected) memory
    allocation failure when attempting to allocate a new chunk.
    
    Reported-by: syzbot+f60d8337a5c8e8d92a77@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/linux-btrfs/6777f2dd.050a0220.178762.0045.GAE@google.com/
    Fixes: 52b1fdca23ac ("btrfs: handle completed ordered extents in btrfs_split_ordered_extent")
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>

commit a216542027b892e6651c1b4e076012140d04afaf
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Jan 10 15:22:24 2025 +0000

    btrfs: fix lockdep splat while merging a relocation root
    
    When COWing a relocation tree path, at relocation.c:replace_path(), we
    can trigger a lockdep splat while we are in the btrfs_search_slot() call
    against the relocation root. This happens in that callchain at
    ctree.c:read_block_for_search() when we happen to find a child extent
    buffer already loaded through the fs tree with a lockdep class set to
    the fs tree. So when we attempt to lock that extent buffer through a
    relocation tree we have to reset the lockdep class to the class for a
    relocation tree, since a relocation tree has extent buffers that used
    to belong to a fs tree and may currently be already loaded (we swap
    extent buffers between the two trees at the end of replace_path()).
    
    However we are missing calls to btrfs_maybe_reset_lockdep_class() to reset
    the lockdep class at ctree.c:read_block_for_search() before we read lock
    an extent buffer, just like we did for btrfs_search_slot() in commit
    b40130b23ca4 ("btrfs: fix lockdep splat with reloc root extent buffers").
    
    So add the missing btrfs_maybe_reset_lockdep_class() calls before the
    attempts to read lock an extent buffer at ctree.c:read_block_for_search().
    
    The lockdep splat was reported by syzbot and it looks like this:
    
       ======================================================
       WARNING: possible circular locking dependency detected
       6.13.0-rc5-syzkaller-00163-gab75170520d4 #0 Not tainted
       ------------------------------------------------------
       syz.0.0/5335 is trying to acquire lock:
       ffff8880545dbc38 (btrfs-tree-01){++++}-{4:4}, at: btrfs_tree_read_lock_nested+0x2f/0x250 fs/btrfs/locking.c:146
    
       but task is already holding lock:
       ffff8880545dba58 (btrfs-treloc-02/1){+.+.}-{4:4}, at: btrfs_tree_lock_nested+0x2f/0x250 fs/btrfs/locking.c:189
    
       which lock already depends on the new lock.
    
       the existing dependency chain (in reverse order) is:
    
       -> #2 (btrfs-treloc-02/1){+.+.}-{4:4}:
              reacquire_held_locks+0x3eb/0x690 kernel/locking/lockdep.c:5374
              __lock_release kernel/locking/lockdep.c:5563 [inline]
              lock_release+0x396/0xa30 kernel/locking/lockdep.c:5870
              up_write+0x79/0x590 kernel/locking/rwsem.c:1629
              btrfs_force_cow_block+0x14b3/0x1fd0 fs/btrfs/ctree.c:660
              btrfs_cow_block+0x371/0x830 fs/btrfs/ctree.c:755
              btrfs_search_slot+0xc01/0x3180 fs/btrfs/ctree.c:2153
              replace_path+0x1243/0x2740 fs/btrfs/relocation.c:1224
              merge_reloc_root+0xc46/0x1ad0 fs/btrfs/relocation.c:1692
              merge_reloc_roots+0x3b3/0x980 fs/btrfs/relocation.c:1942
              relocate_block_group+0xb0a/0xd40 fs/btrfs/relocation.c:3754
              btrfs_relocate_block_group+0x77d/0xd90 fs/btrfs/relocation.c:4087
              btrfs_relocate_chunk+0x12c/0x3b0 fs/btrfs/volumes.c:3494
              __btrfs_balance+0x1b0f/0x26b0 fs/btrfs/volumes.c:4278
              btrfs_balance+0xbdc/0x10c0 fs/btrfs/volumes.c:4655
              btrfs_ioctl_balance+0x493/0x7c0 fs/btrfs/ioctl.c:3670
              vfs_ioctl fs/ioctl.c:51 [inline]
              __do_sys_ioctl fs/ioctl.c:906 [inline]
              __se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
              do_syscall_x64 arch/x86/entry/common.c:52 [inline]
              do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
              entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       -> #1 (btrfs-tree-01/1){+.+.}-{4:4}:
              lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
              down_write_nested+0xa2/0x220 kernel/locking/rwsem.c:1693
              btrfs_tree_lock_nested+0x2f/0x250 fs/btrfs/locking.c:189
              btrfs_init_new_buffer fs/btrfs/extent-tree.c:5052 [inline]
              btrfs_alloc_tree_block+0x41c/0x1440 fs/btrfs/extent-tree.c:5132
              btrfs_force_cow_block+0x526/0x1fd0 fs/btrfs/ctree.c:573
              btrfs_cow_block+0x371/0x830 fs/btrfs/ctree.c:755
              btrfs_search_slot+0xc01/0x3180 fs/btrfs/ctree.c:2153
              btrfs_insert_empty_items+0x9c/0x1a0 fs/btrfs/ctree.c:4351
              btrfs_insert_empty_item fs/btrfs/ctree.h:688 [inline]
              btrfs_insert_inode_ref+0x2bb/0xf80 fs/btrfs/inode-item.c:330
              btrfs_rename_exchange fs/btrfs/inode.c:7990 [inline]
              btrfs_rename2+0xcb7/0x2b90 fs/btrfs/inode.c:8374
              vfs_rename+0xbdb/0xf00 fs/namei.c:5067
              do_renameat2+0xd94/0x13f0 fs/namei.c:5224
              __do_sys_renameat2 fs/namei.c:5258 [inline]
              __se_sys_renameat2 fs/namei.c:5255 [inline]
              __x64_sys_renameat2+0xce/0xe0 fs/namei.c:5255
              do_syscall_x64 arch/x86/entry/common.c:52 [inline]
              do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
              entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       -> #0 (btrfs-tree-01){++++}-{4:4}:
              check_prev_add kernel/locking/lockdep.c:3161 [inline]
              check_prevs_add kernel/locking/lockdep.c:3280 [inline]
              validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3904
              __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226
              lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
              down_read_nested+0xb5/0xa50 kernel/locking/rwsem.c:1649
              btrfs_tree_read_lock_nested+0x2f/0x250 fs/btrfs/locking.c:146
              btrfs_tree_read_lock fs/btrfs/locking.h:188 [inline]
              read_block_for_search+0x718/0xbb0 fs/btrfs/ctree.c:1610
              btrfs_search_slot+0x1274/0x3180 fs/btrfs/ctree.c:2237
              replace_path+0x1243/0x2740 fs/btrfs/relocation.c:1224
              merge_reloc_root+0xc46/0x1ad0 fs/btrfs/relocation.c:1692
              merge_reloc_roots+0x3b3/0x980 fs/btrfs/relocation.c:1942
              relocate_block_group+0xb0a/0xd40 fs/btrfs/relocation.c:3754
              btrfs_relocate_block_group+0x77d/0xd90 fs/btrfs/relocation.c:4087
              btrfs_relocate_chunk+0x12c/0x3b0 fs/btrfs/volumes.c:3494
              __btrfs_balance+0x1b0f/0x26b0 fs/btrfs/volumes.c:4278
              btrfs_balance+0xbdc/0x10c0 fs/btrfs/volumes.c:4655
              btrfs_ioctl_balance+0x493/0x7c0 fs/btrfs/ioctl.c:3670
              vfs_ioctl fs/ioctl.c:51 [inline]
              __do_sys_ioctl fs/ioctl.c:906 [inline]
              __se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
              do_syscall_x64 arch/x86/entry/common.c:52 [inline]
              do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
              entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       other info that might help us debug this:
    
       Chain exists of:
         btrfs-tree-01 --> btrfs-tree-01/1 --> btrfs-treloc-02/1
    
        Possible unsafe locking scenario:
    
              CPU0                    CPU1
              ----                    ----
         lock(btrfs-treloc-02/1);
                                      lock(btrfs-tree-01/1);
                                      lock(btrfs-treloc-02/1);
         rlock(btrfs-tree-01);
    
        *** DEADLOCK ***
    
       8 locks held by syz.0.0/5335:
        #0: ffff88801e3ae420 (sb_writers#13){.+.+}-{0:0}, at: mnt_want_write_file+0x5e/0x200 fs/namespace.c:559
        #1: ffff888052c760d0 (&fs_info->reclaim_bgs_lock){+.+.}-{4:4}, at: __btrfs_balance+0x4c2/0x26b0 fs/btrfs/volumes.c:4183
        #2: ffff888052c74850 (&fs_info->cleaner_mutex){+.+.}-{4:4}, at: btrfs_relocate_block_group+0x775/0xd90 fs/btrfs/relocation.c:4086
        #3: ffff88801e3ae610 (sb_internal#2){.+.+}-{0:0}, at: merge_reloc_root+0xf11/0x1ad0 fs/btrfs/relocation.c:1659
        #4: ffff888052c76470 (btrfs_trans_num_writers){++++}-{0:0}, at: join_transaction+0x405/0xda0 fs/btrfs/transaction.c:288
        #5: ffff888052c76498 (btrfs_trans_num_extwriters){++++}-{0:0}, at: join_transaction+0x405/0xda0 fs/btrfs/transaction.c:288
        #6: ffff8880545db878 (btrfs-tree-01/1){+.+.}-{4:4}, at: btrfs_tree_lock_nested+0x2f/0x250 fs/btrfs/locking.c:189
        #7: ffff8880545dba58 (btrfs-treloc-02/1){+.+.}-{4:4}, at: btrfs_tree_lock_nested+0x2f/0x250 fs/btrfs/locking.c:189
    
       stack backtrace:
       CPU: 0 UID: 0 PID: 5335 Comm: syz.0.0 Not tainted 6.13.0-rc5-syzkaller-00163-gab75170520d4 #0
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
       Call Trace:
        <TASK>
        __dump_stack lib/dump_stack.c:94 [inline]
        dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
        print_circular_bug+0x13a/0x1b0 kernel/locking/lockdep.c:2074
        check_noncircular+0x36a/0x4a0 kernel/locking/lockdep.c:2206
        check_prev_add kernel/locking/lockdep.c:3161 [inline]
        check_prevs_add kernel/locking/lockdep.c:3280 [inline]
        validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3904
        __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226
        lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
        down_read_nested+0xb5/0xa50 kernel/locking/rwsem.c:1649
        btrfs_tree_read_lock_nested+0x2f/0x250 fs/btrfs/locking.c:146
        btrfs_tree_read_lock fs/btrfs/locking.h:188 [inline]
        read_block_for_search+0x718/0xbb0 fs/btrfs/ctree.c:1610
        btrfs_search_slot+0x1274/0x3180 fs/btrfs/ctree.c:2237
        replace_path+0x1243/0x2740 fs/btrfs/relocation.c:1224
        merge_reloc_root+0xc46/0x1ad0 fs/btrfs/relocation.c:1692
        merge_reloc_roots+0x3b3/0x980 fs/btrfs/relocation.c:1942
        relocate_block_group+0xb0a/0xd40 fs/btrfs/relocation.c:3754
        btrfs_relocate_block_group+0x77d/0xd90 fs/btrfs/relocation.c:4087
        btrfs_relocate_chunk+0x12c/0x3b0 fs/btrfs/volumes.c:3494
        __btrfs_balance+0x1b0f/0x26b0 fs/btrfs/volumes.c:4278
        btrfs_balance+0xbdc/0x10c0 fs/btrfs/volumes.c:4655
        btrfs_ioctl_balance+0x493/0x7c0 fs/btrfs/ioctl.c:3670
        vfs_ioctl fs/ioctl.c:51 [inline]
        __do_sys_ioctl fs/ioctl.c:906 [inline]
        __se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
       RIP: 0033:0x7f1ac6985d29
       Code: ff ff c3 (...)
       RSP: 002b:00007f1ac63fe038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
       RAX: ffffffffffffffda RBX: 00007f1ac6b76160 RCX: 00007f1ac6985d29
       RDX: 0000000020000180 RSI: 00000000c4009420 RDI: 0000000000000007
       RBP: 00007f1ac6a01b08 R08: 0000000000000000 R09: 0000000000000000
       R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
       R13: 0000000000000001 R14: 00007f1ac6b76160 R15: 00007fffda145a88
        </TASK>
    
    Reported-by: syzbot+63913e558c084f7f8fdc@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/linux-btrfs/677b3014.050a0220.3b53b0.0064.GAE@google.com/
    Fixes: 99785998ed1c ("btrfs: reduce lock contention when eb cache miss for btree search")
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>

commit 93c66fbc280747ea700bd6199633d661e3c819b3
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Fri Jan 10 10:05:54 2025 +0900

    powercap: call put_device() on an error path in powercap_register_control_type()
    
    powercap_register_control_type() calls device_register(), but does not
    release the refcount of the device when it fails.
    
    Call put_device() before returning an error to balance the refcount.
    
    Since the kfree(control_type) will be done by powercap_release(), remove
    the lines in powercap_register_control_type() before returning the error.
    
    This bug was found by an experimental verifier that I am developing.
    
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Link: https://patch.msgid.link/20250110010554.1583411-1-joe@pf.is.s.u-tokyo.ac.jp
    [ rjw: Changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit 53dac345395c0d2493cbc2f4c85fe38aef5b63f5
Author: Frederic Weisbecker <frederic@kernel.org>
Date:   Sat Jan 18 00:24:33 2025 +0100

    hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING
    
    hrtimers are migrated away from the dying CPU to any online target at
    the CPUHP_AP_HRTIMERS_DYING stage in order not to delay bandwidth timers
    handling tasks involved in the CPU hotplug forward progress.
    
    However wakeups can still be performed by the outgoing CPU after
    CPUHP_AP_HRTIMERS_DYING. Those can result again in bandwidth timers being
    armed. Depending on several considerations (crystal ball power management
    based election, earliest timer already enqueued, timer migration enabled or
    not), the target may eventually be the current CPU even if offline. If that
    happens, the timer is eventually ignored.
    
    The most notable example is RCU which had to deal with each and every of
    those wake-ups by deferring them to an online CPU, along with related
    workarounds:
    
    _ e787644caf76 (rcu: Defer RCU kthreads wakeup when CPU is dying)
    _ 9139f93209d1 (rcu/nocb: Fix RT throttling hrtimer armed from offline CPU)
    _ f7345ccc62a4 (rcu/nocb: Fix rcuog wake-up from offline softirq)
    
    The problem isn't confined to RCU though as the stop machine kthread
    (which runs CPUHP_AP_HRTIMERS_DYING) reports its completion at the end
    of its work through cpu_stop_signal_done() and performs a wake up that
    eventually arms the deadline server timer:
    
       WARNING: CPU: 94 PID: 588 at kernel/time/hrtimer.c:1086 hrtimer_start_range_ns+0x289/0x2d0
       CPU: 94 UID: 0 PID: 588 Comm: migration/94 Not tainted
       Stopper: multi_cpu_stop+0x0/0x120 <- stop_machine_cpuslocked+0x66/0xc0
       RIP: 0010:hrtimer_start_range_ns+0x289/0x2d0
       Call Trace:
       <TASK>
         start_dl_timer
         enqueue_dl_entity
         dl_server_start
         enqueue_task_fair
         enqueue_task
         ttwu_do_activate
         try_to_wake_up
         complete
         cpu_stopper_thread
    
    Instead of providing yet another bandaid to work around the situation, fix
    it in the hrtimers infrastructure instead: always migrate away a timer to
    an online target whenever it is enqueued from an offline CPU.
    
    This will also allow to revert all the above RCU disgraceful hacks.
    
    Fixes: 5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
    Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
    Reported-by: Usama Arif <usamaarif642@gmail.com>
    Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Tested-by: Paul E. McKenney <paulmck@kernel.org>
    Link: https://lore.kernel.org/all/20250117232433.24027-1-frederic@kernel.org
    Closes: 20241213203739.1519801-1-usamaarif642@gmail.com

commit 27af31e44949fa85550176520ef7086a0d00fd7b
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Jan 16 18:07:45 2025 +0200

    hrtimers: Mark is_migration_base() with __always_inline
    
    When is_migration_base() is unused, it prevents kernel builds
    with clang, `make W=1` and CONFIG_WERROR=y:
    
    kernel/time/hrtimer.c:156:20: error: unused function 'is_migration_base' [-Werror,-Wunused-function]
      156 | static inline bool is_migration_base(struct hrtimer_clock_base *base)
          |                    ^~~~~~~~~~~~~~~~~
    
    Fix this by marking it with __always_inline.
    
    [ tglx: Use __always_inline instead of __maybe_unused and move it into the
            usage sites conditional ]
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/all/20250116160745.243358-1-andriy.shevchenko@linux.intel.com

commit ee59e3820ca92a9f4307ae23dfc7229dc8b8d400
Author: Daniel Wagner <wagi@kernel.org>
Date:   Thu Jan 9 14:30:49 2025 +0100

    nvme-fc: do not ignore connectivity loss during connecting
    
    When a connectivity loss occurs while nvme_fc_create_assocation is
    being executed, it's possible that the ctrl ends up stuck in the LIVE
    state:
    
      1) nvme nvme10: NVME-FC{10}: create association : ...
      2) nvme nvme10: NVME-FC{10}: controller connectivity lost.
                      Awaiting Reconnect
         nvme nvme10: queue_size 128 > ctrl maxcmd 32, reducing to maxcmd
      3) nvme nvme10: Could not set queue count (880)
         nvme nvme10: Failed to configure AEN (cfg 900)
      4) nvme nvme10: NVME-FC{10}: controller connect complete
      5) nvme nvme10: failed nvme_keep_alive_end_io error=4
    
    A connection attempt starts 1) and the ctrl is in state CONNECTING.
    Shortly after the LLDD driver detects a connection lost event and calls
    nvme_fc_ctrl_connectivity_loss 2). Because we are still in CONNECTING
    state, this event is ignored.
    
    nvme_fc_create_association continues to run in parallel and tries to
    communicate with the controller and these commands will fail. Though
    these errors are filtered out, e.g in 3) setting the I/O queues numbers
    fails which leads to an early exit in nvme_fc_create_io_queues. Because
    the number of IO queues is 0 at this point, there is nothing left in
    nvme_fc_create_association which could detected the connection drop.
    Thus the ctrl enters LIVE state 4).
    
    Eventually the keep alive handler times out 5) but because nothing is
    being done, the ctrl stays in LIVE state.
    
    There is already the ASSOC_FAILED flag to track connectivity loss event
    but this bit is set too late in the recovery code path. Move this into
    the connectivity loss event handler and synchronize it with the state
    change. This ensures that the ASSOC_FAILED flag is seen by
    nvme_fc_create_io_queues and it does not enter the LIVE state after a
    connectivity loss event. If the connectivity loss event happens after we
    entered the LIVE state the normal error recovery path is executed.
    
    Signed-off-by: Daniel Wagner <wagi@kernel.org>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit 294b2b7516fd06a8dd82e4a6118f318ec521e706
Author: Daniel Wagner <wagi@kernel.org>
Date:   Thu Jan 9 14:30:48 2025 +0100

    nvme: handle connectivity loss in nvme_set_queue_count
    
    When the set feature attempts fails with any NVME status code set in
    nvme_set_queue_count, the function still report success. Though the
    numbers of queues set to 0. This is done to support controllers in
    degraded state (the admin queue is still up and running but no IO
    queues).
    
    Though there is an exception. When nvme_set_features reports an host
    path error, nvme_set_queue_count should propagate this error as the
    connectivity is lost, which means also the admin queue is not working
    anymore.
    
    Fixes: 9a0be7abb62f ("nvme: refactor set_queue_count")
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Daniel Wagner <wagi@kernel.org>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit d3d380eded7ee5fc2fc53b3b0e72365ded025c4a
Author: Daniel Wagner <wagi@kernel.org>
Date:   Thu Jan 9 14:30:47 2025 +0100

    nvme-fc: go straight to connecting state when initializing
    
    The initial controller initialization mimiks the reconnect loop
    behavior by switching from NEW to RESETTING and then to CONNECTING.
    
    The transition from NEW to CONNECTING is a valid transition, so there is
    no point entering the RESETTING state. TCP and RDMA also transition
    directly to CONNECTING state.
    
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Daniel Wagner <wagi@kernel.org>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit e06c9e3682f58fbeb632b7b866bb4fe66a4a4b42
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Jan 20 15:35:02 2025 +0100

    irqchip/lan966x-oic: Make CONFIG_LAN966X_OIC depend on CONFIG_MCHP_LAN966X_PCI
    
    The Microchip LAN966x outband interrupt controller is only present on
    Microchip LAN966x SoCs, and only used in PCI endpoint mode.  Hence add a
    dependency on MCHP_LAN966X_PCI, to prevent asking the user about this
    driver when configuring a kernel without Microchip LAN966x PCIe support.
    
    Fixes: 3e3a7b35332924c8 ("irqchip: Add support for LAN966x OIC")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Herve Codina <herve.codina@bootlin.com>
    Link: https://lore.kernel.org/all/28e8a605e72ee45e27f0d06b2b71366159a9c782.1737383314.git.geert+renesas@glider.be

commit 3fafa6a02be219ddd05d6201911534a34135cb82
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Jan 20 15:35:01 2025 +0100

    dt-bindings: interrupt-controller: microchip,lan966x-oic: Clarify endpoint use
    
    Reword the description, to make it clear that the LAN966x Outbound
    Interrupt Controller is used only in PCI endpoint mode.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Acked-by: Herve Codina <herve.codina@bootlin.com>
    Link: https://lore.kernel.org/all/247b1185c93610100f3f8c9e0ab2c1506e53e1f4.1737383314.git.geert+renesas@glider.be

commit 8c09f612b2937da109ed0df583ace3a29fc95a93
Author: Avri Altman <avri.altman@wdc.com>
Date:   Tue Jan 14 20:12:05 2025 +0200

    scsi: ufs: core: Simplify temperature exception event handling
    
    This commit simplifies the temperature exception event handling by removing
    the ufshcd_temp_exception_event_handler() function and directly calling
    ufs_hwmon_notify_event() in ufshcd_exception_event_handler().
    
    The ufshcd_temp_exception_event_handler() function contained a placeholder
    comment for platform vendors to add additional steps if required. However,
    since its introduction a few years ago, no vendor has added any additional
    steps. Therefore, the placeholder function is removed to streamline the
    code.
    
    Signed-off-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20250114181205.153760-1-avri.altman@wdc.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit c9d2782988df354b5a2db00be93920b4ecdde7a2
Author: Guixin Liu <kanie@linux.alibaba.com>
Date:   Tue Jan 14 10:50:41 2025 +0800

    scsi: target: core: Add line break to status show
    
    To ensure the output is not tangled with the shell prompt, add a line break
    to clearly display the status.
    
    Signed-off-by: Guixin Liu <kanie@linux.alibaba.com>
    Link: https://lore.kernel.org/r/20250114025041.97301-1-kanie@linux.alibaba.com
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 1b3e2d4ec0c5848776cc56d2624998aa5b2f0d27
Author: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Date:   Mon Jan 13 10:32:07 2025 -0800

    scsi: ufs: core: Fix the HIGH/LOW_TEMP Bit Definitions
    
    According to the UFS Device Specification, the dExtendedUFSFeaturesSupport
    defines the support for TOO_HIGH_TEMPERATURE as bit[4] and the
    TOO_LOW_TEMPERATURE as bit[5]. Correct the code to match with
    the UFS device specification definition.
    
    Cc: stable@vger.kernel.org
    Fixes: e88e2d32200a ("scsi: ufs: core: Probe for temperature notification support")
    Signed-off-by: Bao D. Nguyen <quic_nguyenb@quicinc.com>
    Link: https://lore.kernel.org/r/69992b3e3e3434a5c7643be5a64de48be892ca46.1736793068.git.quic_nguyenb@quicinc.com
    Reviewed-by: Avri Altman <Avri.Altman@wdc.com>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b893d7ff853e27aa6000fc4ca12e0ffda3318bfc
Author: Mike Christie <michael.christie@oracle.com>
Date:   Mon Jan 13 12:07:57 2025 -0600

    scsi: core: Add passthrough tests for success and no failure definitions
    
    This patch adds scsi_check_passthrough() tests for the cases where a
    command completes successfully and when the command failed but the caller
    did not pass in a list of failures.
    
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Link: https://lore.kernel.org/r/20250113180757.16691-1-michael.christie@oracle.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 3429dd57f0deb1a602c2624a1dd7c4c11b6c4734
Author: K Prateek Nayak <kprateek.nayak@amd.com>
Date:   Fri Jan 17 10:58:52 2025 +0000

    sched/fair: Fix inaccurate h_nr_runnable accounting with delayed dequeue
    
    set_delayed() adjusts cfs_rq->h_nr_runnable for the hierarchy when an
    entity is delayed irrespective of whether the entity corresponds to a
    task or a cfs_rq.
    
    Consider the following scenario:
    
            root
           /    \
          A      B (*) delayed since B is no longer eligible on root
          |      |
        Task0  Task1 <--- dequeue_task_fair() - task blocks
    
    When Task1 blocks (dequeue_entity() for task's se returns true),
    dequeue_entities() will continue adjusting cfs_rq->h_nr_* for the
    hierarchy of Task1. However, when the sched_entity corresponding to
    cfs_rq B is delayed, set_delayed() will adjust the h_nr_runnable for the
    hierarchy too leading to both dequeue_entity() and set_delayed()
    decrementing h_nr_runnable for the dequeue of the same task.
    
    A SCHED_WARN_ON() to inspect h_nr_runnable post its update in
    dequeue_entities() like below:
    
        cfs_rq->h_nr_runnable -= h_nr_runnable;
        SCHED_WARN_ON(((int) cfs_rq->h_nr_runnable) < 0);
    
    is consistently tripped when running wakeup intensive workloads like
    hackbench in a cgroup.
    
    This error is self correcting since cfs_rq are per-cpu and cannot
    migrate. The entitiy is either picked for full dequeue or is requeued
    when a task wakes up below it. Both those paths call clear_delayed()
    which again increments h_nr_runnable of the hierarchy without
    considering if the entity corresponds to a task or not.
    
    h_nr_runnable will eventually reflect the correct value however in the
    interim, the incorrect values can still influence PELT calculation which
    uses se->runnable_weight or cfs_rq->h_nr_runnable.
    
    Since only delayed tasks take the early return path in
    dequeue_entities() and enqueue_task_fair(), adjust the
    h_nr_runnable in {set,clear}_delayed() only when a task is delayed as
    this path skips the h_nr_* update loops and returns early.
    
    For entities corresponding to cfs_rq, the h_nr_* update loop in the
    caller will do the right thing.
    
    Fixes: 76f2f783294d ("sched/eevdf: More PELT vs DELAYED_DEQUEUE")
    Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
    Tested-by: Swapnil Sapkal <swapnil.sapkal@amd.com>
    Link: https://lkml.kernel.org/r/20250117105852.23908-1-kprateek.nayak@amd.com

commit 9bcbb6104a344d3526e185ee1e7b985509914e90
Author: Lokesh Vutla <lokeshvutla@google.com>
Date:   Tue Jan 21 04:40:16 2025 +0000

    KVM: arm64: Flush hyp bss section after initialization of variables in bss
    
    To determine CPU features during initialization, the nVHE hypervisor
    utilizes sanitized values of the host's CPU features registers. These
    values, stored in u64 idaa64*_el1_sys_val variables are updated by the
    kvm_hyp_init_symbols() function at EL1. To ensure EL2 visibility with
    the MMU off, the data cache needs to be flushed after these updates.
    However, individually flushing each variable using
    kvm_flush_dcache_to_poc() is inefficient.
    
    These cpu feature variables would be part of the bss section of
    the hypervisor. Hence, flush the entire bss section of hypervisor
    once the initialization is complete.
    
    Fixes: 6c30bfb18d0b ("KVM: arm64: Add handlers for protected VM System Registers")
    Suggested-by: Fuad Tabba <tabba@google.com>
    Signed-off-by: Lokesh Vutla <lokeshvutla@google.com>
    Link: https://lore.kernel.org/r/20250121044016.2219256-1-lokeshvutla@google.com
    Signed-off-by: Marc Zyngier <maz@kernel.org>

commit 11cb3529d18514f7d28ad2190533192aedefd761
Author: Georg Gottleuber <ggo@tuxedocomputers.com>
Date:   Mon Dec 16 23:28:04 2024 +0100

    nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
    
    On the TUXEDO InfinityBook Pro Gen9 Intel, a Samsung 990 Evo NVMe leads to
    a high power consumption in s2idle sleep (4 watts).
    
    This patch applies 'Force No Simple Suspend' quirk to achieve a sleep with
    a lower power consumption, typically around 1.2 watts.
    
    Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit dbf2bb1a1319b7c7d8828905378a6696cca6b0f2
Author: Georg Gottleuber <ggo@tuxedocomputers.com>
Date:   Mon Dec 16 23:28:03 2024 +0100

    nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
    
    On the TUXEDO InfinityFlex, a Samsung 990 Evo NVMe leads to a high power
    consumption in s2idle sleep (4 watts).
    
    This patch applies 'Force No Simple Suspend' quirk to achieve a sleep with
    a lower power consumption, typically around 1.4 watts.
    
    Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit d68fc95a771e0a7edd876ede7913d61276be77fd
Author: Francis Pravin <francis.p@samsung.com>
Date:   Fri Jan 17 05:12:09 2025 +0530

    nvme-pci: remove redundant dma frees in hmb
    
    The value of size is 0 when there is no dma buffer allocated. The value
    of i also remains 0. So, no need to free the dma buffer in out_free_bufs.
    Hence, remove the redundant dma frees.
    
    Signed-off-by: Francis Pravin <francis.p@samsung.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>

commit 3c47c2ccd5a29c78780ccfd0227a805f3873ab1c
Author: Keith Busch <kbusch@kernel.org>
Date:   Tue Jan 14 07:35:08 2025 -0800

    nvmet: fix rw control endian access
    
    Fixes: 3ec5c62cfcf060e ("nvmet: handle rw's limited retry flag")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501142128.WexgyMTv-lkp@intel.com/
    Cc: Guixin Liu <kanie@linux.alibaba.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>