mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
cxl_test: Limit location for fake CFMWS to mappable range
Some architectures (e.g. arm64) only support memory hotplug operations on a restricted set of physical addresses. This applies even when we are faking some CXL fixed memory windows for the purposes of cxl_test. That range can be queried with mhp_get_pluggable_range(true). Use the minimum of that the top of that range and iomem_resource.end to establish the 64GiB region used by cxl_test. From thread #2 which was related to the issue in #1. [ dj: Add CONFIG_MEMORY_HOTPLUG config check, from Alison ] Link: https://lore.kernel.org/linux-cxl/20250522145622.00002633@huawei.com/ #2 Reported-by: Itaru Kitayama <itaru.kitayama@linux.dev> Closes: https://github.com/pmem/ndctl/issues/278 #1 Reviewed-by: Dan Williams <dan.j.williams@intel.com> Tested-by: Itaru Kitayama <itaru.kitayama@fujitsu.com <mailto:itaru.kitayama@fujitsu.com> Tested-by: Marc Herbert <marc.herbert@linux.intel.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://patch.msgid.link/20250527153451.82858-1-Jonathan.Cameron@huawei.com Signed-off-by: Dave Jiang <dave.jiang@intel.com>
This commit is contained in:
committed by
Dave Jiang
parent
38b502e0a6
commit
60da1f685a
@@ -14,4 +14,5 @@ void check(void)
|
||||
BUILD_BUG_ON(!IS_ENABLED(CONFIG_CXL_REGION_INVALIDATION_TEST));
|
||||
BUILD_BUG_ON(!IS_ENABLED(CONFIG_NVDIMM_SECURITY_TEST));
|
||||
BUILD_BUG_ON(!IS_ENABLED(CONFIG_DEBUG_FS));
|
||||
BUILD_BUG_ON(!IS_ENABLED(CONFIG_MEMORY_HOTPLUG));
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Copyright(c) 2021 Intel Corporation. All rights reserved.
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/memory_hotplug.h>
|
||||
#include <linux/genalloc.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
@@ -1328,6 +1329,7 @@ err_mem:
|
||||
static __init int cxl_test_init(void)
|
||||
{
|
||||
int rc, i;
|
||||
struct range mappable;
|
||||
|
||||
cxl_acpi_test();
|
||||
cxl_core_test();
|
||||
@@ -1342,8 +1344,11 @@ static __init int cxl_test_init(void)
|
||||
rc = -ENOMEM;
|
||||
goto err_gen_pool_create;
|
||||
}
|
||||
mappable = mhp_get_pluggable_range(true);
|
||||
|
||||
rc = gen_pool_add(cxl_mock_pool, iomem_resource.end + 1 - SZ_64G,
|
||||
rc = gen_pool_add(cxl_mock_pool,
|
||||
min(iomem_resource.end + 1 - SZ_64G,
|
||||
mappable.end + 1 - SZ_64G),
|
||||
SZ_64G, NUMA_NO_NODE);
|
||||
if (rc)
|
||||
goto err_gen_pool_add;
|
||||
|
||||
Reference in New Issue
Block a user