All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Sergey Shtylyov" <s.shtylyov@omp.ru>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org,
	"Jiri Slaby" <jirislaby@kernel.org>,
	openipmi-developer@lists.sourceforge.net,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	platform-driver-x86@vger.kernel.org,
	"Benson Leung" <bleung@chromium.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	netdev@vger.kernel.org,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	linux-spi <linux-spi@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Richard Weinberger" <richard@nod.at>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent()
Date: Tue, 25 Jan 2022 16:01:17 +0200	[thread overview]
Message-ID: <YfACrffZCCeleOjK@smile.fi.intel.com> (raw)
In-Reply-To: <33e55c4c0a637b23d76db5d33872378ad04121bd.camel@ew.tq-group.com>

On Tue, Jan 25, 2022 at 01:56:05PM +0100, Matthias Schiffer wrote:
> On Tue, 2022-01-25 at 09:25 +0100, Geert Uytterhoeven wrote:
> > On Mon, Jan 24, 2022 at 10:02 PM Sergey Shtylyov <s.shtylyov@omp.ru>
> > wrote:
> > > On 1/24/22 6:01 PM, Andy Shevchenko wrote:

...

> > > > > > 2. The vIRQ0 handling: a) WARN() followed by b) returned
> > > > > > value 0
> > > > > 
> > > > > I'm happy with the vIRQ0 handling. Today platform_get_irq() and
> > > > > it's
> > > > > silent variant returns either a valid and usuable irq number or
> > > > > a
> > > > > negative error value. That's totally fine.
> > > > 
> > > > It might return 0.
> > > > Actually it seems that the WARN() can only be issued in two
> > > > cases:
> > > > - SPARC with vIRQ0 in one of the array member
> > > > - fallback to ACPI for GPIO IRQ resource with index 0
> > > 
> > >    You have probably missed the recent discovery that
> > > arch/sh/boards/board-aps4*.c
> > > causes IRQ0 to be passed as a direct IRQ resource?
> > 
> > So far no one reported seeing the big fat warning ;-)
> 
> FWIW, we had a similar issue with an IRQ resource passed from the
> tqmx86 MFD driver do the GPIO driver, which we noticed due to this
> warning, and which was fixed
> in a946506c48f3bd09363c9d2b0a178e55733bcbb6
> and 9b87f43537acfa24b95c236beba0f45901356eb2.

No, it's not, unfortunately :-( You just band aided the warning issue, but the
root cause is the WARN() and possibility to see valid (v)IRQ0 in the resources.
See below.

> I believe these changes are what promted this whole discussion and led
> to my "Reported-by" on the patch?
> 
> It is not entirely clear to me when IRQ 0 is valid and when it isn't,
> but the warning seems useful to me. Maybe it would make more sense to
> warn when such an IRQ resource is registered for a platform device, and
> not when it is looked up?
> 
> My opinion is that it would be very confusing if there are any places
> in the kernel (on some platforms) where IRQ 0 is valid,

And those places are board files like yours :( They have to be fixed
eventually. Ideally by using IRQ domains. At least that's how it's
done elsewhere.

> but for
> platform_get_irq() it would suddenly mean "not found". Keeping a
> negative return value seems preferable to me for this reason.

IRQ 0 is valid, vIRQ0 (or read it as cookie) is not.

Now, the problem in your case is that you are talking about board files, while
ACPI and DT never gives resource with vIRQ0. For board files some (legacy) code
decides that it's fine to supply HW IRQ, while the de facto case is that
platform_get_resource() returns whatever is in the resource, while
platform_get_irq() should return a cookie.

> (An alternative, more involved idea would be to add 1 to all IRQ
> "cookies", so IRQ 0 would return 1, leaving 0 as a special value. I
> have absolutely no idea how big the API surface is that would need
> changes, and it is likely not worth the effort at all.)

This is what IRQ domains do, they start vIRQs from 1.

> > > > The bottom line here is the SPARC case. Anybody familiar with the
> > > > platform
> > > > can shed a light on this. If there is no such case, we may remove
> > > > warning
> > > > along with ret = 0 case from platfrom_get_irq().
> > > 
> > >    I'm afraid you're too fast here... :-)
> > >    We'll have a really hard time if we continue to allow IRQ0 to be
> > > returned by
> > > platform_get_irq() -- we'll have oto fileter it out in the callers
> > > then...
> > 
> > So far no one reported seeing the big fat warning?
> > 
> > > > > > 3. The specific cookie for "IRQ not found, while no error
> > > > > > happened" case
> > > > > 
> > > > > Not sure what you mean here. I have no problem that a situation
> > > > > I can
> > > > > cope with is called an error for the query function. I just do
> > > > > error
> > > > > handling and continue happily. So the part "while no error
> > > > > happened" is
> > > > > irrelevant to me.
> > > > 
> > > > I meant that instead of using special error code, 0 is very much
> > > > good for
> > > > the cases when IRQ is not found. It allows to distinguish -ENXIO
> > > > from the
> > > > low layer from -ENXIO with this magic meaning.
> > > 
> > >    I don't see how -ENXIO can trickle from the lower layers,
> > > frankly...
> > 
> > It might one day, leading to very hard to track bugs.
> 
> As gregkh noted, changing the return value without also making the
> compile fail will be a huge PITA whenever driver patches are back- or
> forward-ported, as it would require subtle changes in error paths,
> which can easily slip through unnoticed, in particular with half-
> automated stable backports.

