lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 7 May 2020 01:54:57 +0200
From:   Andrew Lunn <andrew@...n.ch>
To:     Sriram Chadalavada <sriram.chadalavada@...dleap.ca>
Cc:     netdev@...r.kernel.org
Subject: Re: Kernel crash in DSA/Marvell 6176 switch in 5.4.36

> MDIO bus. Followed example in
> Documentation/devicetree/bindings/dsa/marvell.txt */


>                             compatible = "marvell,mv88e6xxx-mdio-external";

6176 does not have an external MDIO bus. Only the 6390 family
does. The 6176 has just one bus, which is both internal and external.

>                             #address-cells = <1>;
>                             #size-cells = <0>;
>                           };
>                      };
>    Here is log of the 5.4.36 kernel crash. Can someone point to what
> could be going on here?
> 
> 63] mdio_bus !soc!pcie@...c000!pcie@2,1!pcie@3,0!igb0!mdio@...witch0@...d:
> ports has invalid PHY address

"ports has invalid PHY address" does not exist in 5.4.36.

> [    2.239378] mdio_bus
> !soc!pcie@...c000!pcie@2,1!pcie@3,0!igb0!mdio@...witch0@...d: scan phy
> ports at address 0
> [    2.240858] mmcblk1: mmc1:0007 SDCIT 29.2 GiB
> [    2.244341] ------------[ cut here ]------------
> [    2.244355] WARNING: CPU: 2 PID: 44 at kernel/kmod.c:137 0x800433d0
> [    2.244359] Modules linked in:
> [    2.244372] CPU: 2 PID: 44 Comm: kworker/u8:3 Not tainted 5.4.36 #0
> [    2.244377] Hardware name: Freescale i.MX6 Quad/DualLite (Device
> Tree)
> [    2.244386] Workqueue: events_unbound 0x80041cbc
> [    2.244402] Function entered at [<80016344>] from [<8001299c>]
> [    2.244408] Function entered at [<8001299c>] from [<8053a850>]
> [    2.244413] Function entered at [<8053a850>] from [<80024108>]
> [    2.244418] Function entered at [<80024108>] from [<80024174>]
> [    2.244423] Function entered at [<80024174>] from [<800433d0>]
> [    2.244429] Function entered at [<800433d0>] from [<802e8ec0>]
> [    2.244435] Function entered at [<802e8ec0>] from [<802ea4c0>]
> [    2.244440] Function entered at [<802ea4c0>] from [<802ea63c>]
> [    2.244444] Function entered at [<802ea63c>] from [<803d5a40>]
> [    2.244449] Function entered at [<803d5a40>] from [<803d617c>]
> [    2.244456] Function entered at [<803d617c>] from [<802ed25c>]
> [    2.244461] Function entered at [<802ed25c>] from [<802ef0c0>]
> [    2.244466] Function entered at [<802ef0c0>] from [<802ebb0c>]
> [    2.244470] Function entered at [<802ebb0c>] from [<8027804c>]

This is useless to us. You need to enable symbols in the image. I
think that is CONFIG_DEBUG_INFO.

> [    2.245041] mv88e6085 0000:03:00.0-1538:00: no ports child node found

static int dsa_switch_parse_ports_of(struct dsa_switch *ds,
                                     struct device_node *dn)
{
        struct device_node *ports, *port;
        struct dsa_port *dp;
        int err = 0;
        u32 reg;

        ports = of_get_child_by_name(dn, "ports");
        if (!ports) {
                dev_err(ds->dev, "no ports child node found\n");
                return -EINVAL;
        }

This would indicate your 'port' node is misplaced somehow.

     Andrew

Powered by blists - more mailing lists