From: Ido Schimmel <idosch@idosch.org>
To: Ido Schimmel <idosch@nvidia.com>, u.kleine-koenig@pengutronix.de
Cc: "Bjorn Helgaas" <helgaas@kernel.org>,
"Christoph Hellwig" <hch@lst.de>,
linux-pci@vger.kernel.org, kernel@pengutronix.de,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
"Paul Mackerras" <paulus@samba.org>,
"Rafał Miłecki" <zajec5@gmail.com>,
"Zhou Wang" <wangzhou1@hisilicon.com>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>,
"Yisen Zhuang" <yisen.zhuang@huawei.com>,
"Salil Mehta" <salil.mehta@huawei.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Vadym Kochan" <vkochan@marvell.com>,
"Taras Chornyi" <tchornyi@marvell.com>,
"Jiri Pirko" <jiri@nvidia.com>,
"Simon Horman" <simon.horman@corigine.com>,
"Michael Buesch" <m@bues.ch>,
"Oliver O'Halloran" <oohall@gmail.com>,
"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
"Alexander Duyck" <alexanderduyck@fb.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
linux-wireless@vger.kernel.org, linux-crypto@vger.kernel.org,
netdev@vger.kernel.org, oss-drivers@corigine.com
Subject: Re: [PATCH v5 07/11] PCI: Replace pci_dev::driver usage that gets the driver name
Date: Wed, 29 Sep 2021 18:21:57 +0300 [thread overview]
Message-ID: <YVSElahmw2AMwnNH@shredder> (raw)
In-Reply-To: <YVR74+8Rw6XmTqDD@shredder>
On Wed, Sep 29, 2021 at 05:44:51PM +0300, Ido Schimmel wrote:
> On Wed, Sep 29, 2021 at 10:53:02AM +0200, Uwe Kleine-König wrote:
> > struct pci_dev::driver holds (apart from a constant offset) the same
> > data as struct pci_dev::dev->driver. With the goal to remove struct
> > pci_dev::driver to get rid of data duplication replace getting the
> > driver name by dev_driver_string() which implicitly makes use of struct
> > pci_dev::dev->driver.
> >
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>
> For mlxsw:
>
> Reviewed-by: Ido Schimmel <idosch@nvidia.com>
> Tested-by: Ido Schimmel <idosch@nvidia.com>
>
> Thanks
Actually, I found out that after loading and executing another kernel
(or the same one) via kexec I get this splat [1].
[1]
BUG: unable to handle page fault for address: ffffffffffffffc8
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 6e40c067 P4D 6e40c067 PUD 6e40e067 PMD 0
Oops: 0000 [#1] SMP
CPU: 0 PID: 786 Comm: kexec Not tainted 5.15.0-rc2-custom-45114-g6b0effa5a61f #112
Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019
RIP: 0010:pci_device_shutdown+0x16/0x40
Code: 01 00 31 d2 4c 89 e7 89 c6 e8 36 ce 01 00 41 89 c5 eb bb 90 55 48 8d af 40 ff ff ff 53 48 8b 47 68 48 89 fb 48 83 f8 78 74 0e <48> 8b 40 c8 48 85 c0 74
05 48 89 ef ff d0 80 3d 35 81 b7 01 00 74
RSP: 0018:ffff95fec0d37db8 EFLAGS: 00010297
RAX: 0000000000000000 RBX: ffff8d70c0f1f0c0 RCX: 0000000000000004
RDX: ffff8d7115a03a00 RSI: 0000000000000206 RDI: ffff8d70c0f1f0c0
RBP: ffff8d70c0f1f000 R08: 0000000000000002 R09: 0000000000000502
R10: 0000000000000000 R11: 0000000000000006 R12: ffff8d70c0f1f0c0
R13: ffff8d70c0f1f140 R14: 00000000fee1dead R15: 0000000000000000
FS: 00007fd3089e0b80(0000) GS:ffff8d7237c00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffffffffc8 CR3: 0000000155abb001 CR4: 00000000003706f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
device_shutdown+0x12e/0x180
kernel_kexec+0x52/0xb0
__do_sys_reboot+0x1c0/0x210
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7fd308afd557
Code: 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 89 fa be 69 19 12 28 bf ad de e1 fe b8 a9 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01
c3 48 8b 15 f1 a8 0c 00 f7 d8 64 89 02 b8
RSP: 002b:00007fff7d01e0a8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a9
RAX: ffffffffffffffda RBX: 00005606db11d380 RCX: 00007fd308afd557
RDX: 0000000045584543 RSI: 0000000028121969 RDI: 00000000fee1dead
RBP: 0000000000000000 R08: 0000000000000007 R09: 00007fd308bc8a60
R10: 0000000000000021 R11: 0000000000000246 R12: 0000000000000003
R13: 00007fff7d01e1f0 R14: 00005606db11d8c0 R15: 00000000ffffffff
Modules linked in:
CR2: ffffffffffffffc8
---[ end trace 0cb0bc633a6fde3e ]---
Where:
(gdb) l *(pci_device_shutdown+0x16)
0xffffffff8156abf6 is in pci_device_shutdown (drivers/pci/pci-driver.c:496).
491 struct pci_dev *pci_dev = to_pci_dev(dev);
492 struct pci_driver *drv = to_pci_driver(pci_dev->dev.driver);
493
494 pm_runtime_resume(dev);
495
496 if (drv && drv->shutdown)
497 drv->shutdown(pci_dev);
498
499 /*
500 * If this is a kexec reboot, turn off Bus Master bit on the
WARNING: multiple messages have this Message-ID (diff)
From: Ido Schimmel <idosch@idosch.org>
To: Ido Schimmel <idosch@nvidia.com>, u.kleine-koenig@pengutronix.de
Cc: linux-pci@vger.kernel.org,
"Alexander Duyck" <alexanderduyck@fb.com>,
oss-drivers@corigine.com, "Paul Mackerras" <paulus@samba.org>,
"Christoph Hellwig" <hch@lst.de>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"Rafał Miłecki" <zajec5@gmail.com>,
"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
"Bjorn Helgaas" <helgaas@kernel.org>,
"Jakub Kicinski" <kuba@kernel.org>,
"Yisen Zhuang" <yisen.zhuang@huawei.com>,
"Vadym Kochan" <vkochan@marvell.com>,
"Michael Buesch" <m@bues.ch>, "Jiri Pirko" <jiri@nvidia.com>,
"Salil Mehta" <salil.mehta@huawei.com>,
netdev@vger.kernel.org, linux-wireless@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Taras Chornyi" <tchornyi@marvell.com>,
"Zhou Wang" <wangzhou1@hisilicon.com>,
linux-crypto@vger.kernel.org, kernel@pengutronix.de,
"Simon Horman" <simon.horman@corigine.com>,
"Oliver O'Halloran" <oohall@gmail.com>,
linuxppc-dev@lists.ozlabs.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH v5 07/11] PCI: Replace pci_dev::driver usage that gets the driver name
Date: Wed, 29 Sep 2021 18:21:57 +0300 [thread overview]
Message-ID: <YVSElahmw2AMwnNH@shredder> (raw)
In-Reply-To: <YVR74+8Rw6XmTqDD@shredder>
On Wed, Sep 29, 2021 at 05:44:51PM +0300, Ido Schimmel wrote:
> On Wed, Sep 29, 2021 at 10:53:02AM +0200, Uwe Kleine-König wrote:
> > struct pci_dev::driver holds (apart from a constant offset) the same
> > data as struct pci_dev::dev->driver. With the goal to remove struct
> > pci_dev::driver to get rid of data duplication replace getting the
> > driver name by dev_driver_string() which implicitly makes use of struct
> > pci_dev::dev->driver.
> >
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>
> For mlxsw:
>
> Reviewed-by: Ido Schimmel <idosch@nvidia.com>
> Tested-by: Ido Schimmel <idosch@nvidia.com>
>
> Thanks
Actually, I found out that after loading and executing another kernel
(or the same one) via kexec I get this splat [1].
[1]
BUG: unable to handle page fault for address: ffffffffffffffc8
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 6e40c067 P4D 6e40c067 PUD 6e40e067 PMD 0
Oops: 0000 [#1] SMP
CPU: 0 PID: 786 Comm: kexec Not tainted 5.15.0-rc2-custom-45114-g6b0effa5a61f #112
Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019
RIP: 0010:pci_device_shutdown+0x16/0x40
Code: 01 00 31 d2 4c 89 e7 89 c6 e8 36 ce 01 00 41 89 c5 eb bb 90 55 48 8d af 40 ff ff ff 53 48 8b 47 68 48 89 fb 48 83 f8 78 74 0e <48> 8b 40 c8 48 85 c0 74
05 48 89 ef ff d0 80 3d 35 81 b7 01 00 74
RSP: 0018:ffff95fec0d37db8 EFLAGS: 00010297
RAX: 0000000000000000 RBX: ffff8d70c0f1f0c0 RCX: 0000000000000004
RDX: ffff8d7115a03a00 RSI: 0000000000000206 RDI: ffff8d70c0f1f0c0
RBP: ffff8d70c0f1f000 R08: 0000000000000002 R09: 0000000000000502
R10: 0000000000000000 R11: 0000000000000006 R12: ffff8d70c0f1f0c0
R13: ffff8d70c0f1f140 R14: 00000000fee1dead R15: 0000000000000000
FS: 00007fd3089e0b80(0000) GS:ffff8d7237c00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffffffffc8 CR3: 0000000155abb001 CR4: 00000000003706f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
device_shutdown+0x12e/0x180
kernel_kexec+0x52/0xb0
__do_sys_reboot+0x1c0/0x210
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7fd308afd557
Code: 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 89 fa be 69 19 12 28 bf ad de e1 fe b8 a9 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01
c3 48 8b 15 f1 a8 0c 00 f7 d8 64 89 02 b8
RSP: 002b:00007fff7d01e0a8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a9
RAX: ffffffffffffffda RBX: 00005606db11d380 RCX: 00007fd308afd557
RDX: 0000000045584543 RSI: 0000000028121969 RDI: 00000000fee1dead
RBP: 0000000000000000 R08: 0000000000000007 R09: 00007fd308bc8a60
R10: 0000000000000021 R11: 0000000000000246 R12: 0000000000000003
R13: 00007fff7d01e1f0 R14: 00005606db11d8c0 R15: 00000000ffffffff
Modules linked in:
CR2: ffffffffffffffc8
---[ end trace 0cb0bc633a6fde3e ]---
Where:
(gdb) l *(pci_device_shutdown+0x16)
0xffffffff8156abf6 is in pci_device_shutdown (drivers/pci/pci-driver.c:496).
491 struct pci_dev *pci_dev = to_pci_dev(dev);
492 struct pci_driver *drv = to_pci_driver(pci_dev->dev.driver);
493
494 pm_runtime_resume(dev);
495
496 if (drv && drv->shutdown)
497 drv->shutdown(pci_dev);
498
499 /*
500 * If this is a kexec reboot, turn off Bus Master bit on the
next prev parent reply other threads:[~2021-09-29 15:22 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-29 8:52 [PATCH v5 00/11] PCI: Drop duplicated tracking of a pci_dev's bound driver Uwe Kleine-König
2021-09-29 8:52 ` Uwe Kleine-König
2021-09-29 8:52 ` [PATCH v5 01/11] PCI: Simplify pci_device_remove() Uwe Kleine-König
2021-09-29 8:52 ` [PATCH v5 02/11] PCI: Drop useless check from pci_device_probe() Uwe Kleine-König
2021-09-29 8:52 ` [PATCH v5 03/11] xen/pci: Drop some checks that are always true Uwe Kleine-König
2021-09-29 8:52 ` [PATCH v5 04/11] bcma: simplify reference to the driver's name Uwe Kleine-König
2021-09-29 8:53 ` [PATCH v5 05/11] powerpc/eeh: Don't use driver member of struct pci_dev and further cleanups Uwe Kleine-König
2021-09-29 8:53 ` Uwe Kleine-König
2021-09-29 8:53 ` [PATCH v5 06/11] ssb: Simplify determination of driver name Uwe Kleine-König
2021-09-29 11:13 ` Michael Büsch
2021-09-29 8:53 ` [PATCH v5 07/11] PCI: Replace pci_dev::driver usage that gets the " Uwe Kleine-König
2021-09-29 8:53 ` Uwe Kleine-König
2021-09-29 10:17 ` Simon Horman
2021-09-29 10:17 ` Simon Horman
2021-09-29 14:44 ` Ido Schimmel
2021-09-29 14:44 ` Ido Schimmel
2021-09-29 15:21 ` Ido Schimmel [this message]
2021-09-29 15:21 ` Ido Schimmel
2021-09-29 8:53 ` [PATCH v5 08/11] scsi: message: fusion: Remove unused parameter of mpt_pci driver's probe() Uwe Kleine-König
2021-09-29 8:53 ` [PATCH v5 09/11] crypto: qat - simplify adf_enable_aer() Uwe Kleine-König
2021-09-29 8:53 ` [PATCH v5 10/11] PCI: Replace pci_dev::driver usage by pci_dev::dev.driver Uwe Kleine-König
2021-09-29 8:53 ` Uwe Kleine-König
2021-09-29 13:15 ` Andrew Donnellan
2021-09-29 13:15 ` Andrew Donnellan
2021-09-29 13:43 ` Uwe Kleine-König
2021-09-29 13:43 ` Uwe Kleine-König
2021-09-29 15:44 ` Andrew Donnellan
2021-09-29 15:44 ` Andrew Donnellan
2021-09-30 13:48 ` Frederic Barrat
2021-09-30 13:48 ` Frederic Barrat
2021-09-29 8:53 ` [PATCH v5 11/11] PCI: Drop duplicated tracking of a pci_dev's bound driver Uwe Kleine-König
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=YVSElahmw2AMwnNH@shredder \
--to=idosch@idosch.org \
--cc=alexanderduyck@fb.com \
--cc=benh@kernel.crashing.org \
--cc=davem@davemloft.net \
--cc=hch@lst.de \
--cc=helgaas@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=idosch@nvidia.com \
--cc=jesse.brandeburg@intel.com \
--cc=jiri@nvidia.com \
--cc=kernel@pengutronix.de \
--cc=kuba@kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=m@bues.ch \
--cc=mpe@ellerman.id.au \
--cc=netdev@vger.kernel.org \
--cc=oohall@gmail.com \
--cc=oss-drivers@corigine.com \
--cc=paulus@samba.org \
--cc=salil.mehta@huawei.com \
--cc=simon.horman@corigine.com \
--cc=tchornyi@marvell.com \
--cc=u.kleine-koenig@pengutronix.de \
--cc=vkochan@marvell.com \
--cc=wangzhou1@hisilicon.com \
--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.