From patchwork Fri Aug 17 09:00:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oscar Salvador X-Patchwork-Id: 10568543 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 70BC71575 for ; Fri, 17 Aug 2018 09:00:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6004F2B039 for ; Fri, 17 Aug 2018 09:00:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 540892B042; Fri, 17 Aug 2018 09:00:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E18272B039 for ; Fri, 17 Aug 2018 09:00:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 75F7D6B0767; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 6E64A6B0750; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5FC766B0766; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by kanga.kvack.org (Postfix) with ESMTP id F25A56B0722 for ; Fri, 17 Aug 2018 05:00:24 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id z16-v6so5143214wrs.22 for ; Fri, 17 Aug 2018 02:00:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=upiL4gOH82Gjjlk/+gr255iw16SUVePVGsiKWqYTAYM=; b=thTCqdTHRKqZ3Xapl3PvysmGfBGyHF5rt2YmbNLq5yP8/N4aoW7hbEbYgSgLLB9ktQ mN50aENBr+6C6n0efHdMUDG7r18NWqzxnWbEwxvs0qpP8gDRSwK+vL4NsKEkMNwPI2HZ cW2KqAuxuZUPxJ9gCuwyW00jWs9oje+LnmEu9yao1ksZ/uJgxMrOQNNda8xT9ZOmVQ0e /2Aa6Lb4xe80kp1IagIQZlsgByTq8LmV5lx9YqxfSZezS8A7/cTn5yXGOdoHNXQRhloZ Uwynlmr4YSfnPqEOgyA5YGtGXwK5cJBgHyvTtFEn2ssOU4p7Lhw++pL52dRMoUdxZwZf EXyg== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Gm-Message-State: AOUpUlEIEXwpq7Azz9bHekw+NFgipZYd4aVTbmgsJf7SBDA7oncj0eGg faLSSQVr2o6fNjD3j3Zn59aFfOpKwUC5s9czkrptwu7S4iLXewW1BlcaAVrjKGZbO1Cv7utzirb XFtbJNPo7nNKU367aLO7T22pGGHHJJOTWfMeU2+7c8/8cYbn+yRaV2sAjZLmrPKoNkD2IRzHs/0 hZ1fixcCBK1MY4uJMVGAuNERfbN5yP5homzD3lEIWf+UgUrlVtfff5f0GUlo0uRGF1gOFuOFNi+ k2VI3fLjKJj6kK2zY/b/r6q72FK5R4FyWWd8LTbRB9G62hsIkkz85NujCc8Rle+U6m9YFwiE3oq 8ESgzb98JYc+mZO2ihEqExqZO9IX9jYY1WH3SMOgT0oOxD/owjW00ANbcVcYY+9HyftvsfUXow= = X-Received: by 2002:adf:e3c5:: with SMTP id k5-v6mr20791876wrm.94.1534496424534; Fri, 17 Aug 2018 02:00:24 -0700 (PDT) X-Received: by 2002:adf:e3c5:: with SMTP id k5-v6mr20791829wrm.94.1534496423327; Fri, 17 Aug 2018 02:00:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534496423; cv=none; d=google.com; s=arc-20160816; b=pcJJatnD71xBGMUVTXQ4ExiaSiGm97FVtz5x17/7UQVZfCRTPv6b7sjuXDkYrpnnzj jYZuaEOAqhLeRs7Lh9SYiCthlNWDmIT57xL8z+ox5gdZLohPKjDbYTLJ3l3hOsNlrLg+ 5aI+w127m/UmtnZcAuBiF1x5vFfFAz4GCre6P554KVRDAB6iOzAssQFqLziMBfyqvGe4 vZhvA6/iSVTUxipEtK/dFNRuzD2uroPa6zUW0RzXgrGmXhPTUbePneLhESX4mxHde9J5 2XENRFp5u1AmgR3RhX7SxBHQdvqLG+oejcTs+nWGqGALmh06+5hPzFR9kTeZ5/P+tbou xmCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=upiL4gOH82Gjjlk/+gr255iw16SUVePVGsiKWqYTAYM=; b=e9G8BEU7G/UfZDJEKTj5Gp5F0gCfA/DQLGCUDnwTrCoX1xEPOBkFQnEliTugmMqG/i dOotOeS4DD5kBH2Dq0S4HiDmFdCcMMIppQNkqYOopAN0qcDt54c/PlhGafu6I/QTybJe wPMP3ZXeQQ24K67EzI3s1BfeA5fIom19lvq2gPH7E7ao0OPS/vqwrywDpgbIY2pYk0RL +6434ilwmPaHgX9XXKn9P1brYa1FOpQnNX0VMmsZ60IZ5qGpqCcaF4F8ToqetijoJtDG uIRMN6xb8VZip6GeqtDyU8GQsuz0XFTbsJIgslVXdMWzTNmijLsX/fg/iW/l7aj6mcu7 slww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id x8-v6sor875564wme.29.2018.08.17.02.00.23 for (Google Transport Security); Fri, 17 Aug 2018 02:00:23 -0700 (PDT) Received-SPF: pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Google-Smtp-Source: AA+uWPxd4nwZq9IopgDnsyqrIM7yxwFr1StDyiY9YZHh2vQ+Ngsn1PhRbOX/fYKtoQg7Snjw6pf/Hw== X-Received: by 2002:a1c:e54:: with SMTP id 81-v6mr19334799wmo.84.1534496423040; Fri, 17 Aug 2018 02:00:23 -0700 (PDT) Received: from techadventures.net (techadventures.net. [62.201.165.239]) by smtp.gmail.com with ESMTPSA id l10-v6sm1433555wre.0.2018.08.17.02.00.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Aug 2018 02:00:22 -0700 (PDT) Received: from d104.suse.de (nat.nue.novell.com [195.135.221.2]) by techadventures.net (Postfix) with ESMTPA id D8A9B124935; Fri, 17 Aug 2018 11:00:20 +0200 (CEST) From: Oscar Salvador To: akpm@linux-foundation.org Cc: mhocko@suse.com, vbabka@suse.cz, dan.j.williams@intel.com, yasu.isimatu@gmail.com, jonathan.cameron@huawei.com, david@redhat.com, Pavel.Tatashin@microsoft.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH v4 1/4] mm/memory-hotplug: Drop unused args from remove_memory_section Date: Fri, 17 Aug 2018 11:00:14 +0200 Message-Id: <20180817090017.17610-2-osalvador@techadventures.net> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180817090017.17610-1-osalvador@techadventures.net> References: <20180817090017.17610-1-osalvador@techadventures.net> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP From: Oscar Salvador unregister_memory_section() calls remove_memory_section() with three arguments: * node_id * section * phys_device Neither node_id nor phys_device are used. Let us drop them from the function. Signed-off-by: Oscar Salvador Reviewed-by: David Hildenbrand Reviewed-by: Andrew Morton Reviewed-by: Pavel Tatashin --- drivers/base/memory.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/base/memory.c b/drivers/base/memory.c index c8a1cb0b6136..2c622a9a7490 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c @@ -752,8 +752,7 @@ unregister_memory(struct memory_block *memory) device_unregister(&memory->dev); } -static int remove_memory_section(unsigned long node_id, - struct mem_section *section, int phys_device) +static int remove_memory_section(struct mem_section *section) { struct memory_block *mem; @@ -785,7 +784,7 @@ int unregister_memory_section(struct mem_section *section) if (!present_section(section)) return -EINVAL; - return remove_memory_section(0, section, 0); + return remove_memory_section(section); } #endif /* CONFIG_MEMORY_HOTREMOVE */ From patchwork Fri Aug 17 09:00:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oscar Salvador X-Patchwork-Id: 10568545 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9545A1575 for ; Fri, 17 Aug 2018 09:00:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 83E0F2B039 for ; Fri, 17 Aug 2018 09:00:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 77CB92B056; Fri, 17 Aug 2018 09:00:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 106052B039 for ; Fri, 17 Aug 2018 09:00:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A4B6C6B0722; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A1AD56B0750; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75B2D6B0722; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by kanga.kvack.org (Postfix) with ESMTP id 18EE36B074F for ; Fri, 17 Aug 2018 05:00:25 -0400 (EDT) Received: by mail-wr1-f70.google.com with SMTP id t10-v6so5156994wrs.17 for ; Fri, 17 Aug 2018 02:00:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=3ECCH/k6jiVWi1l5eaaCRKhrwOJOvg2mUyo3PfA9i7w=; b=n9Aw5zrdUIqcHGl3giCavgDd0xSXU80yP1fPOb4/vfShiNxPRQWqW+EVA6KC6iVFj9 dYUQy5twFRUCzwvnopJTLjiAprGGhJO+ktpOQ8Hn57ekH6IDjU1dIjtZ7v4a21cPqNF1 LkNTNcWdGFhDX56lDVsbG8DmvSh6XtErTcMKDcQ8vVk5SFQ7Hqi/tvN+CrOW2JYuhLZn AInuxRqqolTNaQq2cVEs9AHOwrXGD5GayytBAiRFWltJegPf5YyqlRA+az4XixWeGIIY DzxVMgM+KAqL7ZlNntGrZuLApZjhqs7jifG5/Tm2yzT5uxYuHTJ/qo4FxnsMOKqb3wCd 1raQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Gm-Message-State: AOUpUlEM0gBUooT8bjSfGHqXL2nLlBYUPo5sesM+Iy6UXSv5pIl6WXfC WJ5lShPcugWe+RQQIm53alOccZok5TFsxpCsOPn27dpGgXy+glilzHn/kxj44pIUrYkaSKd9dSx cZZunsSwUTW11DrT3yU0G8VViUN3GpQUOPYW9fhKDCjOMyHVdtYL43cFgUmuFuGjVjxlNL4aHmv zPsWBVzTBnG01JpeyP49GyopeCpfhS5mIkMXsWQrzV6e47ClZVLZFrDFQqvjLu5FzcxIm4OINKV olq1cXz2TAjnP8685TL3HCfAniBILJBQ3bmQO4XoSpeKyAgBZJKz0syuc8CJjFZVXj6UqoZPmwd itgK4G9n2sRN6GCYX/hT5nubUEcEd/+sapbDyjFEagGxzdJVadVrzvAXXIMcC4U5wH7u/EWpvQ= = X-Received: by 2002:a1c:b58e:: with SMTP id e136-v6mr17138263wmf.141.1534496424577; Fri, 17 Aug 2018 02:00:24 -0700 (PDT) X-Received: by 2002:a1c:b58e:: with SMTP id e136-v6mr17138223wmf.141.1534496423815; Fri, 17 Aug 2018 02:00:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534496423; cv=none; d=google.com; s=arc-20160816; b=VpwhL1rpIUsTT771Lhu011T/5MJdG3nwXuD6PSkTvKTW6CwrMgzJ6wGj5Sh8b0stVg HW4Km0xzhVds0IIbT/KMG19u0cOe31gBA33TaxVWGibYZi24/jCGcMCTMRh6s+TqEOzT GJrRdsLCWVgZjgyRE9nKQCqRoDYLTTpIgljkKFCCzMvGhtqM27z550i3CgDZA+V78PGP i6JD8y7P1YbmkSI3+CW2VPOtweUWOPmA9Q56dRXyRa7epj8GDRPnjyTltV9pCAliUsLm mxQa1eSsmnnYQwBr6ulZOpfY2ecLAI0qWl8EwKyatErzEIQjpcw0cEPuZ8E4mUwIfYiq /dVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=3ECCH/k6jiVWi1l5eaaCRKhrwOJOvg2mUyo3PfA9i7w=; b=Z9J/XoKH/L005hFPCcPf7bLJJE5+wvf57SDCfWwlIcQJ49thbaCPFxhrLJ9/wfWOjk bjYwxMvaVvY3oKDpjeejTNK5GPX7ShDv+ljhfSmLPdtxraVUx2rxeSVA98YRKhC1HIvm oVUFRKtVA9QJZMiNM/bwaak5jqAfAHs7J5l7HMp0DG7HD23q2RWLBKc5Twmeyt7OxYew UZ7zkzmVyJM6wEaPHdGmumoItinhPAfZw+gGbcc4uvA8VN6LNUCI/zdvmwg/2dFXAM3F WTJ6oPalUTI6pnhyKv5midOW+zS3ybXXyx5flGNijEG9IA19sGeyrl17DEFKVd4g93cl Th/g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id b65-v6sor897983wmh.19.2018.08.17.02.00.23 for (Google Transport Security); Fri, 17 Aug 2018 02:00:23 -0700 (PDT) Received-SPF: pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Google-Smtp-Source: AA+uWPwK9wRdaRi5EQ3bWRQJjG8o+L8hDi6Sukw/s1xQUKIwppv6plB/HAuWpnz392b6QfpeyEa0XQ== X-Received: by 2002:a1c:6c03:: with SMTP id h3-v6mr17211304wmc.38.1534496423554; Fri, 17 Aug 2018 02:00:23 -0700 (PDT) Received: from techadventures.net (techadventures.net. [62.201.165.239]) by smtp.gmail.com with ESMTPSA id a84-v6sm4446308wmh.27.2018.08.17.02.00.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Aug 2018 02:00:22 -0700 (PDT) Received: from d104.suse.de (nat.nue.novell.com [195.135.221.2]) by techadventures.net (Postfix) with ESMTPA id 2B0A4124936; Fri, 17 Aug 2018 11:00:21 +0200 (CEST) From: Oscar Salvador To: akpm@linux-foundation.org Cc: mhocko@suse.com, vbabka@suse.cz, dan.j.williams@intel.com, yasu.isimatu@gmail.com, jonathan.cameron@huawei.com, david@redhat.com, Pavel.Tatashin@microsoft.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH v4 2/4] mm/memory_hotplug: Drop mem_blk check from unregister_mem_sect_under_nodes Date: Fri, 17 Aug 2018 11:00:15 +0200 Message-Id: <20180817090017.17610-3-osalvador@techadventures.net> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180817090017.17610-1-osalvador@techadventures.net> References: <20180817090017.17610-1-osalvador@techadventures.net> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP From: Oscar Salvador Before calling to unregister_mem_sect_under_nodes(), remove_memory_section() already checks if we got a valid memory_block. No need to check that again in unregister_mem_sect_under_nodes(). If more functions start using unregister_mem_sect_under_nodes() in the future, we can always place a WARN_ON to catch null mem_blk's so we can safely back off. For now, let us keep the check in remove_memory_section() since it is the only function that uses it. Signed-off-by: Oscar Salvador Reviewed-by: Andrew Morton Reviewed-by: Pavel Tatashin Reviewed-by: David Hildenbrand --- drivers/base/node.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/base/node.c b/drivers/base/node.c index 1ac4c36e13bb..dd3bdab230b2 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -455,10 +455,6 @@ int unregister_mem_sect_under_nodes(struct memory_block *mem_blk, NODEMASK_ALLOC(nodemask_t, unlinked_nodes, GFP_KERNEL); unsigned long pfn, sect_start_pfn, sect_end_pfn; - if (!mem_blk) { - NODEMASK_FREE(unlinked_nodes); - return -EFAULT; - } if (!unlinked_nodes) return -ENOMEM; nodes_clear(*unlinked_nodes); From patchwork Fri Aug 17 09:00:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oscar Salvador X-Patchwork-Id: 10568549 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E408A139A for ; Fri, 17 Aug 2018 09:00:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D2F352B03F for ; Fri, 17 Aug 2018 09:00:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C63812B045; Fri, 17 Aug 2018 09:00:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F3042B03F for ; Fri, 17 Aug 2018 09:00:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 208156B0750; Fri, 17 Aug 2018 05:00:27 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 1B78D6B0766; Fri, 17 Aug 2018 05:00:27 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 058CC6B0768; Fri, 17 Aug 2018 05:00:26 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm0-f70.google.com (mail-wm0-f70.google.com [74.125.82.70]) by kanga.kvack.org (Postfix) with ESMTP id 987A46B0766 for ; Fri, 17 Aug 2018 05:00:26 -0400 (EDT) Received: by mail-wm0-f70.google.com with SMTP id p3-v6so3974159wmc.7 for ; Fri, 17 Aug 2018 02:00:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=HgGRrJWJGXklKxYx7FB74hjJfmuXFq2Z33rZBcVarRg=; b=MFKcWvwSdUhy1OL/6zwqfPsXWrf4IWGwQoao/aVThr7+vWaPLUOENm/noKLZWXUIaU sKPO/9+BbYlGOyCTgPYOARlo0SIiLxxH1zln45vui6//TdzYF54WhDYNAk1H7Ro6/bAQ l6kylqFDLQGZnRCn8llvnOG2EQJn3s+y2VoCkFE5zw6OQFt0mog3H0BmEJoCENFefMDx OUb1ZIxpeY4XnWXh8puAhqxPBQ45C+zjUHrHZVbf9p/+ZiFeHDbCnqLVQWHn2luxBWJj jhvjOasmiBpaaALMx+czk1nUpAei2NzpGfyp43j7FunxW4lwUhTMZSjVmOS/MI5wB+KY YO+A== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Gm-Message-State: AOUpUlEp3DrggORAVwVpEBPhYo0pbLP2zqiTVQeTo+MlLiRcCiJssn7M VWdS/Njq51zgQnssHSjIQCVJWi4IhOgRfV8pT0VNlkLT2nuhgzY4m7ns4s0Z1g6PuGy07N3UmVM KaQgQoU43MlUG3JpyVhpZS1ogVLeSGTpTdI8jazrRtPxWO1FKRqHCsSRMHirSgH9ZolU3nz7cib LgkwD4tiz6NhNiB3jHrzn8uz9FLhx4EzhAnUE0TukO0XPDLVOt11cVQ8zcc9ZHrlAPOezUYaeQQ n7KpUnpATb1A9lAlkYeAtS9PdLoup360aN0poUM0hKbozO05tFcBjboPuZasUBd8l+xcGiuakT5 I4fupnlYYMotKF+gXWcCNjjpiAOTGNKp6+y3T1fCQvcwlKK0FoTxbkCvaF6MCNfrkSn0ZAMrzw= = X-Received: by 2002:a5d:6892:: with SMTP id h18-v6mr21278994wru.108.1534496426135; Fri, 17 Aug 2018 02:00:26 -0700 (PDT) X-Received: by 2002:a5d:6892:: with SMTP id h18-v6mr21278950wru.108.1534496425270; Fri, 17 Aug 2018 02:00:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534496425; cv=none; d=google.com; s=arc-20160816; b=TvbJN4nBhdjIzM4t4kSXRpvv9ieSeAslHX9L7WtoeW4SrrH/Ahlhus0zAcXHLHC0vk ecccTkgxzu2OG00VfpiT1yB9QyaFKTw1Z+vypg8jeSGTQYHVZBo+aOS5XoYNy2SC9N0O ptWKmcOIZfsuXsN6xG+JbLCqb0+i1X9maGzyAhuKP7sLhFM0iQDxYJ6L1d0Ca0U/ooC1 FRJ5Xfz7H7hCsEsjvqROKxGFVdp7im8b7s2NXhYNKeoMTSmUX0j7oUktt+K6sMEVA1Hc zYoCw+r6sTToQCTsPNcxwzO8Jqbn6NeEZ1WKBeYbBvGshbYU7zV354RI1xImAzbjmUeB hFGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=HgGRrJWJGXklKxYx7FB74hjJfmuXFq2Z33rZBcVarRg=; b=hsWT3saHF4kvbKgqW2OlFDU/aEztrX1Yag0wllsEcvqm6aXn4BQDxe9TsHZbTeqIjc NPeB8kInqItTWGhk6YuBP+GTwOkGdVgVH9YDLVutGTxSsbR8gfBJwVOtnC8fPKNNL/9g Yuz8kE9n0EsuDAQZipNsGl/n9ps+gV8e6vIn0XGEgnoHm1aIbCz6bwarpyW6ygFyginM 1IcBvZ81tby/qjXc0b+cCqzyZQ+peyg23ppYCmBiKivBELMNitUxCKeB3H3qf/oMQX4z Bm8AhygpiIA7o6kSQprrXqP4Gpp07y7xkmiEuUTsE9rvk/Q6eNXhLlHHy/PK/Wz4lFfI HBBA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id x15-v6sor779002wmh.68.2018.08.17.02.00.25 for (Google Transport Security); Fri, 17 Aug 2018 02:00:25 -0700 (PDT) Received-SPF: pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Google-Smtp-Source: AA+uWPwWDnj2UfVUO0MHbRYcXJg/4nGX6MeIsQVdZF4viPYrzfyjZVuVUBwywZRBReLBe1pXaXxdMA== X-Received: by 2002:a1c:8952:: with SMTP id l79-v6mr17261749wmd.7.1534496424962; Fri, 17 Aug 2018 02:00:24 -0700 (PDT) Received: from techadventures.net (techadventures.net. [62.201.165.239]) by smtp.gmail.com with ESMTPSA id 199-v6sm8209192wmp.37.2018.08.17.02.00.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Aug 2018 02:00:23 -0700 (PDT) Received: from d104.suse.de (nat.nue.novell.com [195.135.221.2]) by techadventures.net (Postfix) with ESMTPA id 76CE7124937; Fri, 17 Aug 2018 11:00:21 +0200 (CEST) From: Oscar Salvador To: akpm@linux-foundation.org Cc: mhocko@suse.com, vbabka@suse.cz, dan.j.williams@intel.com, yasu.isimatu@gmail.com, jonathan.cameron@huawei.com, david@redhat.com, Pavel.Tatashin@microsoft.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH v4 3/4] mm/memory_hotplug: Define nodemask_t as a stack variable Date: Fri, 17 Aug 2018 11:00:16 +0200 Message-Id: <20180817090017.17610-4-osalvador@techadventures.net> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180817090017.17610-1-osalvador@techadventures.net> References: <20180817090017.17610-1-osalvador@techadventures.net> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP From: Oscar Salvador Currently, unregister_mem_sect_under_nodes() tries to allocate a nodemask_t in order to check whithin the loop which nodes have already been unlinked, so we do not repeat the operation on them. NODEMASK_ALLOC calls kmalloc() if NODES_SHIFT > 8, otherwise it just declares a nodemask_t variable whithin the stack. Since kmalloc() can fail, we actually check whether NODEMASK_ALLOC failed or not, and we return -ENOMEM accordingly. remove_memory_section() does not check for the return value though. It is pretty rare that such a tiny allocation can fail, but if it does, we will be left with dangled symlinks under /sys/devices/system/node/, since the mem_blk's directories will be removed no matter what unregister_mem_sect_under_nodes() returns. One way to solve this is to check whether unlinked_nodes is NULL or not. In the case it is not, we can just use it as before, but if it is NULL, we can just skip the node_test_and_set check, and call sysfs_remove_link() unconditionally. This is harmless as sysfs_remove_link() backs off somewhere down the chain in case the link has already been removed. This method was presented in v3 of the path [1]. But since the maximum number of nodes we can have is 1024, when NODES_SHIFT = 10, that gives us a nodemask_t of 128 bytes. Although everything depends on how deep the stack is, I think we can afford to define the nodemask_t variable whithin the stack. That simplifies the code, and we do not need to worry about untested error code paths. If we see that this causes troubles with the stack, we can always return to [1]. [1] https://patchwork.kernel.org/patch/10566673/ Signed-off-by: Oscar Salvador Reviewed-by: Pavel Tatashin --- drivers/base/node.c | 16 ++++++---------- include/linux/node.h | 5 ++--- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/base/node.c b/drivers/base/node.c index dd3bdab230b2..6b8c9b4537c9 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -449,35 +449,31 @@ int register_mem_sect_under_node(struct memory_block *mem_blk, void *arg) } /* unregister memory section under all nodes that it spans */ -int unregister_mem_sect_under_nodes(struct memory_block *mem_blk, +void unregister_mem_sect_under_nodes(struct memory_block *mem_blk, unsigned long phys_index) { - NODEMASK_ALLOC(nodemask_t, unlinked_nodes, GFP_KERNEL); + nodemask_t unlinked_nodes; unsigned long pfn, sect_start_pfn, sect_end_pfn; - if (!unlinked_nodes) - return -ENOMEM; - nodes_clear(*unlinked_nodes); + nodes_clear(unlinked_nodes); sect_start_pfn = section_nr_to_pfn(phys_index); sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1; for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) { - int nid; + int nid = get_nid_for_pfn(pfn); - nid = get_nid_for_pfn(pfn); if (nid < 0) continue; if (!node_online(nid)) continue; - if (node_test_and_set(nid, *unlinked_nodes)) + if (node_test_and_set(nid, unlinked_nodes)) continue; + sysfs_remove_link(&node_devices[nid]->dev.kobj, kobject_name(&mem_blk->dev.kobj)); sysfs_remove_link(&mem_blk->dev.kobj, kobject_name(&node_devices[nid]->dev.kobj)); } - NODEMASK_FREE(unlinked_nodes); - return 0; } int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn) diff --git a/include/linux/node.h b/include/linux/node.h index 257bb3d6d014..1203378e596a 100644 --- a/include/linux/node.h +++ b/include/linux/node.h @@ -72,7 +72,7 @@ extern int register_cpu_under_node(unsigned int cpu, unsigned int nid); extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid); extern int register_mem_sect_under_node(struct memory_block *mem_blk, void *arg); -extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk, +extern void unregister_mem_sect_under_nodes(struct memory_block *mem_blk, unsigned long phys_index); #ifdef CONFIG_HUGETLBFS @@ -105,10 +105,9 @@ static inline int register_mem_sect_under_node(struct memory_block *mem_blk, { return 0; } -static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk, +static inline void unregister_mem_sect_under_nodes(struct memory_block *mem_blk, unsigned long phys_index) { - return 0; } static inline void register_hugetlbfs_with_node(node_registration_func_t reg, From patchwork Fri Aug 17 09:00:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oscar Salvador X-Patchwork-Id: 10568547 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E500D139A for ; Fri, 17 Aug 2018 09:00:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D5A1C2B039 for ; Fri, 17 Aug 2018 09:00:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C9DD72B042; Fri, 17 Aug 2018 09:00:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 752832B039 for ; Fri, 17 Aug 2018 09:00:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 937B56B074F; Fri, 17 Aug 2018 05:00:26 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 8BCEB6B0750; Fri, 17 Aug 2018 05:00:26 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 714116B0766; Fri, 17 Aug 2018 05:00:26 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm0-f70.google.com (mail-wm0-f70.google.com [74.125.82.70]) by kanga.kvack.org (Postfix) with ESMTP id 150B06B074F for ; Fri, 17 Aug 2018 05:00:26 -0400 (EDT) Received: by mail-wm0-f70.google.com with SMTP id q26-v6so687743wmc.0 for ; Fri, 17 Aug 2018 02:00:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=MfeLkrMnDV4y5R6Q7/PqTxz8z6E5Vlfpzpm0flHpXQo=; b=AYLNpAw5OD00PpC3DCFfLt2zDRFUe0WdVlli8mN1vrCXsPe0jUUmpMwtkhpfLRleSH nKsdQigyYgDPnrtwfP6qgDqIXLwMNCZ6nyqwFKL9IiU84ggkifith2svSiRPpRsD0O/V NNS8DwACE40c35l1lIxyYSrQHhdxAjxm3AQnYZuPYMNXU9kRgRnFCFQIm8rf7KO2xkQE JSftSYnsHGw35SjyhGk6Qc3rTQaXtXw9IRa6DkC40Ns2DTBFBDNSDQE69zTwdpWnvPYm DT/vBpZiXPugG2MCoshAKyGfsCsVuACzXMriQRHa04tfFyoaKc6YJgjH4O5jR3l0dlNp K72A== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Gm-Message-State: AOUpUlHlh1XHTNUt/5bMf6glQjKhsBeulnTWrTmiivcojJmxkE7zCKDc jIB5OVz8FShb5Cj7zS1+G9+2IflDgLfD5n8a1xpw5nDLg0QqzoWFF3X3MiR97jwACKVIHJrq6/h YXAxHCQGswsNCsoq/DtPzv2nFR8gz34c9JOGCTcGtoNj3LinuKmpCCz3cC2M7tBIGkq5SvxYLRb z0YFZe9Ll/XkbOlO18eI0xN9GuQBLc5IN4/L+lHAi+ri9/wyBwFVwS5JrGQcfFGGvsbXSTEBTqs 8/iduOasSl2S0UWa1fZNyQnmNkkKS5GzBEAD2AOncLDhICjkJx+85e/Vfezo0uExqw8XqjPQyyU PitN2KgKeM1HN37JyMlLvXZ4ICyqNX9U4RdK1Zaar9OLqCJllPwvcX+q5BzdHYmLR+Nh0K6Ebg= = X-Received: by 2002:a7b:c0d5:: with SMTP id s21-v6mr541493wmh.106.1534496425563; Fri, 17 Aug 2018 02:00:25 -0700 (PDT) X-Received: by 2002:a7b:c0d5:: with SMTP id s21-v6mr541457wmh.106.1534496424610; Fri, 17 Aug 2018 02:00:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534496424; cv=none; d=google.com; s=arc-20160816; b=Dddf0eZ3AvQumBEmIkLlQ9IAufTh+kq+lOsD8LzoEurP2MuuX/54wS8al6VJsR6TBF v3OydfTfBUk9aXBI6ikrBf9BvU4vAtJtoQLQPcXHgQVNClXOSxwSaYeshi0ivE6ya3Yu KFNdDh4dtez5Z+4X348Iz2FIio4JJzl+s2U18fNJSw0jzuMBgkQj6lIENAzpUYE3tFr+ fLSUXK9LXAEV7pjgzUu5kHZyxy4jpHWJE7ZILM24JV6Uho64Cz1LytL8JHxxc3npMYko x8bOiIEy43Gc8PlwOrQMurTLtbbNXq+GQgRyUsQypfLyv+07nleUCM9ZZPeLo99g9exA aRkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=MfeLkrMnDV4y5R6Q7/PqTxz8z6E5Vlfpzpm0flHpXQo=; b=QKIdFOt5gzLlhyiu1c4uEo2xTCmHvdzMDdujYslnfqkI32nBo582yKxMqadPlJ9wCL aOXCMEjlPStwL7tWkZscEy9dDXQKYxepnZTlSRR6MUzKQT+Z2n0ZuBI6L2FZolDr2X2+ H2d5otAL8c9m5ODBbG1gy18qbbRndFKQfL3mi9FQDFXODlfPPcMOm0oFUNaTEeHBv6HK 59X3LR85/UANdyyFERu9TstMctojFK9rTorxCu+OyON27a5AaILIwYNWZBPGYZ9t08Nf 7zusw+UqfEDRYl2X86JUlDvGbWmR6GeNcrCcMu1ksILoGlgvcf10FZHD6woRslunK+Oo WwCw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id 68-v6sor752708wmj.38.2018.08.17.02.00.24 for (Google Transport Security); Fri, 17 Aug 2018 02:00:24 -0700 (PDT) Received-SPF: pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of osalvador.vilardaga@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=osalvador.vilardaga@gmail.com X-Google-Smtp-Source: AA+uWPy/pwRZnkedISFcrKnIaUEnl/GVgL8mdCGJ851HnZDLaVDLDdDhn3xlCnxImgLL1CcmheN42A== X-Received: by 2002:a1c:f60c:: with SMTP id w12-v6mr17479406wmc.80.1534496424377; Fri, 17 Aug 2018 02:00:24 -0700 (PDT) Received: from techadventures.net (techadventures.net. [62.201.165.239]) by smtp.gmail.com with ESMTPSA id f23-v6sm2105975wmc.42.2018.08.17.02.00.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Aug 2018 02:00:23 -0700 (PDT) Received: from d104.suse.de (nat.nue.novell.com [195.135.221.2]) by techadventures.net (Postfix) with ESMTPA id B4EE6124938; Fri, 17 Aug 2018 11:00:21 +0200 (CEST) From: Oscar Salvador To: akpm@linux-foundation.org Cc: mhocko@suse.com, vbabka@suse.cz, dan.j.williams@intel.com, yasu.isimatu@gmail.com, jonathan.cameron@huawei.com, david@redhat.com, Pavel.Tatashin@microsoft.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH v4 4/4] mm/memory_hotplug: Drop node_online check in unregister_mem_sect_under_nodes Date: Fri, 17 Aug 2018 11:00:17 +0200 Message-Id: <20180817090017.17610-5-osalvador@techadventures.net> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180817090017.17610-1-osalvador@techadventures.net> References: <20180817090017.17610-1-osalvador@techadventures.net> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP From: Oscar Salvador We are getting the nid from the pages that are not yet removed, but a node can only be offline when its memory/cpu's have been removed. Therefore, we know that the node is still online. Signed-off-by: Oscar Salvador Reviewed-by: David Hildenbrand Reviewed-by: Pavel Tatashin --- drivers/base/node.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/base/node.c b/drivers/base/node.c index 6b8c9b4537c9..01e9190be010 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -464,8 +464,6 @@ void unregister_mem_sect_under_nodes(struct memory_block *mem_blk, if (nid < 0) continue; - if (!node_online(nid)) - continue; if (node_test_and_set(nid, unlinked_nodes)) continue;