From: Sasha Levin Date: Wed, 26 Jun 2024 19:04:36 +0000 (-0400) Subject: Fixes for 6.1 X-Git-Tag: v4.19.317~156 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb8639a2f333e6d8b6aa7ec6ffb8a970f6c6c655;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 6.1 Signed-off-by: Sasha Levin --- diff --git a/queue-6.1/acpi-x86-force-storaged3enable-on-more-products.patch b/queue-6.1/acpi-x86-force-storaged3enable-on-more-products.patch new file mode 100644 index 00000000000..3ae3f51c52b --- /dev/null +++ b/queue-6.1/acpi-x86-force-storaged3enable-on-more-products.patch @@ -0,0 +1,85 @@ +From 1a131b6e666aea86d99441f53d04c080c6047f75 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 9 May 2024 13:45:02 -0500 +Subject: ACPI: x86: Force StorageD3Enable on more products + +From: Mario Limonciello + +[ Upstream commit e79a10652bbd320649da705ca1ea0c04351af403 ] + +A Rembrandt-based HP thin client is reported to have problems where +the NVME disk isn't present after resume from s2idle. + +This is because the NVME disk wasn't put into D3 at suspend, and +that happened because the StorageD3Enable _DSD was missing in the BIOS. + +As AMD's architecture requires that the NVME is in D3 for s2idle, adjust +the criteria for force_storage_d3 to match *all* Zen SoCs when the FADT +advertises low power idle support. + +This will ensure that any future products with this BIOS deficiency don't +need to be added to the allow list of overrides. + +Cc: All applicable +Signed-off-by: Mario Limonciello +Acked-by: Hans de Goede +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Sasha Levin +--- + drivers/acpi/x86/utils.c | 24 ++++++++++-------------- + 1 file changed, 10 insertions(+), 14 deletions(-) + +diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c +index ef431393381a0..d0257758cf989 100644 +--- a/drivers/acpi/x86/utils.c ++++ b/drivers/acpi/x86/utils.c +@@ -188,16 +188,16 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s + } + + /* +- * AMD systems from Renoir and Lucienne *require* that the NVME controller ++ * AMD systems from Renoir onwards *require* that the NVME controller + * is put into D3 over a Modern Standby / suspend-to-idle cycle. + * + * This is "typically" accomplished using the `StorageD3Enable` + * property in the _DSD that is checked via the `acpi_storage_d3` function +- * but this property was introduced after many of these systems launched +- * and most OEM systems don't have it in their BIOS. ++ * but some OEM systems still don't have it in their BIOS. + * + * The Microsoft documentation for StorageD3Enable mentioned that Windows has +- * a hardcoded allowlist for D3 support, which was used for these platforms. ++ * a hardcoded allowlist for D3 support as well as a registry key to override ++ * the BIOS, which has been used for these cases. + * + * This allows quirking on Linux in a similar fashion. + * +@@ -210,19 +210,15 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s + * https://bugzilla.kernel.org/show_bug.cgi?id=216773 + * https://bugzilla.kernel.org/show_bug.cgi?id=217003 + * 2) On at least one HP system StorageD3Enable is missing on the second NVME +- disk in the system. ++ * disk in the system. ++ * 3) On at least one HP Rembrandt system StorageD3Enable is missing on the only ++ * NVME device. + */ +-static const struct x86_cpu_id storage_d3_cpu_ids[] = { +- X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 24, NULL), /* Picasso */ +- X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 96, NULL), /* Renoir */ +- X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 104, NULL), /* Lucienne */ +- X86_MATCH_VENDOR_FAM_MODEL(AMD, 25, 80, NULL), /* Cezanne */ +- {} +-}; +- + bool force_storage_d3(void) + { +- return x86_match_cpu(storage_d3_cpu_ids); ++ if (!cpu_feature_enabled(X86_FEATURE_ZEN)) ++ return false; ++ return acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0; + } + + /* +-- +2.43.0 + diff --git a/queue-6.1/acpi-x86-utils-add-picasso-to-the-list-for-forcing-s.patch b/queue-6.1/acpi-x86-utils-add-picasso-to-the-list-for-forcing-s.patch new file mode 100644 index 00000000000..e79063f4684 --- /dev/null +++ b/queue-6.1/acpi-x86-utils-add-picasso-to-the-list-for-forcing-s.patch @@ -0,0 +1,43 @@ +From 01736072c3f5b4c20aa6a0f24f68fe1b19156300 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 31 Mar 2023 11:08:42 -0500 +Subject: ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable + +From: Mario Limonciello + +[ Upstream commit 10b6b4a8ac6120ec36555fd286eed577f7632e3b ] + +Picasso was the first APU that introduced s2idle support from AMD, +and it was predating before vendors started to use `StorageD3Enable` +in their firmware. + +Windows doesn't have problems with this hardware and NVME so it was +likely on the list of hardcoded CPUs to use this behavior in Windows. + +Add it to the list for Linux to avoid NVME resume issues. + +Reported-by: Stuart Axon +Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2449 +Signed-off-by: Mario Limonciello +Signed-off-by: Rafael J. Wysocki +Stable-dep-of: e79a10652bbd ("ACPI: x86: Force StorageD3Enable on more products") +Signed-off-by: Sasha Levin +--- + drivers/acpi/x86/utils.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c +index e45285d4e62a4..ef431393381a0 100644 +--- a/drivers/acpi/x86/utils.c ++++ b/drivers/acpi/x86/utils.c +@@ -213,6 +213,7 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s + disk in the system. + */ + static const struct x86_cpu_id storage_d3_cpu_ids[] = { ++ X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 24, NULL), /* Picasso */ + X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 96, NULL), /* Renoir */ + X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 104, NULL), /* Lucienne */ + X86_MATCH_VENDOR_FAM_MODEL(AMD, 25, 80, NULL), /* Cezanne */ +-- +2.43.0 + diff --git a/queue-6.1/series b/queue-6.1/series new file mode 100644 index 00000000000..a5155ff0b7a --- /dev/null +++ b/queue-6.1/series @@ -0,0 +1,6 @@ +usb-typec-ucsi-limit-read-size-on-v1.2.patch +usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch +usb-typec-ucsi-ack-also-failed-get-error-commands.patch +x86-mm-numa-use-numa_no_node-when-calling-memblock_s.patch +acpi-x86-utils-add-picasso-to-the-list-for-forcing-s.patch +acpi-x86-force-storaged3enable-on-more-products.patch diff --git a/queue-6.1/usb-typec-ucsi-ack-also-failed-get-error-commands.patch b/queue-6.1/usb-typec-ucsi-ack-also-failed-get-error-commands.patch new file mode 100644 index 00000000000..e868759fdbf --- /dev/null +++ b/queue-6.1/usb-typec-ucsi-ack-also-failed-get-error-commands.patch @@ -0,0 +1,48 @@ +From 6d0b6b578c292e0227fd029c895be374b753a7a7 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 31 May 2024 13:46:52 +0300 +Subject: usb: typec: ucsi: Ack also failed Get Error commands + +From: Heikki Krogerus + +[ Upstream commit 8bdf8a42bca4f47646fd105a387ab6926948c7f1 ] + +It is possible that also the GET_ERROR command fails. If +that happens, the command completion still needs to be +acknowledged. Otherwise the interface will be stuck until +it's reset. + +Reported-by: Ammy Yi +Fixes: bdc62f2bae8f ("usb: typec: ucsi: Simplified registration and I/O API") +Cc: stable@vger.kernel.org +Signed-off-by: Heikki Krogerus +Reviewed-by: Dmitry Baryshkov +Link: https://lore.kernel.org/r/20240531104653.1303519-1-heikki.krogerus@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Sasha Levin +--- + drivers/usb/typec/ucsi/ucsi.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c +index 778b76bbf80d7..e6d90cc5f877b 100644 +--- a/drivers/usb/typec/ucsi/ucsi.c ++++ b/drivers/usb/typec/ucsi/ucsi.c +@@ -153,8 +153,13 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd) + } + + if (cci & UCSI_CCI_ERROR) { +- if (cmd == UCSI_GET_ERROR_STATUS) ++ if (cmd == UCSI_GET_ERROR_STATUS) { ++ ret = ucsi_acknowledge(ucsi, false); ++ if (ret) ++ return ret; ++ + return -EIO; ++ } + return ucsi_read_error(ucsi); + } + +-- +2.43.0 + diff --git a/queue-6.1/usb-typec-ucsi-limit-read-size-on-v1.2.patch b/queue-6.1/usb-typec-ucsi-limit-read-size-on-v1.2.patch new file mode 100644 index 00000000000..026d1a1d1bf --- /dev/null +++ b/queue-6.1/usb-typec-ucsi-limit-read-size-on-v1.2.patch @@ -0,0 +1,110 @@ +From f5d8647dba9c4e7a9936fb1d475733a0d10a11f4 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 9 Feb 2024 14:37:30 -0800 +Subject: usb: typec: ucsi: Limit read size on v1.2 + +From: Abhishek Pandit-Subedi + +[ Upstream commit b3db266fb031fba88c423d4bb8983a73a3db6527 ] + +Between UCSI 1.2 and UCSI 2.0, the size of the MESSAGE_IN region was +increased from 16 to 256. In order to avoid overflowing reads for older +systems, add a mechanism to use the read UCSI version to truncate read +sizes on UCSI v1.2. + +Tested-by: Neil Armstrong +Reviewed-by: Prashant Malani +Reviewed-by: Heikki Krogerus +Signed-off-by: Abhishek Pandit-Subedi +Link: https://lore.kernel.org/r/20240209143723.v5.1.Iacf5570a66b82b73ef03daa6557e2fc0db10266a@changeid +Signed-off-by: Greg Kroah-Hartman +Stable-dep-of: 8bdf8a42bca4 ("usb: typec: ucsi: Ack also failed Get Error commands") +Signed-off-by: Sasha Levin +--- + drivers/usb/typec/ucsi/ucsi.c | 26 ++++++++++++++++++++++++-- + drivers/usb/typec/ucsi/ucsi.h | 11 +++++++++++ + 2 files changed, 35 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c +index a163218fdc749..2b541f7ca5ab4 100644 +--- a/drivers/usb/typec/ucsi/ucsi.c ++++ b/drivers/usb/typec/ucsi/ucsi.c +@@ -36,6 +36,19 @@ + */ + #define UCSI_SWAP_TIMEOUT_MS 5000 + ++static int ucsi_read_message_in(struct ucsi *ucsi, void *buf, ++ size_t buf_size) ++{ ++ /* ++ * Below UCSI 2.0, MESSAGE_IN was limited to 16 bytes. Truncate the ++ * reads here. ++ */ ++ if (ucsi->version <= UCSI_VERSION_1_2) ++ buf_size = clamp(buf_size, 0, 16); ++ ++ return ucsi->ops->read(ucsi, UCSI_MESSAGE_IN, buf, buf_size); ++} ++ + static int ucsi_acknowledge_command(struct ucsi *ucsi) + { + u64 ctrl; +@@ -72,7 +85,7 @@ static int ucsi_read_error(struct ucsi *ucsi) + if (ret < 0) + return ret; + +- ret = ucsi->ops->read(ucsi, UCSI_MESSAGE_IN, &error, sizeof(error)); ++ ret = ucsi_read_message_in(ucsi, &error, sizeof(error)); + if (ret) + return ret; + +@@ -174,7 +187,7 @@ int ucsi_send_command(struct ucsi *ucsi, u64 command, + length = ret; + + if (data) { +- ret = ucsi->ops->read(ucsi, UCSI_MESSAGE_IN, data, size); ++ ret = ucsi_read_message_in(ucsi, data, size); + if (ret) + goto out; + } +@@ -1451,6 +1464,15 @@ int ucsi_register(struct ucsi *ucsi) + if (!ucsi->version) + return -ENODEV; + ++ /* ++ * Version format is JJ.M.N (JJ = Major version, M = Minor version, ++ * N = sub-minor version). ++ */ ++ dev_dbg(ucsi->dev, "Registered UCSI interface with version %x.%x.%x", ++ UCSI_BCD_GET_MAJOR(ucsi->version), ++ UCSI_BCD_GET_MINOR(ucsi->version), ++ UCSI_BCD_GET_SUBMINOR(ucsi->version)); ++ + queue_delayed_work(system_long_wq, &ucsi->work, 0); + + return 0; +diff --git a/drivers/usb/typec/ucsi/ucsi.h b/drivers/usb/typec/ucsi/ucsi.h +index dbb10cb310d4c..304939a712bf8 100644 +--- a/drivers/usb/typec/ucsi/ucsi.h ++++ b/drivers/usb/typec/ucsi/ucsi.h +@@ -22,6 +22,17 @@ struct ucsi_altmode; + #define UCSI_CONTROL 8 + #define UCSI_MESSAGE_IN 16 + #define UCSI_MESSAGE_OUT 32 ++#define UCSIv2_MESSAGE_OUT 272 ++ ++/* UCSI versions */ ++#define UCSI_VERSION_1_2 0x0120 ++#define UCSI_VERSION_2_0 0x0200 ++#define UCSI_VERSION_2_1 0x0210 ++#define UCSI_VERSION_3_0 0x0300 ++ ++#define UCSI_BCD_GET_MAJOR(_v_) (((_v_) >> 8) & 0xFF) ++#define UCSI_BCD_GET_MINOR(_v_) (((_v_) >> 4) & 0x0F) ++#define UCSI_BCD_GET_SUBMINOR(_v_) ((_v_) & 0x0F) + + /* Command Status and Connector Change Indication (CCI) bits */ + #define UCSI_CCI_CONNECTOR(_c_) (((_c_) & GENMASK(7, 1)) >> 1) +-- +2.43.0 + diff --git a/queue-6.1/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch b/queue-6.1/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch new file mode 100644 index 00000000000..ab782706b26 --- /dev/null +++ b/queue-6.1/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch @@ -0,0 +1,159 @@ +From b2682e2441873a70228c123e10a4356cf31e1bde Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 27 Mar 2024 23:45:53 +0100 +Subject: usb: typec: ucsi: Never send a lone connector change ack + +From: Christian A. Ehrhardt + +[ Upstream commit de52aca4d9d56c3b2f00b638d457075914b1a227 ] + +Some PPM implementation do not like UCSI_ACK_CONNECTOR_CHANGE +without UCSI_ACK_COMMAND_COMPLETE. Moreover, doing this is racy +as it requires sending two UCSI_ACK_CC_CI commands in a row and +the second one will be started with UCSI_CCI_ACK_COMPLETE already +set in CCI. + +Bundle the UCSI_ACK_CONNECTOR_CHANGE with the UCSI_ACK_COMMAND_COMPLETE +for the UCSI_GET_CONNECTOR_STATUS command that is sent while +handling a connector change event. + +Signed-off-by: Christian A. Ehrhardt +Reviewed-by: Heikki Krogerus +Tested-by: Dmitry Baryshkov +Link: https://lore.kernel.org/r/20240327224554.1772525-3-lk@c--e.de +Signed-off-by: Greg Kroah-Hartman +Stable-dep-of: 8bdf8a42bca4 ("usb: typec: ucsi: Ack also failed Get Error commands") +Signed-off-by: Sasha Levin +--- + drivers/usb/typec/ucsi/ucsi.c | 48 +++++++++++++++-------------------- + 1 file changed, 21 insertions(+), 27 deletions(-) + +diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c +index 2b541f7ca5ab4..778b76bbf80d7 100644 +--- a/drivers/usb/typec/ucsi/ucsi.c ++++ b/drivers/usb/typec/ucsi/ucsi.c +@@ -49,22 +49,16 @@ static int ucsi_read_message_in(struct ucsi *ucsi, void *buf, + return ucsi->ops->read(ucsi, UCSI_MESSAGE_IN, buf, buf_size); + } + +-static int ucsi_acknowledge_command(struct ucsi *ucsi) ++static int ucsi_acknowledge(struct ucsi *ucsi, bool conn_ack) + { + u64 ctrl; + + ctrl = UCSI_ACK_CC_CI; + ctrl |= UCSI_ACK_COMMAND_COMPLETE; +- +- return ucsi->ops->sync_write(ucsi, UCSI_CONTROL, &ctrl, sizeof(ctrl)); +-} +- +-static int ucsi_acknowledge_connector_change(struct ucsi *ucsi) +-{ +- u64 ctrl; +- +- ctrl = UCSI_ACK_CC_CI; +- ctrl |= UCSI_ACK_CONNECTOR_CHANGE; ++ if (conn_ack) { ++ clear_bit(EVENT_PENDING, &ucsi->flags); ++ ctrl |= UCSI_ACK_CONNECTOR_CHANGE; ++ } + + return ucsi->ops->sync_write(ucsi, UCSI_CONTROL, &ctrl, sizeof(ctrl)); + } +@@ -77,7 +71,7 @@ static int ucsi_read_error(struct ucsi *ucsi) + int ret; + + /* Acknowledge the command that failed */ +- ret = ucsi_acknowledge_command(ucsi); ++ ret = ucsi_acknowledge(ucsi, false); + if (ret) + return ret; + +@@ -89,7 +83,7 @@ static int ucsi_read_error(struct ucsi *ucsi) + if (ret) + return ret; + +- ret = ucsi_acknowledge_command(ucsi); ++ ret = ucsi_acknowledge(ucsi, false); + if (ret) + return ret; + +@@ -152,7 +146,7 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd) + return -EIO; + + if (cci & UCSI_CCI_NOT_SUPPORTED) { +- if (ucsi_acknowledge_command(ucsi) < 0) ++ if (ucsi_acknowledge(ucsi, false) < 0) + dev_err(ucsi->dev, + "ACK of unsupported command failed\n"); + return -EOPNOTSUPP; +@@ -165,15 +159,15 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd) + } + + if (cmd == UCSI_CANCEL && cci & UCSI_CCI_CANCEL_COMPLETE) { +- ret = ucsi_acknowledge_command(ucsi); ++ ret = ucsi_acknowledge(ucsi, false); + return ret ? ret : -EBUSY; + } + + return UCSI_CCI_LENGTH(cci); + } + +-int ucsi_send_command(struct ucsi *ucsi, u64 command, +- void *data, size_t size) ++static int ucsi_send_command_common(struct ucsi *ucsi, u64 command, ++ void *data, size_t size, bool conn_ack) + { + u8 length; + int ret; +@@ -192,7 +186,7 @@ int ucsi_send_command(struct ucsi *ucsi, u64 command, + goto out; + } + +- ret = ucsi_acknowledge_command(ucsi); ++ ret = ucsi_acknowledge(ucsi, conn_ack); + if (ret) + goto out; + +@@ -201,6 +195,12 @@ int ucsi_send_command(struct ucsi *ucsi, u64 command, + mutex_unlock(&ucsi->ppm_lock); + return ret; + } ++ ++int ucsi_send_command(struct ucsi *ucsi, u64 command, ++ void *data, size_t size) ++{ ++ return ucsi_send_command_common(ucsi, command, data, size, false); ++} + EXPORT_SYMBOL_GPL(ucsi_send_command); + + /* -------------------------------------------------------------------------- */ +@@ -798,7 +798,9 @@ static void ucsi_handle_connector_change(struct work_struct *work) + mutex_lock(&con->lock); + + command = UCSI_GET_CONNECTOR_STATUS | UCSI_CONNECTOR_NUMBER(con->num); +- ret = ucsi_send_command(ucsi, command, &con->status, sizeof(con->status)); ++ ++ ret = ucsi_send_command_common(ucsi, command, &con->status, ++ sizeof(con->status), true); + if (ret < 0) { + dev_err(ucsi->dev, "%s: GET_CONNECTOR_STATUS failed (%d)\n", + __func__, ret); +@@ -846,14 +848,6 @@ static void ucsi_handle_connector_change(struct work_struct *work) + if (con->status.change & UCSI_CONSTAT_CAM_CHANGE) + ucsi_partner_task(con, ucsi_check_altmodes, 1, 0); + +- mutex_lock(&ucsi->ppm_lock); +- clear_bit(EVENT_PENDING, &con->ucsi->flags); +- ret = ucsi_acknowledge_connector_change(ucsi); +- mutex_unlock(&ucsi->ppm_lock); +- +- if (ret) +- dev_err(ucsi->dev, "%s: ACK failed (%d)", __func__, ret); +- + out_unlock: + mutex_unlock(&con->lock); + } +-- +2.43.0 + diff --git a/queue-6.1/x86-mm-numa-use-numa_no_node-when-calling-memblock_s.patch b/queue-6.1/x86-mm-numa-use-numa_no_node-when-calling-memblock_s.patch new file mode 100644 index 00000000000..c284a08ac40 --- /dev/null +++ b/queue-6.1/x86-mm-numa-use-numa_no_node-when-calling-memblock_s.patch @@ -0,0 +1,58 @@ +From 0f98069fc8273f8e9bc04093ff8eea72bb0b2891 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 29 May 2024 09:42:05 +0200 +Subject: x86/mm/numa: Use NUMA_NO_NODE when calling memblock_set_node() + +From: Jan Beulich + +[ Upstream commit 3ac36aa7307363b7247ccb6f6a804e11496b2b36 ] + +memblock_set_node() warns about using MAX_NUMNODES, see + + e0eec24e2e19 ("memblock: make memblock_set_node() also warn about use of MAX_NUMNODES") + +for details. + +Reported-by: Narasimhan V +Signed-off-by: Jan Beulich +Cc: stable@vger.kernel.org +[bp: commit message] +Signed-off-by: Borislav Petkov (AMD) +Reviewed-by: Mike Rapoport (IBM) +Tested-by: Paul E. McKenney +Link: https://lore.kernel.org/r/20240603141005.23261-1-bp@kernel.org +Link: https://lore.kernel.org/r/abadb736-a239-49e4-ab42-ace7acdd4278@suse.com +Signed-off-by: Mike Rapoport (IBM) +Signed-off-by: Sasha Levin +--- + arch/x86/mm/numa.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c +index c7fa5396c0f05..c281326baa144 100644 +--- a/arch/x86/mm/numa.c ++++ b/arch/x86/mm/numa.c +@@ -523,7 +523,7 @@ static void __init numa_clear_kernel_node_hotplug(void) + for_each_reserved_mem_region(mb_region) { + int nid = memblock_get_region_node(mb_region); + +- if (nid != MAX_NUMNODES) ++ if (nid != NUMA_NO_NODE) + node_set(nid, reserved_nodemask); + } + +@@ -643,9 +643,9 @@ static int __init numa_init(int (*init_func)(void)) + nodes_clear(node_online_map); + memset(&numa_meminfo, 0, sizeof(numa_meminfo)); + WARN_ON(memblock_set_node(0, ULLONG_MAX, &memblock.memory, +- MAX_NUMNODES)); ++ NUMA_NO_NODE)); + WARN_ON(memblock_set_node(0, ULLONG_MAX, &memblock.reserved, +- MAX_NUMNODES)); ++ NUMA_NO_NODE)); + /* In case that parsing SRAT failed. */ + WARN_ON(memblock_clear_hotplug(0, ULLONG_MAX)); + numa_reset_distance(); +-- +2.43.0 +