linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: "Saheed O. Bolarinwa" <refactormyself@gmail.com>
Cc: "Rich Felker" <dalias@libc.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Linux-sh list" <linux-sh@vger.kernel.org>,
	linux-pci <linux-pci@vger.kernel.org>,
	linux-nvme@lists.infradead.org,
	"Yicong Yang" <yangyicong@hisilicon.com>,
	sparclinux <sparclinux@vger.kernel.org>,
	"Realtek linux nic maintainers" <nic_swsd@realtek.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Bjorn Helgaas" <helgaas@kernel.org>,
	rfi@lists.rocketboards.org,
	"Toan Le" <toan@os.amperecomputing.com>,
	"Greg Ungerer" <gerg@linux-m68k.org>,
	"Marek Vasut" <marek.vasut+renesas@gmail.com>,
	"Rob Herring" <robh@kernel.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Sagi Grimberg" <sagi@grimberg.me>,
	"Yoshinori Sato" <ysato@users.sourceforge.jp>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	linux-atm-general@lists.sourceforge.net,
	"Russell King" <linux@armlinux.org.uk>,
	"Ley Foon Tan" <ley.foon.tan@intel.com>,
	"Christoph Hellwig" <hch@lst.de>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	"Chas Williams" <3chas3@gmail.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	"Matt Turner" <mattst88@gmail.com>,
	"open list:BROADCOM NVRAM DRIVER" <linux-mips@vger.kernel.org>,
	linux-kernel-mentees@lists.linuxfoundation.org,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Guenter Roeck" <linux@roeck-us.net>,
	linux-hwmon@vger.kernel.org, "Jean Delvare" <jdelvare@suse.com>,
	"Andrew Donnellan" <ajd@linux.ibm.com>,
	"Ray Jui" <rjui@broadcom.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Yue Wang" <yue.wang@amlogic.com>, "Jens Axboe" <axboe@fb.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	linux-m68k <linux-m68k@lists.linux-m68k.org>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Ivan Kokshaysky" <ink@jurassic.park.msu.ru>,
	"Michael Buesch" <m@bues.ch>,
	"Shuah Khan" <skhan@linuxfoundation.org>,
	bjorn@helgaas.com,
	"open list:ARM/Amlogic Meson SoC support"
	<linux-amlogic@lists.infradead.org>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Guan Xuetao" <gxt@pku.edu.cn>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	"Richard Henderson" <rth@twiddle.net>,
	"Juergen Gross" <jgross@suse.com>,
	"Michal Simek" <monstr@monstr.eu>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"Scott Branden" <sbranden@broadcom.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jingoo Han" <jingoohan1@gmail.com>,
	Networking <netdev@vger.kernel.org>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Keith Busch" <kbusch@kernel.org>,
	"Brian King" <brking@us.ibm.com>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	alpha <linux-alpha@vger.kernel.org>,
	"Frederic Barrat" <fbarrat@linux.ibm.com>,
	"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"David S. Miller" <davem@davemloft.net>,
	"Heiner Kallweit" <hkallweit1@gmail.com>
Subject: Re: [RFC PATCH 00/35] Move all PCIBIOS* definitions into arch/x86
Date: Mon, 13 Jul 2020 17:08:10 +0200	[thread overview]
Message-ID: <CAK8P3a3NWSZw6678k1O2eJ6-c5GuW7484PRvEzU9MEPPrCD-yw@mail.gmail.com> (raw)
In-Reply-To: <20200713122247.10985-1-refactormyself@gmail.com>

On Mon, Jul 13, 2020 at 3:22 PM Saheed O. Bolarinwa
<refactormyself@gmail.com> wrote:
> This goal of these series is to move the definition of *all* PCIBIOS* from
> include/linux/pci.h to arch/x86 and limit their use within there.
> All other tree specific definition will be left for intact. Maybe they can
> be renamed.
>
> PCIBIOS* is an x86 concept as defined by the PCI spec. The returned error
> codes of PCIBIOS* are positive values and this introduces some complexities
> which other archs need not incur.

