linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Oleksij Rempel <linux@rempel-privat.de>
Cc: <linux-kernel@vger.kernel.org>, <jason@lakedaemon.net>,
	<tglx@linutronix.de>,
	Oleksij Rempel <external.Oleksij.Rempel@de.bosch.com>
Subject: Re: [PATCH v2 2/2] ARM: irqchip: mxs: add Alpascale ASM9260 support
Date: Sun, 20 Sep 2015 12:28:43 +0100	[thread overview]
Message-ID: <20150920122843.7cc93682@arm.com> (raw)
In-Reply-To: <55FCF85E.8060909@rempel-privat.de>

On Sat, 19 Sep 2015 07:53:34 +0200
Oleksij Rempel <linux@rempel-privat.de> wrote:

> Am 18.09.2015 um 12:42 schrieb Marc Zyngier:
> > On Fri, 18 Sep 2015 11:18:42 +0200
> > Oleksij Rempel <linux@rempel-privat.de> wrote:
>

[...]

> >> +static void asm9260_mask_irq(struct irq_data *d)
> >> +{
> >> +	raw_spin_lock(&icoll_lock);
> >> +	__raw_writel(icoll_intr_bitshift(d, BM_ICOLL_INTR_ENABLE),
> >> +			icoll_intr_reg(d) + CLR_REG);
> >> +	raw_spin_unlock(&icoll_lock);
> >> +}
> >> +
> >> +static void asm9260_unmask_irq(struct irq_data *d)
> >> +{
> >> +	raw_spin_lock(&icoll_lock);
> >> +	__raw_writel(ASM9260_BM_CLEAR_BIT(d->hwirq),
> >> +		     icoll_priv.clear +
> >> +		     ASM9260_HW_ICOLL_CLEARn(d->hwirq));
> >> +
> >> +	__raw_writel(icoll_intr_bitshift(d, BM_ICOLL_INTR_ENABLE),
> >> +			icoll_intr_reg(d) + SET_REG);
> >> +	raw_spin_unlock(&icoll_lock);
> >> +}
> > 
> > Can you please explain the rational for this lock? mask/unmask use
> > different registers, and it is not obvious to me what race you are
> > trying to avoid here.
> 
> Uff... in one of earliest reviews i was asked to add lock..
> I also was asked to add asm9260 to some existing driver. Not sure if it
> is still making sense.

Adding or removing a lock is not about what people ask you to do. It is
about requirements dictated by either the HW (you need to perform
a given sequence atomically with respect to another code sequence), the
kernel, or both. So I'd like to understand what is the underlying
reason for this lock. It is not disabling interrupts, so it could end
up being called in an interrupt context -> deadlock.

So either the HW requires it and you have the wrong accessors, or it
doesn't, and you can remove it. Either way, we need to know.

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

  reply	other threads:[~2015-09-20 11:28 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-18  9:18 [PATCH v2 0/2] changelog Oleksij Rempel
2015-09-18  9:18 ` [PATCH v2 1/2] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-09-18 10:21   ` Thomas Gleixner
2015-09-18  9:18 ` [PATCH v2 2/2] ARM: irqchip: mxs: add Alpascale ASM9260 support Oleksij Rempel
2015-09-18 10:42   ` Possible Spam " Marc Zyngier
2015-09-19  5:53     ` Oleksij Rempel
2015-09-20 11:28       ` Marc Zyngier [this message]
2015-09-20 13:47         ` Oleksij Rempel
2015-09-21  9:06         ` Thomas Gleixner
2015-09-21 11:53         ` [PATCH v3 0/2] Add support for ASM9260 interrupt controller Oleksij Rempel
2015-09-21 11:53           ` [PATCH v3 1/2] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-09-21 11:53           ` [PATCH v3 2/2] ARM: irqchip: mxs: add Alphascale ASM9260 support Oleksij Rempel
2015-09-22 10:34             ` Thomas Gleixner
2015-09-23 16:20               ` [PATCH v4 0/2] Add support for ASM9260 interrupt controller Oleksij Rempel
2015-09-23 16:20                 ` [PATCH v4 1/2] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-09-29 16:06                   ` Thomas Gleixner
2015-10-05 19:00                     ` [PATCH v5 0/2] Add support for ASM9260 interrupt controller Oleksij Rempel
2015-10-05 19:00                       ` [PATCH v5 1/2] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-10-05 19:00                       ` [PATCH v5 2/2] ARM: irqchip: mxs: add Alphascale ASM9260 support Oleksij Rempel
2015-10-09 14:11                         ` Thomas Gleixner
2015-10-10 13:08                           ` [PATCH v6 0/2] Add support for ASM9260 interrupt controller Oleksij Rempel
2015-10-10 13:08                             ` [PATCH v6 1/2] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-10-11 17:58                               ` Thomas Gleixner
2015-10-12  9:29                                 ` Oleksij Rempel
2015-10-12  9:32                                   ` Thomas Gleixner
2015-10-12 19:15                                     ` [PATCH v7 0/3] Add support for ASM9260 interrupt controller Oleksij Rempel
2015-10-12 19:15                                       ` [PATCH v7 1/3] ARM: irqchip: mxs: do panic if icoll_base == NULL Oleksij Rempel
2015-10-14  7:42                                         ` [tip:irq/core] irqchip/mxs: Panic if ioremap or domain creation fails tip-bot for Oleksij Rempel
2015-10-12 19:15                                       ` [PATCH v6 1/2] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-10-12 19:15                                       ` [PATCH v6 2/2] ARM: irqchip: mxs: add Alphascale ASM9260 support Oleksij Rempel
2015-10-12 19:15                                       ` [PATCH v7 2/3] ARM: irqchip: mxs: prepare driver for HW with different offsets Oleksij Rempel
2015-10-14  7:42                                         ` [tip:irq/core] irqchip/mxs: Prepare driver for hardware " tip-bot for Oleksij Rempel
2015-10-12 19:15                                       ` [PATCH v7 3/3] ARM: irqchip: mxs: add Alphascale ASM9260 support Oleksij Rempel
2015-10-14  7:43                                         ` [tip:irq/core] irqchip/mxs: Add " tip-bot for Oleksij Rempel
2015-10-10 13:08                             ` [PATCH v6 2/2] ARM: irqchip: mxs: add " Oleksij Rempel
2015-09-23 16:20                 ` [PATCH v4 " Oleksij Rempel
2015-09-18  9:48 ` [PATCH v2 2/2] ARM: irqchip: mxs: add Alpascale " Oleksij Rempel
2015-09-18 10:16 ` [PATCH v2 0/2] changelog Marc Zyngier
2015-09-18 10:19 ` Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150920122843.7cc93682@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=external.Oleksij.Rempel@de.bosch.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rempel-privat.de \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).