All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: Xu Yang <xu.yang_2@nxp.com>
Cc: heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org,
	andre.draszik@linaro.org, rdbabiera@google.com,
	m.felsch@pengutronix.de, emanuele.ghidoli@toradex.com,
	parth.pancholi@toradex.com, francesco.dolcini@toradex.com,
	u.kleine-koenig@baylibre.com, linux-usb@vger.kernel.org,
	imx@lists.linux.dev, jun.li@nxp.com
Subject: Re: [PATCH v3 2/2] usb: typec: tcpci: set ALERT_MASK register after devm_request_threaded_irq()
Date: Tue, 17 Dec 2024 13:45:08 +0300	[thread overview]
Message-ID: <0e46eee3-332e-4fbf-b6a8-9e645750ecea@stanley.mountain> (raw)
In-Reply-To: <20241217091208.2416971-2-xu.yang_2@nxp.com>

On Tue, Dec 17, 2024 at 05:12:08PM +0800, Xu Yang wrote:
> With edge irq support, the ALERT event may be missed currently. The reason
> is that ALERT_MASK register is written before devm_request_threaded_irq().
> If ALERT event happens in this time gap, it will be missed and ALERT line
> will not recover to high level. However, we don't meet this issue with
> level irq. To avoid the issue, this will set ALERT_MASK register after
> devm_request_threaded_irq() return.
> 
> Fixes: 77e85107a771 ("usb: typec: tcpci: support edge irq")

I agree with Francesco that this was introduced by patch 1 so the
patches need to be folded together into one patch.  The commit
message would be something like:

    The ordering of setting up the IRQs is not correct here.
    We need to call tcpci_register_port() devm_request_threaded_irq().
    Otherwise if we recieve an IRQ before tcpci_register_port() has
    completed it leads to a NULL dereference in tcpci_irq() because
    tcpci->regmap and other pointers are NULL.

    However, moving tcpci_register_port() earlier creates a problem
    of its own because there is a potential that tcpci_init() will be
    called before devm_request_threaded_irq().  The tcpci_init()
    writes the ALERT_MASK to the hardware to tell it to start
    generating interrupts but we're not ready to deal with them yet.

    Move the ALERT_MASK stuff until after the call to
    devm_request_threaded_irq() has finished.

Something like that.

regards,
dan carpenter


  parent reply	other threads:[~2024-12-17 10:45 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-17  9:12 [PATCH v3 1/2] usb: typec: tcpci: fix NULL pointer issue on shared irq case Xu Yang
2024-12-17  9:12 ` [PATCH v3 2/2] usb: typec: tcpci: set ALERT_MASK register after devm_request_threaded_irq() Xu Yang
2024-12-17  9:29   ` Francesco Dolcini
2024-12-17  9:41     ` Xu Yang
2024-12-17  9:45       ` Francesco Dolcini
2024-12-17  9:49         ` Xu Yang
2024-12-17 10:45   ` Dan Carpenter [this message]
2024-12-18  5:49     ` Xu Yang
2024-12-17 16:35   ` Francesco Dolcini
2024-12-17 20:29     ` Emanuele Ghidoli
2024-12-18  5:31       ` Xu Yang
2024-12-18  6:41         ` Emanuele Ghidoli
2024-12-18  7:11           ` Xu Yang
2024-12-17  9:56 ` [PATCH v3 1/2] usb: typec: tcpci: fix NULL pointer issue on shared irq case Dan Carpenter
2024-12-18  5:45   ` Xu Yang
2024-12-18  9:35     ` Dan Carpenter

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=0e46eee3-332e-4fbf-b6a8-9e645750ecea@stanley.mountain \
    --to=dan.carpenter@linaro.org \
    --cc=andre.draszik@linaro.org \
    --cc=emanuele.ghidoli@toradex.com \
    --cc=francesco.dolcini@toradex.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=imx@lists.linux.dev \
    --cc=jun.li@nxp.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.felsch@pengutronix.de \
    --cc=parth.pancholi@toradex.com \
    --cc=rdbabiera@google.com \
    --cc=u.kleine-koenig@baylibre.com \
    --cc=xu.yang_2@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.