* [PATCH 0/3] mips: ralink: mt7621: fix kzalloc too early
@ 2022-11-14 1:56 John Thomson
2022-11-14 1:56 ` [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem John Thomson
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: John Thomson @ 2022-11-14 1:56 UTC (permalink / raw)
To: Sergio Paracuellos, Thomas Bogendoerfer, John Crispin,
Arınç ÜNAL
Cc: linux-mips, linux-kernel
ralink mt7621 attempts to use kzalloc before normal memory management is
available.
Before v6.1-rc1, mt7621.c soc_dev_init silently failed to kzalloc and
returned immediately afterwards, continuing to boot without the
SOC_BUS device registered.
After, (with CONFIG_SLUB) kernel crashes before it outputs any console
messages
This was bisected to an mm/slub change (detailed in patch 3)
This change exposed oops in the quirks tables in the mt7621 phy-pci &
pci-controller drivers. The phy-pci quirk fix got into -rc5,
but the pci-controller quirk fix has not been picked up yet.
https://lore.kernel.org/lkml/20221114012036.2870067-1-git@johnthomson.fastmail.com.au/T/#u
This is mentioned in patch 3 as:
not yet applied ("PCI: mt7621: add sentinel to quirks table")
Changes from RFC
https://lore.kernel.org/lkml/20221103050538.1930758-1-git@johnthomson.fastmail.com.au/T/#u
to v1:
1/3:
cut the CPHYSADDR to match the line moved to the header file
2/3:
No useless const unsigned {int,bool} function declarations (thanks
kernel test robot)
3/3:
static struct *soc_info_ptr
Mention fixed phy-pci & (unapplied) pci-controller quirks sentinels
Add fixes tag
Cheers,
John
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem
2022-11-14 1:56 [PATCH 0/3] mips: ralink: mt7621: fix kzalloc too early John Thomson
@ 2022-11-14 1:56 ` John Thomson
2022-12-01 13:32 ` Thomas Bogendoerfer
2022-11-14 1:56 ` [PATCH 2/3] mips: ralink: mt7621: soc queries and tests as functions John Thomson
2022-11-14 1:56 ` [PATCH 3/3] mips: ralink: mt7621: do not use kzalloc too early John Thomson
2 siblings, 1 reply; 7+ messages in thread
From: John Thomson @ 2022-11-14 1:56 UTC (permalink / raw)
To: Sergio Paracuellos, Thomas Bogendoerfer, John Crispin,
Arınç ÜNAL
Cc: linux-mips, linux-kernel, John Thomson
So that MT7621_SYSC_BASE can be used later in multiple functions without
needing to repeat this __iomem declaration each time
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
---
arch/mips/include/asm/mach-ralink/mt7621.h | 4 +++-
arch/mips/ralink/mt7621.c | 7 +++----
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/mips/include/asm/mach-ralink/mt7621.h b/arch/mips/include/asm/mach-ralink/mt7621.h
index 6bbf082dd149..79d5bb0e06d6 100644
--- a/arch/mips/include/asm/mach-ralink/mt7621.h
+++ b/arch/mips/include/asm/mach-ralink/mt7621.h
@@ -7,10 +7,12 @@
#ifndef _MT7621_REGS_H_
#define _MT7621_REGS_H_
+#define IOMEM(x) ((void __iomem *)(KSEG1ADDR(x)))
+
#define MT7621_PALMBUS_BASE 0x1C000000
#define MT7621_PALMBUS_SIZE 0x03FFFFFF
-#define MT7621_SYSC_BASE 0x1E000000
+#define MT7621_SYSC_BASE IOMEM(0x1E000000)
#define SYSC_REG_CHIP_NAME0 0x00
#define SYSC_REG_CHIP_NAME1 0x04
diff --git a/arch/mips/ralink/mt7621.c b/arch/mips/ralink/mt7621.c
index fb0565bc34fd..17dbf28897e0 100644
--- a/arch/mips/ralink/mt7621.c
+++ b/arch/mips/ralink/mt7621.c
@@ -126,7 +126,6 @@ static void soc_dev_init(struct ralink_soc_info *soc_info, u32 rev)
void __init prom_soc_init(struct ralink_soc_info *soc_info)
{
- void __iomem *sysc = (void __iomem *) KSEG1ADDR(MT7621_SYSC_BASE);
unsigned char *name = NULL;
u32 n0;
u32 n1;
@@ -154,8 +153,8 @@ void __init prom_soc_init(struct ralink_soc_info *soc_info)
__sync();
}
- n0 = __raw_readl(sysc + SYSC_REG_CHIP_NAME0);
- n1 = __raw_readl(sysc + SYSC_REG_CHIP_NAME1);
+ n0 = __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME0);
+ n1 = __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME1);
if (n0 == MT7621_CHIP_NAME0 && n1 == MT7621_CHIP_NAME1) {
name = "MT7621";
@@ -164,7 +163,7 @@ void __init prom_soc_init(struct ralink_soc_info *soc_info)
panic("mt7621: unknown SoC, n0:%08x n1:%08x\n", n0, n1);
}
ralink_soc = MT762X_SOC_MT7621AT;
- rev = __raw_readl(sysc + SYSC_REG_CHIP_REV);
+ rev = __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_REV);
snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN,
"MediaTek %s ver:%u eco:%u",
--
2.37.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] mips: ralink: mt7621: soc queries and tests as functions
2022-11-14 1:56 [PATCH 0/3] mips: ralink: mt7621: fix kzalloc too early John Thomson
2022-11-14 1:56 ` [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem John Thomson
@ 2022-11-14 1:56 ` John Thomson
2022-12-01 13:33 ` Thomas Bogendoerfer
2022-11-14 1:56 ` [PATCH 3/3] mips: ralink: mt7621: do not use kzalloc too early John Thomson
2 siblings, 1 reply; 7+ messages in thread
From: John Thomson @ 2022-11-14 1:56 UTC (permalink / raw)
To: Sergio Paracuellos, Thomas Bogendoerfer, John Crispin,
Arınç ÜNAL
Cc: linux-mips, linux-kernel, John Thomson
Move the SoC register value queries and tests to specific functions,
to remove repetition of logic
No functional changes intended
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
---
arch/mips/ralink/mt7621.c | 86 +++++++++++++++++++++++++++------------
1 file changed, 61 insertions(+), 25 deletions(-)
diff --git a/arch/mips/ralink/mt7621.c b/arch/mips/ralink/mt7621.c
index 17dbf28897e0..6e126f570f0c 100644
--- a/arch/mips/ralink/mt7621.c
+++ b/arch/mips/ralink/mt7621.c
@@ -97,7 +97,57 @@ void __init ralink_of_remap(void)
panic("Failed to remap core resources");
}
-static void soc_dev_init(struct ralink_soc_info *soc_info, u32 rev)
+static unsigned int __init mt7621_get_soc_name0(void)
+{
+ return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME0);
+}
+
+static unsigned int __init mt7621_get_soc_name1(void)
+{
+ return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME1);
+}
+
+static bool __init mt7621_soc_valid(void)
+{
+ if (mt7621_get_soc_name0() == MT7621_CHIP_NAME0 &&
+ mt7621_get_soc_name1() == MT7621_CHIP_NAME1)
+ return true;
+ else
+ return false;
+}
+
+static const char __init *mt7621_get_soc_id(void)
+{
+ if (mt7621_soc_valid())
+ return "MT7621";
+ else
+ return "invalid";
+}
+
+static unsigned int __init mt7621_get_soc_rev(void)
+{
+ return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_REV);
+}
+
+static unsigned int __init mt7621_get_soc_ver(void)
+{
+ return (mt7621_get_soc_rev() >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK;
+}
+
+static unsigned int __init mt7621_get_soc_eco(void)
+{
+ return (mt7621_get_soc_rev() & CHIP_REV_ECO_MASK);
+}
+
+static const char __init *mt7621_get_soc_revision(void)
+{
+ if (mt7621_get_soc_rev() == 1 && mt7621_get_soc_eco() == 1)
+ return "E2";
+ else
+ return "E1";
+}
+
+static void soc_dev_init(struct ralink_soc_info *soc_info)
{
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
@@ -108,12 +158,7 @@ static void soc_dev_init(struct ralink_soc_info *soc_info, u32 rev)
soc_dev_attr->soc_id = "mt7621";
soc_dev_attr->family = "Ralink";
-
- if (((rev >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK) == 1 &&
- (rev & CHIP_REV_ECO_MASK) == 1)
- soc_dev_attr->revision = "E2";
- else
- soc_dev_attr->revision = "E1";
+ soc_dev_attr->revision = mt7621_get_soc_revision();
soc_dev_attr->data = soc_info;
@@ -126,11 +171,6 @@ static void soc_dev_init(struct ralink_soc_info *soc_info, u32 rev)
void __init prom_soc_init(struct ralink_soc_info *soc_info)
{
- unsigned char *name = NULL;
- u32 n0;
- u32 n1;
- u32 rev;
-
/* Early detection of CMP support */
mips_cm_probe();
mips_cpc_probe();
@@ -153,27 +193,23 @@ void __init prom_soc_init(struct ralink_soc_info *soc_info)
__sync();
}
- n0 = __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME0);
- n1 = __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME1);
-
- if (n0 == MT7621_CHIP_NAME0 && n1 == MT7621_CHIP_NAME1) {
- name = "MT7621";
+ if (mt7621_soc_valid())
soc_info->compatible = "mediatek,mt7621-soc";
- } else {
- panic("mt7621: unknown SoC, n0:%08x n1:%08x\n", n0, n1);
- }
+ else
+ panic("mt7621: unknown SoC, n0:%08x n1:%08x\n",
+ mt7621_get_soc_name0(),
+ mt7621_get_soc_name1());
ralink_soc = MT762X_SOC_MT7621AT;
- rev = __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_REV);
snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN,
"MediaTek %s ver:%u eco:%u",
- name,
- (rev >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK,
- (rev & CHIP_REV_ECO_MASK));
+ mt7621_get_soc_id(),
+ mt7621_get_soc_ver(),
+ mt7621_get_soc_eco());
soc_info->mem_detect = mt7621_memory_detect;
- soc_dev_init(soc_info, rev);
+ soc_dev_init(soc_info);
if (!register_cps_smp_ops())
return;
--
2.37.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] mips: ralink: mt7621: do not use kzalloc too early
2022-11-14 1:56 [PATCH 0/3] mips: ralink: mt7621: fix kzalloc too early John Thomson
2022-11-14 1:56 ` [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem John Thomson
2022-11-14 1:56 ` [PATCH 2/3] mips: ralink: mt7621: soc queries and tests as functions John Thomson
@ 2022-11-14 1:56 ` John Thomson
2022-12-01 13:33 ` Thomas Bogendoerfer
2 siblings, 1 reply; 7+ messages in thread
From: John Thomson @ 2022-11-14 1:56 UTC (permalink / raw)
To: Sergio Paracuellos, Thomas Bogendoerfer, John Crispin,
Arınç ÜNAL
Cc: linux-mips, linux-kernel, John Thomson
With CONFIG_SLUB=y, following commit 6edf2576a6cc ("mm/slub: enable
debugging memory wasting of kmalloc") mt7621 failed to boot very early,
without showing any console messages.
This exposed the pre-existing bug of mt7621.c using kzalloc before normal
memory management was available.
Prior to this slub change, there existed the unintended protection against
"kmem_cache *s" being NULL as slab_pre_alloc_hook() happened to
return NULL and bailed out of slab_alloc_node().
This allowed mt7621 prom_soc_init to fail in the soc_dev_init kzalloc,
but continue booting without the SOC_BUS driver device registered.
Console output from a DEBUG_ZBOOT vmlinuz kernel loading,
with mm/slub modified to warn on kmem_cache zero or null:
zimage at: 80B842A0 810B4BC0
Uncompressing Linux at load address 80001000
Copy device tree to address 80B80EE0
Now, booting the kernel...
[ 0.000000] Linux version 6.1.0-rc3+ (john@john)
(mipsel-buildroot-linux-gnu-gcc.br_real (Buildroot
2021.11-4428-g6b6741b) 12.2.0, GNU ld (GNU Binutils) 2.39) #73 SMP Wed
Nov 2 05:10:01 AEST 2022
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: CPU: 0 PID: 0 at mm/slub.c:3416
kmem_cache_alloc+0x5a4/0x5e8
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 6.1.0-rc3+ #73
[ 0.000000] Stack : 810fff78 80084d98 00000000 00000004 00000000
00000000 80889d04 80c90000
[ 0.000000] 80920000 807bd328 8089d368 80923bd3 00000000
00000001 80889cb0 00000000
[ 0.000000] 00000000 00000000 807bd328 8084bcb1 00000002
00000002 00000001 6d6f4320
[ 0.000000] 00000000 80c97d3d 80c97d68 fffffffc 807bd328
00000000 00000000 00000000
[ 0.000000] 00000000 a0000000 80910000 8110a0b4 00000000
00000020 80010000 80010000
[ 0.000000] ...
[ 0.000000] Call Trace:
[ 0.000000] [<80008260>] show_stack+0x28/0xf0
[ 0.000000] [<8070c958>] dump_stack_lvl+0x60/0x80
[ 0.000000] [<8002e184>] __warn+0xc4/0xf8
[ 0.000000] [<8002e210>] warn_slowpath_fmt+0x58/0xa4
[ 0.000000] [<801c0fac>] kmem_cache_alloc+0x5a4/0x5e8
[ 0.000000] [<8092856c>] prom_soc_init+0x1fc/0x2b4
[ 0.000000] [<80928060>] prom_init+0x44/0xf0
[ 0.000000] [<80929214>] setup_arch+0x4c/0x6a8
[ 0.000000] [<809257e0>] start_kernel+0x88/0x7c0
[ 0.000000]
[ 0.000000] ---[ end trace 0000000000000000 ]---
[ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[ 0.000000] printk: bootconsole [early0] enabled
Allowing soc_device_register to work exposed oops in the mt7621 phy pci,
and pci controller drivers from soc_device_match_attr, due to missing
sentinels in the quirks tables. These were fixed with:
commit 819b885cd886 ("phy: ralink: mt7621-pci: add sentinel to quirks
table")
not yet applied ("PCI: mt7621: add sentinel to quirks table")
Link: https://lore.kernel.org/linux-mm/becf2ac3-2a90-4f3a-96d9-a70f67c66e4a@app.fastmail.com/
Fixes: 71b9b5e0130d ("MIPS: ralink: mt7621: introduce 'soc_device' initialization")
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
---
arch/mips/ralink/mt7621.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/arch/mips/ralink/mt7621.c b/arch/mips/ralink/mt7621.c
index 6e126f570f0c..bbf5811afbf2 100644
--- a/arch/mips/ralink/mt7621.c
+++ b/arch/mips/ralink/mt7621.c
@@ -25,6 +25,7 @@
#define MT7621_MEM_TEST_PATTERN 0xaa5555aa
static u32 detect_magic __initdata;
+static struct ralink_soc_info *soc_info_ptr;
int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
{
@@ -147,27 +148,30 @@ static const char __init *mt7621_get_soc_revision(void)
return "E1";
}
-static void soc_dev_init(struct ralink_soc_info *soc_info)
+static int __init mt7621_soc_dev_init(void)
{
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
if (!soc_dev_attr)
- return;
+ return -ENOMEM;
soc_dev_attr->soc_id = "mt7621";
soc_dev_attr->family = "Ralink";
soc_dev_attr->revision = mt7621_get_soc_revision();
- soc_dev_attr->data = soc_info;
+ soc_dev_attr->data = soc_info_ptr;
soc_dev = soc_device_register(soc_dev_attr);
if (IS_ERR(soc_dev)) {
kfree(soc_dev_attr);
- return;
+ return PTR_ERR(soc_dev);
}
+
+ return 0;
}
+device_initcall(mt7621_soc_dev_init);
void __init prom_soc_init(struct ralink_soc_info *soc_info)
{
@@ -209,7 +213,7 @@ void __init prom_soc_init(struct ralink_soc_info *soc_info)
soc_info->mem_detect = mt7621_memory_detect;
- soc_dev_init(soc_info);
+ soc_info_ptr = soc_info;
if (!register_cps_smp_ops())
return;
--
2.37.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem
2022-11-14 1:56 ` [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem John Thomson
@ 2022-12-01 13:32 ` Thomas Bogendoerfer
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Bogendoerfer @ 2022-12-01 13:32 UTC (permalink / raw)
To: John Thomson
Cc: Sergio Paracuellos, John Crispin, Arınç ÜNAL,
linux-mips, linux-kernel
On Mon, Nov 14, 2022 at 11:56:56AM +1000, John Thomson wrote:
> So that MT7621_SYSC_BASE can be used later in multiple functions without
> needing to repeat this __iomem declaration each time
>
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
> arch/mips/include/asm/mach-ralink/mt7621.h | 4 +++-
> arch/mips/ralink/mt7621.c | 7 +++----
> 2 files changed, 6 insertions(+), 5 deletions(-)
applied to mips-next.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] mips: ralink: mt7621: soc queries and tests as functions
2022-11-14 1:56 ` [PATCH 2/3] mips: ralink: mt7621: soc queries and tests as functions John Thomson
@ 2022-12-01 13:33 ` Thomas Bogendoerfer
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Bogendoerfer @ 2022-12-01 13:33 UTC (permalink / raw)
To: John Thomson
Cc: Sergio Paracuellos, John Crispin, Arınç ÜNAL,
linux-mips, linux-kernel
On Mon, Nov 14, 2022 at 11:56:57AM +1000, John Thomson wrote:
> Move the SoC register value queries and tests to specific functions,
> to remove repetition of logic
> No functional changes intended
>
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
> arch/mips/ralink/mt7621.c | 86 +++++++++++++++++++++++++++------------
> 1 file changed, 61 insertions(+), 25 deletions(-)
applied to mips-next.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] mips: ralink: mt7621: do not use kzalloc too early
2022-11-14 1:56 ` [PATCH 3/3] mips: ralink: mt7621: do not use kzalloc too early John Thomson
@ 2022-12-01 13:33 ` Thomas Bogendoerfer
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Bogendoerfer @ 2022-12-01 13:33 UTC (permalink / raw)
To: John Thomson
Cc: Sergio Paracuellos, John Crispin, Arınç ÜNAL,
linux-mips, linux-kernel
On Mon, Nov 14, 2022 at 11:56:58AM +1000, John Thomson wrote:
> With CONFIG_SLUB=y, following commit 6edf2576a6cc ("mm/slub: enable
> debugging memory wasting of kmalloc") mt7621 failed to boot very early,
> without showing any console messages.
> This exposed the pre-existing bug of mt7621.c using kzalloc before normal
> memory management was available.
> Prior to this slub change, there existed the unintended protection against
> "kmem_cache *s" being NULL as slab_pre_alloc_hook() happened to
> return NULL and bailed out of slab_alloc_node().
> This allowed mt7621 prom_soc_init to fail in the soc_dev_init kzalloc,
> but continue booting without the SOC_BUS driver device registered.
>
> Console output from a DEBUG_ZBOOT vmlinuz kernel loading,
> with mm/slub modified to warn on kmem_cache zero or null:
>
> zimage at: 80B842A0 810B4BC0
> Uncompressing Linux at load address 80001000
> Copy device tree to address 80B80EE0
> Now, booting the kernel...
>
> [ 0.000000] Linux version 6.1.0-rc3+ (john@john)
> (mipsel-buildroot-linux-gnu-gcc.br_real (Buildroot
> 2021.11-4428-g6b6741b) 12.2.0, GNU ld (GNU Binutils) 2.39) #73 SMP Wed
> Nov 2 05:10:01 AEST 2022
> [ 0.000000] ------------[ cut here ]------------
> [ 0.000000] WARNING: CPU: 0 PID: 0 at mm/slub.c:3416
> kmem_cache_alloc+0x5a4/0x5e8
> [ 0.000000] Modules linked in:
> [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 6.1.0-rc3+ #73
> [ 0.000000] Stack : 810fff78 80084d98 00000000 00000004 00000000
> 00000000 80889d04 80c90000
> [ 0.000000] 80920000 807bd328 8089d368 80923bd3 00000000
> 00000001 80889cb0 00000000
> [ 0.000000] 00000000 00000000 807bd328 8084bcb1 00000002
> 00000002 00000001 6d6f4320
> [ 0.000000] 00000000 80c97d3d 80c97d68 fffffffc 807bd328
> 00000000 00000000 00000000
> [ 0.000000] 00000000 a0000000 80910000 8110a0b4 00000000
> 00000020 80010000 80010000
> [ 0.000000] ...
> [ 0.000000] Call Trace:
> [ 0.000000] [<80008260>] show_stack+0x28/0xf0
> [ 0.000000] [<8070c958>] dump_stack_lvl+0x60/0x80
> [ 0.000000] [<8002e184>] __warn+0xc4/0xf8
> [ 0.000000] [<8002e210>] warn_slowpath_fmt+0x58/0xa4
> [ 0.000000] [<801c0fac>] kmem_cache_alloc+0x5a4/0x5e8
> [ 0.000000] [<8092856c>] prom_soc_init+0x1fc/0x2b4
> [ 0.000000] [<80928060>] prom_init+0x44/0xf0
> [ 0.000000] [<80929214>] setup_arch+0x4c/0x6a8
> [ 0.000000] [<809257e0>] start_kernel+0x88/0x7c0
> [ 0.000000]
> [ 0.000000] ---[ end trace 0000000000000000 ]---
> [ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
> [ 0.000000] printk: bootconsole [early0] enabled
>
> Allowing soc_device_register to work exposed oops in the mt7621 phy pci,
> and pci controller drivers from soc_device_match_attr, due to missing
> sentinels in the quirks tables. These were fixed with:
> commit 819b885cd886 ("phy: ralink: mt7621-pci: add sentinel to quirks
> table")
> not yet applied ("PCI: mt7621: add sentinel to quirks table")
>
> Link: https://lore.kernel.org/linux-mm/becf2ac3-2a90-4f3a-96d9-a70f67c66e4a@app.fastmail.com/
> Fixes: 71b9b5e0130d ("MIPS: ralink: mt7621: introduce 'soc_device' initialization")
> Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
> ---
> arch/mips/ralink/mt7621.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
applied to mips-next.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-12-01 13:34 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-14 1:56 [PATCH 0/3] mips: ralink: mt7621: fix kzalloc too early John Thomson
2022-11-14 1:56 ` [PATCH 1/3] mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem John Thomson
2022-12-01 13:32 ` Thomas Bogendoerfer
2022-11-14 1:56 ` [PATCH 2/3] mips: ralink: mt7621: soc queries and tests as functions John Thomson
2022-12-01 13:33 ` Thomas Bogendoerfer
2022-11-14 1:56 ` [PATCH 3/3] mips: ralink: mt7621: do not use kzalloc too early John Thomson
2022-12-01 13:33 ` Thomas Bogendoerfer
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).