Let's not modify kernel at all then, because in many cases it is a PITA
for back- or forward-porting :-)

> Even if another return value like -ENODEV might be better aligned with
> ...regulator_get_optional() and similar functions, or we even find a
> way to make 0 usable for this, none of the proposed changes strike me
> as big enough a win to outweigh the churn caused by making such a
> change at all.

Yeah, let's continue to suffer from ugly interface and see more band aids
landing around...

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Sergey Shtylyov" <s.shtylyov@omp.ru>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org,
	"Jiri Slaby" <jirislaby@kernel.org>,
	openipmi-developer@lists.sourceforge.net,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	platform-driver-x86@vger.kernel.org,
	"Benson Leung" <bleung@chromium.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	netdev@vger.kernel.org,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	linux-spi <linux-spi@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Richard Weinberger" <richard@nod.at>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent()
Date: Tue, 25 Jan 2022 16:01:17 +0200	[thread overview]
Message-ID: <YfACrffZCCeleOjK@smile.fi.intel.com> (raw)
In-Reply-To: <33e55c4c0a637b23d76db5d33872378ad04121bd.camel@ew.tq-group.com>

On Tue, Jan 25, 2022 at 01:56:05PM +0100, Matthias Schiffer wrote:
> On Tue, 2022-01-25 at 09:25 +0100, Geert Uytterhoeven wrote:
> > On Mon, Jan 24, 2022 at 10:02 PM Sergey Shtylyov <s.shtylyov@omp.ru>
> > wrote:
> > > On 1/24/22 6:01 PM, Andy Shevchenko wrote:

...

> > > > > > 2. The vIRQ0 handling: a) WARN() followed by b) returned
> > > > > > value 0
> > > > > 
> > > > > I'm happy with the vIRQ0 handling. Today platform_get_irq() and
> > > > > it's
> > > > > silent variant returns either a valid and usuable irq number or
> > > > > a
> > > > > negative error value. That's totally fine.
> > > > 
> > > > It might return 0.
> > > > Actually it seems that the WARN() can only be issued in two
> > > > cases:
> > > > - SPARC with vIRQ0 in one of the array member
> > > > - fallback to ACPI for GPIO IRQ resource with index 0
> > > 
> > >    You have probably missed the recent discovery that
> > > arch/sh/boards/board-aps4*.c
> > > causes IRQ0 to be passed as a direct IRQ resource?
> > 
> > So far no one reported seeing the big fat warning ;-)
> 
> FWIW, we had a similar issue with an IRQ resource passed from the
> tqmx86 MFD driver do the GPIO driver, which we noticed due to this
> warning, and which was fixed
> in a946506c48f3bd09363c9d2b0a178e55733bcbb6
> and 9b87f43537acfa24b95c236beba0f45901356eb2.

No, it's not, unfortunately :-( You just band aided the warning issue, but the
root cause is the WARN() and possibility to see valid (v)IRQ0 in the resources.
See below.

