Message ID | 1405064267-11678-22-git-send-email-jiang.liu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jul 11, 2014 at 03:37:38PM +0800, Jiang Liu wrote: > When CONFIG_HAVE_MEMORYLESS_NODES is enabled, cpu_to_node()/numa_node_id() > may return a node without memory, and later cause system failure/panic > when calling kmalloc_node() and friends with returned node id. > So use cpu_to_mem()/numa_mem_id() instead to get the nearest node with > memory for the/current cpu. > > If CONFIG_HAVE_MEMORYLESS_NODES is disabled, cpu_to_mem()/numa_mem_id() > is the same as cpu_to_node()/numa_node_id(). > > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> > --- > drivers/irqchip/irq-clps711x.c | 2 +- > drivers/irqchip/irq-gic.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) Do you have anything depending on this? Can apply it to irqchip? If you need to keep it with other changes, Acked-by: Jason Cooper <jason@lakedaemon.net> But please do let me know if I can take it. thx, Jason.
Hi Jason, Thanks for your review. According to review comments, we need to rework the patch set in another direction and will give up this patch. Regards! Gerry On 2014/7/18 20:40, Jason Cooper wrote: > On Fri, Jul 11, 2014 at 03:37:38PM +0800, Jiang Liu wrote: >> When CONFIG_HAVE_MEMORYLESS_NODES is enabled, cpu_to_node()/numa_node_id() >> may return a node without memory, and later cause system failure/panic >> when calling kmalloc_node() and friends with returned node id. >> So use cpu_to_mem()/numa_mem_id() instead to get the nearest node with >> memory for the/current cpu. >> >> If CONFIG_HAVE_MEMORYLESS_NODES is disabled, cpu_to_mem()/numa_mem_id() >> is the same as cpu_to_node()/numa_node_id(). >> >> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> >> --- >> drivers/irqchip/irq-clps711x.c | 2 +- >> drivers/irqchip/irq-gic.c | 2 +- >> 2 files changed, 2 insertions(+), 2 deletions(-) > > Do you have anything depending on this? Can apply it to irqchip? If > you need to keep it with other changes, > > Acked-by: Jason Cooper <jason@lakedaemon.net> > > But please do let me know if I can take it. > > thx, > > Jason. >
diff --git a/drivers/irqchip/irq-clps711x.c b/drivers/irqchip/irq-clps711x.c index 33340dc97d1d..b0acf8b32a1a 100644 --- a/drivers/irqchip/irq-clps711x.c +++ b/drivers/irqchip/irq-clps711x.c @@ -186,7 +186,7 @@ static int __init _clps711x_intc_init(struct device_node *np, writel_relaxed(0, clps711x_intc->intmr[1]); writel_relaxed(0, clps711x_intc->intmr[2]); - err = irq_alloc_descs(-1, 0, ARRAY_SIZE(clps711x_irqs), numa_node_id()); + err = irq_alloc_descs(-1, 0, ARRAY_SIZE(clps711x_irqs), numa_mem_id()); if (IS_ERR_VALUE(err)) goto out_iounmap; diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index 7e11c9d6ae8c..a7e6c043d823 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c @@ -1005,7 +1005,7 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, if (of_property_read_u32(node, "arm,routable-irqs", &nr_routable_irqs)) { irq_base = irq_alloc_descs(irq_start, 16, gic_irqs, - numa_node_id()); + numa_mem_id()); if (IS_ERR_VALUE(irq_base)) { WARN(1, "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated\n", irq_start);
When CONFIG_HAVE_MEMORYLESS_NODES is enabled, cpu_to_node()/numa_node_id() may return a node without memory, and later cause system failure/panic when calling kmalloc_node() and friends with returned node id. So use cpu_to_mem()/numa_mem_id() instead to get the nearest node with memory for the/current cpu. If CONFIG_HAVE_MEMORYLESS_NODES is disabled, cpu_to_mem()/numa_mem_id() is the same as cpu_to_node()/numa_node_id(). Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> --- drivers/irqchip/irq-clps711x.c | 2 +- drivers/irqchip/irq-gic.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)