From: "Jiawen Wu" <jiawenwu@trustnetic.com>
To: "'Andy Shevchenko'" <andy.shevchenko@gmail.com>,
"'Michael Walle'" <michael@walle.cc>
Cc: <linus.walleij@linaro.org>, <brgl@bgdev.pl>,
<shreeya.patel@collabora.com>, <linux-gpio@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v2] gpiolib: Fix GPIO chip IRQ initialization restriction
Date: Fri, 16 Jun 2023 10:11:43 +0800 [thread overview]
Message-ID: <012b01d99ff7$e51075e0$af3161a0$@trustnetic.com> (raw)
In-Reply-To: <CAHp75VcgAhaSARXMnRzsDE3x57AjnwS6Ep25Mz7SnizUccG6BA@mail.gmail.com>
On Thursday, June 15, 2023 9:56 PM, Andy Shevchenko wrote:
> On Thu, Jun 15, 2023 at 1:45 PM Michael Walle <michael@walle.cc> wrote:
> > > BTW, I wonder if it has problems when unregistering gpio-regmap.
> > > Call Trace of irq_domain_remove() always exits in my test:
> > > https://lore.kernel.org/all/011c01d98d3d$99e6c6e0$cdb454a0$@trustnetic.com/
> > >
> > > Of course, it could be because there was something wrong with my
> > > test code. But I want to be clear about this.
> >
> > Mh, you've said you don't use the devm_ variant of
> > regmap_add_irq_chip(),
> > correct? Do you call regmap_del_irq_chip() yourself?
Yes, devm_regmap_del_irq_chip() also led to a call trace. I thought it
might be the order of release, so I called it myself without devm_.
> > It seems that gpiolib is already removing the domain itself. Mh.
> > I guess if the the domain is set via gpiochip_irqchip_add_domain()
> > gpiolib must not call irq_domain_remove() because the domain resource
> > is handled externally (i.e. gpiolib doesn't allocate the domain
> > itself) in our case.
> >
> > Nice finding! Looks like it has been broken since the beginning
> > when I've introduced the gpiochip_irqchip_add_domain(). Will you
> > do another fixes patch for that?
I used to be rough at fixing in my test, I tried to set gc->irq.domain = NULL
after calling irq_domain_remove() in gpiochip_irqchip_remove(). But
there seemed to be some other issue that was causing my device to not
work, so I didn't go further. I wonder what risks such fix introduces.
Sorry I may not be able to do the fix patch for a while. I'm working on
other patches, this test will disrupt my work.
> > I'm not sure where to store
> > that information though. Maybe a new bool "no_domain_free"
> > in struct gpio_irq_chip?
>
> While reading this I also thought about flag, but please use positive
> notation, e.g. "irq_domain_is_ext".
next prev parent reply other threads:[~2023-06-16 2:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-07 8:18 [PATCH v2] gpiolib: Fix GPIO chip IRQ initialization restriction Jiawen Wu
2023-06-07 14:12 ` Andy Shevchenko
2023-06-15 9:26 ` Michael Walle
2023-06-15 9:34 ` Shreeya Patel
2023-06-15 9:52 ` Jiawen Wu
2023-06-15 10:45 ` Michael Walle
2023-06-15 13:55 ` Andy Shevchenko
2023-06-16 2:11 ` Jiawen Wu [this message]
2023-06-16 2:20 ` Jiawen Wu
2023-06-09 7:37 ` Linus Walleij
2023-06-13 12:41 ` Bartosz Golaszewski
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='012b01d99ff7$e51075e0$af3161a0$@trustnetic.com' \
--to=jiawenwu@trustnetic.com \
--cc=andy.shevchenko@gmail.com \
--cc=brgl@bgdev.pl \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael@walle.cc \
--cc=shreeya.patel@collabora.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.