> I believe these changes are what promted this whole discussion and led
> to my "Reported-by" on the patch?
> 
> It is not entirely clear to me when IRQ 0 is valid and when it isn't,
> but the warning seems useful to me. Maybe it would make more sense to
> warn when such an IRQ resource is registered for a platform device, and
> not when it is looked up?
> 
> My opinion is that it would be very confusing if there are any places
> in the kernel (on some platforms) where IRQ 0 is valid,

And those places are board files like yours :( They have to be fixed
eventually. Ideally by using IRQ domains. At least that's how it's
done elsewhere.

> but for
> platform_get_irq() it would suddenly mean "not found". Keeping a
> negative return value seems preferable to me for this reason.

IRQ 0 is valid, vIRQ0 (or read it as cookie) is not.

Now, the problem in your case is that you are talking about board files, while
ACPI and DT never gives resource with vIRQ0. For board files some (legacy) code
decides that it's fine to supply HW IRQ, while the de facto case is that
platform_get_resource() returns whatever is in the resource, while
platform_get_irq() should return a cookie.

> (An alternative, more involved idea would be to add 1 to all IRQ
> "cookies", so IRQ 0 would return 1, leaving 0 as a special value. I
> have absolutely no idea how big the API surface is that would need
> changes, and it is likely not worth the effort at all.)

This is what IRQ domains do, they start vIRQs from 1.

> > > > The bottom line here is the SPARC case. Anybody familiar with the
> > > > platform
> > > > can shed a light on this. If there is no such case, we may remove
> > > > warning
> > > > along with ret = 0 case from platfrom_get_irq().
> > > 
> > >    I'm afraid you're too fast here... :-)
> > >    We'll have a really hard time if we continue to allow IRQ0 to be
> > > returned by
> > > platform_get_irq() -- we'll have oto fileter it out in the callers
> > > then...
> > 
> > So far no one reported seeing the big fat warning?
> > 
> > > > > > 3. The specific cookie for "IRQ not found, while no error
> > > > > > happened" case
> > > > > 
> > > > > Not sure what you mean here. I have no problem that a situation
> > > > > I can
> > > > > cope with is called an error for the query function. I just do
> > > > > error
> > > > > handling and continue happily. So the part "while no error
> > > > > happened" is
> > > > > irrelevant to me.
> > > > 
> > > > I meant that instead of using special error code, 0 is very much
> > > > good for
> > > > the cases when IRQ is not found. It allows to distinguish -ENXIO
> > > > from the
> > > > low layer from -ENXIO with this magic meaning.
> > > 
> > >    I don't see how -ENXIO can trickle from the lower layers,
> > > frankly...
> > 
> > It might one day, leading to very hard to track bugs.
> 
> As gregkh noted, changing the return value without also making the
> compile fail will be a huge PITA whenever driver patches are back- or
> forward-ported, as it would require subtle changes in error paths,
> which can easily slip through unnoticed, in particular with half-
> automated stable backports.

Let's not modify kernel at all then, because in many cases it is a PITA
for back- or forward-porting :-)

> Even if another return value like -ENODEV might be better aligned with
> ...regulator_get_optional() and similar functions, or we even find a
> way to make 0 usable for this, none of the proposed changes strike me
> as big enough a win to outweigh the churn caused by making such a
> change at all.

Yeah, let's continue to suffer from ugly interface and see more band aids
landing around...

-- 
With Best Regards,
Andy Shevchenko



-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Sergey Shtylyov" <s.shtylyov@omp.ru>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org,
	"Jiri Slaby" <jirislaby@kernel.org>,
	openipmi-developer@lists.sourceforge.net,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	platform-driver-x86@vger.kernel.org,
	"Benson Leung" <bleung@chromium.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	netdev@vger.kernel.org,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	linux-spi <linux-spi@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Richard Weinberger" <richard@nod.at>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent()
Date: Tue, 25 Jan 2022 16:01:17 +0200	[thread overview]
Message-ID: <YfACrffZCCeleOjK@smile.fi.intel.com> (raw)
In-Reply-To: <33e55c4c0a637b23d76db5d33872378ad04121bd.camel@ew.tq-group.com>

On Tue, Jan 25, 2022 at 01:56:05PM +0100, Matthias Schiffer wrote:
> On Tue, 2022-01-25 at 09:25 +0100, Geert Uytterhoeven wrote:
> > On Mon, Jan 24, 2022 at 10:02 PM Sergey Shtylyov <s.shtylyov@omp.ru>
> > wrote:
> > > On 1/24/22 6:01 PM, Andy Shevchenko wrote:

