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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <56938790.6000007@arm.com>
Date:	Mon, 11 Jan 2016 10:44:32 +0000
From:	Marc Zyngier <marc.zyngier@....com>
To:	Jon Hunter <jonathanh@...dia.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Jason Cooper <jason@...edaemon.net>
CC:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH V2 1/2] irqchip/gic: Remove static irq_chip definition
 for eoimode1

On 22/12/15 12:09, Jon Hunter wrote:
> There are only 3 differences (not including the name) in the definitions
> of the gic_chip and gic_eoimode1_chip structures. Instead of statically
> defining the gic_eoimode1_chip structure, remove it and populate the
> eoimode1 functions dynamically for the appropriate GIC irqchips.
> 
> Signed-off-by: Jon Hunter <jonathanh@...dia.com>
> ---
>  drivers/irqchip/irq-gic.c | 26 +++++---------------------
>  1 file changed, 5 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
> index fcbe0b90870d..94ad60c424a7 100644
> --- a/drivers/irqchip/irq-gic.c
> +++ b/drivers/irqchip/irq-gic.c
> @@ -394,23 +394,6 @@ static struct irq_chip gic_chip = {
>  				  IRQCHIP_MASK_ON_SUSPEND,
>  };
>  
> -static struct irq_chip gic_eoimode1_chip = {
> -	.name			= "GICv2",
> -	.irq_mask		= gic_eoimode1_mask_irq,
> -	.irq_unmask		= gic_unmask_irq,
> -	.irq_eoi		= gic_eoimode1_eoi_irq,
> -	.irq_set_type		= gic_set_type,
> -#ifdef CONFIG_SMP
> -	.irq_set_affinity	= gic_set_affinity,
> -#endif
> -	.irq_get_irqchip_state	= gic_irq_get_irqchip_state,
> -	.irq_set_irqchip_state	= gic_irq_set_irqchip_state,
> -	.irq_set_vcpu_affinity	= gic_irq_set_vcpu_affinity,
> -	.flags			= IRQCHIP_SET_TYPE_MASKED |
> -				  IRQCHIP_SKIP_SET_WAKE |
> -				  IRQCHIP_MASK_ON_SUSPEND,
> -};
> -
>  void __init gic_cascade_irq(unsigned int gic_nr, unsigned int irq)
>  {
>  	BUG_ON(gic_nr >= CONFIG_ARM_GIC_MAX_NR);
> @@ -1030,13 +1013,14 @@ static void __init __gic_init_bases(unsigned int gic_nr, int irq_start,
>  	gic_check_cpu_features();
>  
>  	gic = &gic_data[gic_nr];
> +	gic->chip = gic_chip;
> +	gic->chip.name = kasprintf(GFP_KERNEL, "GIC-%d", gic_nr);

I'd really like to keep GICv2 being displayed when the GIC is in
EOIMode==1, as it has proved to be a valuable debugging information in
the recent past.

>  
>  	/* Initialize irq_chip */
>  	if (static_key_true(&supports_deactivate) && gic_nr == 0) {
> -		gic->chip = gic_eoimode1_chip;
> -	} else {
> -		gic->chip = gic_chip;
> -		gic->chip.name = kasprintf(GFP_KERNEL, "GIC-%d", gic_nr);
> +		gic->chip.irq_mask = gic_eoimode1_mask_irq;
> +		gic->chip.irq_eoi = gic_eoimode1_eoi_irq;
> +		gic->chip.irq_set_vcpu_affinity = gic_irq_set_vcpu_affinity;
>  	}
>  
>  #ifdef CONFIG_GIC_NON_BANKED
> 

Other than that, I'm fine with that change (as well as the following one).

Thanks,

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