I think the intention is good, but I find the series in its current
form very hard
to review, in particular the way you touch some functions three times with
trivial changes. Instead of

1) replace PCIBIOS_SUCCESSFUL with 0
2) drop pointless 0-comparison
3) reformat whitespace

I would suggest to combine the first two steps into one patch per
subsystem and drop the third step.

> PLAN:
>
> 1.   [PATCH v0 1-36] Replace all PCIBIOS_SUCCESSFUL with 0
>
> 2a.  Audit all functions returning PCIBIOS_* error values directly or
>      indirectly and prevent possible bug coming in (2b)
>
> 2b.  Make all functions returning PCIBIOS_* error values call
>      pcibios_err_to_errno(). *This will change their behaviour, for good.*
>
> 3.   Clone a pcibios_err_to_errno() into arch/x86/pci/pcbios.c as _v2.
>      This handles the positive error codes directly and will not use any
>      PCIBIOS* definitions. So calls to it have no outside dependence.
>
> 4.   Make all x86 codes that needs to convert to -E* values call the
>      cloned version - pcibios_err_to_errno_v2()
>
> 5.   Assign PCIBIOS_* errors values directly to generic -E* errors
>
> 6.   Refactor pcibios_err_to_errno() and mark it deprecated
>
> 7.   Replace all calls to pcibios_err_to_errno() with the proper -E* value
>      or 0.
>
> 8.   Remove all PCIBIOS* definitions in include/linux/pci.h and
>      pcibios_err_to_errno() too.
>
> 9.   Redefine all PCIBIOS* definitions with original values inside
>      arch/x86/pci/pcbios.c
>
> 10.  Redefine pcibios_err_to_errno() inside arch/x86/pci/pcbios.c
>
> 11.  Replace pcibios_err_to_errno_v2() calls with pcibios_err_to_errno()
>
> 12.  Remove pcibios_err_to_errno_v2()
>
> Suggested-by: Bjorn Helgaas <bjorn@helgaas.com>
> Suggested-by: Yicong Yang <yangyicong@hisilicon.com>
> Signed-off-by: "Saheed O. Bolarinwa" <refactormyself@gmail.com>

I would hope that there is a simpler procedure to get to good
code than 12 steps that rename the same things multiple times.

Maybe the work can be split up differently, with a similar end result
but fewer and easier reviewed patches. The way I'd look at the
problem, there are three main areas that can be dealt with one at
a time:

a) callers of the high-level config space accessors
   pci_{write,read}_config_{byte,word,dword}, mostly in device
   drivers.
b) low-level implementation of the config space accessors
    through struct pci_ops
c) all other occurrences of these constants

Starting with a), my first question is whether any high-level drivers
even need to care about errors from these functions. I see 4913
callers that ignore the return code, and 576 that actually
check it, and almost none care about the specific error (as you
found as well). Unless we conclude that most PCI drivers are
wrong, could we just change the return type to 'void' and assume
they never fail for valid arguments on a valid pci_device* ?

For b), it might be nice to also change other aspects of the interface,
e.g. passing a pci_host_bridge pointer plus bus number instead of
a pci_bus pointer, or having the callback in the pci_host_bridge
structure.

> Bolarinwa Olayemi Saheed (35):
>   Change PCIBIOS_SUCCESSFUL to 0
>   Change PCIBIOS_SUCCESSFUL to 0
>   Change PCIBIOS_SUCCESSFUL to 0
>   Tidy Success/Failure checks
>   Change PCIBIOS_SUCCESSFUL to 0
>   Tidy Success/Failure checks
>   Change PCIBIOS_SUCCESSFUL to 0