...

> > > > > > 2. The vIRQ0 handling: a) WARN() followed by b) returned
> > > > > > value 0
> > > > > 
> > > > > I'm happy with the vIRQ0 handling. Today platform_get_irq() and
> > > > > it's
> > > > > silent variant returns either a valid and usuable irq number or
> > > > > a
> > > > > negative error value. That's totally fine.
> > > > 
> > > > It might return 0.
> > > > Actually it seems that the WARN() can only be issued in two
> > > > cases:
> > > > - SPARC with vIRQ0 in one of the array member
> > > > - fallback to ACPI for GPIO IRQ resource with index 0
> > > 
> > >    You have probably missed the recent discovery that
> > > arch/sh/boards/board-aps4*.c
> > > causes IRQ0 to be passed as a direct IRQ resource?
> > 
> > So far no one reported seeing the big fat warning ;-)
> 
> FWIW, we had a similar issue with an IRQ resource passed from the
> tqmx86 MFD driver do the GPIO driver, which we noticed due to this
> warning, and which was fixed
> in a946506c48f3bd09363c9d2b0a178e55733bcbb6
> and 9b87f43537acfa24b95c236beba0f45901356eb2.

No, it's not, unfortunately :-( You just band aided the warning issue, but the
root cause is the WARN() and possibility to see valid (v)IRQ0 in the resources.
See below.

> I believe these changes are what promted this whole discussion and led
> to my "Reported-by" on the patch?
> 
> It is not entirely clear to me when IRQ 0 is valid and when it isn't,
> but the warning seems useful to me. Maybe it would make more sense to
> warn when such an IRQ resource is registered for a platform device, and
> not when it is looked up?
> 
> My opinion is that it would be very confusing if there are any places
> in the kernel (on some platforms) where IRQ 0 is valid,

And those places are board files like yours :( They have to be fixed
eventually. Ideally by using IRQ domains. At least that's how it's
done elsewhere.

> but for
> platform_get_irq() it would suddenly mean "not found". Keeping a
> negative return value seems preferable to me for this reason.

IRQ 0 is valid, vIRQ0 (or read it as cookie) is not.

Now, the problem in your case is that you are talking about board files, while
ACPI and DT never gives resource with vIRQ0. For board files some (legacy) code
decides that it's fine to supply HW IRQ, while the de facto case is that
platform_get_resource() returns whatever is in the resource, while
platform_get_irq() should return a cookie.

> (An alternative, more involved idea would be to add 1 to all IRQ
> "cookies", so IRQ 0 would return 1, leaving 0 as a special value. I
> have absolutely no idea how big the API surface is that would need
> changes, and it is likely not worth the effort at all.)

This is what IRQ domains do, they start vIRQs from 1.

> > > > The bottom line here is the SPARC case. Anybody familiar with the
> > > > platform
> > > > can shed a light on this. If there is no such case, we may remove
> > > > warning
> > > > along with ret = 0 case from platfrom_get_irq().
> > > 
> > >    I'm afraid you're too fast here... :-)
> > >    We'll have a really hard time if we continue to allow IRQ0 to be
> > > returned by
> > > platform_get_irq() -- we'll have oto fileter it out in the callers
> > > then...
> > 
> > So far no one reported seeing the big fat warning?
> > 
> > > > > > 3. The specific cookie for "IRQ not found, while no error
> > > > > > happened" case
> > > > > 
> > > > > Not sure what you mean here. I have no problem that a situation
> > > > > I can
> > > > > cope with is called an error for the query function. I just do
> > > > > error
> > > > > handling and continue happily. So the part "while no error
> > > > > happened" is
> > > > > irrelevant to me.
> > > > 
> > > > I meant that instead of using special error code, 0 is very much
> > > > good for
> > > > the cases when IRQ is not found. It allows to distinguish -ENXIO
> > > > from the
> > > > low layer from -ENXIO with this magic meaning.
> > > 
> > >    I don't see how -ENXIO can trickle from the lower layers,
> > > frankly...
> > 
> > It might one day, leading to very hard to track bugs.
> 
> As gregkh noted, changing the return value without also making the
> compile fail will be a huge PITA whenever driver patches are back- or
> forward-ported, as it would require subtle changes in error paths,
> which can easily slip through unnoticed, in particular with half-
> automated stable backports.

