* Re: Ethernet not working on a different SoC with same eth HW
From: Andrew Lunn @ 2016-10-31 15:39 UTC (permalink / raw)
To: Mason
Cc: netdev, Mans Rullgard, Florian Fainelli, Timur Tabi,
Sergei Shtylyov, Zefir Kurtisi, Martin Blumenstingl,
Uwe Kleine-Konig, Daniel Mack, Sebastian Frias
In-Reply-To: <58176355.7090200@free.fr>
On Mon, Oct 31, 2016 at 04:29:25PM +0100, Mason wrote:
> Hello everyone,
>
> I'm using these net drivers:
>
> drivers/net/ethernet/aurora/nb8800.c
> drivers/net/phy/at803x.c
>
> With a smp8758 board, they work great.
> I've been trying to use them on a different board:
>
> same eth PHY (Atheros AR8035)
> same eth MAC (Aurora SSN8800)
> different SoC (same base address for MAC block)
>
> It doesn't work
Rather vague. What does not work? Please describe the symptoms.
Andrew
^ permalink raw reply
* Re: Ethernet not working on a different SoC with same eth HW
From: Andrew Lunn @ 2016-10-31 15:37 UTC (permalink / raw)
To: Mason
Cc: netdev, Mans Rullgard, Florian Fainelli, Timur Tabi,
Sergei Shtylyov, Zefir Kurtisi, Martin Blumenstingl,
Uwe Kleine-Konig, Daniel Mack, Sebastian Frias
In-Reply-To: <58176355.7090200@free.fr>
> The regnum=5,4,1,1,a,9 logs keep repeating, endlessly.
> Is that expected?
Yes, that is expected, if you are not using interrupts. The phylib
state machine polls the state of the PHY once per second to see if
there has been a link up/down.
Andrew
^ permalink raw reply
* Ethernet not working on a different SoC with same eth HW
From: Mason @ 2016-10-31 15:29 UTC (permalink / raw)
To: netdev
Cc: Mans Rullgard, Florian Fainelli, Timur Tabi, Sergei Shtylyov,
Zefir Kurtisi, Martin Blumenstingl, Andrew Lunn, Uwe Kleine-Konig,
Daniel Mack, Sebastian Frias
Hello everyone,
I'm using these net drivers:
drivers/net/ethernet/aurora/nb8800.c
drivers/net/phy/at803x.c
With a smp8758 board, they work great.
I've been trying to use them on a different board:
same eth PHY (Atheros AR8035)
same eth MAC (Aurora SSN8800)
different SoC (same base address for MAC block)
It doesn't work, and I'm not sure where to look first...
I put logs in some functions to get a rough idea.
When the kernel boots, it prints:
[ 0.798912] libphy: mdiobus_read: addr=0 regnum=00000002 from get_phy_device
[ 0.806515] libphy: mdiobus_read: addr=0 regnum=00000003 from get_phy_device
[ 0.813704] libphy: mdiobus_read: addr=1 regnum=00000002 from get_phy_device
[ 0.820923] libphy: mdiobus_read: addr=1 regnum=00000003 from get_phy_device
[ 0.828192] libphy: mdiobus_read: addr=2 regnum=00000002 from get_phy_device
[ 0.835373] libphy: mdiobus_read: addr=2 regnum=00000003 from get_phy_device
[ 0.842547] libphy: mdiobus_read: addr=3 regnum=00000002 from get_phy_device
[ 0.849681] libphy: mdiobus_read: addr=3 regnum=00000003 from get_phy_device
[ 0.856814] libphy: mdiobus_read: addr=4 regnum=00000002 from get_phy_device
[ 0.863944] libphy: mdiobus_read: addr=4 regnum=00000003 from get_phy_device
[ 0.871075] libphy: mdiobus_read: addr=5 regnum=00000002 from get_phy_device
[ 0.878202] libphy: mdiobus_read: addr=5 regnum=00000003 from get_phy_device
[ 0.885331] libphy: mdiobus_read: addr=6 regnum=00000002 from get_phy_device
[ 0.892458] libphy: mdiobus_read: addr=6 regnum=00000003 from get_phy_device
[ 0.899586] libphy: mdiobus_read: addr=7 regnum=00000002 from get_phy_device
[ 0.906715] libphy: mdiobus_read: addr=7 regnum=00000003 from get_phy_device
[ 0.913844] libphy: mdiobus_read: addr=8 regnum=00000002 from get_phy_device
[ 0.920972] libphy: mdiobus_read: addr=8 regnum=00000003 from get_phy_device
[ 0.928101] libphy: mdiobus_read: addr=9 regnum=00000002 from get_phy_device
[ 0.935230] libphy: mdiobus_read: addr=9 regnum=00000003 from get_phy_device
[ 0.942359] libphy: mdiobus_read: addr=10 regnum=00000002 from get_phy_device
[ 0.949576] libphy: mdiobus_read: addr=10 regnum=00000003 from get_phy_device
[ 0.956793] libphy: mdiobus_read: addr=11 regnum=00000002 from get_phy_device
[ 0.964009] libphy: mdiobus_read: addr=11 regnum=00000003 from get_phy_device
[ 0.971225] libphy: mdiobus_read: addr=12 regnum=00000002 from get_phy_device
[ 0.978441] libphy: mdiobus_read: addr=12 regnum=00000003 from get_phy_device
[ 0.985657] libphy: mdiobus_read: addr=13 regnum=00000002 from get_phy_device
[ 0.992873] libphy: mdiobus_read: addr=13 regnum=00000003 from get_phy_device
[ 1.000089] libphy: mdiobus_read: addr=14 regnum=00000002 from get_phy_device
[ 1.007305] libphy: mdiobus_read: addr=14 regnum=00000003 from get_phy_device
[ 1.014522] libphy: mdiobus_read: addr=15 regnum=00000002 from get_phy_device
[ 1.021737] libphy: mdiobus_read: addr=15 regnum=00000003 from get_phy_device
[ 1.028953] libphy: mdiobus_read: addr=16 regnum=00000002 from get_phy_device
[ 1.036169] libphy: mdiobus_read: addr=16 regnum=00000003 from get_phy_device
[ 1.043385] libphy: mdiobus_read: addr=17 regnum=00000002 from get_phy_device
[ 1.050600] libphy: mdiobus_read: addr=17 regnum=00000003 from get_phy_device
[ 1.057817] libphy: mdiobus_read: addr=18 regnum=00000002 from get_phy_device
[ 1.065032] libphy: mdiobus_read: addr=18 regnum=00000003 from get_phy_device
[ 1.072250] libphy: mdiobus_read: addr=19 regnum=00000002 from get_phy_device
[ 1.079464] libphy: mdiobus_read: addr=19 regnum=00000003 from get_phy_device
[ 1.086679] libphy: mdiobus_read: addr=20 regnum=00000002 from get_phy_device
[ 1.093895] libphy: mdiobus_read: addr=20 regnum=00000003 from get_phy_device
[ 1.101111] libphy: mdiobus_read: addr=21 regnum=00000002 from get_phy_device
[ 1.108327] libphy: mdiobus_read: addr=21 regnum=00000003 from get_phy_device
[ 1.115542] libphy: mdiobus_read: addr=22 regnum=00000002 from get_phy_device
[ 1.122757] libphy: mdiobus_read: addr=22 regnum=00000003 from get_phy_device
[ 1.129973] libphy: mdiobus_read: addr=23 regnum=00000002 from get_phy_device
[ 1.137189] libphy: mdiobus_read: addr=23 regnum=00000003 from get_phy_device
[ 1.144405] libphy: mdiobus_read: addr=24 regnum=00000002 from get_phy_device
[ 1.151620] libphy: mdiobus_read: addr=24 regnum=00000003 from get_phy_device
[ 1.158835] libphy: mdiobus_read: addr=25 regnum=00000002 from get_phy_device
[ 1.166050] libphy: mdiobus_read: addr=25 regnum=00000003 from get_phy_device
[ 1.173266] libphy: mdiobus_read: addr=26 regnum=00000002 from get_phy_device
[ 1.180481] libphy: mdiobus_read: addr=26 regnum=00000003 from get_phy_device
[ 1.187697] libphy: mdiobus_read: addr=27 regnum=00000002 from get_phy_device
[ 1.194911] libphy: mdiobus_read: addr=27 regnum=00000003 from get_phy_device
[ 1.202127] libphy: mdiobus_read: addr=28 regnum=00000002 from get_phy_device
[ 1.209341] libphy: mdiobus_read: addr=28 regnum=00000003 from get_phy_device
[ 1.216557] libphy: mdiobus_read: addr=29 regnum=00000002 from get_phy_device
[ 1.223771] libphy: mdiobus_read: addr=29 regnum=00000003 from get_phy_device
[ 1.230987] libphy: mdiobus_read: addr=30 regnum=00000002 from get_phy_device
[ 1.238203] libphy: mdiobus_read: addr=30 regnum=00000003 from get_phy_device
[ 1.245419] libphy: mdiobus_read: addr=31 regnum=00000002 from get_phy_device
[ 1.252635] libphy: mdiobus_read: addr=31 regnum=00000003 from get_phy_device
[ 1.259840] libphy: Fixed MDIO Bus: probed
[ 1.264606] [drivers/net/ethernet/aurora/nb8800.c:1455] nb8800_probe(): mark
[ 1.272006] [drivers/net/ethernet/aurora/nb8800.c:1461] nb8800_probe(): mark
[ 1.279218] [drivers/net/ethernet/aurora/nb8800.c:1469] nb8800_probe(): mark: 21
[ 1.286799] [drivers/net/ethernet/aurora/nb8800.c:1379] nb8800_tangox_reset(): mark
[ 1.294669] ++ETH w8 [f0026424] 00 from nb8800_probe
[ 1.309789] ++ETH w8 [f0026424] 01 from nb8800_probe
[ 1.314831] ++ETH w16 [f0026420] 0050 from nb8800_probe
[ 1.320343] libphy: nb8800-mii: probed
[ 1.324352] libphy: 1: [drivers/net/phy/phy_device.c:357] phy_device_create(): mark: cf9a89c0, -1, -1
[ 1.342087] libphy: 1: [drivers/net/phy/phy_device.c:1601] phy_probe(): mark: -1, 1, 0
[ 1.350406] libphy: 1: [drivers/net/phy/phy_device.c:1610] phy_probe(): mark: -1
[ 1.357990] ++ETH w8 [f0026000] 1c from platform_drv_probe
[ 1.363591] ++ETH w8 [f0026001] 05 from platform_drv_probe
[ 1.369203] ++ETH w8 [f0026004] 22 from platform_drv_probe
[ 1.374799] ++ETH w8 [f0026008] 04 from platform_drv_probe
[ 1.380390] ++ETH w8 [f0026014] 0c from platform_drv_probe
[ 1.385947] ++ETH w8 [f0026051] 00 from platform_drv_probe
[ 1.391500] ++ETH w8 [f0026052] ff from platform_drv_probe
[ 1.397051] ++ETH w8 [f0026054] 40 from platform_drv_probe
[ 1.402602] ++ETH r32 [f0026100] 00000008 from platform_drv_probe
[ 1.408767] ++ETH w32 [f0026100] 000002fe from platform_drv_probe
[ 1.414933] ++ETH w32 [f0026118] 003cc4a4 from platform_drv_probe
[ 1.421196] ++ETH r32 [f0026200] 00000008 from platform_drv_probe
[ 1.427367] ++ETH w32 [f0026200] 000002fe from platform_drv_probe
[ 1.433535] ++ETH w32 [f0026218] 00004dc8 from platform_drv_probe
[ 1.439699] ++ETH w8 [f0026060] 00 from platform_drv_probe
[ 1.445252] ++ETH w8 [f0026061] c3 from platform_drv_probe
[ 1.450806] ++ETH w8 [f002602e] 00 from nb8800_probe
[ 1.455832] [drivers/net/ethernet/aurora/nb8800.c:1403] nb8800_tango4_init(): mark
[ 1.463476] [drivers/net/ethernet/aurora/nb8800.c:1347] nb8800_tangox_init(): mark
[ 1.471127] ++ETH w8 [f0026400] 01 from nb8800_tango4_init
[ 1.476679] ++ETH r32 [f0026200] 000002fe from nb8800_probe
[ 1.482317] ++ETH w32 [f0026200] 0000028e from nb8800_probe
[ 1.487961] ++ETH w8 [f002606a] 00 from nb8800_probe
[ 1.492988] ++ETH w8 [f002606b] 16 from nb8800_probe
[ 1.498015] ++ETH w8 [f002606c] e8 from nb8800_probe
[ 1.503039] ++ETH w8 [f002606d] 46 from nb8800_probe
[ 1.508063] ++ETH w8 [f002606e] 98 from nb8800_probe
[ 1.513088] ++ETH w8 [f002606f] 50 from nb8800_probe
[ 1.518114] ++ETH w8 [f002603c] 00 from nb8800_probe
[ 1.523140] ++ETH w8 [f002603d] 16 from nb8800_probe
[ 1.528165] ++ETH w8 [f002603e] e8 from nb8800_probe
[ 1.533190] ++ETH w8 [f002603f] 46 from nb8800_probe
[ 1.538216] ++ETH w8 [f0026040] 98 from nb8800_probe
[ 1.543241] ++ETH w8 [f0026041] 50 from nb8800_probe
[ 1.549468] nb8800 26000.ethernet eth0: MAC address 00:16:e8:46:98:50
which looks alright, I suppose.
Then I configure the address, and set link up:
ip addr add 10.10.7.81/24 dev eth0
ip link set eth0 up
[ 224.524920] [drivers/net/ethernet/aurora/nb8800.c:1011] nb8800_open(): mark
[ 224.532055] ++ETH w32 [f0026204] 0000000f from __dev_open
[ 224.538052] ++ETH w32 [f0026104] 0000000f from __dev_open
[ 224.545223] ++ETH w32 [f002620c] 8fbfa000 from nb8800_open
[ 224.550933] ++ETH r8 [f0026004] 22 from nb8800_open
[ 224.556175] ++ETH w8 [f0026004] 23 from nb8800_open
[ 224.561316] ++ETH r32 [f0026100] 000002fe from nb8800_open
[ 224.567062] ++ETH r8 [f0026000] 1c from nb8800_open
[ 224.572194] ++ETH w8 [f0026000] 1d from nb8800_open
[ 224.577327] libphy: 1: [drivers/net/phy/phy_device.c:694] phy_connect_direct(): mark
[ 224.585345] libphy: 1: [drivers/net/phy/phy_device.c:1420] genphy_soft_reset(): mark
[ 224.593368] ++ETH w32 [f0026020] 04808000 from nb8800_mdio_write
[ 224.599650] ++ETH w32 [f0026020] 84808000 from nb8800_mdio_write
[ 224.605954] libphy: 1: [drivers/net/phy/phy_device.c:792] phy_poll_reset(): mark
[ 224.664206] libphy: mdiobus_read: addr=4 regnum=00000000 from genphy_soft_reset
[ 224.671606] nb8800_mdio_read from mdiobus_read
[ 224.676394] ++ETH w32 [f0026020] 00800000 from nb8800_mdio_read
[ 224.682589] ++ETH w32 [f0026020] 80800000 from nb8800_mdio_read
[ 224.688812] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 224.700863] 1: [drivers/net/phy/at803x.c:311] at803x_config_init(): mark
[ 224.707647] libphy: 1: [drivers/net/phy/phy_device.c:1435] genphy_config_init(): mark
[ 224.715847] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_config_init
[ 224.723515] nb8800_mdio_read from mdiobus_read
[ 224.728216] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 224.734412] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 224.740633] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 224.746472] libphy: mdiobus_read: addr=4 regnum=0000000f from genphy_config_init
[ 224.754137] nb8800_mdio_read from mdiobus_read
[ 224.758836] ++ETH w32 [f0026020] 008f0000 from nb8800_mdio_read
[ 224.765033] ++ETH w32 [f0026020] 808f0000 from nb8800_mdio_read
[ 224.771255] ++ETH r32 [f0026024] 0000a000 from mdiobus_read
[ 224.777088] libphy: mdiobus_read: addr=4 regnum=00000000 from at803x_resume
[ 224.784338] nb8800_mdio_read from mdiobus_read
[ 224.789035] ++ETH w32 [f0026020] 00800000 from nb8800_mdio_read
[ 224.795226] ++ETH w32 [f0026020] 80800000 from nb8800_mdio_read
[ 224.801448] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 224.807281] ++ETH w32 [f0026020] 04800000 from nb8800_mdio_write
[ 224.813561] ++ETH w32 [f0026020] 84800000 from nb8800_mdio_write
[ 224.819865] libphy: 1: [drivers/net/phy/phy.c:625] phy_start_machine(): mark
[ 224.827208] libphy: 1: [drivers/net/phy/phy.c:942] phy_state_machine(): mark: 0, 2
[ 224.835055] ++ETH r32 [f0026200] 0000028e from nb8800_open
[ 224.835069] ++ETH w32 [f0026200] 0000028f from nb8800_open
[ 224.835086] ++ETH r8 [f0026004] 23 from nb8800_set_rx_mode
[ 224.835098] ++ETH w8 [f002602e] 00 from nb8800_set_rx_mode
[ 224.835173] ++ETH r8 [f0026004] 23 from nb8800_set_rx_mode
[ 224.835185] ++ETH w8 [f002602e] 00 from nb8800_set_rx_mode
[ 224.835207] ++ETH w8 [f0026028] 01 from __dev_set_rx_mode
[ 224.835221] ++ETH w8 [f0026029] 00 from __dev_set_rx_mode
[ 224.835234] ++ETH w8 [f002602a] 5e from __dev_set_rx_mode
[ 224.835247] ++ETH w8 [f002602b] 00 from __dev_set_rx_mode
[ 224.835259] ++ETH w8 [f002602c] 00 from __dev_set_rx_mode
[ 224.835272] ++ETH w8 [f002602d] 01 from __dev_set_rx_mode
[ 224.835284] ++ETH w8 [f002602e] ff from nb8800_set_rx_mode
[ 224.909895] libphy: 1: [drivers/net/phy/phy_device.c:1195] genphy_config_aneg(): mark
[ 224.919140] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_config_aneg
[ 224.926818] nb8800_mdio_read from mdiobus_read
[ 224.931540] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 224.937738] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 224.943960] ++ETH r32 [f0026024] 000011e1 from mdiobus_read
[ 224.949795] ++ETH w32 [f0026020] 048415e1 from nb8800_mdio_write
[ 224.956077] ++ETH w32 [f0026020] 848415e1 from nb8800_mdio_write
[ 224.962396] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_config_aneg
[ 224.970060] nb8800_mdio_read from mdiobus_read
[ 224.974758] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 224.980981] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 224.987204] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 224.993041] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_config_aneg
[ 225.000706] nb8800_mdio_read from mdiobus_read
[ 225.005404] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 225.011597] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 225.017822] ++ETH r32 [f0026024] 00000300 from mdiobus_read
[ 225.023655] ++ETH w32 [f0026020] 04890200 from nb8800_mdio_write
[ 225.029934] ++ETH w32 [f0026020] 84890200 from nb8800_mdio_write
[ 225.036250] libphy: mdiobus_read: addr=4 regnum=00000000 from genphy_restart_aneg
[ 225.044002] nb8800_mdio_read from mdiobus_read
[ 225.048700] ++ETH w32 [f0026020] 00800000 from nb8800_mdio_read
[ 225.054892] ++ETH w32 [f0026020] 80800000 from nb8800_mdio_read
[ 225.061113] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.066948] ++ETH w32 [f0026020] 04801200 from nb8800_mdio_write
[ 225.073301] ++ETH w32 [f0026020] 84801200 from nb8800_mdio_write
[ 225.079656] libphy: 1: [drivers/net/phy/phy.c:942] phy_state_machine(): mark: 0, 5
[ 225.087602] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.095270] nb8800_mdio_read from mdiobus_read
[ 225.099969] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.106164] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.112385] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.118223] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.125887] nb8800_mdio_read from mdiobus_read
[ 225.130584] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.136776] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.142997] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.148837] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 225.156504] nb8800_mdio_read from mdiobus_read
[ 225.161220] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 225.167412] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 225.173633] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.179471] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 225.187135] nb8800_mdio_read from mdiobus_read
[ 225.191833] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 225.198025] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 225.204279] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 225.210116] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 225.217781] nb8800_mdio_read from mdiobus_read
[ 225.222478] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 225.228673] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 225.234893] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.240731] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 225.248396] nb8800_mdio_read from mdiobus_read
[ 225.253093] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 225.259286] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 225.265506] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 225.271333] libphy: 1: [drivers/net/phy/phy.c:974] phy_state_machine(): mark
[ 225.278644] [drivers/net/ethernet/aurora/nb8800.c: 722] nb8800_link_reconfigure(): mark
[ 225.286924] libphy: 1: [drivers/net/phy/phy.c:942] phy_state_machine(): mark: 0, 7
[ 225.294777] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.302441] nb8800_mdio_read from mdiobus_read
[ 225.307139] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.313331] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.319549] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.325387] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.333050] nb8800_mdio_read from mdiobus_read
[ 225.337751] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.343940] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.350164] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.356003] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 225.363667] nb8800_mdio_read from mdiobus_read
[ 225.368364] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 225.374558] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 225.380777] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.386630] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 225.394319] nb8800_mdio_read from mdiobus_read
[ 225.399014] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 225.405207] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 225.411428] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 225.417265] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 225.424936] nb8800_mdio_read from mdiobus_read
[ 225.429635] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 225.435827] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 225.442049] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.447887] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 225.455549] nb8800_mdio_read from mdiobus_read
[ 225.460247] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 225.466438] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 225.472658] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 225.478560] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.486232] nb8800_mdio_read from mdiobus_read
[ 225.490961] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.497153] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.503375] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.509212] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.516874] nb8800_mdio_read from mdiobus_read
[ 225.521571] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.527763] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.533985] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.539824] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 225.547538] nb8800_mdio_read from mdiobus_read
[ 225.552057] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 225.558332] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 225.564554] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.570393] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 225.578058] nb8800_mdio_read from mdiobus_read
[ 225.582756] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 225.588947] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 225.595168] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 225.601020] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 225.608684] nb8800_mdio_read from mdiobus_read
[ 225.613400] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 225.619594] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 225.625816] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.631654] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 225.639316] nb8800_mdio_read from mdiobus_read
[ 225.644014] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 225.650208] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 225.656430] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 225.662288] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.669953] nb8800_mdio_read from mdiobus_read
[ 225.674651] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.680873] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.687089] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.692927] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.700589] nb8800_mdio_read from mdiobus_read
[ 225.705288] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.711480] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.717738] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.723576] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 225.731243] nb8800_mdio_read from mdiobus_read
[ 225.735943] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 225.742136] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 225.748356] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.754225] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 225.761888] nb8800_mdio_read from mdiobus_read
[ 225.766586] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 225.772778] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 225.778997] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 225.784835] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 225.792499] nb8800_mdio_read from mdiobus_read
[ 225.797196] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 225.803390] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 225.809608] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.815447] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 225.823111] nb8800_mdio_read from mdiobus_read
[ 225.827808] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 225.834002] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 225.840224] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 225.846086] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.853753] nb8800_mdio_read from mdiobus_read
[ 225.858451] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.864641] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.870874] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.876534] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 225.884308] nb8800_mdio_read from mdiobus_read
[ 225.889005] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 225.895195] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 225.901415] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 225.907253] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 225.914917] nb8800_mdio_read from mdiobus_read
[ 225.919613] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 225.925806] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 225.932027] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.937866] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 225.945529] nb8800_mdio_read from mdiobus_read
[ 225.950228] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 225.956420] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 225.962639] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 225.968476] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 225.976140] nb8800_mdio_read from mdiobus_read
[ 225.980867] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 225.987058] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 225.993277] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 225.999116] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 226.006778] nb8800_mdio_read from mdiobus_read
[ 226.011475] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 226.017692] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 226.023913] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 226.029759] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.037424] nb8800_mdio_read from mdiobus_read
[ 226.042122] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.048313] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.054535] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.060372] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.068037] nb8800_mdio_read from mdiobus_read
[ 226.072815] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.079043] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.085301] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.091168] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 226.098833] nb8800_mdio_read from mdiobus_read
[ 226.103530] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 226.109724] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 226.115945] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 226.121782] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 226.129446] nb8800_mdio_read from mdiobus_read
[ 226.134143] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 226.140359] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 226.146574] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 226.152413] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 226.160075] nb8800_mdio_read from mdiobus_read
[ 226.164774] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 226.170992] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 226.177210] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 226.183047] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 226.190711] nb8800_mdio_read from mdiobus_read
[ 226.195408] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 226.201600] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 226.207822] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 226.213667] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.221332] nb8800_mdio_read from mdiobus_read
[ 226.226030] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.232223] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.238444] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.244309] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.251974] nb8800_mdio_read from mdiobus_read
[ 226.256671] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.262865] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.269087] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.274924] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 226.282587] nb8800_mdio_read from mdiobus_read
[ 226.287283] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 226.293477] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 226.299716] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 226.305556] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 226.313220] nb8800_mdio_read from mdiobus_read
[ 226.317918] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 226.324110] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 226.330329] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 226.336167] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 226.343830] nb8800_mdio_read from mdiobus_read
[ 226.348529] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 226.354719] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 226.360970] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 226.366806] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 226.374472] nb8800_mdio_read from mdiobus_read
[ 226.379170] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 226.385362] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 226.391584] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 226.397427] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.405094] nb8800_mdio_read from mdiobus_read
[ 226.409792] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.415986] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.422212] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.428050] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.435714] nb8800_mdio_read from mdiobus_read
[ 226.440412] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.446606] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.452829] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.458666] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 226.466329] nb8800_mdio_read from mdiobus_read
[ 226.471037] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 226.477229] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 226.483450] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 226.489287] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 226.496953] nb8800_mdio_read from mdiobus_read
[ 226.501654] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 226.507846] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 226.514068] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 226.519905] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 226.527618] nb8800_mdio_read from mdiobus_read
[ 226.532318] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 226.538513] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 226.544733] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 226.550573] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 226.558236] nb8800_mdio_read from mdiobus_read
[ 226.562932] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 226.569126] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 226.575347] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 226.581208] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.588872] nb8800_mdio_read from mdiobus_read
[ 226.593568] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.599760] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.605982] ++ETH r32 [f0026024] 00007949 from mdiobus_read
[ 226.611817] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 226.619479] nb8800_mdio_read from mdiobus_read
[ 226.624205] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.630394] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.636616] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 226.642453] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 226.650117] nb8800_mdio_read from mdiobus_read
[ 226.654814] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 226.661041] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 226.667262] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 226.673102] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 226.680765] nb8800_mdio_read from mdiobus_read
[ 226.685464] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 226.691657] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 226.697878] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 226.703713] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 226.711379] nb8800_mdio_read from mdiobus_read
[ 226.716075] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 226.722268] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 226.728489] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 226.734349] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 226.742014] nb8800_mdio_read from mdiobus_read
[ 226.746710] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 226.752921] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 226.759144] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 226.764983] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_aneg_done
[ 226.772473] nb8800_mdio_read from mdiobus_read
[ 226.777170] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 226.783363] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 226.789583] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 226.795415] libphy: 1: [drivers/net/phy/phy.c:1016] phy_state_machine(): mark
[ 226.802815] [drivers/net/ethernet/aurora/nb8800.c: 722] nb8800_link_reconfigure(): mark
[ 226.811105] ++ETH w8 [f0026050] 01 from phy_state_machine
[ 226.816766] ++ETH w8 [f002601c] 80 from phy_state_machine
[ 226.822424] ++ETH r8 [f0026044] 00 from phy_state_machine
[ 226.828082] ++ETH r8 [f0026004] 23 from nb8800_link_reconfigure
[ 226.834293] ++ETH w8 [f0026004] 2b from nb8800_link_reconfigure
[ 226.840474] ++ETH r32 [f0026200] 06100a8f from nb8800_link_reconfigure
[ 226.847315] ++ETH r8 [f0026004] 2b from nb8800_dma_stop
[ 226.852625] ++ETH w8 [f0026004] 0b from nb8800_dma_stop
[ 226.857919] ++ETH r8 [f0026044] 00 from nb8800_pause_config
[ 226.863559] ++ETH w8 [f0026044] 04 from nb8800_pause_config
[ 226.869200] ++ETH w32 [f002610c] 8fbf4000 from nb8800_pause_config
[ 226.875452] ++ETH w32 [f0026100] 000002ff from nb8800_pause_config
[ 226.881709] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 226.888640] ++ETH r32 [f0026104] 00000004 from handle_irq_event_percpu
[ 226.895210] [drivers/net/ethernet/aurora/nb8800.c: 592] nb8800_irq(): tx irq, 0x00000004
[ 226.903357] ++ETH w32 [f0026104] 00000004 from handle_irq_event_percpu
[ 226.909931] ++ETH r32 [f0026204] 00000004 from handle_irq_event_percpu
[ 226.916501] [drivers/net/ethernet/aurora/nb8800.c: 621] nb8800_irq(): rx irq, 0x00000004
[ 226.924646] ++ETH w32 [f0026204] 00000004 from handle_irq_event_percpu
[ 226.931219] ++ETH w32 [f0026218] 003cc4a4 from handle_irq_event_percpu
[ 226.937819] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 226.944746] ++ETH r32 [f0026104] 00000001 from handle_irq_event_percpu
[ 226.951318] [drivers/net/ethernet/aurora/nb8800.c: 592] nb8800_irq(): tx irq, 0x00000001
[ 226.959462] ++ETH w32 [f0026104] 00000001 from handle_irq_event_percpu
[ 226.966035] ++ETH r32 [f0026204] 00000000 from handle_irq_event_percpu
[ 226.982648] ++ETH w32 [f002610c] 8fbf4000 from nb8800_pause_config
[ 226.988901] ++ETH w32 [f0026100] 000002ff from nb8800_pause_config
[ 226.995154] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 227.002080] ++ETH r32 [f0026104] 00000004 from handle_irq_event_percpu
[ 227.008650] [drivers/net/ethernet/aurora/nb8800.c: 592] nb8800_irq(): tx irq, 0x00000004
[ 227.016796] ++ETH w32 [f0026104] 00000004 from handle_irq_event_percpu
[ 227.023369] ++ETH r32 [f0026204] 00000004 from handle_irq_event_percpu
[ 227.029938] [drivers/net/ethernet/aurora/nb8800.c: 621] nb8800_irq(): rx irq, 0x00000004
[ 227.038083] ++ETH w32 [f0026204] 00000004 from handle_irq_event_percpu
[ 227.044656] ++ETH w32 [f0026218] 003cc4a4 from handle_irq_event_percpu
[ 227.051253] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 227.058178] ++ETH r32 [f0026104] 00000001 from handle_irq_event_percpu
[ 227.064747] [drivers/net/ethernet/aurora/nb8800.c: 592] nb8800_irq(): tx irq, 0x00000001
[ 227.072892] ++ETH w32 [f0026104] 00000001 from handle_irq_event_percpu
[ 227.079465] ++ETH r32 [f0026204] 00000000 from handle_irq_event_percpu
[ 227.096078] ++ETH w32 [f002610c] 8fbf4000 from nb8800_pause_config
[ 227.102331] ++ETH w32 [f0026100] 000002ff from nb8800_pause_config
[ 227.108584] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 227.115510] ++ETH r32 [f0026104] 00000004 from handle_irq_event_percpu
[ 227.122080] [drivers/net/ethernet/aurora/nb8800.c: 592] nb8800_irq(): tx irq, 0x00000004
[ 227.130225] ++ETH w32 [f0026104] 00000004 from handle_irq_event_percpu
[ 227.136799] ++ETH r32 [f0026204] 00000004 from handle_irq_event_percpu
[ 227.143367] [drivers/net/ethernet/aurora/nb8800.c: 621] nb8800_irq(): rx irq, 0x00000004
[ 227.151512] ++ETH w32 [f0026204] 00000004 from handle_irq_event_percpu
[ 227.158085] ++ETH w32 [f0026218] 003cc4a4 from handle_irq_event_percpu
[ 227.164683] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 227.171608] ++ETH r32 [f0026104] 00000001 from handle_irq_event_percpu
[ 227.178179] [drivers/net/ethernet/aurora/nb8800.c: 592] nb8800_irq(): tx irq, 0x00000001
[ 227.186324] ++ETH w32 [f0026104] 00000001 from handle_irq_event_percpu
[ 227.192897] ++ETH r32 [f0026204] 00000000 from handle_irq_event_percpu
[ 227.199500] ++ETH r8 [f0026004] 0b from nb8800_dma_stop
[ 227.204788] ++ETH w8 [f0026004] 2b from nb8800_dma_stop
[ 227.210077] ++ETH r8 [f0026044] 04 from nb8800_pause_config
[ 227.215714] ++ETH w8 [f0026044] 00 from nb8800_pause_config
[ 227.221378] ++ETH w32 [f002620c] 8fbfa000 from nb8800_dma_stop
[ 227.227282] ++ETH r32 [f0026200] 06100a8e from nb8800_link_reconfigure
[ 227.233882] ++ETH w32 [f0026200] 06102a8e from nb8800_link_reconfigure
[ 227.240482] ++ETH r32 [f0026200] 06102a8e from nb8800_pause_config
[ 227.246731] ++ETH w32 [f0026200] 06102a8f from nb8800_pause_config
[ 227.258188] nb8800 26000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 227.266299] libphy: 1: [drivers/net/phy/phy.c:942] phy_state_machine(): mark: 0, 6
[ 227.274289] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.281958] nb8800_mdio_read from mdiobus_read
[ 227.286658] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.292853] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.299074] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.304913] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.312577] nb8800_mdio_read from mdiobus_read
[ 227.317275] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.323470] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.329692] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.335530] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 227.343197] nb8800_mdio_read from mdiobus_read
[ 227.347896] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 227.354087] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 227.360308] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 227.366147] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 227.373811] nb8800_mdio_read from mdiobus_read
[ 227.378508] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 227.384701] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 227.390953] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 227.396790] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 227.404455] nb8800_mdio_read from mdiobus_read
[ 227.409151] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 227.415345] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 227.421572] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 227.427411] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 227.435076] nb8800_mdio_read from mdiobus_read
[ 227.439776] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 227.445968] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 227.452192] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 227.458144] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.465840] nb8800_mdio_read from mdiobus_read
[ 227.470543] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.476735] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.482956] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.488796] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.496462] nb8800_mdio_read from mdiobus_read
[ 227.501160] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.507354] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.513579] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.519417] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 227.527082] nb8800_mdio_read from mdiobus_read
[ 227.531779] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 227.537971] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 227.544209] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 227.549869] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 227.557646] nb8800_mdio_read from mdiobus_read
[ 227.562344] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 227.568536] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 227.574757] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 227.580596] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 227.588260] nb8800_mdio_read from mdiobus_read
[ 227.592956] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 227.599150] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 227.605370] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 227.611208] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 227.618872] nb8800_mdio_read from mdiobus_read
[ 227.623570] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 227.629765] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 227.635987] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 227.641835] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.649499] nb8800_mdio_read from mdiobus_read
[ 227.654226] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.660417] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.666639] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.672475] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.680139] nb8800_mdio_read from mdiobus_read
[ 227.684837] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.691057] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.697280] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.703119] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 227.710785] nb8800_mdio_read from mdiobus_read
[ 227.715484] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 227.721678] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 227.727899] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 227.733736] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 227.741401] nb8800_mdio_read from mdiobus_read
[ 227.746098] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 227.752292] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 227.758513] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 227.764364] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 227.772027] nb8800_mdio_read from mdiobus_read
[ 227.776722] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 227.782914] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 227.789135] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 227.794972] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 227.802634] nb8800_mdio_read from mdiobus_read
[ 227.807333] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 227.813526] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 227.819746] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 227.825592] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.833257] nb8800_mdio_read from mdiobus_read
[ 227.837956] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.844148] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.850394] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.856228] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 227.863892] nb8800_mdio_read from mdiobus_read
[ 227.868591] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 227.874784] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 227.881028] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 227.886867] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 227.894531] nb8800_mdio_read from mdiobus_read
[ 227.899230] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 227.905423] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 227.911641] ++ETH r32 [f0026024] 00000001 from mdiobus_read
[ 227.917478] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 227.925197] nb8800_mdio_read from mdiobus_read
[ 227.929892] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 227.936086] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 227.942310] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 227.948148] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 227.955813] nb8800_mdio_read from mdiobus_read
[ 227.960511] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 227.966704] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 227.972927] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 227.978766] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 227.986430] nb8800_mdio_read from mdiobus_read
[ 227.991129] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 227.997322] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 228.003545] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 228.009391] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.017056] nb8800_mdio_read from mdiobus_read
[ 228.021754] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.027948] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.034210] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.039868] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.047647] nb8800_mdio_read from mdiobus_read
[ 228.052345] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.058540] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.064762] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.070599] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 228.078331] nb8800_mdio_read from mdiobus_read
[ 228.083064] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 228.089300] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 228.095552] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 228.101393] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 228.109058] nb8800_mdio_read from mdiobus_read
[ 228.113757] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 228.119950] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 228.126172] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 228.132011] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 228.139675] nb8800_mdio_read from mdiobus_read
[ 228.144373] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 228.150583] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 228.156806] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 228.162644] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 228.170308] nb8800_mdio_read from mdiobus_read
[ 228.175006] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 228.181200] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 228.187422] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 228.193276] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.200972] nb8800_mdio_read from mdiobus_read
[ 228.205670] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.211862] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.218083] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.223920] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.231585] nb8800_mdio_read from mdiobus_read
[ 228.236282] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.242474] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.248695] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.254534] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 228.262197] nb8800_mdio_read from mdiobus_read
[ 228.266895] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 228.273086] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 228.279308] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 228.285144] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 228.292809] nb8800_mdio_read from mdiobus_read
[ 228.297535] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 228.303726] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 228.309950] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 228.315788] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 228.323452] nb8800_mdio_read from mdiobus_read
[ 228.328149] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 228.334354] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 228.340575] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 228.346415] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 228.354081] nb8800_mdio_read from mdiobus_read
[ 228.358781] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 228.364974] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 228.371194] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 228.377057] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.384725] nb8800_mdio_read from mdiobus_read
[ 228.389422] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.395615] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.401837] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.407686] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.415352] nb8800_mdio_read from mdiobus_read
[ 228.420052] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.426246] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.432469] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.438306] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 228.445970] nb8800_mdio_read from mdiobus_read
[ 228.450669] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 228.456860] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 228.463083] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 228.468921] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 228.476585] nb8800_mdio_read from mdiobus_read
[ 228.481284] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 228.487476] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 228.493720] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 228.499554] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 228.507219] nb8800_mdio_read from mdiobus_read
[ 228.511918] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 228.518111] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 228.524359] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 228.530197] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 228.537863] nb8800_mdio_read from mdiobus_read
[ 228.542561] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 228.548754] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 228.554977] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 228.560893] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.568378] nb8800_mdio_read from mdiobus_read
[ 228.573157] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.579353] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.585575] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.591413] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.599078] nb8800_mdio_read from mdiobus_read
[ 228.603792] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.609985] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.616208] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.622047] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 228.629708] nb8800_mdio_read from mdiobus_read
[ 228.634408] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 228.640601] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 228.646822] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 228.652661] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 228.660323] nb8800_mdio_read from mdiobus_read
[ 228.665021] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 228.671216] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 228.677436] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 228.683274] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 228.690967] nb8800_mdio_read from mdiobus_read
[ 228.695663] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 228.701857] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 228.708081] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 228.713918] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 228.721583] nb8800_mdio_read from mdiobus_read
[ 228.726280] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 228.732471] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 228.738693] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 228.744539] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.752204] nb8800_mdio_read from mdiobus_read
[ 228.756901] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.763094] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.769316] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.775153] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.782817] nb8800_mdio_read from mdiobus_read
[ 228.787545] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 228.793735] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 228.799955] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 228.805792] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 228.813455] nb8800_mdio_read from mdiobus_read
[ 228.818153] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 228.824358] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 228.830594] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 228.836434] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 228.844097] nb8800_mdio_read from mdiobus_read
[ 228.848797] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 228.854989] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 228.861209] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 228.867047] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 228.874712] nb8800_mdio_read from mdiobus_read
[ 228.879411] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 228.885603] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 228.891826] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 228.897682] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 228.905347] nb8800_mdio_read from mdiobus_read
[ 228.910045] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 228.916049] [drivers/net/ethernet/aurora/nb8800.c: 587] nb8800_irq(): mark
[ 228.916067] ++ETH r32 [f0026104] 00000000 from handle_irq_event_percpu
[ 228.916081] ++ETH r32 [f0026204] 00000004 from handle_irq_event_percpu
[ 228.916090] [drivers/net/ethernet/aurora/nb8800.c: 621] nb8800_irq(): rx irq, 0x00000004
[ 228.916103] ++ETH w32 [f0026204] 00000004 from handle_irq_event_percpu
[ 228.916115] ++ETH w32 [f0026218] 003cc4a4 from handle_irq_event_percpu
[ 228.916514] [drivers/net/ethernet/aurora/nb8800.c: 326] nb8800_poll(): mark
[ 228.916540] ++ETH w32 [f0026218] 00004dc8 from net_rx_action
[ 228.971056] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 228.977448] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 228.983299] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 228.990990] nb8800_mdio_read from mdiobus_read
[ 228.995688] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.001884] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.008106] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.013942] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.021608] nb8800_mdio_read from mdiobus_read
[ 229.026305] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.032497] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.038719] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.044556] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 229.052221] nb8800_mdio_read from mdiobus_read
[ 229.056918] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 229.063126] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 229.069349] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 229.075253] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 229.082952] nb8800_mdio_read from mdiobus_read
[ 229.087721] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 229.093943] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 229.100165] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 229.106004] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 229.113669] nb8800_mdio_read from mdiobus_read
[ 229.118369] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 229.124563] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 229.130784] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 229.136622] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 229.144314] nb8800_mdio_read from mdiobus_read
[ 229.149011] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 229.155204] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 229.161426] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 229.167270] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.174936] nb8800_mdio_read from mdiobus_read
[ 229.179634] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.185828] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.192050] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.197888] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.205554] nb8800_mdio_read from mdiobus_read
[ 229.210250] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.216443] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.222666] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.228503] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 229.236166] nb8800_mdio_read from mdiobus_read
[ 229.240894] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 229.247084] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 229.253305] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 229.259141] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 229.266804] nb8800_mdio_read from mdiobus_read
[ 229.271504] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 229.277709] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 229.283932] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 229.289788] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 229.297455] nb8800_mdio_read from mdiobus_read
[ 229.302154] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 229.308347] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 229.314567] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 229.320407] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 229.328072] nb8800_mdio_read from mdiobus_read
[ 229.332767] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 229.338961] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 229.345181] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 229.351040] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.358706] nb8800_mdio_read from mdiobus_read
[ 229.363406] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.369600] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.375820] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.381658] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.389323] nb8800_mdio_read from mdiobus_read
[ 229.394021] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.400214] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.406436] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.412273] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 229.419940] nb8800_mdio_read from mdiobus_read
[ 229.424643] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 229.430866] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 229.437084] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 229.442922] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 229.450585] nb8800_mdio_read from mdiobus_read
[ 229.455284] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 229.461476] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 229.467735] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 229.473571] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 229.481236] nb8800_mdio_read from mdiobus_read
[ 229.485933] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 229.492127] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 229.498349] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 229.504217] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 229.511879] nb8800_mdio_read from mdiobus_read
[ 229.516595] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 229.522789] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 229.529010] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 229.534951] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.542624] nb8800_mdio_read from mdiobus_read
[ 229.547324] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.553517] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.559740] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.565579] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.573244] nb8800_mdio_read from mdiobus_read
[ 229.577942] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.584132] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.590354] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.596192] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 229.603856] nb8800_mdio_read from mdiobus_read
[ 229.608556] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 229.614750] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 229.621000] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 229.626836] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 229.634501] nb8800_mdio_read from mdiobus_read
[ 229.639198] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 229.645391] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 229.651613] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 229.657449] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 229.665115] nb8800_mdio_read from mdiobus_read
[ 229.669812] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 229.676006] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 229.682226] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 229.688064] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 229.695729] nb8800_mdio_read from mdiobus_read
[ 229.700427] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 229.706620] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 229.712842] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 229.718691] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.726356] nb8800_mdio_read from mdiobus_read
[ 229.731056] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.737250] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.743488] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.749324] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.756991] nb8800_mdio_read from mdiobus_read
[ 229.761689] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.767884] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.774105] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.779942] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 229.787633] nb8800_mdio_read from mdiobus_read
[ 229.792330] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 229.798522] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 229.804741] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 229.810580] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 229.818247] nb8800_mdio_read from mdiobus_read
[ 229.822946] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 229.829138] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 229.835360] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 229.841196] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 229.848860] nb8800_mdio_read from mdiobus_read
[ 229.853555] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 229.859748] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 229.865969] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 229.871806] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 229.879469] nb8800_mdio_read from mdiobus_read
[ 229.884192] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 229.890379] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 229.896603] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 229.902448] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.910116] nb8800_mdio_read from mdiobus_read
[ 229.914813] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.921039] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.927260] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.933098] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 229.940765] nb8800_mdio_read from mdiobus_read
[ 229.945461] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 229.951656] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 229.957878] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 229.963716] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 229.971399] nb8800_mdio_read from mdiobus_read
[ 229.976099] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 229.982292] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 229.988514] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 229.994363] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 230.002028] nb8800_mdio_read from mdiobus_read
[ 230.006726] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 230.012918] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 230.019140] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 230.024977] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 230.032642] nb8800_mdio_read from mdiobus_read
[ 230.037341] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 230.043536] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 230.049759] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 230.055596] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 230.063260] nb8800_mdio_read from mdiobus_read
[ 230.067958] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 230.074274] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 230.080529] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 230.086405] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.094072] nb8800_mdio_read from mdiobus_read
[ 230.098772] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.104965] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.111186] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.117024] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.124690] nb8800_mdio_read from mdiobus_read
[ 230.129385] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.135579] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.141801] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.147663] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 230.155327] nb8800_mdio_read from mdiobus_read
[ 230.160024] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 230.166218] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 230.172440] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 230.178277] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 230.185942] nb8800_mdio_read from mdiobus_read
[ 230.190639] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 230.196832] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 230.203073] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 230.208914] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 230.216580] nb8800_mdio_read from mdiobus_read
[ 230.221279] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 230.227472] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 230.233719] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 230.239551] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 230.247215] nb8800_mdio_read from mdiobus_read
[ 230.251913] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 230.258106] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 230.264353] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 230.270199] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.277863] nb8800_mdio_read from mdiobus_read
[ 230.282560] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.288752] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.294974] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.300813] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.308505] nb8800_mdio_read from mdiobus_read
[ 230.313197] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.319390] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.325612] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.331448] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 230.339113] nb8800_mdio_read from mdiobus_read
[ 230.343811] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 230.350003] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 230.356226] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 230.362066] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 230.369729] nb8800_mdio_read from mdiobus_read
[ 230.374426] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 230.380619] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 230.386839] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 230.392675] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 230.400339] nb8800_mdio_read from mdiobus_read
[ 230.405036] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 230.411229] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 230.417449] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 230.423293] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 230.431000] nb8800_mdio_read from mdiobus_read
[ 230.435699] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 230.441894] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 230.448116] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 230.453977] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.461643] nb8800_mdio_read from mdiobus_read
[ 230.466341] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.472536] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.478757] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.484594] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.492258] nb8800_mdio_read from mdiobus_read
[ 230.496956] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.503150] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.509370] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.515207] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 230.522873] nb8800_mdio_read from mdiobus_read
[ 230.527600] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 230.533793] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 230.540013] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 230.545851] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 230.553516] nb8800_mdio_read from mdiobus_read
[ 230.558215] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 230.564410] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 230.570629] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 230.576467] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 230.584132] nb8800_mdio_read from mdiobus_read
[ 230.588831] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 230.595024] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 230.601245] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 230.607084] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 230.614750] nb8800_mdio_read from mdiobus_read
[ 230.619448] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 230.625642] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 230.631865] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 230.637710] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.645377] nb8800_mdio_read from mdiobus_read
[ 230.650076] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.656288] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.662511] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.668350] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.676015] nb8800_mdio_read from mdiobus_read
[ 230.680713] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.686907] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.693131] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.698968] libphy: mdiobus_read: addr=4 regnum=0000000a from genphy_read_status
[ 230.706633] nb8800_mdio_read from mdiobus_read
[ 230.711333] ++ETH w32 [f0026020] 008a0000 from nb8800_mdio_read
[ 230.717555] ++ETH w32 [f0026020] 808a0000 from nb8800_mdio_read
[ 230.723773] ++ETH r32 [f0026024] 00000000 from mdiobus_read
[ 230.729612] libphy: mdiobus_read: addr=4 regnum=00000009 from genphy_read_status
[ 230.737278] nb8800_mdio_read from mdiobus_read
[ 230.741976] ++ETH w32 [f0026020] 00890000 from nb8800_mdio_read
[ 230.748168] ++ETH w32 [f0026020] 80890000 from nb8800_mdio_read
[ 230.754402] ++ETH r32 [f0026024] 00000200 from mdiobus_read
[ 230.760240] libphy: mdiobus_read: addr=4 regnum=00000005 from genphy_read_status
[ 230.767905] nb8800_mdio_read from mdiobus_read
[ 230.772603] ++ETH w32 [f0026020] 00850000 from nb8800_mdio_read
[ 230.778799] ++ETH w32 [f0026020] 80850000 from nb8800_mdio_read
[ 230.785019] ++ETH r32 [f0026024] 000045e1 from mdiobus_read
[ 230.790885] libphy: mdiobus_read: addr=4 regnum=00000004 from genphy_read_status
[ 230.798548] nb8800_mdio_read from mdiobus_read
[ 230.803245] ++ETH w32 [f0026020] 00840000 from nb8800_mdio_read
[ 230.809438] ++ETH w32 [f0026020] 80840000 from nb8800_mdio_read
[ 230.815661] ++ETH r32 [f0026024] 000015e1 from mdiobus_read
[ 230.821508] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.829173] nb8800_mdio_read from mdiobus_read
[ 230.833871] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.840066] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.846287] ++ETH r32 [f0026024] 0000796d from mdiobus_read
[ 230.852127] libphy: mdiobus_read: addr=4 regnum=00000001 from genphy_update_link
[ 230.859793] nb8800_mdio_read from mdiobus_read
[ 230.864491] ++ETH w32 [f0026020] 00810000 from nb8800_mdio_read
[ 230.870682] ++ETH w32 [f0026020] 80810000 from nb8800_mdio_read
[ 230.876904] ++ETH r32 [f0026024] 0000796d from mdiobus_read
snip more lines
The regnum=5,4,1,1,a,9 logs keep repeating, endlessly.
Is that expected?
If anyone spots something fishy, I'd be extremely grateful for any leads.
Regards.
^ permalink raw reply
* Re: [net-next PATCH RFC 04/26] arch/arm: Add option to skip sync on DMA map and unmap
From: Alexander Duyck @ 2016-10-31 15:26 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Alexander Duyck, Netdev, linux-kernel@vger.kernel.org, linux-mm,
Jesper Dangaard Brouer, David Miller
In-Reply-To: <20161031102057.GZ1041@n2100.armlinux.org.uk>
On Mon, Oct 31, 2016 at 3:20 AM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Mon, Oct 24, 2016 at 08:04:47AM -0400, Alexander Duyck wrote:
>> The use of DMA_ATTR_SKIP_CPU_SYNC was not consistent across all of the DMA
>> APIs in the arch/arm folder. This change is meant to correct that so that
>> we get consistent behavior.
>
> I'm really not convinced that this is anywhere close to correct behaviour.
>
> If we're DMA-ing to a buffer, and we unmap it or sync_for_cpu, then we
> will want to access the DMA'd data - especially in the sync_for_cpu case,
> it's pointless to call sync_for_cpu if we're not going to access the
> data.
First, let me clarify. The sync_for_cpu call will still work the
same. This only effects the map/unmap calls.
> So the idea of skipping the CPU copy when DMA_ATTR_SKIP_CPU_SYNC is set
> seems to be completely wrong - it means we end up reading the stale data
> that was in the buffer, completely ignoring whatever was DMA'd to it.
I agree. However this is meant to be used in the dma_unmap call only
if sync_for_cpu has already been called for the regions that could
have been updated by the device.
> What's the use case for DMA_ATTR_SKIP_CPU_SYNC ?
The main use case I have in mind is to allow for pseudo-static DMA
mappings where we can share them between the network stack and the
device driver. I use igb as an example.
1 allocate page, reset page_offset to 0
2 map page while passing DMA_ATTR_SKIP_CPU_SYNC
3 dma_sync_single_range_for_device starting at page_offset, length
2K (largest possible write by device)
4 device performs Rx DMA and updates Rx descriptor
5 read length from Rx descriptor
6 dma_sync_single_range_for_cpu starting at page_offset, length
reported by descriptor
7 if page_count == 1
7.1 update page_offset with xor 2K
7.2 hand page up to network stack
7.3 goto 3
8 unmap page with DMA_ATTR_SKIP_CPU_SYNC
9 hand page up to network stack
10 goto 1
The idea is we want to be able to have a page be accessible to the
device, but be able to share it with the network stack which might try
to write to the page. By letting the driver handle the
synchronization we get two main advantages. First we end up looping
over fewer cache lines as we only have to invalidate the region
updated by the device in steps 3 and 6 instead of the entire page.
The other advantage is that the pages are writable by the network
stack since step 8 will not invalidate the entire mapping.
I am just as concerned about the possibility of stale data. That is
why I have gone through and made sure that any path in the igb driver
called sync for the region held by the device before we might call
unmap. It isn't that I don't want the data to be kept fresh, it is a
matter of wanting control over what we are invalidating. Here is a
link to the igb patch I have that was a part of this set.
https://patchwork.ozlabs.org/patch/686747/
Thanks.
- Alex
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: nfs NULL-dereferencing in net-next
From: Jakub Kicinski @ 2016-10-31 15:25 UTC (permalink / raw)
To: Anna Schumaker
Cc: Yotam Gigi, Andy Adamson, linux-nfs@vger.kernel.org,
netdev@vger.kernel.org, Trond Myklebust, Yotam Gigi, mlxsw
In-Reply-To: <DB3PR05MB0764F0409AE75E0172ABFE2EACAA0@DB3PR05MB0764.eurprd05.prod.outlook.com>
On Thu, 27 Oct 2016 06:50:22 +0000, Yotam Gigi wrote:
> >-----Original Message-----
> >From: Anna Schumaker [mailto:Anna.Schumaker@Netapp.com]
> >Sent: Wednesday, October 26, 2016 9:17 PM
> >To: Jakub Kicinski <kubakici@wp.pl>
> >Cc: Yotam Gigi <yotamg@mellanox.com>; Andy Adamson <andros@netapp.com>;
> >linux-nfs@vger.kernel.org; netdev@vger.kernel.org; Trond Myklebust
> ><Trond.Myklebust@netapp.com>; Yotam Gigi <yotam.gi@gmail.com>; mlxsw
> ><mlxsw@mellanox.com>
> >Subject: Re: nfs NULL-dereferencing in net-next
> >
> >On 10/26/2016 02:08 PM, Jakub Kicinski wrote:
> >> On Wed, 26 Oct 2016 16:15:24 +0000, Yotam Gigi wrote:
> >>>> -----Original Message-----
> >>>> From: Anna Schumaker [mailto:Anna.Schumaker@Netapp.com]
> >>>> Sent: Wednesday, October 26, 2016 5:40 PM
> >>>> To: Yotam Gigi <yotamg@mellanox.com>; Jakub Kicinski <kubakici@wp.pl>;
> >Andy
> >>>> Adamson <andros@netapp.com>; Anna Schumaker
> >>>> <Anna.Schumaker@Netapp.com>; linux-nfs@vger.kernel.org
> >>>> Cc: netdev@vger.kernel.org; Trond Myklebust
> ><Trond.Myklebust@netapp.com>;
> >>>> Yotam Gigi <yotam.gi@gmail.com>; mlxsw <mlxsw@mellanox.com>
> >>>> Subject: Re: nfs NULL-dereferencing in net-next
> >>>>
> >>>> On 10/25/2016 01:19 PM, Yotam Gigi wrote:
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: netdev-owner@vger.kernel.org [mailto:netdev-
> >owner@vger.kernel.org]
> >>>> On
> >>>>>> Behalf Of Jakub Kicinski
> >>>>>> Sent: Monday, October 17, 2016 10:20 PM
> >>>>>> To: Andy Adamson <andros@netapp.com>; Anna Schumaker
> >>>>>> <Anna.Schumaker@Netapp.com>; linux-nfs@vger.kernel.org
> >>>>>> Cc: netdev@vger.kernel.org; Trond Myklebust
> >>>> <Trond.Myklebust@netapp.com>
> >>>>>> Subject: nfs NULL-dereferencing in net-next
> >>>>>>
> >>>>>> Hi!
> >>>>>>
> >>>>>> I'm hitting this reliably on net-next, HEAD at 3f3177bb680f
> >>>>>> ("fsl/fman: fix error return code in mac_probe()").
> >>>>>
> >>>>>
> >>>>> I see the same thing. It happens constantly on some of my machines, making
> >>>> them
> >>>>> completely unusable.
> >>>>>
> >>>>> I bisected it and got to the commit:
> >>>>>
> >>>>> commit 04ea1b3e6d8ed4978bb608c1748530af3de8c274
> >>>>> Author: Andy Adamson <andros@netapp.com>
> >>>>> Date: Fri Sep 9 09:22:27 2016 -0400
> >>>>>
> >>>>> NFS add xprt switch addrs test to match client
> >>>>>
> >>>>> Signed-off-by: Andy Adamson <andros@netapp.com>
> >>>>> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
> >>>>
> >>>> Thanks for reporting on this everyone! Does this patch help?
> >>>
> >>> Actually, I still see the same bug with the same trace.
> >
> >Well, it was worth a shot. I'll keep poking at it.
> >
> >>
> >> I rebuild the latest net-next and I'm not seeing the trace any more...
> >> I'm only seeing this (with or without your patch):
> >>
> >> [ 23.465877] NFS: set_pnfs_layoutdriver: cl_exchange_flags 0x0
> >> [ 23.473784] NFS: set_pnfs_layoutdriver: cl_exchange_flags 0x0
> >> [ 23.588890] NFS: set_pnfs_layoutdriver: cl_exchange_flags 0x0
> >> [ 23.596746] NFS: set_pnfs_layoutdriver: cl_exchange_flags 0x0
> >> [ 23.781574] NFS: set_pnfs_layoutdriver: cl_exchange_flags 0x0
> >> [ 23.789599] NFS: set_pnfs_layoutdriver: cl_exchange_flags 0x0
> >
> >Interesting, I get that too when I try to use NFS v4.1. It's weird that the crash would
> >stop happening like that, so maybe something is racy in this area.
> >
> >Thanks for testing, Yotam and Jakub!
> >Anna
>
> I just found out that it happens on any of my machines, once I put two nfs entries in
> my fstab. If I put only one, I don't see the problem.
>
> I hope it might be helpful :)
Hi Anna,
any updates on this one? The crash came back half an hour after I
reported that it was gone...
Over the weekend David Miller rebased net-next on top of 4.9.0-rc3 and
the bug is still there :( FWIW I also have multiple nfs mounts on my
setup, 2 in fstab and one in a startup script. Following Yotam I
dropped one of the fstab entries and things seem to be working (even
though I still have multiple mounts, the other one just comes a bit
later).
^ permalink raw reply
* Re: [PATCH net-next] udp: do fwd memory scheduling on dequeue
From: Eric Dumazet @ 2016-10-31 15:16 UTC (permalink / raw)
To: Paolo Abeni
Cc: netdev-u79uwXL29TY76Z2rM5mHXA, David S. Miller, James Morris,
Trond Myklebust, Alexander Duyck, Daniel Borkmann, Eric Dumazet,
Tom Herbert, Hannes Frederic Sowa,
linux-nfs-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1477926132.6655.10.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
On Mon, 2016-10-31 at 16:02 +0100, Paolo Abeni wrote:
>
> No problem at all with incremental patches ;-)
>
> In our experiment, touching udp_memory_allocated is only a part of the
> the source of contention, with the biggest source of contention being
> the sk_rmem_alloc update - which happens on every dequeue.
>
> We experimented doing fwd alloc of the whole sk_rcvbuf; even in that
> scenario we hit relevant contention if sk_rmem_alloc update was done
> under the lock, while full sk_rcvbuf forward allocation and
> sk_rmem_alloc update outside the spinlock gave very similar performance
> to our posted patch.
> I think that the next step (after the double lock on dequeue removal)
> should be moving sk_rmem_alloc outside the lock: the needed changes for
> doing that on top of double lock on dequeue removal are very small
> (would add ~10 lines of code).
>
During my load tests, one of the major factor was sk_drops being
incremented like crazy, dirtying a critical cache line, hurting
sk_filter reads for example.
/* --- cacheline 6 boundary (384 bytes) --- */
struct {
atomic_t rmem_alloc; /* 0x180 0x4 */
int len; /* 0x184 0x4 */
struct sk_buff * head; /* 0x188 0x8 */
struct sk_buff * tail; /* 0x190 0x8 */
} sk_backlog; /* 0x180 0x18 */
int sk_forward_alloc; /* 0x198 0x4 */
__u32 sk_txhash; /* 0x19c 0x4 */
unsigned int sk_napi_id; /* 0x1a0 0x4 */
unsigned int sk_ll_usec; /* 0x1a4 0x4 */
atomic_t sk_drops; /* 0x1a8 0x4 */
int sk_rcvbuf; /* 0x1ac 0x4 */
struct sk_filter * sk_filter; /* 0x1b0 0x8 */
union {
struct socket_wq * sk_wq; /* 0x8 */
struct socket_wq * sk_wq_raw; /* 0x8 */
}; /* 0x1b8 0x8 */
I was playing moving this field elsewhere and not reading it if not
necessary.
diff --git a/include/net/sock.h b/include/net/sock.h
index f13ac87a8015cb18c5d3fe5fdcf2d6a0592428f4..a901df591eb45e153517cdb8b409b61563d1a4e3 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -2112,7 +2112,8 @@ struct sock_skb_cb {
static inline void
sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
{
- SOCK_SKB_CB(skb)->dropcount = atomic_read(&sk->sk_drops);
+ SOCK_SKB_CB(skb)->dropcount = sock_flag(sk, SOCK_RXQ_OVFL) ?
+ atomic_read(&sk->sk_drops) : 0;
}
static inline void sk_drops_add(struct sock *sk, const struct sk_buff *skb)
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related
* [PATCH] ath9k_htc: fix minor mistakes in dev_err messages
From: Colin King @ 2016-10-31 15:12 UTC (permalink / raw)
To: QCA ath9k Development, Kalle Valo, linux-wireless, ath9k-devel,
netdev
Cc: linux-kernel
From: Colin Ian King <colin.king@canonical.com>
Add missing space in a dev_err message and join wrapped text so
it does not span multiple lines. Fix spelling mistake on "unknown".
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/net/wireless/ath/ath9k/htc_hst.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c
index fd85f99..8e6dae2 100644
--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
@@ -244,8 +244,8 @@ int htc_connect_service(struct htc_target *target,
/* Find an available endpoint */
endpoint = get_next_avail_ep(target->endpoint);
if (!endpoint) {
- dev_err(target->dev, "Endpoint is not available for"
- "service %d\n", service_connreq->service_id);
+ dev_err(target->dev, "Endpoint is not available for service %d\n",
+ service_connreq->service_id);
return -EINVAL;
}
@@ -382,7 +382,7 @@ static void ath9k_htc_fw_panic_report(struct htc_target *htc_handle,
break;
}
default:
- dev_err(htc_handle->dev, "ath: uknown panic pattern!\n");
+ dev_err(htc_handle->dev, "ath: unknown panic pattern!\n");
break;
}
}
--
2.9.3
^ permalink raw reply related
* Re: [PATCH net-next 3/4] bpf: BPF for lightweight tunnel encapsulation
From: Thomas Graf @ 2016-10-31 15:06 UTC (permalink / raw)
To: Tom Herbert
Cc: David S. Miller, Alexei Starovoitov, Daniel Borkmann,
Linux Kernel Network Developers, roopa
In-Reply-To: <CALx6S34hHZDdtZgLBZzw-QiOc80tjrLAuAVBDeWRuUonR1MfXA@mail.gmail.com>
On 10/31/16 at 07:17am, Tom Herbert wrote:
> On Mon, Oct 31, 2016 at 5:59 AM, Thomas Graf <tgraf@suug.ch> wrote:
> > Noticed while implementing this: How does ILA ensure that dst_output()
> > is not invoked in a circular manner?
> >
> > dstA->output() -> dstB->otuput() -> dstA->output() -> ...
>
> It doesn't. We'll need to add a check for that. Maybe the rule should
> be that an skbuff is only allowed to hit one LWT route?
I'll add a per cpu variable to do a recursion limit for dst_output()
which callers to possibly recurse can use. ILA can use that as well.
> Another scenario to consider: Suppose someone is doing protocol
> translation like in RFC7915. This is one of operations we'd need with
> ILA or GRE to implement an IPv4 overlay network over IPv6. Would this
> be allowed/supported in LWT BPF?
In lwtunnel_xmit() yes, input and output would not support this right
now. It will need some logic as the orig_input and orig_output would
obviously be expecting the same protocol. This is the reason why the
xmit prog type currently has a wider set of allowed helpers.
^ permalink raw reply
* Re: [PATCH (net.git)] net: phy: at803x: disable by default the hibernation feature
From: David Miller @ 2016-10-31 15:03 UTC (permalink / raw)
To: peppe.cavallaro; +Cc: netdev, ujhelyi.m
In-Reply-To: <1477384282-17878-1-git-send-email-peppe.cavallaro@st.com>
From: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Date: Tue, 25 Oct 2016 10:31:22 +0200
> These PHY chips, by default, enable the hibernation feature
> so, if the cable is unplugged the device enters in hibernation
> mode after some time. This can generate problems on some cases.
> It has been noticed, on some platforms that, if the phy enters
> in hibernation, the missing of the rx clock signal can force
> a mac to fail when setup some parts that need to be properly
> clocked.
> For example, while booting a Kernel the SYNP MAC (stmmac) fails
> to initialize own DMA engine if the phy entered in hibernation
> before.
>
> So, the patch just disables this feature by default when init
> the PHY driver.
>
> Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
> Cc: Matus Ujhelyi <ujhelyi.m@gmail.com>
Like Andrew, I think this is attacking the problem from the wrong
side.
The stmmac driver, if it needs the proper PHY RX clocks to initialize
properly, should do the work to make sure it is there.
If this means forcing the PHY out of hibernation mode, so that it
can initialize properly, this is what the stammc can do.
After initialization, it can allow the chip to fall back into
hibernation mode again if the cable is still unplugged.
Disabling a whole feature of the PHY instead doesn't make a lot of
sense when it certainly seems like stmmac can do what it needs to do
in the presence of this feature being enabled.
^ permalink raw reply
* Re: [PATCH net-next] udp: do fwd memory scheduling on dequeue
From: Paolo Abeni @ 2016-10-31 15:02 UTC (permalink / raw)
To: Eric Dumazet
Cc: netdev, David S. Miller, James Morris, Trond Myklebust,
Alexander Duyck, Daniel Borkmann, Eric Dumazet, Tom Herbert,
Hannes Frederic Sowa, linux-nfs
In-Reply-To: <1477745013.7065.270.camel@edumazet-glaptop3.roam.corp.google.com>
On Sat, 2016-10-29 at 05:43 -0700, Eric Dumazet wrote:
> On Sat, 2016-10-29 at 10:17 +0200, Paolo Abeni wrote:
>
> > Thank you for working on this.
> >
> > I just gave a very quick look (the WE has started, children are
> > screaming ;-), overall the implementation seems quite similar to our
> > one.
> >
> > I like the additional argument to ip_cmsg_recv_offset() instead of
> > keeping skb->sk set.
> >
> > If I read udp_skb_destructor() correctly, the atomic manipulation of
> > both sk_rmem_alloc and udp_memory_allocated will happen under the
> > receive lock. In our experiments this increment measurably the
> > contention on the lock in respect to moving said the operations outside
> > the lock (as done in our patch). Do you foreseen any issues with that ?
> > AFAICS every in kernel UDP user of skb_recv_datagram() needs to be
> > updated with both implementation.
>
> So if you look at tcp, we do not release forward allocation at every
> recvmsg(), but rather when we are under tcp memory pressure, or at timer
> firing when we know the flow has been idle for a while.
>
> You hit contention on the lock, but the root cause is that right now udp
> is very conservative and also hits false sharing on
> udp_memory_allocated.
>
> So I believe this is another problem which needs a fix anyway.
>
> No need to make a complicated patch right now, if we know that this
> problem will be separately fixed, in another patch ?
No problem at all with incremental patches ;-)
In our experiment, touching udp_memory_allocated is only a part of the
the source of contention, with the biggest source of contention being
the sk_rmem_alloc update - which happens on every dequeue.
We experimented doing fwd alloc of the whole sk_rcvbuf; even in that
scenario we hit relevant contention if sk_rmem_alloc update was done
under the lock, while full sk_rcvbuf forward allocation and
sk_rmem_alloc update outside the spinlock gave very similar performance
to our posted patch.
I think that the next step (after the double lock on dequeue removal)
should be moving sk_rmem_alloc outside the lock: the needed changes for
doing that on top of double lock on dequeue removal are very small
(would add ~10 lines of code).
Paolo
^ permalink raw reply
* Re: [PATCH net-next] net: add an ioctl to get a socket network namespace
From: David Miller @ 2016-10-31 14:58 UTC (permalink / raw)
To: avagin; +Cc: ebiederm, containers, linux-kernel, netdev, linux-api
In-Reply-To: <1477358953-3547-1-git-send-email-avagin@openvz.org>
From: Andrei Vagin <avagin@openvz.org>
Date: Mon, 24 Oct 2016 18:29:13 -0700
> From: Andrey Vagin <avagin@openvz.org>
>
> Each socket operates in a network namespace where it has been created,
> so if we want to dump and restore a socket, we have to know its network
> namespace.
>
> We have a socket_diag to get information about sockets, it doesn't
> report sockets which are not bound or connected.
>
> This patch introduces a new socket ioctl, which is called SIOCGSKNS
> and used to get a file descriptor for a socket network namespace.
>
> A task must have CAP_NET_ADMIN in a target network namespace to
> use this ioctl.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric W. Biederman <ebiederm@xmission.com>
> Signed-off-by: Andrei Vagin <avagin@openvz.org>
Applied.
^ permalink raw reply
* Re: [PATCH net-next v2 1/1] driver: tun: Use new macro SOCK_IOC_TYPE instead of literal number 0x89
From: David Miller @ 2016-10-31 14:57 UTC (permalink / raw)
To: fgao; +Cc: jasowang, edumazet, pabeni, netdev, gfree.wind
In-Reply-To: <1477530322-29021-1-git-send-email-fgao@ikuai8.com>
From: fgao@ikuai8.com
Date: Thu, 27 Oct 2016 09:05:22 +0800
> From: Gao Feng <fgao@ikuai8.com>
>
> The current codes use _IOC_TYPE(cmd) == 0x89 to check if the cmd is one
> socket ioctl command like SIOCGIFHWADDR. But the literal number 0x89 may
> confuse readers. So create one macro SOCK_IOC_TYPE to enhance the readability.
>
> Signed-off-by: Gao Feng <fgao@ikuai8.com>
Applied.
^ permalink raw reply
* [PATCH net-next] genetlink: fix error return code in genl_register_family()
From: Wei Yongjun @ 2016-10-31 14:53 UTC (permalink / raw)
To: stephen hemminger, Matti Vaittinen, Tom Herbert, Johannes Berg,
pravin shelar, Tycho Andersen, Florian Westphal
Cc: Wei Yongjun, netdev
From: Wei Yongjun <weiyongjun1@huawei.com>
Fix to return error code -ENOMEM from the idr_alloc() error handling
case instead of 0, as done elsewhere in this function.
Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
net/netlink/genetlink.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index caf04d7..305730d 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -362,8 +362,10 @@ int genl_register_family(struct genl_family *family)
family->id = idr_alloc(&genl_fam_idr, family,
start, end + 1, GFP_KERNEL);
- if (!family->id)
+ if (!family->id) {
+ err = -ENOMEM;
goto errout_locked;
+ }
err = genl_validate_assign_mc_groups(family);
if (err)
^ permalink raw reply related
* Re: mv643xx_eth.c merge gone bad...
From: David Miller @ 2016-10-31 14:34 UTC (permalink / raw)
To: andrew; +Cc: jgunthorpe, jarod, netdev
In-Reply-To: <20161031133538.GB9441@lunn.ch>
From: Andrew Lunn <andrew@lunn.ch>
Date: Mon, 31 Oct 2016 14:35:38 +0100
> On Mon, Oct 31, 2016 at 09:12:06AM -0400, David Miller wrote:
>> From: Andrew Lunn <andrew@lunn.ch>
>> Date: Mon, 31 Oct 2016 12:33:49 +0100
>>
>> > The merge of commit 27058af401e49d88a905df000dd26f443fcfa8ce for
>> > mv643xx_eth.c has gone bad:
>>
>> Sorry this should be fixed now.
>
> Hi David
>
> I think the SET_NETDEV_DEV() should be removed, which is what cause the merged conflict:
>
> http://patchwork.ozlabs.org/patch/687294/
Indeed, fixed.
Thanks Andrew.
^ permalink raw reply
* Re: [RFC PATCH 09/13] net: phy: Add Meson GXL Internal PHY driver
From: Neil Armstrong @ 2016-10-31 14:25 UTC (permalink / raw)
To: Florian Fainelli, khilman-rdvid1DuHRBWk0Htik3J/w,
carlo-KA+7E9HrN00dnm+yROfE0A,
linus.walleij-QSEj5FYQhm4dnm+yROfE0A
Cc: linux-gpio-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <0ea5a7a8-3913-0e6a-6ff2-9f34015ea071-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
On 10/21/2016 10:56 PM, Florian Fainelli wrote:
> On 10/21/2016 07:40 AM, Neil Armstrong wrote:
>> Add driver for the Internal RMII PHY found in the Amlogic Meson GXL SoCs.
>>
>> This PHY seems to only implement some standard registers and need some
>> workarounds to provide autoneg values from vendor registers.
>>
>> Some magic values are currently used to configure the PHY, and this a
>> temporary setup until clarification about these registers names and
>> registers fields are provided by Amlogic.
>>
>> Signed-off-by: Neil Armstrong <narmstrong-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
>> ---
>> +
>> +static int meson_gxl_config_init(struct phy_device *phydev)
>> +{
>> + int val;
>> + u32 features;
>> +
>> + meson_gxl_phy_config(phydev);
>> +
>> + features = SUPPORTED_MII;
>
> This does not really belong in the PHY driver, and this is statically
> assigned, I would just drop this.
>
Ok
>> +
>> + /* Do we support autonegotiation? */
>> + val = phy_read(phydev, MII_BMSR);
>> + if (val < 0)
>> + return val;
>> +
>> + if (val & BMSR_ANEGCAPABLE)
>> + features |= SUPPORTED_Autoneg;
>> + if (val & BMSR_100FULL)
>> + features |= SUPPORTED_100baseT_Full;
>> + if (val & BMSR_100HALF)
>> + features |= SUPPORTED_100baseT_Half;
>> + if (val & BMSR_10FULL)
>> + features |= SUPPORTED_10baseT_Full;
>> + if (val & BMSR_10HALF)
>> + features |= SUPPORTED_10baseT_Half;
>> +
>> + phydev->supported = features;
>> + phydev->advertising = features;
>
> This is redundant with what PHYLIB will determine for the PHY.
>
ok
>> +
>> + return 0;
>> +}
>> +
>> +static int meson_gxl_phy_read_status(struct phy_device *phydev)
>> +{
>> + int err;
>> +
>> + /* Update the link, but return if there was an error */
>> + err = genphy_update_link(phydev);
>> + if (err)
>> + return err;
>> +
>> + phydev->lp_advertising = 0;
>> + phydev->pause = 0;
>> + phydev->asym_pause = 0;
>> +
>> + if (phydev->autoneg == AUTONEG_ENABLE) {
>> + unsigned int speed;
>> + int reg = phy_read(phydev, GXL_REG_ANEG);
>
> Is all of this really necessary? This should all be reflected in the
> standard BMSR register, is not this the case here that we have to read
> this non-standard register?
>
This is what I understood from the original driver code, but I will make some further tests
and see if the BMSR returns some good data.
> You use genphy_config_aneg(), so surely, the standard auto-negotiation
> part works somehow?
Yes, and the BMSR is also used in the config_init here...
>
>> +
>> + if (reg < 0)
>> + return reg;
>> +
>> + speed = reg & REG_ANEG_SPEED_MASK;
>> +
>> + if (reg & REG_ANEG_FDUPLEX)
>> + phydev->duplex = DUPLEX_FULL;
>> + else
>> + phydev->duplex = DUPLEX_HALF;
>> +
>> + if ((reg & REG_ANEG_SPEED_MASK) == REG_ANEG_SPEED10)
>> + phydev->speed = SPEED_10;
>> + else if ((reg & REG_ANEG_SPEED_MASK) == REG_ANEG_SPEED100)
>> + phydev->speed = SPEED_100;
>> + } else {
>> + int bmcr = phy_read(phydev, MII_BMCR);
>> +
>> + if (bmcr < 0)
>> + return bmcr;
>> +
>> + if (bmcr & BMCR_FULLDPLX)
>> + phydev->duplex = DUPLEX_FULL;
>> + else
>> + phydev->duplex = DUPLEX_HALF;
>> +
>> + if (bmcr & BMCR_SPEED1000)
>> + phydev->speed = SPEED_1000;
>> + else if (bmcr & BMCR_SPEED100)
>> + phydev->speed = SPEED_100;
>> + else
>> + phydev->speed = SPEED_10;
>> + }
>
>> +
>> + return 0;
>> +}
>> +
>> +static struct phy_driver meson_gxl_phy = {
>> + .phy_id = 0x01814400,
>> + .name = "Meson GXL Internal PHY",
>> + .phy_id_mask = 0x0fffffff,
>
> Usually the last 4 bits are 0, since that's where the revision part is
> located.
>
Fixed
>> + .features = 0,
>
> You should set PHY_GBIT_FEATURES and set .flags to PHY_IS_INTERNAL since
> this is an internal PHY?
>
Ok
Thanks,
Neil
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [RFC PATCH 08/13] dwmac-meson8b: add support for phy selection
From: Neil Armstrong @ 2016-10-31 14:23 UTC (permalink / raw)
To: Andrew Lunn
Cc: khilman, carlo, linus.walleij, linux-gpio, devicetree,
linux-arm-kernel, linux-amlogic, linux-kernel, netdev
In-Reply-To: <20161021160807.GT16974@lunn.ch>
On 10/21/2016 06:08 PM, Andrew Lunn wrote:
> Hi Neil
>
>> Yes this would be a good idea if we were able to scan the internal
>> and external PHYs at the same time, but with our limited knowledge
>> the values we write in the register seems to switch a mux for the
>> whole RMII and MDIO signals to either interface.
>
> Ah, O.K. So you need something like:
>
> drivers/net/phy/mdio-mux-mmioreg.c
>
> This seems to be limited to a single byte for the mux register, so you
> might need to make some extensions.
>
> Andrew
>
Thanks for the hint, I will try to make use of this !
Neil
^ permalink raw reply
* Re: [PATCH net-next 3/4] bpf: BPF for lightweight tunnel encapsulation
From: Tom Herbert @ 2016-10-31 14:17 UTC (permalink / raw)
To: Thomas Graf
Cc: David S. Miller, Alexei Starovoitov, Daniel Borkmann,
Linux Kernel Network Developers, roopa
In-Reply-To: <20161031125906.GB32374@pox.localdomain>
On Mon, Oct 31, 2016 at 5:59 AM, Thomas Graf <tgraf@suug.ch> wrote:
> On 10/30/16 at 06:28pm, Tom Herbert wrote:
>> Right, that's why we rely on a dst cache. Any use of LWT that
>> encapsulates or tunnels to a fixed destination (ILA, VXLAN, IPIP,
>> etc.) would want to use the dst cache optimization to avoid the second
>> lookup. The ILA LWT code used to call orig output and that worked as
>> long as we could set the default router as the gateway "via". It was
>> something we were able to deploy, but not a general solution.
>> Integrating properly with routing gives a much better solution IMO.
>> Note that David Lebrun's latest LWT Segment Routing patch does the
>> second lookup with the dst cache to try to avoid it.
>
> Noticed while implementing this: How does ILA ensure that dst_output()
> is not invoked in a circular manner?
>
> dstA->output() -> dstB->otuput() -> dstA->output() -> ...
It doesn't. We'll need to add a check for that. Maybe the rule should
be that an skbuff is only allowed to hit one LWT route?
Another scenario to consider: Suppose someone is doing protocol
translation like in RFC7915. This is one of operations we'd need with
ILA or GRE to implement an IPv4 overlay network over IPv6. Would this
be allowed/supported in LWT BPF?
Tom
^ permalink raw reply
* Re: [PATCH] [v2 netfilter-next] netfilter: nf_tables: fib warnings
From: Pablo Neira Ayuso @ 2016-10-31 14:17 UTC (permalink / raw)
To: Florian Westphal
Cc: Arnd Bergmann, Patrick McHardy, Jozsef Kadlecsik, David S. Miller,
Alexey Kuznetsov, James Morris, Hideaki YOSHIFUJI,
netfilter-devel, coreteam, netdev, linux-kernel
In-Reply-To: <20161028232612.GA30488@breakpoint.cc>
On Sat, Oct 29, 2016 at 01:26:12AM +0200, Florian Westphal wrote:
> Arnd Bergmann <arnd@arndb.de> wrote:
> > The newly added nft fib code produces two warnings:
> >
> > net/ipv4/netfilter/nft_fib_ipv4.c: In function 'nft_fib4_eval':
> > net/ipv4/netfilter/nft_fib_ipv4.c:80:6: error: unused variable 'i' [-Werror=unused-variable]
> > net/ipv4/netfilter/nft_fib_ipv4.c: In function ‘nft_fib4_eval’:
> > net/ipv4/netfilter/nft_fib_ipv4.c:137:6: error: ‘oif’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
> >
> > The first one is obvious as the only user of that variable is
> > inside of an #ifdef
> >
> > The second one is a bit trickier. It's clear that oif is in fact
> > uninitialized when it gets used when neither NFTA_FIB_F_IIF nor
> > NFTA_FIB_F_OIF are set, and just setting it to NULL won't work
> > as it may later get dereferenced.
> >
> > However, there is no need to search the result list if it is
> > NULL, as Florian pointed out. This integrates his (untested)
> > change to do so. I have confirmed that the combined patch
> > solves both warnings, but as I don't fully understand Florian's
> > change, I can't tell if it's correct.
> >
> > Suggested-by: Florian Westphal <fw@strlen.de>
> > Fixes: 84f5eedb983e ("netfilter: nf_tables: add fib expression")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[...]
> Tested-by: Florian Westphal <fw@strlen.de>
Applied, thanks!
^ permalink raw reply
* ATENCIÓN;
From: Sistemas administrador @ 2016-10-31 13:14 UTC (permalink / raw)
To: Recipients
ATENCIÓN;
Su buzón ha superado el límite de almacenamiento, que es de 5 GB definidos por el administrador, quien actualmente está ejecutando en 10.9GB, no puede ser capaz de enviar o recibir correo nuevo hasta que
vuelva a validar su buzón de correo electrónico. Para revalidar su buzón de correo, envíe la siguiente información a continuación:
nombre:
Nombre de usuario:
contraseña:
Confirmar contraseña:
E-mail:
teléfono:
Si usted no puede revalidar su buzón, el buzón se deshabilitará!
Disculpa las molestias.
Código de verificación: es: 006524
Correo Soporte Técnico © 2016
¡gracias
Sistemas administrador
^ permalink raw reply
* RE: [PATCH 2/4] isdn/eicon: fix some message formatting errors
From: David Laight @ 2016-10-31 13:42 UTC (permalink / raw)
To: 'Nicolas Iooss', Armin Schindler, Karsten Keil
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <20161029125605.13610-2-nicolas.iooss_linux@m4x.org>
From: Nicolas Iooss
> Sent: 29 October 2016 13:56
> There are some inconsistent debug message formats in message.c. For
> example,
>
> dprintf("XDI CAPI: RC cancelled Id:0x02, Ch:%02x", e->Id, ch);
>
> wrongly reports an ID of 2 and prints the entity ID as the channel ID.
> There are also object pointers which are used instead of the IDs.
>
> All these inconsistent formats have been found by adding __printf
> attribute to myDbgPrint_...() functions (used by dbug()). As this makes
> the compiler to also complain about using "%ld" with unsigned int values
> (instead of "%u")...
The problem isn’t 'u' <=> 'd' but the 'l'.
They need fixing as well.
It only appears to work because the 64bit architectures pass enough
arguments in registers.
David
^ permalink raw reply
* [PATCH v7 2/2] mac80211: multicast to unicast conversion
From: Michael Braun @ 2016-10-31 13:41 UTC (permalink / raw)
To: johannes-cdvu00un1VgdHxzADdlk8Q
Cc: Michael Braun, linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA,
projekt-wlan-3kN+8DYepx7zMJDuovMtMLNAH6kLmebB
In-Reply-To: <1477921260-24556-1-git-send-email-michael-dev-1SGGS//iJ+Y38rf8aCqVIw@public.gmane.org>
Add the ability for an AP (and associated VLANs) to perform
multicast-to-unicast conversion for ARP, IPv4 and IPv6 frames
(possibly within 802.1Q). If enabled, such frames are to be sent
to each station separately, with the DA replaced by their own
MAC address rather than the group address.
Note that this may break certain expectations of the receiver,
such as the ability to drop unicast IP packets received within
multicast L2 frames, or the ability to not send ICMP destination
unreachable messages for packets received in L2 multicast (which
is required, but the receiver can't tell the difference if this
new option is enabled.)
This also doesn't implement the 802.11 DMS (directed multicast
service).
Signed-off-by: Michael Braun <michael-dev-1SGGS//iJ+Y38rf8aCqVIw@public.gmane.org>
--
v7:
- avoid recursion
- style and description
v5:
- rename bss->unicast to bss->multicast_to_unicast
- access sdata->bss only after checking iftype
v4:
- rename MULTICAST_TO_UNICAST to MULTICAST_TO_UNICAST
v3: fix compile error for trace.h
v2: add nl80211 toggle
rename tx_dnat to change_da
change int to bool unicast
---
net/mac80211/cfg.c | 16 ++++++
net/mac80211/debugfs_netdev.c | 3 ++
net/mac80211/ieee80211_i.h | 1 +
net/mac80211/tx.c | 122 +++++++++++++++++++++++++++++++++++++++++-
4 files changed, 141 insertions(+), 1 deletion(-)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 1edb017..a861d85 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3345,6 +3345,21 @@ static int ieee80211_del_tx_ts(struct wiphy *wiphy, struct net_device *dev,
return -ENOENT;
}
+static int ieee80211_set_multicast_to_unicast(struct wiphy *wiphy,
+ struct net_device *dev,
+ const bool enabled)
+{
+ struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+
+ /* not supported with P2P_GO for now */
+ if (sdata->vif.type != NL80211_IFTYPE_AP)
+ return -EOPNOTSUPP;
+
+ sdata->u.ap.multicast_to_unicast = enabled;
+
+ return 0;
+}
+
const struct cfg80211_ops mac80211_config_ops = {
.add_virtual_intf = ieee80211_add_iface,
.del_virtual_intf = ieee80211_del_iface,
@@ -3430,4 +3445,5 @@ const struct cfg80211_ops mac80211_config_ops = {
.set_ap_chanwidth = ieee80211_set_ap_chanwidth,
.add_tx_ts = ieee80211_add_tx_ts,
.del_tx_ts = ieee80211_del_tx_ts,
+ .set_multicast_to_unicast = ieee80211_set_multicast_to_unicast,
};
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index ed7bff4..509c6c3 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -487,6 +487,8 @@ static ssize_t ieee80211_if_fmt_num_buffered_multicast(
}
IEEE80211_IF_FILE_R(num_buffered_multicast);
+IEEE80211_IF_FILE(multicast_to_unicast, u.ap.multicast_to_unicast, HEX);
+
/* IBSS attributes */
static ssize_t ieee80211_if_fmt_tsf(
const struct ieee80211_sub_if_data *sdata, char *buf, int buflen)
@@ -642,6 +644,7 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata)
DEBUGFS_ADD(dtim_count);
DEBUGFS_ADD(num_buffered_multicast);
DEBUGFS_ADD_MODE(tkip_mic_test, 0200);
+ DEBUGFS_ADD_MODE(multicast_to_unicast, 0600);
}
static void add_vlan_files(struct ieee80211_sub_if_data *sdata)
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 70c0963..84374ed 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -293,6 +293,7 @@ struct ieee80211_if_ap {
driver_smps_mode; /* smps mode request */
struct work_struct request_smps_work;
+ bool multicast_to_unicast;
};
struct ieee80211_if_wds {
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index c3ce86e..7271c93 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -16,6 +16,7 @@
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/skbuff.h>
+#include <linux/if_vlan.h>
#include <linux/etherdevice.h>
#include <linux/bitmap.h>
#include <linux/rcupdate.h>
@@ -3418,6 +3419,115 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb,
rcu_read_unlock();
}
+static int ieee80211_change_da(struct sk_buff *skb, struct sta_info *sta)
+{
+ struct ethhdr *eth;
+ int err;
+
+ err = skb_ensure_writable(skb, ETH_HLEN);
+ if (unlikely(err))
+ return err;
+
+ eth = (void *)skb->data;
+ ether_addr_copy(eth->h_dest, sta->sta.addr);
+
+ return 0;
+}
+
+static inline int
+ieee80211_multicast_to_unicast(struct sk_buff *skb, struct net_device *dev)
+{
+ struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+ const struct ethhdr *eth = (void *)skb->data;
+ const struct vlan_ethhdr *ethvlan = (void *)skb->data;
+ u16 ethertype;
+
+ if (likely(!is_multicast_ether_addr(eth->h_dest)))
+ return 0;
+
+ switch (sdata->vif.type) {
+ case NL80211_IFTYPE_AP_VLAN:
+ if (sdata->u.vlan.sta)
+ return 0;
+ if (sdata->wdev.use_4addr)
+ return 0;
+ /* fall through */
+ case NL80211_IFTYPE_AP:
+ /* check runtime toggle for this bss */
+ if (!sdata->bss->multicast_to_unicast)
+ return 0;
+ break;
+ default:
+ return 0;
+ }
+
+ /* multicast to unicast conversion only for some payload */
+ ethertype = ntohs(eth->h_proto);
+ if (ethertype == ETH_P_8021Q && skb->len >= VLAN_ETH_HLEN)
+ ethertype = ntohs(ethvlan->h_vlan_encapsulated_proto);
+ switch (ethertype) {
+ case ETH_P_ARP:
+ case ETH_P_IP:
+ case ETH_P_IPV6:
+ break;
+ default:
+ return 0;
+ }
+
+ return 1;
+}
+
+static void
+ieee80211_convert_to_unicast(struct sk_buff *skb, struct net_device *dev,
+ struct sk_buff_head *queue)
+{
+ struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+ struct ieee80211_local *local = sdata->local;
+ const struct ethhdr *eth = (struct ethhdr *)skb->data;
+ struct sta_info *sta, *first = NULL;
+ struct sk_buff *cloned_skb;
+
+ rcu_read_lock();
+
+ list_for_each_entry_rcu(sta, &local->sta_list, list) {
+ if (sdata != sta->sdata)
+ /* AP-VLAN mismatch */
+ continue;
+ if (unlikely(ether_addr_equal(eth->h_source, sta->sta.addr)))
+ /* do not send back to source */
+ continue;
+ if (!first) {
+ first = sta;
+ continue;
+ }
+ cloned_skb = skb_clone(skb, GFP_ATOMIC);
+ if (!cloned_skb)
+ goto unicast;
+ if (unlikely(ieee80211_change_da(cloned_skb, sta))) {
+ dev_kfree_skb(cloned_skb);
+ goto unicast;
+ }
+ __skb_queue_tail(queue, cloned_skb);
+ }
+
+ if (likely(first)) {
+ if (unlikely(ieee80211_change_da(skb, first)))
+ goto unicast;
+ __skb_queue_tail(queue, skb);
+ } else {
+ /* no STA connected, drop */
+ kfree_skb(skb);
+ skb = NULL;
+ }
+
+ goto out;
+unicast:
+ __skb_queue_purge(queue);
+ __skb_queue_tail(queue, skb);
+out:
+ rcu_read_unlock();
+}
+
/**
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs
* @skb: packet to be sent
@@ -3428,7 +3538,17 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb,
netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{
- __ieee80211_subif_start_xmit(skb, dev, 0);
+ if (unlikely(ieee80211_multicast_to_unicast(skb, dev))) {
+ struct sk_buff_head queue;
+
+ __skb_queue_head_init(&queue);
+ ieee80211_convert_to_unicast(skb, dev, &queue);
+ while ((skb = __skb_dequeue(&queue)))
+ __ieee80211_subif_start_xmit(skb, dev, 0);
+ } else {
+ __ieee80211_subif_start_xmit(skb, dev, 0);
+ }
+
return NETDEV_TX_OK;
}
--
2.1.4
^ permalink raw reply related
* [PATCH v7 1/2] nl80211: multicast_to_unicast can be changed while IFF_UP
From: Michael Braun @ 2016-10-31 13:40 UTC (permalink / raw)
To: johannes-cdvu00un1VgdHxzADdlk8Q
Cc: Michael Braun, linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA,
projekt-wlan-3kN+8DYepx7zMJDuovMtMLNAH6kLmebB
There is no need to prevent toggling multicast_to_unicast while
interface is already up. This change simplifies reconfiguration
from hostapd.
Signed-off-by: Michael Braun <michael-dev-1SGGS//iJ+Y38rf8aCqVIw@public.gmane.org>
---
net/wireless/nl80211.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 5349c63..7554400 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -11006,9 +11006,6 @@ static int nl80211_set_multicast_to_unicast(struct sk_buff *skb,
const struct nlattr *nla;
bool enabled;
- if (netif_running(dev))
- return -EBUSY;
^ permalink raw reply related
* Re: mv643xx_eth.c merge gone bad...
From: Andrew Lunn @ 2016-10-31 13:35 UTC (permalink / raw)
To: David Miller; +Cc: jgunthorpe, jarod, netdev
In-Reply-To: <20161031.091206.236633139585216348.davem@davemloft.net>
On Mon, Oct 31, 2016 at 09:12:06AM -0400, David Miller wrote:
> From: Andrew Lunn <andrew@lunn.ch>
> Date: Mon, 31 Oct 2016 12:33:49 +0100
>
> > The merge of commit 27058af401e49d88a905df000dd26f443fcfa8ce for
> > mv643xx_eth.c has gone bad:
>
> Sorry this should be fixed now.
Hi David
I think the SET_NETDEV_DEV() should be removed, which is what cause the merged conflict:
http://patchwork.ozlabs.org/patch/687294/
Andrew
^ permalink raw reply
* Re: [PATCHv2 net 0/3] sctp: a bunch of fixes by holding transport
From: Neil Horman @ 2016-10-31 13:25 UTC (permalink / raw)
To: Xin Long
Cc: network dev, linux-sctp, davem, Marcelo Ricardo Leitner,
Vlad Yasevich
In-Reply-To: <cover.1477916928.git.lucien.xin@gmail.com>
On Mon, Oct 31, 2016 at 08:32:30PM +0800, Xin Long wrote:
> There are several places where it holds assoc after getting transport by
> searching from transport rhashtable, it may cause use-after-free issue.
>
> This patchset is to fix them by holding transport instead.
>
> v1->v2:
> Fix the changelog of patch 2/3
>
> Xin Long (3):
> sctp: hold transport instead of assoc in sctp_diag
> sctp: return back transport in __sctp_rcv_init_lookup
> sctp: hold transport instead of assoc when lookup assoc in rx path
>
> include/net/sctp/sctp.h | 2 +-
> net/sctp/input.c | 35 +++++++++++++++++------------------
> net/sctp/ipv6.c | 2 +-
> net/sctp/socket.c | 5 +----
> 4 files changed, 20 insertions(+), 24 deletions(-)
>
> --
> 2.1.0
>
>
Series
Acked-by: Neil Horman <nhorman@tuxdriver.com>
^ permalink raw reply
* Re: [PATCH net] r8152: Fix broken RX checksums.
From: Mark Lord @ 2016-10-31 13:24 UTC (permalink / raw)
To: Hayes Wang, David Miller
Cc: nic_swsd, netdev@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <0835B3720019904CB8F7AA43166CEEB201047353@RTITMBSV03.realtek.com.tw>
On 16-10-31 04:14 AM, Hayes Wang wrote:
>
> Our hw engineer says only VER_01 has the issue about rx checksum.
> I need more information for checking it.
I've been doing driver work for Linux since 1991,
and learned long ago not to trust engineering specs 100%.
Get yourself a Raspberry Pi v1, set up an NFSROOT root filesystem for it,
and boot/run from that using the ethernet dongle to connect.
It should segfault like crazy when hardware RX checksums are enabled.
Definitely something wrong there, and whatever it is goes away
when RX checksums are disabled in the driver.
I have two theories as to why this happens:
1) The hardware buffer on the dongle overflows because the slow host CPU
does not empty it quickly enough. This results in a bad checksum on the
final/truncated packet in the buffer. The chip does not detect this.
2) Perhaps the device driver is looking at the wrong bits.
Either way, this results in data corruption and until otherwise fixed,
it is safest to just not enable RX checksums.
If it happens on a slow embedded CPU, then it can also happen on a heavily
loaded Intel/AMD CPU -- just a lot less frequently.
Cheers
--
Mark Lord
Real-Time Remedies Inc.
mlord@pobox.com
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox