lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 16 Jan 2022 00:06:00 +0300 From: Sergey Shtylyov <s.shtylyov@....ru> To: Uwe Kleine-König <u.kleine-koenig@...gutronix.de>, "Geert Uytterhoeven" <geert@...ux-m68k.org> CC: Andrew Lunn <andrew@...n.ch>, Ulf Hansson <ulf.hansson@...aro.org>, Vignesh Raghavendra <vigneshr@...com>, KVM list <kvm@...r.kernel.org>, "Rafael J. Wysocki" <rafael@...nel.org>, <linux-iio@...r.kernel.org>, "Linus Walleij" <linus.walleij@...aro.org>, Amit Kucheria <amitk@...nel.org>, "ALSA Development Mailing List" <alsa-devel@...a-project.org>, Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, Jaroslav Kysela <perex@...ex.cz>, Guenter Roeck <groeck@...omium.org>, Thierry Reding <thierry.reding@...il.com>, MTD Maling List <linux-mtd@...ts.infradead.org>, Linux I2C <linux-i2c@...r.kernel.org>, Miquel Raynal <miquel.raynal@...tlin.com>, <linux-phy@...ts.infradead.org>, Jiri Slaby <jirislaby@...nel.org>, <openipmi-developer@...ts.sourceforge.net>, "Khuong Dinh" <khuong@...amperecomputing.com>, Florian Fainelli <f.fainelli@...il.com>, Matthias Schiffer <matthias.schiffer@...tq-group.com>, Joakim Zhang <qiangqing.zhang@....com>, Kamal Dasu <kdasu.kdev@...il.com>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Lee Jones <lee.jones@...aro.org>, "Bartosz Golaszewski" <brgl@...ev.pl>, Daniel Lezcano <daniel.lezcano@...aro.org>, "Tony Luck" <tony.luck@...el.com>, Kishon Vijay Abraham I <kishon@...com>, bcm-kernel-feedback-list <bcm-kernel-feedback-list@...adcom.com>, "open list:SERIAL DRIVERS" <linux-serial@...r.kernel.org>, Jakub Kicinski <kuba@...nel.org>, Zhang Rui <rui.zhang@...el.com>, Linux PWM List <linux-pwm@...r.kernel.org>, Robert Richter <rric@...nel.org>, "Saravanan Sekar" <sravanhome@...il.com>, Corey Minyard <minyard@....org>, Linux PM list <linux-pm@...r.kernel.org>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Mauro Carvalho Chehab <mchehab@...nel.org>, John Garry <john.garry@...wei.com>, Peter Korsgaard <peter@...sgaard.com>, William Breathitt Gray <vilhelm.gray@...il.com>, Mark Gross <markgross@...nel.org>, "open list:GPIO SUBSYSTEM" <linux-gpio@...r.kernel.org>, Alex Williamson <alex.williamson@...hat.com>, Mark Brown <broonie@...nel.org>, Borislav Petkov <bp@...en8.de>, "Sebastian Reichel" <sre@...nel.org>, Eric Auger <eric.auger@...hat.com>, "Matthias Brugger" <matthias.bgg@...il.com>, Takashi Iwai <tiwai@...e.com>, <platform-driver-x86@...r.kernel.org>, Benson Leung <bleung@...omium.org>, Linux ARM <linux-arm-kernel@...ts.infradead.org>, <linux-edac@...r.kernel.org>, Mun Yew Tham <mun.yew.tham@...el.com>, "Hans de Goede" <hdegoede@...hat.com>, netdev <netdev@...r.kernel.org>, "Yoshihiro Shimoda" <yoshihiro.shimoda.uh@...esas.com>, Cornelia Huck <cohuck@...hat.com>, Linux MMC List <linux-mmc@...r.kernel.org>, "Liam Girdwood" <lgirdwood@...il.com>, linux-spi <linux-spi@...r.kernel.org>, Linux-Renesas <linux-renesas-soc@...r.kernel.org>, Vinod Koul <vkoul@...nel.org>, James Morse <james.morse@....com>, Zha Qipeng <qipeng.zha@...el.com>, Pengutronix Kernel Team <kernel@...gutronix.de>, Richard Weinberger <richard@....at>, Niklas Söderlund <niklas.soderlund@...natech.se>, <linux-mediatek@...ts.infradead.org>, "Brian Norris" <computersforpeace@...il.com>, "David S. Miller" <davem@...emloft.net> Subject: Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent() On 1/15/22 6:21 PM, Uwe Kleine-König wrote: [...] >>>>>> The subsystems regulator, clk and gpio have the concept of a dummy >>>>>> resource. For regulator, clk and gpio there is a semantic difference >>>>>> between the regular _get() function and the _get_optional() variant. >>>>>> (One might return the dummy resource, the other won't. Unfortunately >>>>>> which one implements which isn't the same for these three.) The >>>>>> difference between platform_get_irq() and platform_get_irq_optional() is >>>>>> only that the former might emit an error message and the later won't. >>>> >>>> This is only a current difference but I'm still going to return 0 ISO >>>> -ENXIO from latform_get_irq_optional(), no way I'd leave that -ENXIO there >>>> alone... :-) >>> >>> This would address a bit of the critic in my commit log. But as 0 isn't >>> a dummy value like the dummy values that exist for clk, gpiod and >>> regulator I still think that the naming is a bad idea because it's not >>> in the spirit of the other *_get_optional functions. >>> >>> Seeing you say that -ENXIO is a bad return value for >>> platform_get_irq_optional() and 0 should be used instead, I wonder why >>> not changing platform_get_irq() to return 0 instead of -ENXIO, too. >>> This question is for now only about a sensible semantic. That actually >>> changing platform_get_irq() is probably harder than changing >>> platform_get_irq_optional() is a different story. >>> >>> If only platform_get_irq_optional() is changed and given that the >>> callers have to do something like: >>> >>> if (this_irq_exists()): >>> ... (e.g. request_irq) >>> else: >>> ... (e.g. setup polling) >>> >>> I really think it's a bad idea that this_irq_exists() has to be >>> different for platform_get_irq() vs. platform_get_irq_optional(). >> >> For platform_get_irq(), the IRQ being absent is an error condition, >> hence it should return an error code. >> For platform_get_irq_optional(), the IRQ being absent is not an error >> condition, hence it should not return an error code, and 0 is OK. > > Please show a few examples how this simplifies the code. If it's only As for platform_get_irq(), returning -ENXIO simplifies things a lot: you don't have to check for 0 at every freaking call site and have s/th like (every time!): irq = platform_get_irq(); if (irq <= 0) return irq ?: -ENXIO; // any error code you choose instead of just: irq = platform_get_irq(); if (irq < 0) return irq; This scales better in my book. > that a driver has to check for == 0 instead of == -ENXIO, than that's > not a good enough motivation to make platform_get_irq_optional() > different to platform_get_irq(). Again, it scales better... good motivation in my eyes. > Best regards > Uwe MBR, Sergey
Powered by blists - more mailing lists