Let's not modify kernel at all then, because in many cases it is a PITA
for back- or forward-porting :-)

> Even if another return value like -ENODEV might be better aligned with
> ...regulator_get_optional() and similar functions, or we even find a
> way to make 0 usable for this, none of the proposed changes strike me
> as big enough a win to outweigh the churn caused by making such a
> change at all.

Yeah, let's continue to suffer from ugly interface and see more band aids
landing around...

-- 
With Best Regards,
Andy Shevchenko



______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Sergey Shtylyov" <s.shtylyov@omp.ru>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org,
	"Jiri Slaby" <jirislaby@kernel.org>,
	openipmi-developer@lists.sourceforge.net,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	platform-driver-x86@vger.kernel.org,
	"Benson Leung" <bleung@chromium.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	netdev@vger.kernel.org,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	linux-spi <linux-spi@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Richard Weinberger" <richard@nod.at>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent()
Date: Tue, 25 Jan 2022 16:01:17 +0200	[thread overview]
Message-ID: <YfACrffZCCeleOjK@smile.fi.intel.com> (raw)
In-Reply-To: <33e55c4c0a637b23d76db5d33872378ad04121bd.camel@ew.tq-group.com>

On Tue, Jan 25, 2022 at 01:56:05PM +0100, Matthias Schiffer wrote:
> On Tue, 2022-01-25 at 09:25 +0100, Geert Uytterhoeven wrote:
> > On Mon, Jan 24, 2022 at 10:02 PM Sergey Shtylyov <s.shtylyov@omp.ru>
> > wrote:
> > > On 1/24/22 6:01 PM, Andy Shevchenko wrote:

...

> > > > > > 2. The vIRQ0 handling: a) WARN() followed by b) returned
> > > > > > value 0
> > > > > 
> > > > > I'm happy with the vIRQ0 handling. Today platform_get_irq() and
> > > > > it's
> > > > > silent variant returns either a valid and usuable irq number or
> > > > > a
> > > > > negative error value. That's totally fine.
> > > > 
> > > > It might return 0.
> > > > Actually it seems that the WARN() can only be issued in two
> > > > cases:
> > > > - SPARC with vIRQ0 in one of the array member
> > > > - fallback to ACPI for GPIO IRQ resource with index 0
> > > 
> > >    You have probably missed the recent discovery that
> > > arch/sh/boards/board-aps4*.c
> > > causes IRQ0 to be passed as a direct IRQ resource?
> > 
> > So far no one reported seeing the big fat warning ;-)
> 
> FWIW, we had a similar issue with an IRQ resource passed from the
> tqmx86 MFD driver do the GPIO driver, which we noticed due to this
> warning, and which was fixed
> in a946506c48f3bd09363c9d2b0a178e55733bcbb6
> and 9b87f43537acfa24b95c236beba0f45901356eb2.

No, it's not, unfortunately :-( You just band aided the warning issue, but the
root cause is the WARN() and possibility to see valid (v)IRQ0 in the resources.
See below.

> I believe these changes are what promted this whole discussion and led
> to my "Reported-by" on the patch?
> 
> It is not entirely clear to me when IRQ 0 is valid and when it isn't,
> but the warning seems useful to me. Maybe it would make more sense to
> warn when such an IRQ resource is registered for a platform device, and
> not when it is looked up?
> 
> My opinion is that it would be very confusing if there are any places
> in the kernel (on some platforms) where IRQ 0 is valid,

