Patch "cxl/pci: Fix to record only non-zero ranges" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    cxl/pci: Fix to record only non-zero ranges

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     cxl-pci-fix-to-record-only-non-zero-ranges.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a8e4438a70c91d72e71b5bdd2972ab055f5f5570
Author: Yanfei Xu <yanfei.xu@xxxxxxxxx>
Date:   Wed Aug 28 16:42:28 2024 +0800

    cxl/pci: Fix to record only non-zero ranges
    
    [ Upstream commit 55e268694e8b07026c88191f9b6949b6887d9ce3 ]
    
    The function cxl_dvsec_rr_decode() retrieves and records DVSEC ranges
    into info->dvsec_range[], regardless of whether it is non-zero range,
    and the variable info->ranges indicates the number of non-zero ranges.
    However, in cxl_hdm_decode_init(), the validation for
    info->dvsec_range[] occurs in a for loop that iterates based on
    info->ranges. It may result in zero range to be validated but non-zero
    range not be validated, in turn, the number of allowed ranges is to be
    0. Address it by only record non-zero ranges.
    
    This fix is not urgent as it requires a configuration that zeroes out
    the first dvsec range while populating the second. This has not been
    observed, but it is theoretically possible. If this gets picked up for
    -stable, no harm done, but there is no urgency to backport.
    
    Fixes: 560f78559006 ("cxl/pci: Retrieve CXL DVSEC memory info")
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
    Signed-off-by: Yanfei Xu <yanfei.xu@xxxxxxxxx>
    Reviewed-by: Alison Schofield <alison.schofield@xxxxxxxxx>
    Link: https://patch.msgid.link/20240828084231.1378789-2-yanfei.xu@xxxxxxxxx
    Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/cxl/core/pci.c b/drivers/cxl/core/pci.c
index 8567dd11eaac7..205085ccf12c3 100644
--- a/drivers/cxl/core/pci.c
+++ b/drivers/cxl/core/pci.c
@@ -390,10 +390,6 @@ int cxl_dvsec_rr_decode(struct device *dev, int d,
 
 		size |= temp & CXL_DVSEC_MEM_SIZE_LOW_MASK;
 		if (!size) {
-			info->dvsec_range[i] = (struct range) {
-				.start = 0,
-				.end = CXL_RESOURCE_NONE,
-			};
 			continue;
 		}
 
@@ -411,12 +407,10 @@ int cxl_dvsec_rr_decode(struct device *dev, int d,
 
 		base |= temp & CXL_DVSEC_MEM_BASE_LOW_MASK;
 
-		info->dvsec_range[i] = (struct range) {
+		info->dvsec_range[ranges++] = (struct range) {
 			.start = base,
 			.end = base + size - 1
 		};
-
-		ranges++;
 	}
 
 	info->ranges = ranges;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux