linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] mt7621 pci & phy-pci fix future oops from soc_device_match_attr
@ 2022-11-04 20:52 John Thomson
  2022-11-04 20:52 ` [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table John Thomson
  2022-11-04 20:52 ` [PATCH 2/2] PCI: mt7621: " John Thomson
  0 siblings, 2 replies; 8+ messages in thread
From: John Thomson @ 2022-11-04 20:52 UTC (permalink / raw)
  To: Sergio Paracuellos, Kishon Vijay Abraham I, Vinod Koul,
	Lorenzo Pieralisi, Rob Herring, Krzysztof Wilczyński,
	Bjorn Helgaas, Greg Kroah-Hartman, Arınç ÜNAL
  Cc: linux-phy, linux-pci, linux-kernel

A change in the mm/slub code identified that the arch/mips/ralink/mt7621.c
soc_dev_init function attempted to kzalloc too early.
https://lore.kernel.org/linux-mm/becf2ac3-2a90-4f3a-96d9-a70f67c66e4a@app.fastmail.com/
RFC fix: https://lore.kernel.org/lkml/20221103050538.1930758-1-git@johnthomson.fastmail.com.au/

Fixing that mips mt7621 issue exposes an oops in testing the quirk table.
I think we do want these changes committed before the mt7621
kzalloc too early fix, otherwise I introduce oops.

Checkpatch warns on the pci Fixes tag, and suggests
my change for the Fixes tag.

I am not sure if we want these backported to stable trees?
Then, if I need separate patches for the staging drivers in 5.10 pci-phy
and 5.15 pci?


