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  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 23 Jan 2017 09:39:54 +0000
From:   Marc Zyngier <marc.zyngier@....com>
To:     Linus Walleij <linus.walleij@...aro.org>,
        linux-arm-kernel@...ts.infradead.org,
        Hans Ulli Kroll <ulli.kroll@...glemail.com>,
        Florian Fainelli <f.fainelli@...il.com>,
        Thomas Gleixner <tglx@...utronix.de>
Cc:     Janos Laube <janos.dev@...il.com>,
        Paulius Zaleckas <paulius.zaleckas@...il.com>,
        openwrt-devel@...nwrt.org, Arnd Bergmann <arnd@...db.de>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 03/22] irqchip: add a driver for Cortina Gemini

Hi Linus,

On 22/01/17 12:16, Linus Walleij wrote:
> As a part of transitioning the Gemini platform to device tree we
> create this clean, device-tree-only irqchip driver.
> 
> Cc: Janos Laube <janos.dev@...il.com>
> Cc: Paulius Zaleckas <paulius.zaleckas@...il.com>
> Cc: Hans Ulli Kroll <ulli.kroll@...glemail.com>
> Cc: Florian Fainelli <f.fainelli@...il.com>
> Signed-off-by: Linus Walleij <linus.walleij@...aro.org>
> ---
> irqchip maintainers: please just apply this when you feel pleased
> with it. These portions are functionally orthogonal to the series,
> it is just in a series for context.
> ---

[...]

> +int __init gemini_of_init_irq(struct device_node *node,
> +			      struct device_node *parent)
> +{
> +	struct gemini_irq_data *g = &girq;
> +	unsigned int i;
> +
> +	/*
> +	 * Disable the idle handler by default since it is buggy
> +	 * For more info see arch/arm/mach-gemini/idle.c
> +	 */
> +	cpu_idle_poll_ctrl(true);
> +
> +	g->base = of_iomap(node, 0);
> +	WARN(!g->base, "unable to map gemini irq registers\n");
> +
> +	/* Disable all interrupts */
> +	writel(0, IRQ_MASK(g->base));
> +	writel(0, FIQ_MASK(g->base));
> +
> +	g->domain = irq_domain_add_simple(node, GEMINI_NUM_IRQS, 0,
> +					  &gemini_irqdomain_ops, g);
> +	/* Map all IRQs */
> +	for (i = 0; i < GEMINI_NUM_IRQS; i++)
> +		irq_create_mapping(g->domain, i);

Why is this needed? I can see it being useful while converting the
platform to DT, but as you seem to kill the old code altogether, this
can probably go.

> +
> +	set_handle_irq(gemini_irqchip_handle_irq);
> +
> +	return 0;
> +}
> +IRQCHIP_DECLARE(gemini, "cortina,gemini-interrupt-controller",
> +		gemini_of_init_irq);
> 

Otherwise, looks good to me.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

Powered by blists - more mailing lists