[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 06/16] xen/arm: segregate and split GIC low level functionality



On Mon, 26 May 2014, vijay.kilari@xxxxxxxxx wrote:
> From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
> 
> GIC driver contains both generic and hardware specific low
> level functionality in gic.c file.
> 
> With this patch, low level functionality is moved to separate
> file gic-v2.c and generic code is kept in gic.c file
> 
> Callbacks are registered by low level driver with generic driver
> and are called whereever required.
> 
> The locking mechanism is not changed.
> 
> This helps to separate generic and hardware functionality
> and implement future hardware version drivers.
> 
> Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>

[...]

> +static void gicv2_irq_enable(struct irq_desc *desc)
> +{
> +    unsigned long flags;
> +
> +    spin_lock_irqsave(&desc->lock, flags);
> +    spin_lock(&gicv2.lock);
> +    desc->status &= ~IRQ_DISABLED;
> +    dsb(sy);
> +    /* Enable routing */
> +    gicv2_enable_irq(desc);
> +    spin_unlock(&gicv2.lock);
> +    spin_unlock_irqrestore(&desc->lock, flags);
> +}

you say that you are not changing locking but the original function had:

ASSERT(spin_is_locked(&desc->lock));


> +static void gicv2_irq_disable(struct irq_desc *desc)
> +{
> +    unsigned long flags;
> +
> +    spin_lock_irqsave(&desc->lock, flags);
> +    spin_lock(&gicv2.lock);
> +    /* Disable routing */
> +    gicv2_disable_irq(desc);
> +    desc->status |= IRQ_DISABLED;
> +    spin_unlock(&gicv2.lock);
> +    spin_unlock_irqrestore(&desc->lock, flags);
> +}

same here



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.