Some patches have identical subject lines including the subsystem
prefix, which you should avoid. Try to also fix the git request-pull
output to not drop that prefix here so the list makes more sense.

        Arnd

  parent reply	other threads:[~2020-07-13 15:40 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-13 12:22 [RFC PATCH 00/35] Move all PCIBIOS* definitions into arch/x86 Saheed O. Bolarinwa
2020-07-13 12:22 ` [RFC PATCH 13/35] cxl: Change PCIBIOS_SUCCESSFUL to 0 Saheed O. Bolarinwa
2020-07-13 12:22 ` [RFC PATCH 26/35] powerpc: " Saheed O. Bolarinwa
2020-07-13 12:22 ` [RFC PATCH 27/35] powerpc: Tidy Success/Failure checks Saheed O. Bolarinwa
2020-07-13 15:08 ` Arnd Bergmann [this message]
2020-07-14 18:45   ` [RFC PATCH 00/35] Move all PCIBIOS* definitions into arch/x86 Bjorn Helgaas
2020-07-14 21:02     ` Kjetil Oftedal
2020-07-15  2:14       ` Benjamin Herrenschmidt
2020-07-14 22:01     ` Arnd Bergmann
2020-07-14 23:46       ` Bjorn Helgaas
2020-07-15  2:19         ` Benjamin Herrenschmidt
2020-07-15  6:47         ` Arnd Bergmann
2020-07-15 14:24           ` David Laight
2020-07-15 22:01             ` Bjorn Helgaas
2020-07-16  8:18               ` David Laight
2020-07-15 22:26           ` Benjamin Herrenschmidt
2020-07-15  4:18       ` Oliver O'Halloran
2020-07-15 14:38         ` David Laight
2020-07-15 22:12           ` Bjorn Helgaas
2020-07-15 22:49             ` Benjamin Herrenschmidt
2020-07-16  8:07               ` David Laight
2020-07-14 23:14     ` Rob Herring
2020-07-15  2:12     ` Benjamin Herrenschmidt
2020-07-13 22:01 ` Bjorn Helgaas

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=CAK8P3a3NWSZw6678k1O2eJ6-c5GuW7484PRvEzU9MEPPrCD-yw@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=3chas3@gmail.com \
    --cc=ajd@linux.ibm.com \
    --cc=axboe@fb.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bhelgaas@google.com \
    --cc=bjorn@helgaas.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=brking@us.ibm.com \
    --cc=dalias@libc.org \
    --cc=davem@davemloft.net \
    --cc=fbarrat@linux.ibm.com \
    --cc=geert@linux-m68k.org \
    --cc=gerg@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gustavo.pimentel@synopsys.com \
    --cc=gxt@pku.edu.cn \
    --cc=hch@lst.de \
    --cc=helgaas@kernel.org \
    --cc=hkallweit1@gmail.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jdelvare@suse.com \
    --cc=jejb@linux.ibm.com \
    --cc=jgross@suse.com \
    --cc=jingoohan1@gmail.com \
    --cc=kbusch@kernel.org \
    --cc=khilman@baylibre.com \
    --cc=kuba@kernel.org \
    --cc=ley.foon.tan@intel.com \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-atm-general@lists.sourceforge.net \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel-mentees@lists.linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linux@roeck-us.net \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=m@bues.ch \
    --cc=marek.vasut+renesas@gmail.com \
    --cc=martin.petersen@oracle.com \
    --cc=mattst88@gmail.com \
    --cc=monstr@monstr.eu \
    --cc=netdev@vger.kernel.org \
    --cc=nic_swsd@realtek.com \
    --cc=p.zabel@pengutronix.de \
    --cc=paulus@samba.org \
    --cc=refactormyself@gmail.com \
    --cc=rfi@lists.rocketboards.org \
    --cc=rjui@broadcom.com \
    --cc=robh@kernel.org \
    --cc=rth@twiddle.net \
    --cc=sagi@grimberg.me \
    --cc=sbranden@broadcom.com \
    --cc=skhan@linuxfoundation.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=sstabellini@kernel.org \
    --cc=toan@os.amperecomputing.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yangyicong@hisilicon.com \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    --cc=ysato@users.sourceforge.jp \
    --cc=yue.wang@amlogic.com \
    --cc=zajec5@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).