And those places are board files like yours :( They have to be fixed
eventually. Ideally by using IRQ domains. At least that's how it's
done elsewhere.

> but for
> platform_get_irq() it would suddenly mean "not found". Keeping a
> negative return value seems preferable to me for this reason.

IRQ 0 is valid, vIRQ0 (or read it as cookie) is not.

Now, the problem in your case is that you are talking about board files, while
ACPI and DT never gives resource with vIRQ0. For board files some (legacy) code
decides that it's fine to supply HW IRQ, while the de facto case is that
platform_get_resource() returns whatever is in the resource, while
platform_get_irq() should return a cookie.

> (An alternative, more involved idea would be to add 1 to all IRQ
> "cookies", so IRQ 0 would return 1, leaving 0 as a special value. I
> have absolutely no idea how big the API surface is that would need
> changes, and it is likely not worth the effort at all.)

This is what IRQ domains do, they start vIRQs from 1.

> > > > The bottom line here is the SPARC case. Anybody familiar with the
> > > > platform
> > > > can shed a light on this. If there is no such case, we may remove
> > > > warning
> > > > along with ret = 0 case from platfrom_get_irq().
> > > 
> > >    I'm afraid you're too fast here... :-)
> > >    We'll have a really hard time if we continue to allow IRQ0 to be
> > > returned by
> > > platform_get_irq() -- we'll have oto fileter it out in the callers
> > > then...
> > 
> > So far no one reported seeing the big fat warning?
> > 
> > > > > > 3. The specific cookie for "IRQ not found, while no error
> > > > > > happened" case
> > > > > 
> > > > > Not sure what you mean here. I have no problem that a situation
> > > > > I can
> > > > > cope with is called an error for the query function. I just do
> > > > > error
> > > > > handling and continue happily. So the part "while no error
> > > > > happened" is
> > > > > irrelevant to me.
> > > > 
> > > > I meant that instead of using special error code, 0 is very much
> > > > good for
> > > > the cases when IRQ is not found. It allows to distinguish -ENXIO
> > > > from the
> > > > low layer from -ENXIO with this magic meaning.
> > > 
> > >    I don't see how -ENXIO can trickle from the lower layers,
> > > frankly...
> > 
> > It might one day, leading to very hard to track bugs.
> 
> As gregkh noted, changing the return value without also making the
> compile fail will be a huge PITA whenever driver patches are back- or
> forward-ported, as it would require subtle changes in error paths,
> which can easily slip through unnoticed, in particular with half-
> automated stable backports.

Let's not modify kernel at all then, because in many cases it is a PITA
for back- or forward-porting :-)

> Even if another return value like -ENODEV might be better aligned with
> ...regulator_get_optional() and similar functions, or we even find a
> way to make 0 usable for this, none of the proposed changes strike me
> as big enough a win to outweigh the churn caused by making such a
> change at all.

Yeah, let's continue to suffer from ugly interface and see more band aids
landing around...

-- 
With Best Regards,
Andy Shevchenko



WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org,
	linux-spi <linux-spi@vger.kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Tony Luck" <tony.luck@intel.com>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	platform-driver-x86@vger.kernel.org,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"John Garry" <john.garry@huawei.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	openipmi-developer@lists.sourceforge.net,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Benson Leung" <bleung@chromium.org>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Sergey Shtylyov" <s.shtylyov@omp.ru>,
	"Richard Weinberger" <richard@nod.at>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent()
Date: Tue, 25 Jan 2022 16:01:17 +0200	[thread overview]
Message-ID: <YfACrffZCCeleOjK@smile.fi.intel.com> (raw)
In-Reply-To: <33e55c4c0a637b23d76db5d33872378ad04121bd.camel@ew.tq-group.com>

On Tue, Jan 25, 2022 at 01:56:05PM +0100, Matthias Schiffer wrote:
> On Tue, 2022-01-25 at 09:25 +0100, Geert Uytterhoeven wrote:
> > On Mon, Jan 24, 2022 at 10:02 PM Sergey Shtylyov <s.shtylyov@omp.ru>
> > wrote:
> > > On 1/24/22 6:01 PM, Andy Shevchenko wrote:

...

> > > > > > 2. The vIRQ0 handling: a) WARN() followed by b) returned
> > > > > > value 0
> > > > > 
> > > > > I'm happy with the vIRQ0 handling. Today platform_get_irq() and
> > > > > it's
> > > > > silent variant returns either a valid and usuable irq number or
> > > > > a
> > > > > negative error value. That's totally fine.
> > > > 
> > > > It might return 0.
> > > > Actually it seems that the WARN() can only be issued in two
> > > > cases:
> > > > - SPARC with vIRQ0 in one of the array member
> > > > - fallback to ACPI for GPIO IRQ resource with index 0
> > > 
> > >    You have probably missed the recent discovery that
> > > arch/sh/boards/board-aps4*.c
> > > causes IRQ0 to be passed as a direct IRQ resource?
> > 
> > So far no one reported seeing the big fat warning ;-)
> 
> FWIW, we had a similar issue with an IRQ resource passed from the
> tqmx86 MFD driver do the GPIO driver, which we noticed due to this
> warning, and which was fixed
> in a946506c48f3bd09363c9d2b0a178e55733bcbb6
> and 9b87f43537acfa24b95c236beba0f45901356eb2.