Oops example after the mt7621 kzalloc too early fix atop v6.1-rc2
From Sergio Paracuellos in
https://lore.kernel.org/lkml/CAMhs-H-Eo0ELMpy0iPakTA-3nHdY_mYQG-rrqgSotBKKED=eOg@mail.gmail.com/
[   20.569959] CPU 0 Unable to handle kernel paging request at virtual
address 675f6b6c, epc == 80403dec, ra == 804ae11c
[   20.591060] Oops[#1]:
[   20.595462] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.1.0-rc1+ #148
[   20.608265] $ 0   : 00000000 00000001 82262a00 00000000
[   20.618615] $ 4   : 675f6b6c 808dea04 00000000 804ae138
[   20.628983] $ 8   : 00000000 808787ba 00000000 821f4b00
[   20.639351] $12   : 0000005b 0000005d 0000002d 0000005c
[   20.649735] $16   : 82253580 807b4034 807b4034 804ae138
[   20.660087] $20   : fffffff4 82c382b8 809e1094 00000008
[   20.670455] $24   : 0000002a 0000003f
[   20.680823] $28   : 82050000 82051c30 80a0d638 804ae11c
[   20.691190] Hi    : 00000037
[   20.696891] Lo    : 5c28f6a0
[   20.702610] epc   : 80403dec glob_match+0x1c/0x240
[   20.712100] ra    : 804ae11c soc_device_match_attr+0xac/0xc8
[   20.723330] Status: 11000403 KERNEL EXL IE
[   20.731626] Cause : 40800008 (ExcCode 02)
[   20.739576] BadVA : 675f6b6c
[   20.745277] PrId  : 0001992f (MIPS 1004Kc)
[   20.753414] Modules linked in:
[   20.759448] Process swapper/0 (pid: 1, threadinfo=(ptrval),
task=(ptrval), tls=00000000)
[   20.775520] Stack : fffffff4 80496ab8 820c6010 828c8518 80950000
ffffffea 80950000 80496b48
[   20.792106]         00000000 828c8400 820c6010 821f4880 1e160000
821bc754 82253734 7f8268e6
[   20.808707]         809c6a94 807b4034 804ae138 809c8e88 819a0000
804ae1d8 80a0d638 80438e10
[   20.825282]         821f3e70 80950000 808c0000 828c8400 820c6000
828c8548 820c6010 80456608
[   20.841879]         821f3dc0 821d32c0 819a0000 801d8768 821f3dc0
821d32c0 828c8540 80950000
[   20.858473]         ...
[   20.863298] Call Trace:
[   20.868137] [<80403dec>] glob_match+0x1c/0x240
[   20.876955] [<804ae11c>] soc_device_match_attr+0xac/0xc8
[   20.887500] [<80496b48>] bus_for_each_dev+0x7c/0xc0
[   20.897176] [<804ae1d8>] soc_device_match+0x98/0xc8
[   20.906869] [<80456608>] mt7621_pcie_probe+0x90/0x7b8
[   20.916876] [<8049b46c>] platform_probe+0x54/0x94
[   20.926206] [<80499058>] really_probe+0x200/0x434
[   20.935538] [<80499520>] driver_probe_device+0x44/0xd4
[   20.945732] [<80499ae0>] __driver_attach+0xb8/0x1b0
[   20.955428] [<80496b48>] bus_for_each_dev+0x7c/0xc0
[   20.965089] [<80497f18>] bus_add_driver+0x100/0x218
[   20.974763] [<8049a338>] driver_register+0xd0/0x118
[   20.984438] [<80001590>] do_one_initcall+0x8c/0x28c
[   20.994115] [<809e21c8>] kernel_init_freeable+0x254/0x28c
[   21.004845] [<80781070>] kernel_init+0x24/0x118
[   21.013830] [<800034f8>] ret_from_kernel_thread+0x14/0x1c
[   21.024522]
[   21.027457] Code: 240f005c  2418002a  2419003f <80820000> 24a90001
90a70000  104c006f  24860001  2843005c
[   21.046810]
[   21.049830] ---[ end trace 0000000000000000 ]---
[   21.058935] Kernel panic - not syncing: Fatal exception
[   21.069310] Rebooting in 1 seconds..


Cheers,

John



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table
  2022-11-04 20:52 [PATCH 0/2] mt7621 pci & phy-pci fix future oops from soc_device_match_attr John Thomson
@ 2022-11-04 20:52 ` John Thomson
  2022-11-05  6:24   ` Sergio Paracuellos
  2022-11-05  7:31   ` Vinod Koul
  2022-11-04 20:52 ` [PATCH 2/2] PCI: mt7621: " John Thomson
  1 sibling, 2 replies; 8+ messages in thread
From: John Thomson @ 2022-11-04 20:52 UTC (permalink / raw)
  To: Sergio Paracuellos, Kishon Vijay Abraham I, Vinod Koul,
	Lorenzo Pieralisi, Rob Herring, Krzysztof Wilczyński,
	Bjorn Helgaas, Greg Kroah-Hartman, Arınç ÜNAL
  Cc: linux-phy, linux-pci, linux-kernel, John Thomson

With mt7621 soc_dev_attr fixed to register the soc as a device,
kernel will experience an oops in soc_device_match_attr

This quirk test was introduced in the staging driver in
commit 9445ccb3714c ("staging: mt7621-pci-phy: add quirks for 'E2'
revision using 'soc_device_attribute'"). The staging driver was removed,
and later re-added in commit d87da32372a0 ("phy: ralink: Add PHY driver
for MT7621 PCIe PHY") for kernel 5.11

Link: https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
Fixes: d87da32372a0 ("phy: ralink: Add PHY driver for MT7621 PCIe PHY")
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
---
 drivers/phy/ralink/phy-mt7621-pci.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/phy/ralink/phy-mt7621-pci.c b/drivers/phy/ralink/phy-mt7621-pci.c
index 5e6530f545b5..85888ab2d307 100644
--- a/drivers/phy/ralink/phy-mt7621-pci.c
+++ b/drivers/phy/ralink/phy-mt7621-pci.c
@@ -280,7 +280,8 @@ static struct phy *mt7621_pcie_phy_of_xlate(struct device *dev,
 }
 
 static const struct soc_device_attribute mt7621_pci_quirks_match[] = {
-	{ .soc_id = "mt7621", .revision = "E2" }
+	{ .soc_id = "mt7621", .revision = "E2" },
+	{ /* sentinel */ }
 };
 
 static const struct regmap_config mt7621_pci_phy_regmap_config = {
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] PCI: mt7621: add sentinel to quirks table
  2022-11-04 20:52 [PATCH 0/2] mt7621 pci & phy-pci fix future oops from soc_device_match_attr John Thomson
  2022-11-04 20:52 ` [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table John Thomson
@ 2022-11-04 20:52 ` John Thomson
  2022-11-05  6:25   ` Sergio Paracuellos
                     ` (2 more replies)
  1 sibling, 3 replies; 8+ messages in thread
From: John Thomson @ 2022-11-04 20:52 UTC (permalink / raw)
  To: Sergio Paracuellos, Kishon Vijay Abraham I, Vinod Koul,
	Lorenzo Pieralisi, Rob Herring, Krzysztof Wilczyński,
	Bjorn Helgaas, Greg Kroah-Hartman, Arınç ÜNAL
  Cc: linux-phy, linux-pci, linux-kernel, John Thomson

With mt7621 soc_dev_attr fixed to register the soc as a device,
kernel will experience an oops in soc_device_match_attr

This quirk test was introduced in the staging driver in
commit b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
using 'soc_device_attribute'"), and the staging driver was moved in
commit 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host
controller driver") for the 5.16 kernel

Link: https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
Fixes: b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
using 'soc_device_attribute'")
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
---
 drivers/pci/controller/pcie-mt7621.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/pcie-mt7621.c b/drivers/pci/controller/pcie-mt7621.c
index 4bd1abf26008..ee7aad09d627 100644
--- a/drivers/pci/controller/pcie-mt7621.c
+++ b/drivers/pci/controller/pcie-mt7621.c
@@ -466,7 +466,8 @@ static int mt7621_pcie_register_host(struct pci_host_bridge *host)
 }
 
 static const struct soc_device_attribute mt7621_pcie_quirks_match[] = {
-	{ .soc_id = "mt7621", .revision = "E2" }
+	{ .soc_id = "mt7621", .revision = "E2" },
+	{ /* sentinel */ }
 };
 
 static int mt7621_pcie_probe(struct platform_device *pdev)
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table
  2022-11-04 20:52 ` [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table John Thomson
@ 2022-11-05  6:24   ` Sergio Paracuellos
  2022-11-05  7:31   ` Vinod Koul
  1 sibling, 0 replies; 8+ messages in thread
From: Sergio Paracuellos @ 2022-11-05  6:24 UTC (permalink / raw)
  To: John Thomson
  Cc: Kishon Vijay Abraham I, Vinod Koul, Lorenzo Pieralisi,
	Rob Herring, Krzysztof Wilczyński, Bjorn Helgaas,
	Greg Kroah-Hartman, Arınç ÜNAL, linux-phy,
	linux-pci, linux-kernel

On Fri, Nov 4, 2022 at 9:54 PM John Thomson
<git@johnthomson.fastmail.com.au> wrote:
>
> With mt7621 soc_dev_attr fixed to register the soc as a device,
> kernel will experience an oops in soc_device_match_attr
>
> This quirk test was introduced in the staging driver in
> commit 9445ccb3714c ("staging: mt7621-pci-phy: add quirks for 'E2'
> revision using 'soc_device_attribute'"). The staging driver was removed,
> and later re-added in commit d87da32372a0 ("phy: ralink: Add PHY driver
> for MT7621 PCIe PHY") for kernel 5.11
>
> Link: https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
> Fixes: d87da32372a0 ("phy: ralink: Add PHY driver for MT7621 PCIe PHY")
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
>  drivers/phy/ralink/phy-mt7621-pci.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Acked-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>

Thanks,
    Sergio Paracuellos

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] PCI: mt7621: add sentinel to quirks table
  2022-11-04 20:52 ` [PATCH 2/2] PCI: mt7621: " John Thomson
@ 2022-11-05  6:25   ` Sergio Paracuellos
  2022-11-11 18:55   ` John Thomson
  2022-12-05 16:26   ` Lorenzo Pieralisi
  2 siblings, 0 replies; 8+ messages in thread
From: Sergio Paracuellos @ 2022-11-05  6:25 UTC (permalink / raw)
  To: John Thomson
  Cc: Kishon Vijay Abraham I, Vinod Koul, Lorenzo Pieralisi,
	Rob Herring, Krzysztof Wilczyński, Bjorn Helgaas,
	Greg Kroah-Hartman, Arınç ÜNAL, linux-phy,
	linux-pci, linux-kernel

On Fri, Nov 4, 2022 at 9:54 PM John Thomson
<git@johnthomson.fastmail.com.au> wrote:
>
> With mt7621 soc_dev_attr fixed to register the soc as a device,
> kernel will experience an oops in soc_device_match_attr
>
> This quirk test was introduced in the staging driver in
> commit b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
> using 'soc_device_attribute'"), and the staging driver was moved in
> commit 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host
> controller driver") for the 5.16 kernel
>
> Link: https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
> Fixes: b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
> using 'soc_device_attribute'")
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
>  drivers/pci/controller/pcie-mt7621.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Acked-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>

Thanks,
    Sergio Paracuellos

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table
  2022-11-04 20:52 ` [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table John Thomson
  2022-11-05  6:24   ` Sergio Paracuellos
@ 2022-11-05  7:31   ` Vinod Koul
  1 sibling, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2022-11-05  7:31 UTC (permalink / raw)
  To: John Thomson
  Cc: Sergio Paracuellos, Kishon Vijay Abraham I, Lorenzo Pieralisi,
	Rob Herring, Krzysztof Wilczyński, Bjorn Helgaas,
	Greg Kroah-Hartman, Arınç ÜNAL, linux-phy,
	linux-pci, linux-kernel

On 05-11-22, 06:52, John Thomson wrote:
> With mt7621 soc_dev_attr fixed to register the soc as a device,
> kernel will experience an oops in soc_device_match_attr
> 
> This quirk test was introduced in the staging driver in
> commit 9445ccb3714c ("staging: mt7621-pci-phy: add quirks for 'E2'
> revision using 'soc_device_attribute'"). The staging driver was removed,
> and later re-added in commit d87da32372a0 ("phy: ralink: Add PHY driver
> for MT7621 PCIe PHY") for kernel 5.11

Applied, thanks

-- 
~Vinod

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] PCI: mt7621: add sentinel to quirks table
  2022-11-04 20:52 ` [PATCH 2/2] PCI: mt7621: " John Thomson
  2022-11-05  6:25   ` Sergio Paracuellos
@ 2022-11-11 18:55   ` John Thomson
  2022-12-05 16:26   ` Lorenzo Pieralisi
  2 siblings, 0 replies; 8+ messages in thread
From: John Thomson @ 2022-11-11 18:55 UTC (permalink / raw)
  To: Sergio Paracuellos, Lorenzo Pieralisi, Rob Herring,
	Krzysztof Wilczyński, Greg Kroah-Hartman,
	Arınç ÜNAL, Bjorn Helgaas
  Cc: linux-pci, linux-kernel, John Thomson

On Fri, 4 Nov 2022, at 20:52, John Thomson wrote:
> With mt7621 soc_dev_attr fixed to register the soc as a device,
> kernel will experience an oops in soc_device_match_attr
>
> This quirk test was introduced in the staging driver in
> commit b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
> using 'soc_device_attribute'"), and the staging driver was moved in
> commit 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host
> controller driver") for the 5.16 kernel
>
> Link: 
> https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
> Fixes: b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
> using 'soc_device_attribute'")
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
>  drivers/pci/controller/pcie-mt7621.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/pcie-mt7621.c 
> b/drivers/pci/controller/pcie-mt7621.c
> index 4bd1abf26008..ee7aad09d627 100644
> --- a/drivers/pci/controller/pcie-mt7621.c
> +++ b/drivers/pci/controller/pcie-mt7621.c
> @@ -466,7 +466,8 @@ static int mt7621_pcie_register_host(struct 
> pci_host_bridge *host)
>  }
> 
>  static const struct soc_device_attribute mt7621_pcie_quirks_match[] = {
> -	{ .soc_id = "mt7621", .revision = "E2" }
> +	{ .soc_id = "mt7621", .revision = "E2" },
> +	{ /* sentinel */ }
>  };
> 
>  static int mt7621_pcie_probe(struct platform_device *pdev)
> -- 
> 2.37.2

Ping for the PCI change.
Original link: https://lore.kernel.org/lkml/20221104205242.3440388-3-git@johnthomson.fastmail.com.au/#t
I would like this pci controller patch applied before we fix the MIPS mt7621 early kzalloc boot failure.
The phy-pci patch was accepted.


Cheers,
-- 
  John Thomson

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] PCI: mt7621: add sentinel to quirks table
  2022-11-04 20:52 ` [PATCH 2/2] PCI: mt7621: " John Thomson
  2022-11-05  6:25   ` Sergio Paracuellos
  2022-11-11 18:55   ` John Thomson
@ 2022-12-05 16:26   ` Lorenzo Pieralisi
  2 siblings, 0 replies; 8+ messages in thread
From: Lorenzo Pieralisi @ 2022-12-05 16:26 UTC (permalink / raw)
  To: John Thomson
  Cc: Sergio Paracuellos, Kishon Vijay Abraham I, Vinod Koul,
	Rob Herring, Krzysztof Wilczyński, Bjorn Helgaas,
	Greg Kroah-Hartman, Arınç ÜNAL, linux-phy,
	linux-pci, linux-kernel

Always capitalize the sentence in the subject.

"PCI: mt7621: Add sentinel to quirks table"

On Sat, Nov 05, 2022 at 06:52:42AM +1000, John Thomson wrote:
> With mt7621 soc_dev_attr fixed to register the soc as a device,
> kernel will experience an oops in soc_device_match_attr

Can we reword this please ? What you are describing *exposes* the
bug but it is not describing the bug per-se.

The bug is related to a missing sentinel in the struct
soc_device_attribute array and that's true regardless of whether it is
actually triggered or not.

Please update the commit log promptly and I shall send it upstream.

Thanks,
Lorenzo

> This quirk test was introduced in the staging driver in
> commit b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
> using 'soc_device_attribute'"), and the staging driver was moved in
> commit 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host
> controller driver") for the 5.16 kernel
> 
> Link: https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
> Fixes: b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision
> using 'soc_device_attribute'")
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
>  drivers/pci/controller/pcie-mt7621.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/controller/pcie-mt7621.c b/drivers/pci/controller/pcie-mt7621.c
> index 4bd1abf26008..ee7aad09d627 100644
> --- a/drivers/pci/controller/pcie-mt7621.c
> +++ b/drivers/pci/controller/pcie-mt7621.c
> @@ -466,7 +466,8 @@ static int mt7621_pcie_register_host(struct pci_host_bridge *host)
>  }
>  
>  static const struct soc_device_attribute mt7621_pcie_quirks_match[] = {
> -	{ .soc_id = "mt7621", .revision = "E2" }
> +	{ .soc_id = "mt7621", .revision = "E2" },
> +	{ /* sentinel */ }
>  };
>  
>  static int mt7621_pcie_probe(struct platform_device *pdev)
> -- 
> 2.37.2
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-12-05 16:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-04 20:52 [PATCH 0/2] mt7621 pci & phy-pci fix future oops from soc_device_match_attr John Thomson
2022-11-04 20:52 ` [PATCH 1/2] phy: ralink: mt7621-pci: add sentinel to quirks table John Thomson
2022-11-05  6:24   ` Sergio Paracuellos
2022-11-05  7:31   ` Vinod Koul
2022-11-04 20:52 ` [PATCH 2/2] PCI: mt7621: " John Thomson
2022-11-05  6:25   ` Sergio Paracuellos
2022-11-11 18:55   ` John Thomson
2022-12-05 16:26   ` Lorenzo Pieralisi

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).