From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C416C433FE for ; Wed, 29 Sep 2021 14:37:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 65DDC6142A for ; Wed, 29 Sep 2021 14:37:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344550AbhI2OjN (ORCPT ); Wed, 29 Sep 2021 10:39:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:45202 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344570AbhI2OjH (ORCPT ); Wed, 29 Sep 2021 10:39:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1632926246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DBk2o3Wn5ME4zAyV3V8BGHHmKTT8FNWmDcNVAxfbuKM=; b=as8s4IcxzNXJLtAGPFuO5UeAN9KEljqNf4LBXnV0rQUGM7NRnaxag/k2oWyjXbxj26cXb2 IxBCoUmkDQtsO4imQ5Ftxir+FZIj3V9dMw8fEEK/4DI9WxcKIqPK82/mNrZ9of29Z4/evD kz+cTHUFOzc266Z3vIycgWmspGY9DYk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-54DoF-KKPJ6fw6WeyltG_A-1; Wed, 29 Sep 2021 10:37:24 -0400 X-MC-Unique: 54DoF-KKPJ6fw6WeyltG_A-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83AE719253C3; Wed, 29 Sep 2021 14:37:21 +0000 (UTC) Received: from t480s.redhat.com (unknown [10.39.195.135]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5A1BC100760B; Wed, 29 Sep 2021 14:37:15 +0000 (UTC) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: David Hildenbrand , Andrew Morton , Jonathan Corbet , Alex Shi , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Greg Kroah-Hartman , "Rafael J. Wysocki" , "Michael S. Tsirkin" , Jason Wang , Shuah Khan , Michal Hocko , Oscar Salvador , Mike Rapoport , x86@kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org Subject: [PATCH v1 4/6] mm/memory_hotplug: remove HIGHMEM leftovers Date: Wed, 29 Sep 2021 16:35:58 +0200 Message-Id: <20210929143600.49379-5-david@redhat.com> In-Reply-To: <20210929143600.49379-1-david@redhat.com> References: <20210929143600.49379-1-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org We don't support CONFIG_MEMORY_HOTPLUG on 32 bit and consequently not HIGHMEM. Let's remove any leftover code -- including the unused "status_change_nid_high" field part of the memory notifier. Signed-off-by: David Hildenbrand --- Documentation/core-api/memory-hotplug.rst | 3 -- .../zh_CN/core-api/memory-hotplug.rst | 4 --- include/linux/memory.h | 1 - mm/memory_hotplug.c | 36 ++----------------- 4 files changed, 2 insertions(+), 42 deletions(-) diff --git a/Documentation/core-api/memory-hotplug.rst b/Documentation/core-api/memory-hotplug.rst index de7467e48067..682259ee633a 100644 --- a/Documentation/core-api/memory-hotplug.rst +++ b/Documentation/core-api/memory-hotplug.rst @@ -57,7 +57,6 @@ The third argument (arg) passes a pointer of struct memory_notify:: unsigned long start_pfn; unsigned long nr_pages; int status_change_nid_normal; - int status_change_nid_high; int status_change_nid; } @@ -65,8 +64,6 @@ The third argument (arg) passes a pointer of struct memory_notify:: - nr_pages is # of pages of online/offline memory. - status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask is (will be) set/clear, if this is -1, then nodemask status is not changed. -- status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask - is (will be) set/clear, if this is -1, then nodemask status is not changed. - status_change_nid is set node id when N_MEMORY of nodemask is (will be) set/clear. It means a new(memoryless) node gets new memory by online and a node loses all memory. If this is -1, then nodemask status is not changed. diff --git a/Documentation/translations/zh_CN/core-api/memory-hotplug.rst b/Documentation/translations/zh_CN/core-api/memory-hotplug.rst index 161f4d2c18cc..9a204eb196f2 100644 --- a/Documentation/translations/zh_CN/core-api/memory-hotplug.rst +++ b/Documentation/translations/zh_CN/core-api/memory-hotplug.rst @@ -63,7 +63,6 @@ memory_notify结构体的指针:: unsigned long start_pfn; unsigned long nr_pages; int status_change_nid_normal; - int status_change_nid_high; int status_change_nid; } @@ -74,9 +73,6 @@ memory_notify结构体的指针:: - status_change_nid_normal是当nodemask的N_NORMAL_MEMORY被设置/清除时设置节 点id,如果是-1,则nodemask状态不改变。 -- status_change_nid_high是当nodemask的N_HIGH_MEMORY被设置/清除时设置的节点 - id,如果这个值为-1,那么nodemask状态不会改变。 - - status_change_nid是当nodemask的N_MEMORY被(将)设置/清除时设置的节点id。这 意味着一个新的(没上线的)节点通过联机获得新的内存,而一个节点失去了所有的内 存。如果这个值为-1,那么nodemask的状态就不会改变。 diff --git a/include/linux/memory.h b/include/linux/memory.h index dd6e608c3e0b..c46ff374d48d 100644 --- a/include/linux/memory.h +++ b/include/linux/memory.h @@ -96,7 +96,6 @@ struct memory_notify { unsigned long start_pfn; unsigned long nr_pages; int status_change_nid_normal; - int status_change_nid_high; int status_change_nid; }; diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 8d7b2b593a26..95c927c8bfb8 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include @@ -585,10 +584,6 @@ void generic_online_page(struct page *page, unsigned int order) debug_pagealloc_map_pages(page, 1 << order); __free_pages_core(page, order); totalram_pages_add(1UL << order); -#ifdef CONFIG_HIGHMEM - if (PageHighMem(page)) - totalhigh_pages_add(1UL << order); -#endif } EXPORT_SYMBOL_GPL(generic_online_page); @@ -625,16 +620,11 @@ static void node_states_check_changes_online(unsigned long nr_pages, arg->status_change_nid = NUMA_NO_NODE; arg->status_change_nid_normal = NUMA_NO_NODE; - arg->status_change_nid_high = NUMA_NO_NODE; if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; if (zone_idx(zone) <= ZONE_NORMAL && !node_state(nid, N_NORMAL_MEMORY)) arg->status_change_nid_normal = nid; -#ifdef CONFIG_HIGHMEM - if (zone_idx(zone) <= ZONE_HIGHMEM && !node_state(nid, N_HIGH_MEMORY)) - arg->status_change_nid_high = nid; -#endif } static void node_states_set_node(int node, struct memory_notify *arg) @@ -642,9 +632,6 @@ static void node_states_set_node(int node, struct memory_notify *arg) if (arg->status_change_nid_normal >= 0) node_set_state(node, N_NORMAL_MEMORY); - if (arg->status_change_nid_high >= 0) - node_set_state(node, N_HIGH_MEMORY); - if (arg->status_change_nid >= 0) node_set_state(node, N_MEMORY); } @@ -1801,7 +1788,6 @@ static void node_states_check_changes_offline(unsigned long nr_pages, arg->status_change_nid = NUMA_NO_NODE; arg->status_change_nid_normal = NUMA_NO_NODE; - arg->status_change_nid_high = NUMA_NO_NODE; /* * Check whether node_states[N_NORMAL_MEMORY] will be changed. @@ -1816,24 +1802,9 @@ static void node_states_check_changes_offline(unsigned long nr_pages, if (zone_idx(zone) <= ZONE_NORMAL && nr_pages >= present_pages) arg->status_change_nid_normal = zone_to_nid(zone); -#ifdef CONFIG_HIGHMEM - /* - * node_states[N_HIGH_MEMORY] contains nodes which - * have normal memory or high memory. - * Here we add the present_pages belonging to ZONE_HIGHMEM. - * If the zone is within the range of [0..ZONE_HIGHMEM), and - * we determine that the zones in that range become empty, - * we need to clear the node for N_HIGH_MEMORY. - */ - present_pages += pgdat->node_zones[ZONE_HIGHMEM].present_pages; - if (zone_idx(zone) <= ZONE_HIGHMEM && nr_pages >= present_pages) - arg->status_change_nid_high = zone_to_nid(zone); -#endif - /* - * We have accounted the pages from [0..ZONE_NORMAL), and - * in case of CONFIG_HIGHMEM the pages from ZONE_HIGHMEM - * as well. + * We have accounted the pages from [0..ZONE_NORMAL); ZONE_HIGHMEM + * does not apply as we don't support 32bit. * Here we count the possible pages from ZONE_MOVABLE. * If after having accounted all the pages, we see that the nr_pages * to be offlined is over or equal to the accounted pages, @@ -1851,9 +1822,6 @@ static void node_states_clear_node(int node, struct memory_notify *arg) if (arg->status_change_nid_normal >= 0) node_clear_state(node, N_NORMAL_MEMORY); - if (arg->status_change_nid_high >= 0) - node_clear_state(node, N_HIGH_MEMORY); - if (arg->status_change_nid >= 0) node_clear_state(node, N_MEMORY); } -- 2.31.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DB8FC433F5 for ; Wed, 29 Sep 2021 14:40:50 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 16D8861288 for ; Wed, 29 Sep 2021 14:40:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 16D8861288 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.ozlabs.org Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4HKJvh412lz3cY7 for ; Thu, 30 Sep 2021 00:40:48 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bzT13D5T; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bzT13D5T; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=redhat.com (client-ip=170.10.133.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=david@redhat.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bzT13D5T; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bzT13D5T; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4HKJsC0X1vz3c9v for ; Thu, 30 Sep 2021 00:38:38 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1632926315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DBk2o3Wn5ME4zAyV3V8BGHHmKTT8FNWmDcNVAxfbuKM=; b=bzT13D5TU/jqUS1BEaacc7ygtis6bMULpHBjrqL706QaDyfk64uSFPWTRUPGUDDAP5k4t9 WFZTH6Fz5kMGymClNBc13C0k9cRgtekaHEf0X7MjtZcQJImH6PdIrnqjU4YAzGQuWmP2up tiSZyllJkpzvDRgIntnv/BhwgUM7IEc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1632926315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DBk2o3Wn5ME4zAyV3V8BGHHmKTT8FNWmDcNVAxfbuKM=; b=bzT13D5TU/jqUS1BEaacc7ygtis6bMULpHBjrqL706QaDyfk64uSFPWTRUPGUDDAP5k4t9 WFZTH6Fz5kMGymClNBc13C0k9cRgtekaHEf0X7MjtZcQJImH6PdIrnqjU4YAzGQuWmP2up tiSZyllJkpzvDRgIntnv/BhwgUM7IEc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-54DoF-KKPJ6fw6WeyltG_A-1; Wed, 29 Sep 2021 10:37:24 -0400 X-MC-Unique: 54DoF-KKPJ6fw6WeyltG_A-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83AE719253C3; Wed, 29 Sep 2021 14:37:21 +0000 (UTC) Received: from t480s.redhat.com (unknown [10.39.195.135]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5A1BC100760B; Wed, 29 Sep 2021 14:37:15 +0000 (UTC) From: David Hildenbrand To: linux-kernel@vger.kernel.org Subject: [PATCH v1 4/6] mm/memory_hotplug: remove HIGHMEM leftovers Date: Wed, 29 Sep 2021 16:35:58 +0200 Message-Id: <20210929143600.49379-5-david@redhat.com> In-Reply-To: <20210929143600.49379-1-david@redhat.com> References: <20210929143600.49379-1-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michal Hocko , "Michael S. Tsirkin" , Peter Zijlstra , Jason Wang , Dave Hansen , x86@kernel.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, Paul Mackerras , linux-kselftest@vger.kernel.org, "H. Peter Anvin" , Shuah Khan , Alex Shi , Jonathan Corbet , David Hildenbrand , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Oscar Salvador , Greg Kroah-Hartman , linux-doc@vger.kernel.org, "Rafael J. Wysocki" , Andrew Morton , linuxppc-dev@lists.ozlabs.org, Mike Rapoport Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" We don't support CONFIG_MEMORY_HOTPLUG on 32 bit and consequently not HIGHMEM. Let's remove any leftover code -- including the unused "status_change_nid_high" field part of the memory notifier. Signed-off-by: David Hildenbrand --- Documentation/core-api/memory-hotplug.rst | 3 -- .../zh_CN/core-api/memory-hotplug.rst | 4 --- include/linux/memory.h | 1 - mm/memory_hotplug.c | 36 ++----------------- 4 files changed, 2 insertions(+), 42 deletions(-) diff --git a/Documentation/core-api/memory-hotplug.rst b/Documentation/core-api/memory-hotplug.rst index de7467e48067..682259ee633a 100644 --- a/Documentation/core-api/memory-hotplug.rst +++ b/Documentation/core-api/memory-hotplug.rst @@ -57,7 +57,6 @@ The third argument (arg) passes a pointer of struct memory_notify:: unsigned long start_pfn; unsigned long nr_pages; int status_change_nid_normal; - int status_change_nid_high; int status_change_nid; } @@ -65,8 +64,6 @@ The third argument (arg) passes a pointer of struct memory_notify:: - nr_pages is # of pages of online/offline memory. - status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask is (will be) set/clear, if this is -1, then nodemask status is not changed. -- status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask - is (will be) set/clear, if this is -1, then nodemask status is not changed. - status_change_nid is set node id when N_MEMORY of nodemask is (will be) set/clear. It means a new(memoryless) node gets new memory by online and a node loses all memory. If this is -1, then nodemask status is not changed. diff --git a/Documentation/translations/zh_CN/core-api/memory-hotplug.rst b/Documentation/translations/zh_CN/core-api/memory-hotplug.rst index 161f4d2c18cc..9a204eb196f2 100644 --- a/Documentation/translations/zh_CN/core-api/memory-hotplug.rst +++ b/Documentation/translations/zh_CN/core-api/memory-hotplug.rst @@ -63,7 +63,6 @@ memory_notify结构体的指针:: unsigned long start_pfn; unsigned long nr_pages; int status_change_nid_normal; - int status_change_nid_high; int status_change_nid; } @@ -74,9 +73,6 @@ memory_notify结构体的指针:: - status_change_nid_normal是当nodemask的N_NORMAL_MEMORY被设置/清除时设置节 点id,如果是-1,则nodemask状态不改变。 -- status_change_nid_high是当nodemask的N_HIGH_MEMORY被设置/清除时设置的节点 - id,如果这个值为-1,那么nodemask状态不会改变。 - - status_change_nid是当nodemask的N_MEMORY被(将)设置/清除时设置的节点id。这 意味着一个新的(没上线的)节点通过联机获得新的内存,而一个节点失去了所有的内 存。如果这个值为-1,那么nodemask的状态就不会改变。 diff --git a/include/linux/memory.h b/include/linux/memory.h index dd6e608c3e0b..c46ff374d48d 100644 --- a/include/linux/memory.h +++ b/include/linux/memory.h @@ -96,7 +96,6 @@ struct memory_notify { unsigned long start_pfn; unsigned long nr_pages; int status_change_nid_normal; - int status_change_nid_high; int status_change_nid; }; diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 8d7b2b593a26..95c927c8bfb8 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include @@ -585,10 +584,6 @@ void generic_online_page(struct page *page, unsigned int order) debug_pagealloc_map_pages(page, 1 << order); __free_pages_core(page, order); totalram_pages_add(1UL << order); -#ifdef CONFIG_HIGHMEM - if (PageHighMem(page)) - totalhigh_pages_add(1UL << order); -#endif } EXPORT_SYMBOL_GPL(generic_online_page); @@ -625,16 +620,11 @@ static void node_states_check_changes_online(unsigned long nr_pages, arg->status_change_nid = NUMA_NO_NODE; arg->status_change_nid_normal = NUMA_NO_NODE; - arg->status_change_nid_high = NUMA_NO_NODE; if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; if (zone_idx(zone) <= ZONE_NORMAL && !node_state(nid, N_NORMAL_MEMORY)) arg->status_change_nid_normal = nid; -#ifdef CONFIG_HIGHMEM - if (zone_idx(zone) <= ZONE_HIGHMEM && !node_state(nid, N_HIGH_MEMORY)) - arg->status_change_nid_high = nid; -#endif } static void node_states_set_node(int node, struct memory_notify *arg) @@ -642,9 +632,6 @@ static void node_states_set_node(int node, struct memory_notify *arg) if (arg->status_change_nid_normal >= 0) node_set_state(node, N_NORMAL_MEMORY); - if (arg->status_change_nid_high >= 0) - node_set_state(node, N_HIGH_MEMORY); - if (arg->status_change_nid >= 0) node_set_state(node, N_MEMORY); } @@ -1801,7 +1788,6 @@ static void node_states_check_changes_offline(unsigned long nr_pages, arg->status_change_nid = NUMA_NO_NODE; arg->status_change_nid_normal = NUMA_NO_NODE; - arg->status_change_nid_high = NUMA_NO_NODE; /* * Check whether node_states[N_NORMAL_MEMORY] will be changed. @@ -1816,24 +1802,9 @@ static void node_states_check_changes_offline(unsigned long nr_pages, if (zone_idx(zone) <= ZONE_NORMAL && nr_pages >= present_pages) arg->status_change_nid_normal = zone_to_nid(zone); -#ifdef CONFIG_HIGHMEM - /* - * node_states[N_HIGH_MEMORY] contains nodes which - * have normal memory or high memory. - * Here we add the present_pages belonging to ZONE_HIGHMEM. - * If the zone is within the range of [0..ZONE_HIGHMEM), and - * we determine that the zones in that range become empty, - * we need to clear the node for N_HIGH_MEMORY. - */ - present_pages += pgdat->node_zones[ZONE_HIGHMEM].present_pages; - if (zone_idx(zone) <= ZONE_HIGHMEM && nr_pages >= present_pages) - arg->status_change_nid_high = zone_to_nid(zone); -#endif - /* - * We have accounted the pages from [0..ZONE_NORMAL), and - * in case of CONFIG_HIGHMEM the pages from ZONE_HIGHMEM - * as well. + * We have accounted the pages from [0..ZONE_NORMAL); ZONE_HIGHMEM + * does not apply as we don't support 32bit. * Here we count the possible pages from ZONE_MOVABLE. * If after having accounted all the pages, we see that the nr_pages * to be offlined is over or equal to the accounted pages, @@ -1851,9 +1822,6 @@ static void node_states_clear_node(int node, struct memory_notify *arg) if (arg->status_change_nid_normal >= 0) node_clear_state(node, N_NORMAL_MEMORY); - if (arg->status_change_nid_high >= 0) - node_clear_state(node, N_HIGH_MEMORY); - if (arg->status_change_nid >= 0) node_clear_state(node, N_MEMORY); } -- 2.31.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0ECDBC433EF for ; Wed, 29 Sep 2021 14:37:32 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C60C7613D3 for ; Wed, 29 Sep 2021 14:37:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C60C7613D3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 9684F406E5; Wed, 29 Sep 2021 14:37:31 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id naPg_93SCi8N; Wed, 29 Sep 2021 14:37:30 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp2.osuosl.org (Postfix) with ESMTPS id A4FDB4024A; Wed, 29 Sep 2021 14:37:29 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 8B53DC000F; Wed, 29 Sep 2021 14:37:29 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 49170C000D for ; Wed, 29 Sep 2021 14:37:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 379BB406E5 for ; Wed, 29 Sep 2021 14:37:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xY3jyOYs2PZn for ; Wed, 29 Sep 2021 14:37:27 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id 0FA204024A for ; Wed, 29 Sep 2021 14:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1632926246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DBk2o3Wn5ME4zAyV3V8BGHHmKTT8FNWmDcNVAxfbuKM=; b=as8s4IcxzNXJLtAGPFuO5UeAN9KEljqNf4LBXnV0rQUGM7NRnaxag/k2oWyjXbxj26cXb2 IxBCoUmkDQtsO4imQ5Ftxir+FZIj3V9dMw8fEEK/4DI9WxcKIqPK82/mNrZ9of29Z4/evD kz+cTHUFOzc266Z3vIycgWmspGY9DYk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-54DoF-KKPJ6fw6WeyltG_A-1; Wed, 29 Sep 2021 10:37:24 -0400 X-MC-Unique: 54DoF-KKPJ6fw6WeyltG_A-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83AE719253C3; Wed, 29 Sep 2021 14:37:21 +0000 (UTC) Received: from t480s.redhat.com (unknown [10.39.195.135]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5A1BC100760B; Wed, 29 Sep 2021 14:37:15 +0000 (UTC) From: David Hildenbrand To: linux-kernel@vger.kernel.org Subject: [PATCH v1 4/6] mm/memory_hotplug: remove HIGHMEM leftovers Date: Wed, 29 Sep 2021 16:35:58 +0200 Message-Id: <20210929143600.49379-5-david@redhat.com> In-Reply-To: <20210929143600.49379-1-david@redhat.com> References: <20210929143600.49379-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Cc: Michal Hocko , "Michael S. Tsirkin" , Peter Zijlstra , Benjamin Herrenschmidt , Dave Hansen , x86@kernel.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, Paul Mackerras , linux-kselftest@vger.kernel.org, "H. Peter Anvin" , Shuah Khan , Alex Shi , Jonathan Corbet , Michael Ellerman , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Oscar Salvador , Greg Kroah-Hartman , linux-doc@vger.kernel.org, "Rafael J. Wysocki" , Andrew Morton , linuxppc-dev@lists.ozlabs.org, Mike Rapoport X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" V2UgZG9uJ3Qgc3VwcG9ydCBDT05GSUdfTUVNT1JZX0hPVFBMVUcgb24gMzIgYml0IGFuZCBjb25z ZXF1ZW50bHkgbm90CkhJR0hNRU0uIExldCdzIHJlbW92ZSBhbnkgbGVmdG92ZXIgY29kZSAtLSBp bmNsdWRpbmcgdGhlIHVudXNlZAoic3RhdHVzX2NoYW5nZV9uaWRfaGlnaCIgZmllbGQgcGFydCBv ZiB0aGUgbWVtb3J5IG5vdGlmaWVyLgoKU2lnbmVkLW9mZi1ieTogRGF2aWQgSGlsZGVuYnJhbmQg PGRhdmlkQHJlZGhhdC5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi9jb3JlLWFwaS9tZW1vcnktaG90 cGx1Zy5yc3QgICAgIHwgIDMgLS0KIC4uLi96aF9DTi9jb3JlLWFwaS9tZW1vcnktaG90cGx1Zy5y c3QgICAgICAgICB8ICA0IC0tLQogaW5jbHVkZS9saW51eC9tZW1vcnkuaCAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEgLQogbW0vbWVtb3J5X2hvdHBsdWcuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMzYgKystLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY29y ZS1hcGkvbWVtb3J5LWhvdHBsdWcucnN0IGIvRG9jdW1lbnRhdGlvbi9jb3JlLWFwaS9tZW1vcnkt aG90cGx1Zy5yc3QKaW5kZXggZGU3NDY3ZTQ4MDY3Li42ODIyNTllZTYzM2EgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vY29yZS1hcGkvbWVtb3J5LWhvdHBsdWcucnN0CisrKyBiL0RvY3VtZW50 YXRpb24vY29yZS1hcGkvbWVtb3J5LWhvdHBsdWcucnN0CkBAIC01Nyw3ICs1Nyw2IEBAIFRoZSB0 aGlyZCBhcmd1bWVudCAoYXJnKSBwYXNzZXMgYSBwb2ludGVyIG9mIHN0cnVjdCBtZW1vcnlfbm90 aWZ5OjoKIAkJdW5zaWduZWQgbG9uZyBzdGFydF9wZm47CiAJCXVuc2lnbmVkIGxvbmcgbnJfcGFn ZXM7CiAJCWludCBzdGF0dXNfY2hhbmdlX25pZF9ub3JtYWw7Ci0JCWludCBzdGF0dXNfY2hhbmdl X25pZF9oaWdoOwogCQlpbnQgc3RhdHVzX2NoYW5nZV9uaWQ7CiAJfQogCkBAIC02NSw4ICs2NCw2 IEBAIFRoZSB0aGlyZCBhcmd1bWVudCAoYXJnKSBwYXNzZXMgYSBwb2ludGVyIG9mIHN0cnVjdCBt ZW1vcnlfbm90aWZ5OjoKIC0gbnJfcGFnZXMgaXMgIyBvZiBwYWdlcyBvZiBvbmxpbmUvb2ZmbGlu ZSBtZW1vcnkuCiAtIHN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCBpcyBzZXQgbm9kZSBpZCB3aGVu IE5fTk9STUFMX01FTU9SWSBvZiBub2RlbWFzawogICBpcyAod2lsbCBiZSkgc2V0L2NsZWFyLCBp ZiB0aGlzIGlzIC0xLCB0aGVuIG5vZGVtYXNrIHN0YXR1cyBpcyBub3QgY2hhbmdlZC4KLS0gc3Rh dHVzX2NoYW5nZV9uaWRfaGlnaCBpcyBzZXQgbm9kZSBpZCB3aGVuIE5fSElHSF9NRU1PUlkgb2Yg bm9kZW1hc2sKLSAgaXMgKHdpbGwgYmUpIHNldC9jbGVhciwgaWYgdGhpcyBpcyAtMSwgdGhlbiBu b2RlbWFzayBzdGF0dXMgaXMgbm90IGNoYW5nZWQuCiAtIHN0YXR1c19jaGFuZ2VfbmlkIGlzIHNl dCBub2RlIGlkIHdoZW4gTl9NRU1PUlkgb2Ygbm9kZW1hc2sgaXMgKHdpbGwgYmUpCiAgIHNldC9j bGVhci4gSXQgbWVhbnMgYSBuZXcobWVtb3J5bGVzcykgbm9kZSBnZXRzIG5ldyBtZW1vcnkgYnkg b25saW5lIGFuZCBhCiAgIG5vZGUgbG9zZXMgYWxsIG1lbW9yeS4gSWYgdGhpcyBpcyAtMSwgdGhl biBub2RlbWFzayBzdGF0dXMgaXMgbm90IGNoYW5nZWQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9jb3JlLWFwaS9tZW1vcnktaG90cGx1Zy5yc3QgYi9Eb2N1 bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9jb3JlLWFwaS9tZW1vcnktaG90cGx1Zy5yc3QK aW5kZXggMTYxZjRkMmMxOGNjLi45YTIwNGViMTk2ZjIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRp b24vdHJhbnNsYXRpb25zL3poX0NOL2NvcmUtYXBpL21lbW9yeS1ob3RwbHVnLnJzdAorKysgYi9E b2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9jb3JlLWFwaS9tZW1vcnktaG90cGx1Zy5y c3QKQEAgLTYzLDcgKzYzLDYgQEAgbWVtb3J5X25vdGlmeee7k+aehOS9k+eahOaMh+mSiDo6CiAJ CXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuOwogCQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzOwogCQlp bnQgc3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFsOwotCQlpbnQgc3RhdHVzX2NoYW5nZV9uaWRfaGln aDsKIAkJaW50IHN0YXR1c19jaGFuZ2VfbmlkOwogCX0KIApAQCAtNzQsOSArNzMsNiBAQCBtZW1v cnlfbm90aWZ557uT5p6E5L2T55qE5oyH6ZKIOjoKIC0gc3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFs 5piv5b2Tbm9kZW1hc2vnmoROX05PUk1BTF9NRU1PUlnooqvorr7nva4v5riF6Zmk5pe26K6+572u 6IqCCiAgIOeCuWlk77yM5aaC5p6c5pivLTHvvIzliJlub2RlbWFza+eKtuaAgeS4jeaUueWPmOOA ggogCi0tIHN0YXR1c19jaGFuZ2VfbmlkX2hpZ2jmmK/lvZNub2RlbWFza+eahE5fSElHSF9NRU1P Ulnooqvorr7nva4v5riF6Zmk5pe26K6+572u55qE6IqC54K5Ci0gIGlk77yM5aaC5p6c6L+Z5Liq 5YC85Li6LTHvvIzpgqPkuYhub2RlbWFza+eKtuaAgeS4jeS8muaUueWPmOOAggotCiAtIHN0YXR1 c19jaGFuZ2Vfbmlk5piv5b2Tbm9kZW1hc2vnmoROX01FTU9SWeiiq++8iOWwhu+8ieiuvue9ri/m uIXpmaTml7borr7nva7nmoToioLngrlpZOOAgui/mQogICDmhI/lkbPnnYDkuIDkuKrmlrDnmoTv vIjmsqHkuIrnur/nmoTvvInoioLngrnpgJrov4fogZTmnLrojrflvpfmlrDnmoTlhoXlrZjvvIzo gIzkuIDkuKroioLngrnlpLHljrvkuobmiYDmnInnmoTlhoUKICAg5a2Y44CC5aaC5p6c6L+Z5Liq 5YC85Li6LTHvvIzpgqPkuYhub2RlbWFza+eahOeKtuaAgeWwseS4jeS8muaUueWPmOOAggpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZW1vcnkuaCBiL2luY2x1ZGUvbGludXgvbWVtb3J5LmgK aW5kZXggZGQ2ZTYwOGMzZTBiLi5jNDZmZjM3NGQ0OGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvbWVtb3J5LmgKKysrIGIvaW5jbHVkZS9saW51eC9tZW1vcnkuaApAQCAtOTYsNyArOTYsNiBA QCBzdHJ1Y3QgbWVtb3J5X25vdGlmeSB7CiAJdW5zaWduZWQgbG9uZyBzdGFydF9wZm47CiAJdW5z aWduZWQgbG9uZyBucl9wYWdlczsKIAlpbnQgc3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFsOwotCWlu dCBzdGF0dXNfY2hhbmdlX25pZF9oaWdoOwogCWludCBzdGF0dXNfY2hhbmdlX25pZDsKIH07CiAK ZGlmZiAtLWdpdCBhL21tL21lbW9yeV9ob3RwbHVnLmMgYi9tbS9tZW1vcnlfaG90cGx1Zy5jCmlu ZGV4IDhkN2IyYjU5M2EyNi4uOTVjOTI3YzhiZmI4IDEwMDY0NAotLS0gYS9tbS9tZW1vcnlfaG90 cGx1Zy5jCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNs dWRlIDxsaW51eC9tZW1vcnkuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1yZW1hcC5oPgogI2luY2x1 ZGUgPGxpbnV4L21lbW9yeV9ob3RwbHVnLmg+Ci0jaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgog I2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNp bmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtNTg1LDEwICs1ODQsNiBAQCB2b2lkIGdlbmVyaWNf b25saW5lX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcikKIAlkZWJ1 Z19wYWdlYWxsb2NfbWFwX3BhZ2VzKHBhZ2UsIDEgPDwgb3JkZXIpOwogCV9fZnJlZV9wYWdlc19j b3JlKHBhZ2UsIG9yZGVyKTsKIAl0b3RhbHJhbV9wYWdlc19hZGQoMVVMIDw8IG9yZGVyKTsKLSNp ZmRlZiBDT05GSUdfSElHSE1FTQotCWlmIChQYWdlSGlnaE1lbShwYWdlKSkKLQkJdG90YWxoaWdo X3BhZ2VzX2FkZCgxVUwgPDwgb3JkZXIpOwotI2VuZGlmCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChn ZW5lcmljX29ubGluZV9wYWdlKTsKIApAQCAtNjI1LDE2ICs2MjAsMTEgQEAgc3RhdGljIHZvaWQg bm9kZV9zdGF0ZXNfY2hlY2tfY2hhbmdlc19vbmxpbmUodW5zaWduZWQgbG9uZyBucl9wYWdlcywK IAogCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWQgPSBOVU1BX05PX05PREU7CiAJYXJnLT5zdGF0dXNf Y2hhbmdlX25pZF9ub3JtYWwgPSBOVU1BX05PX05PREU7Ci0JYXJnLT5zdGF0dXNfY2hhbmdlX25p ZF9oaWdoID0gTlVNQV9OT19OT0RFOwogCiAJaWYgKCFub2RlX3N0YXRlKG5pZCwgTl9NRU1PUlkp KQogCQlhcmctPnN0YXR1c19jaGFuZ2VfbmlkID0gbmlkOwogCWlmICh6b25lX2lkeCh6b25lKSA8 PSBaT05FX05PUk1BTCAmJiAhbm9kZV9zdGF0ZShuaWQsIE5fTk9STUFMX01FTU9SWSkpCiAJCWFy Zy0+c3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFsID0gbmlkOwotI2lmZGVmIENPTkZJR19ISUdITUVN Ci0JaWYgKHpvbmVfaWR4KHpvbmUpIDw9IFpPTkVfSElHSE1FTSAmJiAhbm9kZV9zdGF0ZShuaWQs IE5fSElHSF9NRU1PUlkpKQotCQlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX2hpZ2ggPSBuaWQ7Ci0j ZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgbm9kZV9zdGF0ZXNfc2V0X25vZGUoaW50IG5vZGUsIHN0 cnVjdCBtZW1vcnlfbm90aWZ5ICphcmcpCkBAIC02NDIsOSArNjMyLDYgQEAgc3RhdGljIHZvaWQg bm9kZV9zdGF0ZXNfc2V0X25vZGUoaW50IG5vZGUsIHN0cnVjdCBtZW1vcnlfbm90aWZ5ICphcmcp CiAJaWYgKGFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFsID49IDApCiAJCW5vZGVfc2V0X3N0 YXRlKG5vZGUsIE5fTk9STUFMX01FTU9SWSk7CiAKLQlpZiAoYXJnLT5zdGF0dXNfY2hhbmdlX25p ZF9oaWdoID49IDApCi0JCW5vZGVfc2V0X3N0YXRlKG5vZGUsIE5fSElHSF9NRU1PUlkpOwotCiAJ aWYgKGFyZy0+c3RhdHVzX2NoYW5nZV9uaWQgPj0gMCkKIAkJbm9kZV9zZXRfc3RhdGUobm9kZSwg Tl9NRU1PUlkpOwogfQpAQCAtMTgwMSw3ICsxNzg4LDYgQEAgc3RhdGljIHZvaWQgbm9kZV9zdGF0 ZXNfY2hlY2tfY2hhbmdlc19vZmZsaW5lKHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAKIAlhcmct PnN0YXR1c19jaGFuZ2VfbmlkID0gTlVNQV9OT19OT0RFOwogCWFyZy0+c3RhdHVzX2NoYW5nZV9u aWRfbm9ybWFsID0gTlVNQV9OT19OT0RFOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9 IE5VTUFfTk9fTk9ERTsKIAogCS8qCiAJICogQ2hlY2sgd2hldGhlciBub2RlX3N0YXRlc1tOX05P Uk1BTF9NRU1PUlldIHdpbGwgYmUgY2hhbmdlZC4KQEAgLTE4MTYsMjQgKzE4MDIsOSBAQCBzdGF0 aWMgdm9pZCBub2RlX3N0YXRlc19jaGVja19jaGFuZ2VzX29mZmxpbmUodW5zaWduZWQgbG9uZyBu cl9wYWdlcywKIAlpZiAoem9uZV9pZHgoem9uZSkgPD0gWk9ORV9OT1JNQUwgJiYgbnJfcGFnZXMg Pj0gcHJlc2VudF9wYWdlcykKIAkJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9ub3JtYWwgPSB6b25l X3RvX25pZCh6b25lKTsKIAotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JLyoKLQkgKiBub2RlX3N0 YXRlc1tOX0hJR0hfTUVNT1JZXSBjb250YWlucyBub2RlcyB3aGljaAotCSAqIGhhdmUgbm9ybWFs IG1lbW9yeSBvciBoaWdoIG1lbW9yeS4KLQkgKiBIZXJlIHdlIGFkZCB0aGUgcHJlc2VudF9wYWdl cyBiZWxvbmdpbmcgdG8gWk9ORV9ISUdITUVNLgotCSAqIElmIHRoZSB6b25lIGlzIHdpdGhpbiB0 aGUgcmFuZ2Ugb2YgWzAuLlpPTkVfSElHSE1FTSksIGFuZAotCSAqIHdlIGRldGVybWluZSB0aGF0 IHRoZSB6b25lcyBpbiB0aGF0IHJhbmdlIGJlY29tZSBlbXB0eSwKLQkgKiB3ZSBuZWVkIHRvIGNs ZWFyIHRoZSBub2RlIGZvciBOX0hJR0hfTUVNT1JZLgotCSAqLwotCXByZXNlbnRfcGFnZXMgKz0g cGdkYXQtPm5vZGVfem9uZXNbWk9ORV9ISUdITUVNXS5wcmVzZW50X3BhZ2VzOwotCWlmICh6b25l X2lkeCh6b25lKSA8PSBaT05FX0hJR0hNRU0gJiYgbnJfcGFnZXMgPj0gcHJlc2VudF9wYWdlcykK LQkJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID0gem9uZV90b19uaWQoem9uZSk7Ci0jZW5k aWYKLQogCS8qCi0JICogV2UgaGF2ZSBhY2NvdW50ZWQgdGhlIHBhZ2VzIGZyb20gWzAuLlpPTkVf Tk9STUFMKSwgYW5kCi0JICogaW4gY2FzZSBvZiBDT05GSUdfSElHSE1FTSB0aGUgcGFnZXMgZnJv bSBaT05FX0hJR0hNRU0KLQkgKiBhcyB3ZWxsLgorCSAqIFdlIGhhdmUgYWNjb3VudGVkIHRoZSBw YWdlcyBmcm9tIFswLi5aT05FX05PUk1BTCk7IFpPTkVfSElHSE1FTQorCSAqIGRvZXMgbm90IGFw cGx5IGFzIHdlIGRvbid0IHN1cHBvcnQgMzJiaXQuCiAJICogSGVyZSB3ZSBjb3VudCB0aGUgcG9z c2libGUgcGFnZXMgZnJvbSBaT05FX01PVkFCTEUuCiAJICogSWYgYWZ0ZXIgaGF2aW5nIGFjY291 bnRlZCBhbGwgdGhlIHBhZ2VzLCB3ZSBzZWUgdGhhdCB0aGUgbnJfcGFnZXMKIAkgKiB0byBiZSBv ZmZsaW5lZCBpcyBvdmVyIG9yIGVxdWFsIHRvIHRoZSBhY2NvdW50ZWQgcGFnZXMsCkBAIC0xODUx LDkgKzE4MjIsNiBAQCBzdGF0aWMgdm9pZCBub2RlX3N0YXRlc19jbGVhcl9ub2RlKGludCBub2Rl LCBzdHJ1Y3QgbWVtb3J5X25vdGlmeSAqYXJnKQogCWlmIChhcmctPnN0YXR1c19jaGFuZ2Vfbmlk X25vcm1hbCA+PSAwKQogCQlub2RlX2NsZWFyX3N0YXRlKG5vZGUsIE5fTk9STUFMX01FTU9SWSk7 CiAKLQlpZiAoYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID49IDApCi0JCW5vZGVfY2xlYXJf c3RhdGUobm9kZSwgTl9ISUdIX01FTU9SWSk7Ci0KIAlpZiAoYXJnLT5zdGF0dXNfY2hhbmdlX25p ZCA+PSAwKQogCQlub2RlX2NsZWFyX3N0YXRlKG5vZGUsIE5fTUVNT1JZKTsKIH0KLS0gCjIuMzEu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVh bGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRp b24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZv L3ZpcnR1YWxpemF0aW9u