]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Merge branch 'for-6.18/cxl-delay-dport' into cxl-for-next
authorDave Jiang <dave.jiang@intel.com>
Thu, 18 Sep 2025 21:34:51 +0000 (14:34 -0700)
committerDave Jiang <dave.jiang@intel.com>
Thu, 18 Sep 2025 21:34:51 +0000 (14:34 -0700)
Add changes to delay the allocation and setup of dports until when the
endpoint device is being probed. At this point, the CXL link is
established from endpoint to host bridge. Addresses issues seen on
some platforms when dports are probed earlier.

Link: https://lore.kernel.org/linux-cxl/20250829180928.842707-1-dave.jiang@intel.com/
1  2 
drivers/cxl/acpi.c
drivers/cxl/core/cdat.c
drivers/cxl/core/core.h
drivers/cxl/core/hdm.c
drivers/cxl/core/port.c
drivers/cxl/core/region.c
drivers/cxl/cxl.h
tools/testing/cxl/test/cxl.c

index ff15dac3f294444130579ef447bf4ec7a384f39a,bb0871d92620631fb58bc41456a51a5d1dc58b39..d7a5539d07d4f5ef4ea4ea673065a8c252abf555
@@@ -475,16 -471,10 +474,16 @@@ static int __cxl_parse_cfmws(struct acp
  
        cxlrd->qos_class = cfmws->qtg_id;
  
 -      if (cfmws->interleave_arithmetic == ACPI_CEDT_CFMWS_ARITHMETIC_XOR)
 -              cxlrd->hpa_to_spa = cxl_xor_hpa_to_spa;
 +      if (cfmws->interleave_arithmetic == ACPI_CEDT_CFMWS_ARITHMETIC_XOR) {
 +              cxlrd->ops = kzalloc(sizeof(*cxlrd->ops), GFP_KERNEL);
 +              if (!cxlrd->ops)
 +                      return -ENOMEM;
 +
 +              cxlrd->ops->hpa_to_spa = cxl_apply_xor_maps;
 +              cxlrd->ops->spa_to_hpa = cxl_apply_xor_maps;
 +      }
  
-       rc = cxl_decoder_add(cxld, target_map);
+       rc = cxl_decoder_add(cxld);
        if (rc)
                return rc;
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge