Path: csiph.com!feeder.erje.net!1.us.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!news.unit0.net!news.panservice.it!bofh.it!news.nic.it!robomod From: David Daney Newsgroups: linux.kernel Subject: [PATCH v7 12/15] acpi, numa, srat: Improve SRAT error detection and add messages. Date: Wed, 25 May 2016 00:40:02 +0200 Message-ID: References: Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Bo0wX1dtRm2ixXBJg1dz5iTjgopqkE/95z96VQ1+V34=; b=08EWTlvXQYcF1/2SN/P71Hpgy2WHw56LuZDwecPnoJ+6nI09E/eDDfBxpfYPffMO5q WMQb+rgEqpK2y8zFu0SgVfNtpqNugMKUfTsS0WAVc0nZIDsYKAv4Sr/1fSgBnnqwlNG8 NxgBIpgBhOFRjLKDVchimkRz7LzAyKEY9ddBftQgVP7FLvaXU+U0MSDDbIRk8p7PTmAx MRHL71wCsUF4LwuocZ+ZhUbssVaol9RlIt+6MtbF8RHSuoiESGBLKKrur2yVYa/s7wcm Nb3AZYLNgxpHZOy47mIYmmDF3hTM7M8cBHmtjEgkUyD7XtlhGgDrSg7mW6Ej7jAwMrAv bUKA== X-Google-Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Bo0wX1dtRm2ixXBJg1dz5iTjgopqkE/95z96VQ1+V34=; b=jMPgUGWIARVM2F/PyCa5QLMmfQohNDrEJsO+/lGPrXLyX/SZ3vn5BjCg9jUTnTzvPq K1duQ9aF4os+i72tL8FWmgACCAZYEWPDq6d6+bZoLoHzHUWfSAKAmNfN4s0DnIFWbqPG dAVtWhtfLCCGroiOuD2b5WfVkNGbNGCLqo/IRncBzxu9uyQhjha8L+l+Cmdw1Vq00Kvb oqEOyQkZefTjWHVoXxJHH5Du/ck2Us2pvG8zRO4TgPZE144qOiopRquR2ecvlppz77oe pydNZtJAjoBp2ItSBY/eTAiYVVTJvSqPppysKptsV9liTGqg/Cn8IKQC9wTt2Ip87Hnm vmCQ== X-Gm-Message-State: ALyK8tK6OEqhXYA9fbd/i2JKH1FVw8D3XhDtQgIA2qytSDzptnflEp+w/Lf6v4K3I9vx7w== X-Received: by 10.98.93.129 with SMTP id n1mr943518pfj.16.1464129373877; Tue, 24 May 2016 15:36:13 -0700 (PDT) X-Mailer: git-send-email 1.7.11.7 Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 54 Organization: linux.* mail to news gateway X-Original-Cc: linux-kernel@vger.kernel.org, Robert Richter , David Daney X-Original-Date: Tue, 24 May 2016 15:35:42 -0700 X-Original-Message-ID: <1464129345-18985-13-git-send-email-ddaney.cavm@gmail.com> X-Original-References: <1464129345-18985-1-git-send-email-ddaney.cavm@gmail.com> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1406478 From: David Daney Loosely based on code from Robert Richter and Hanjun Guo. Improve out of range node detection as well as allow for Larger SRAT entities. Add printing of nice messages. Signed-off-by: David Daney --- drivers/acpi/numa.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 811f90a..fad6d28 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c @@ -252,8 +252,11 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) if (srat_disabled()) goto out_err; - if (ma->header.length != sizeof(struct acpi_srat_mem_affinity)) + if (ma->header.length < sizeof(struct acpi_srat_mem_affinity)) { + pr_err("SRAT: Unexpected header length: %d\n", + ma->header.length); goto out_err_bad_srat; + } if ((ma->flags & ACPI_SRAT_MEM_ENABLED) == 0) goto out_err; hotpluggable = ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE; @@ -267,13 +270,17 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) pxm &= 0xff; node = acpi_map_pxm_to_node(pxm); - if (node < 0) { - printk(KERN_ERR "SRAT: Too many proximity domains.\n"); + if (node == NUMA_NO_NODE || node >= MAX_NUMNODES) { + pr_err("SRAT: Too many proximity domains.\n"); goto out_err_bad_srat; } - if (numa_add_memblk(node, start, end) < 0) + if (numa_add_memblk(node, start, end) < 0) { + pr_err("SRAT: Failed to add memblk to node %u [mem %#010Lx-%#010Lx]\n", + node, (unsigned long long) start, + (unsigned long long) end - 1); goto out_err_bad_srat; + } node_set(node, numa_nodes_parsed); -- 1.7.11.7