lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <1464129345-18985-13-git-send-email-ddaney.cavm@gmail.com> Date: Tue, 24 May 2016 15:35:42 -0700 From: David Daney <ddaney.cavm@...il.com> To: Will Deacon <will.deacon@....com>, linux-arm-kernel@...ts.infradead.org, Mark Rutland <mark.rutland@....com>, Catalin Marinas <catalin.marinas@....com>, Tony Luck <tony.luck@...el.com>, Fenghua Yu <fenghua.yu@...el.com>, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, "H. Peter Anvin" <hpa@...or.com>, x86@...nel.org, "Rafael J. Wysocki" <rjw@...ysocki.net>, Len Brown <lenb@...nel.org>, Rob Herring <robh+dt@...nel.org>, Frank Rowand <frowand.list@...il.com>, Grant Likely <grant.likely@...aro.org>, Robert Moore <robert.moore@...el.com>, Lv Zheng <lv.zheng@...el.com>, Hanjun Guo <hanjun.guo@...aro.org>, Marc Zyngier <Marc.Zyngier@....com>, linux-ia64@...r.kernel.org, linux-acpi@...r.kernel.org, devel@...ica.org Cc: linux-kernel@...r.kernel.org, Robert Richter <rrichter@...ium.com>, David Daney <david.daney@...ium.com> Subject: [PATCH v7 12/15] acpi, numa, srat: Improve SRAT error detection and add messages. From: David Daney <david.daney@...ium.com> 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 <david.daney@...ium.com> --- 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
Powered by blists - more mailing lists