All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@oss.nxp.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Linus Walleij <linusw@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>,
	Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Shenwei Wang <shenwei.wang@nxp.com>,
	linux-gpio@vger.kernel.org, imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH v6 02/13] gpio: mxc: fix both_edges bit operations
Date: Mon, 12 Oct 2026 17:52:22 +0800	[thread overview]
Message-ID: <asyt1mZfAPhbp9Y1@shlinux89> (raw)
In-Reply-To: <CAHp75VcWZSoMRvdBECyD5AM29+JWX=s0PORFM-QSMCNPD8wkCw@mail.gmail.com>

On Mon, Oct 12, 2026 at 12:18:33PM +0300, Andy Shevchenko wrote:
>On Sun, Oct 11, 2026 at 2:54 PM Peng Fan (OSS) <peng.fan@oss.nxp.com> wrote:
>>
>> gpio_set_irq_type() can be called concurrently for different pins on
>> the same port.  The IRQ core serializes per irq descriptor, but
>> different pins have different descriptors, so on SMP systems two
>> concurrent gpio_set_irq_type() calls for pins on the same port run
>> without mutual exclusion.
>>
>> The read-modify-write of port->both_edges is performed outside the
>> port-wide scoped_guard(gpio_generic_lock_irqsave) section, so
>> concurrent updates for different pins can overwrite each other,
>> causing missed interrupts or stuck IRQ lines on dual-edge triggered
>> pins.
>>
>> The original uniprocessor MXC SoCs were not affected; the race
>> became reachable on multi-core i.MX7 and i.MX8 SoCs that reuse this
>> driver.
>>
>> Convert both_edges from u32 to unsigned long and use set_bit(),
>> clear_bit(), and test_bit() to make the modifications atomic.
>
>Is bitops.h already included?

oh. fix in v7.

Thanks
Peng

>
>-- 
>With Best Regards,
>Andy Shevchenko
>

  reply	other threads:[~2026-10-12  9:47 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-11 11:51 [PATCH v6 00/13] gpio: mxc: bug fixes and probe cleanup Peng Fan (OSS)
2026-10-11 11:51 ` [PATCH v6 01/13] gpio: mxc: fix race between chained IRQ handler install and probe completion Peng Fan (OSS)
2026-10-11 12:05   ` sashiko-bot
2026-10-12  4:14     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 02/13] gpio: mxc: fix both_edges bit operations Peng Fan (OSS)
2026-10-12  9:18   ` Andy Shevchenko
2026-10-12  9:52     ` Peng Fan [this message]
2026-10-11 11:51 ` [PATCH v6 03/13] gpio: mxc: fix wakeup_pads " Peng Fan (OSS)
2026-10-12  9:15   ` Andy Shevchenko
2026-10-12  9:51     ` Peng Fan
2026-10-12 10:30       ` Andy Shevchenko
2026-10-12 11:41         ` Peng Fan
2026-10-12 18:25           ` Andy Shevchenko
2026-10-11 11:51 ` [PATCH v6 04/13] gpio: mxc: use irq_set_irq_wake() to simplify code Peng Fan (OSS)
2026-10-11 11:51 ` [PATCH v6 05/13] gpio: mxc: use for_each_set_bit() to iterate wakeup pads Peng Fan (OSS)
2026-10-12  9:19   ` Andy Shevchenko
2026-10-12  9:53     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 06/13] gpio: mxc: replace of_device_is_compatible() with hwdata flags Peng Fan (OSS)
2026-10-12  9:25   ` Andy Shevchenko
2026-10-12  9:59     ` Peng Fan
2026-10-12 10:32       ` Andy Shevchenko
2026-10-11 11:51 ` [PATCH v6 07/13] gpio: mxc: convert pad wakeup compatible checks to " Peng Fan (OSS)
2026-10-12  9:27   ` Andy Shevchenko
2026-10-12 10:01     ` Peng Fan
2026-10-12 14:31       ` Frank Li
2026-10-11 11:51 ` [PATCH v6 08/13] gpio: mxc: use local dev variable Peng Fan (OSS)
2026-10-12  9:30   ` Andy Shevchenko
2026-10-12 10:05     ` Peng Fan
2026-10-12 10:39       ` Andy Shevchenko
2026-10-12 11:52         ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 09/13] gpio: mxc: use cleanup guard for pm_runtime_get_noresume() balance Peng Fan (OSS)
2026-10-12  9:38   ` Andy Shevchenko
2026-10-12 10:10     ` Peng Fan
2026-10-12 10:41       ` Andy Shevchenko
2026-10-11 11:51 ` [PATCH v6 10/13] gpio: mxc: use devres functions simplify probe code Peng Fan (OSS)
2026-10-11 12:05   ` sashiko-bot
2026-10-12  4:12     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 11/13] gpio: mxc: add dev_err_probe() for error paths to help diagnostics Peng Fan (OSS)
2026-10-11 12:04   ` sashiko-bot
2026-10-12  4:13     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 12/13] gpio: mxc: introduce MXC_ICR macros and use field_prep/field_get Peng Fan (OSS)
2026-10-11 11:51 ` [PATCH v6 13/13] gpio: mxc: use BIT() macro for single-bit operations Peng Fan (OSS)

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=asyt1mZfAPhbp9Y1@shlinux89 \
    --to=peng.fan@oss.nxp.com \
    --cc=Frank.Li@nxp.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=brgl@kernel.org \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=linusw@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peng.fan@nxp.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shenwei.wang@nxp.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.