All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "Giovanni Cabiddu" <giovanni.cabiddu@intel.com>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Sathya Prakash" <sathya.prakash@broadcom.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	linux-pci@vger.kernel.org,
	"Alexander Duyck" <alexanderduyck@fb.com>,
	"Russell Currey" <ruscur@russell.cc>,
	x86@kernel.org, qat-linux@intel.com, oss-drivers@corigine.com,
	"Oliver O'Halloran" <oohall@gmail.com>,
	"H. Peter Anvin" <hpa@zytor.com>, "Jiri Olsa" <jolsa@redhat.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Marco Chiappero" <marco.chiappero@intel.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	linux-scsi@vger.kernel.org,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	linux-wireless@vger.kernel.org,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Yisen Zhuang" <yisen.zhuang@huawei.com>,
	"Suganath Prabu Subramani"
	<suganath-prabu.subramani@broadcom.com>,
	"Fiona Trahe" <fiona.trahe@intel.com>,
	"Andrew Donnellan" <ajd@linux.ibm.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"Ido Schimmel" <idosch@nvidia.com>,
	"Simon Horman" <simon.horman@corigine.com>,
	linuxppc-dev@lists.ozlabs.org,
	"Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Jack Xu" <jack.xu@intel.com>, "Borislav Petkov" <bp@alien8.de>,
	"Michael Buesch" <m@bues.ch>, "Jiri Pirko" <jiri@nvidia.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Namhyung Kim" <namhyung@kernel.org>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Juergen Gross" <jgross@suse.com>,
	"Salil Mehta" <salil.mehta@huawei.com>,
	"Sreekanth Reddy" <sreekanth.reddy@broadcom.com>,
	xen-devel@lists.xenproject.org,
	"Vadym Kochan" <vkochan@marvell.com>,
	MPT-FusionLinux.pdl@broadcom.com,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org,
	"Wojciech Ziemba" <wojciech.ziemba@intel.com>,
	linux-kernel@vger.kernel.org,
	"Mathias Nyman" <mathias.nyman@intel.com>,
	"Zhou Wang" <wangzhou1@hisilicon.com>,
	linux-crypto@vger.kernel.org, kernel@pengutronix.de,
	netdev@vger.kernel.org, "Frederic Barrat" <fbarrat@linux.ibm.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Tomaszx Kowalik" <tomaszx.kowalik@intel.com>,
	"Taras Chornyi" <tchornyi@marvell.com>,
	"David S. Miller" <davem@davemloft.net>,
	linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v6 00/11] PCI: Drop duplicated tracking of a pci_dev's bound driver
Date: Wed, 13 Oct 2021 10:51:31 +0200	[thread overview]
Message-ID: <20211013085131.5htnch5p6zv46mzn@pengutronix.de> (raw)
In-Reply-To: <20211012233212.GA1806189@bhelgaas>