No, it's not, unfortunately :-( You just band aided the warning issue, but the
root cause is the WARN() and possibility to see valid (v)IRQ0 in the resources.
See below.

> I believe these changes are what promted this whole discussion and led
> to my "Reported-by" on the patch?
> 
> It is not entirely clear to me when IRQ 0 is valid and when it isn't,
> but the warning seems useful to me. Maybe it would make more sense to
> warn when such an IRQ resource is registered for a platform device, and
> not when it is looked up?
> 
> My opinion is that it would be very confusing if there are any places
> in the kernel (on some platforms) where IRQ 0 is valid,

And those places are board files like yours :( They have to be fixed
eventually. Ideally by using IRQ domains. At least that's how it's
done elsewhere.

> but for
> platform_get_irq() it would suddenly mean "not found". Keeping a
> negative return value seems preferable to me for this reason.

IRQ 0 is valid, vIRQ0 (or read it as cookie) is not.

Now, the problem in your case is that you are talking about board files, while
ACPI and DT never gives resource with vIRQ0. For board files some (legacy) code
decides that it's fine to supply HW IRQ, while the de facto case is that
platform_get_resource() returns whatever is in the resource, while
platform_get_irq() should return a cookie.

> (An alternative, more involved idea would be to add 1 to all IRQ
> "cookies", so IRQ 0 would return 1, leaving 0 as a special value. I
> have absolutely no idea how big the API surface is that would need
> changes, and it is likely not worth the effort at all.)

This is what IRQ domains do, they start vIRQs from 1.

> > > > The bottom line here is the SPARC case. Anybody familiar with the
> > > > platform
> > > > can shed a light on this. If there is no such case, we may remove
> > > > warning
> > > > along with ret = 0 case from platfrom_get_irq().
> > > 
> > >    I'm afraid you're too fast here... :-)
> > >    We'll have a really hard time if we continue to allow IRQ0 to be
> > > returned by
> > > platform_get_irq() -- we'll have oto fileter it out in the callers
> > > then...
> > 
> > So far no one reported seeing the big fat warning?
> > 
> > > > > > 3. The specific cookie for "IRQ not found, while no error
> > > > > > happened" case
> > > > > 
> > > > > Not sure what you mean here. I have no problem that a situation
> > > > > I can
> > > > > cope with is called an error for the query function. I just do
> > > > > error
> > > > > handling and continue happily. So the part "while no error
> > > > > happened" is
> > > > > irrelevant to me.
> > > > 
> > > > I meant that instead of using special error code, 0 is very much
> > > > good for
> > > > the cases when IRQ is not found. It allows to distinguish -ENXIO
> > > > from the
> > > > low layer from -ENXIO with this magic meaning.
> > > 
> > >    I don't see how -ENXIO can trickle from the lower layers,
> > > frankly...
> > 
> > It might one day, leading to very hard to track bugs.
> 
> As gregkh noted, changing the return value without also making the
> compile fail will be a huge PITA whenever driver patches are back- or
> forward-ported, as it would require subtle changes in error paths,
> which can easily slip through unnoticed, in particular with half-
> automated stable backports.

Let's not modify kernel at all then, because in many cases it is a PITA
for back- or forward-porting :-)

> Even if another return value like -ENODEV might be better aligned with
> ...regulator_get_optional() and similar functions, or we even find a
> way to make 0 usable for this, none of the proposed changes strike me
> as big enough a win to outweigh the churn caused by making such a
> change at all.

Yeah, let's continue to suffer from ugly interface and see more band aids
landing around...

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2022-01-25 14:04 UTC|newest]