[-- Attachment #1: Type: text/plain, Size: 2395 bytes --]

On Tue, Oct 12, 2021 at 06:32:12PM -0500, Bjorn Helgaas wrote:
> On Mon, Oct 04, 2021 at 02:59:24PM +0200, Uwe Kleine-König wrote:
> > Hello,
> > 
> > this is v6 of the quest to drop the "driver" member from struct pci_dev
> > which tracks the same data (apart from a constant offset) as dev.driver.
> 
> I like this a lot and applied it to pci/driver for v5.16, thanks!
> 
> I split some of the bigger patches apart so they only touched one
> driver or subsystem at a time.  I also updated to_pci_driver() so it
> returns NULL when given NULL, which makes some of the validations
> quite a bit simpler, especially in the PM code in pci-driver.c.

OK.

> Full interdiff from this v6 series:
> 
> diff --git a/arch/x86/kernel/probe_roms.c b/arch/x86/kernel/probe_roms.c
> index deaaef6efe34..36e84d904260 100644
> --- a/arch/x86/kernel/probe_roms.c
> +++ b/arch/x86/kernel/probe_roms.c
> @@ -80,17 +80,15 @@ static struct resource video_rom_resource = {
>   */
>  static bool match_id(struct pci_dev *pdev, unsigned short vendor, unsigned short device)
>  {
> +	struct pci_driver *drv = to_pci_driver(pdev->dev.driver);
>  	const struct pci_device_id *id;
>  
>  	if (pdev->vendor == vendor && pdev->device == device)
>  		return true;
>  
> -	if (pdev->dev.driver) {
> -		struct pci_driver *drv = to_pci_driver(pdev->dev.driver);
> -		for (id = drv->id_table; id && id->vendor; id++)
> -			if (id->vendor == vendor && id->device == device)
> -				break;
> -	}
> +	for (id = drv ? drv->id_table : NULL; id && id->vendor; id++)
> +		if (id->vendor == vendor && id->device == device)
> +			break;
>  
>  	return id && id->vendor;
>  }
> diff --git a/drivers/misc/cxl/guest.c b/drivers/misc/cxl/guest.c
> index d997c9c3ebb5..7eb3706cf42d 100644
> --- a/drivers/misc/cxl/guest.c
> +++ b/drivers/misc/cxl/guest.c
> @@ -20,38 +20,38 @@ static void pci_error_handlers(struct cxl_afu *afu,
>  				pci_channel_state_t state)
>  {
>  	struct pci_dev *afu_dev;
> +	struct pci_driver *afu_drv;
> +	struct pci_error_handlers *err_handler;

These two could be moved into the for loop (where afu_drv was with my
patch already). This is also possible in a few other drivers.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "Giovanni Cabiddu" <giovanni.cabiddu@intel.com>,
	"Mark Rutland" <mark.rutland@arm.com>,
	x86@kernel.org,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	linux-pci@vger.kernel.org,
	"Alexander Duyck" <alexanderduyck@fb.com>,
	"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
	"Sathya Prakash" <sathya.prakash@broadcom.com>,
	oss-drivers@corigine.com, netdev@vger.kernel.org,
	"Oliver O'Halloran" <oohall@gmail.com>,
	"H. Peter Anvin" <hpa@zytor.com>, "Jiri Olsa" <jolsa@redhat.com>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Marco Chiappero" <marco.chiappero@intel.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	linux-scsi@vger.kernel.org, "Ido Schimmel" <idosch@nvidia.com>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	qat-linux@intel.com, "Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Yisen Zhuang" <yisen.zhuang@huawei.com>,
	"Frederic Barrat" <fbarrat@linux.ibm.com>,
	"Fiona Trahe" <fiona.trahe@intel.com>,
	"Andrew Donnellan" <ajd@linux.ibm.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"Suganath Prabu Subramani"
	<suganath-prabu.subramani@broadcom.com>,
	"Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Jack Xu" <jack.xu@intel.com>, "Borislav Petkov" <bp@alien8.de>,
	"Michael Buesch" <m@bues.ch>, "Jiri Pirko" <jiri@nvidia.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Namhyung Kim" <namhyung@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Juergen Gross" <jgross@suse.com>,
	"Salil Mehta" <salil.mehta@huawei.com>,
	"Sreekanth Reddy" <sreekanth.reddy@broadcom.com>,
	xen-devel@lists.xenproject.org,
	"Vadym Kochan" <vkochan@marvell.com>,
	MPT-FusionLinux.pdl@broadcom.com, linux-usb@vger.kernel.org,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	"Mathias Nyman" <mathias.nyman@intel.com>,
	"Zhou Wang" <wangzhou1@hisilicon.com>,
	linux-crypto@vger.kernel.org, kernel@pengutronix.de,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Simon Horman" <simon.horman@corigine.com>,
	"Wojciech Ziemba" <wojciech.ziemba@intel.com>,
	"Tomaszx Kowalik" <tomaszx.kowalik@intel.com>,
	linuxppc-dev@lists.ozlabs.org,
	"Taras Chornyi" <tchornyi@marvell.com>,
	linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v6 00/11] PCI: Drop duplicated tracking of a pci_dev's bound driver
Date: Wed, 13 Oct 2021 10:51:31 +0200	[thread overview]
Message-ID: <20211013085131.5htnch5p6zv46mzn@pengutronix.de> (raw)
In-Reply-To: <20211012233212.GA1806189@bhelgaas>

[-- Attachment #1: Type: text/plain, Size: 2395 bytes --]

On Tue, Oct 12, 2021 at 06:32:12PM -0500, Bjorn Helgaas wrote:
> On Mon, Oct 04, 2021 at 02:59:24PM +0200, Uwe Kleine-König wrote:
> > Hello,
> > 
> > this is v6 of the quest to drop the "driver" member from struct pci_dev
> > which tracks the same data (apart from a constant offset) as dev.driver.
> 
> I like this a lot and applied it to pci/driver for v5.16, thanks!
> 
> I split some of the bigger patches apart so they only touched one
> driver or subsystem at a time.  I also updated to_pci_driver() so it
> returns NULL when given NULL, which makes some of the validations
> quite a bit simpler, especially in the PM code in pci-driver.c.

OK.

> Full interdiff from this v6 series:
> 
> diff --git a/arch/x86/kernel/probe_roms.c b/arch/x86/kernel/probe_roms.c
> index deaaef6efe34..36e84d904260 100644
> --- a/arch/x86/kernel/probe_roms.c
> +++ b/arch/x86/kernel/probe_roms.c
> @@ -80,17 +80,15 @@ static struct resource video_rom_resource = {
>   */
>  static bool match_id(struct pci_dev *pdev, unsigned short vendor, unsigned short device)
>  {
> +	struct pci_driver *drv = to_pci_driver(pdev->dev.driver);
>  	const struct pci_device_id *id;
>  
>  	if (pdev->vendor == vendor && pdev->device == device)
>  		return true;
>  
> -	if (pdev->dev.driver) {
> -		struct pci_driver *drv = to_pci_driver(pdev->dev.driver);
> -		for (id = drv->id_table; id && id->vendor; id++)
> -			if (id->vendor == vendor && id->device == device)
> -				break;
> -	}
> +	for (id = drv ? drv->id_table : NULL; id && id->vendor; id++)
> +		if (id->vendor == vendor && id->device == device)
> +			break;
>  
>  	return id && id->vendor;
>  }
> diff --git a/drivers/misc/cxl/guest.c b/drivers/misc/cxl/guest.c
> index d997c9c3ebb5..7eb3706cf42d 100644
> --- a/drivers/misc/cxl/guest.c
> +++ b/drivers/misc/cxl/guest.c
> @@ -20,38 +20,38 @@ static void pci_error_handlers(struct cxl_afu *afu,
>  				pci_channel_state_t state)
>  {
>  	struct pci_dev *afu_dev;
> +	struct pci_driver *afu_drv;
> +	struct pci_error_handlers *err_handler;

These two could be moved into the for loop (where afu_drv was with my
patch already). This is also possible in a few other drivers.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2021-10-13  8:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-04 12:59 [PATCH v6 00/11] PCI: Drop duplicated tracking of a pci_dev's bound driver Uwe Kleine-König
2021-10-04 12:59 ` Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 01/11] PCI: Simplify pci_device_remove() Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 02/11] PCI: Drop useless check from pci_device_probe() Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 03/11] xen/pci: Drop some checks that are always true Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 04/11] bcma: simplify reference to the driver's name Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 05/11] powerpc/eeh: Don't use driver member of struct pci_dev and further cleanups Uwe Kleine-König
2021-10-04 12:59   ` Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 06/11] ssb: Simplify determination of driver name Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 07/11] PCI: Replace pci_dev::driver usage that gets the " Uwe Kleine-König
2021-10-04 12:59   ` Uwe Kleine-König
2021-10-04 16:06   ` Ido Schimmel
2021-10-04 16:06     ` Ido Schimmel
2021-10-04 12:59 ` [PATCH v6 08/11] scsi: message: fusion: Remove unused parameter of mpt_pci driver's probe() Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 09/11] crypto: qat - simplify adf_enable_aer() Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 10/11] PCI: Replace pci_dev::driver usage by pci_dev::dev.driver Uwe Kleine-König
2021-10-04 12:59   ` Uwe Kleine-König
2021-10-04 12:59 ` [PATCH v6 11/11] PCI: Drop duplicated tracking of a pci_dev's bound driver Uwe Kleine-König
2021-10-12 23:32 ` [PATCH v6 00/11] " Bjorn Helgaas
2021-10-12 23:32   ` Bjorn Helgaas
2021-10-13  8:51   ` Uwe Kleine-König [this message]
2021-10-13  8:51     ` Uwe Kleine-König
2021-10-13 10:54     ` Bjorn Helgaas
2021-10-13 10:54       ` Bjorn Helgaas
2021-10-13 10:58       ` Uwe Kleine-König
2021-10-13 10:58         ` Uwe Kleine-König
2021-10-13  9:26   ` Andy Shevchenko
2021-10-13  9:26     ` Andy Shevchenko
2021-10-13 11:33     ` Bjorn Helgaas
2021-10-13 11:33       ` Bjorn Helgaas
2021-10-13 13:23       ` Andy Shevchenko
2021-10-13 13:23         ` Andy Shevchenko
2021-10-15 16:46         ` Bjorn Helgaas
2021-10-15 16:46           ` Bjorn Helgaas
2021-10-15 19:52           ` Andy Shevchenko
2021-10-15 19:52             ` Andy Shevchenko

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=20211013085131.5htnch5p6zv46mzn@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=MPT-FusionLinux.pdl@broadcom.com \
    --cc=acme@kernel.org \
    --cc=ajd@linux.ibm.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexanderduyck@fb.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=davem@davemloft.net \
    --cc=fbarrat@linux.ibm.com \
    --cc=fiona.trahe@intel.com \
    --cc=giovanni.cabiddu@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=helgaas@kernel.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=idosch@nvidia.com \
    --cc=jack.xu@intel.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=jgross@suse.com \
    --cc=jiri@nvidia.com \
    --cc=jolsa@redhat.com \
    --cc=kernel@pengutronix.de \
    --cc=konrad.wilk@oracle.com \
    --cc=kuba@kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=m@bues.ch \
    --cc=marco.chiappero@intel.com \
    --cc=mark.rutland@arm.com \
    --cc=mathias.nyman@intel.com \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=namhyung@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=oohall@gmail.com \
    --cc=oss-drivers@corigine.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=qat-linux@intel.com \
    --cc=ruscur@russell.cc \
    --cc=salil.mehta@huawei.com \
    --cc=sathya.prakash@broadcom.com \
    --cc=simon.horman@corigine.com \
    --cc=sreekanth.reddy@broadcom.com \
    --cc=sstabellini@kernel.org \
    --cc=suganath-prabu.subramani@broadcom.com \
    --cc=tchornyi@marvell.com \
    --cc=tglx@linutronix.de \
    --cc=tomaszx.kowalik@intel.com \
    --cc=vkochan@marvell.com \
    --cc=wangzhou1@hisilicon.com \
    --cc=wojciech.ziemba@intel.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yisen.zhuang@huawei.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 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.