Thread overview: 467+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-10 19:54 [PATCH 0/2] Make platform_get_irq[_byname]_optional() optional Sergey Shtylyov
2022-01-10 19:54 ` [PATCH 1/2] platform: make platform_get_irq_optional() optional Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 20:10   ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 21:07     ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:44       ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:18     ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-12  8:33       ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:50         ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12 10:27           ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 12:27             ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 13:38             ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:51               ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:54               ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 14:41                 ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 15:05                   ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:13                     ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:48                       ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 16:21                   ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 21:31             ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:45               ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-13 11:08                 ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 14:45                   ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 19:43                     ` [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent() Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 20:17                       ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:57                         ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 22:43                           ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-14  9:58                             ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-15 15:21                               ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 21:06                                 ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-14 11:34                           ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-13 20:31                       ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 21:42                       ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 23:06                         ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-14 17:55                         ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-15 13:55                           ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-19 18:36                             ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 19:44                               ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 18:40                             ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-14  6:57                       ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14 13:04                       ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-15 15:45                         ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-19 18:51                           ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 19:47                             ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 20:55                               ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-20  7:57                             ` Uwe Kleine-König
2022-01-20  7:57                               ` Uwe Kleine-König
2022-01-20  7:57                               ` Uwe Kleine-König
2022-01-20  7:57                               ` Uwe Kleine-König
2022-01-24 15:01                               ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 21:02                                 ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-25  8:25                                   ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25 12:56                                     ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 14:01                                       ` Andy Shevchenko [this message]
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-14 19:45                       ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 20:29                         ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-15 13:08                           ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-19 18:52                         ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-13 20:35                 ` [PATCH 1/2] platform: make platform_get_irq_optional() optional Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-14  9:25                   ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:39                     ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14 19:14                     ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 20:22                       ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-15 20:22                         ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-17  8:41                           ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  9:24                             ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17 10:35                               ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 11:49                                 ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 13:08                                   ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 17:06                                     ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-18  8:25                                       ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  9:09                                         ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:37                                           ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18 12:08                                             ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:49                                               ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 14:29                                                 ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-19 16:12                                                   ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 18:29                                                     ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-20 11:27                                     ` Sergey Shtylyov
2022-01-20 11:27                                       ` Sergey Shtylyov
2022-01-20 11:27                                       ` Sergey Shtylyov
2022-01-20 11:27                                       ` Sergey Shtylyov
2022-01-16 18:15                         ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-17  8:47                           ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-18 20:21                             ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 22:26                               ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-19 15:34                                 ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 18:58                             ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 19:49                               ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-14 18:46                   ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-15 18:36   ` [PATCH 1/2] platform: make platform_get_irq_optional() optional (summary) Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-16 14:19     ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-18  9:18       ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:32         ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-19 10:56         ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 11:33           ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:42             ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 19:06     ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-17 11:57   ` [PATCH 1/2] platform: make platform_get_irq_optional() optional Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-19 15:02     ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:50       ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-10 19:54 ` [PATCH 2/2] platform: make platform_get_irq_byname_optional() optional Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov

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=YfACrffZCCeleOjK@smile.fi.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=amitk@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bleung@chromium.org \
    --cc=bp@alien8.de \
    --cc=brgl@bgdev.pl \
    --cc=broonie@kernel.org \
    --cc=cohuck@redhat.com \
    --cc=computersforpeace@gmail.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=davem@davemloft.net \
    --cc=eric.auger@redhat.com \
    --cc=f.fainelli@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@chromium.org \
    --cc=hdegoede@redhat.com \
    --cc=james.morse@arm.com \
    --cc=jirislaby@kernel.org \
    --cc=john.garry@huawei.com \
    --cc=kdasu.kdev@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=khuong@os.amperecomputing.com \
    --cc=kishon@ti.com \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=markgross@kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=matthias.schiffer@ew.tq-group.com \
    --cc=mchehab@kernel.org \
    --cc=minyard@acm.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=mun.yew.tham@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=perex@perex.cz \
    --cc=peter@korsgaard.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qiangqing.zhang@nxp.com \
    --cc=qipeng.zha@intel.com \
    --cc=rafael@kernel.org \
    --cc=richard@nod.at \
    --cc=rric@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=s.shtylyov@omp.ru \
    --cc=sravanhome@gmail.com \
    --cc=sre@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tiwai@suse.com \
    --cc=tony.luck@intel.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=ulf.hansson@linaro.org \
    --cc=vigneshr@ti.com \
    --cc=vilhelm.gray@gmail.com \
    --cc=vkoul@kernel.org \
    --cc=yoshihiro.shimoda.uh@renesas.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.