Re: [PATCH] Revert "wlcore: Adding suppoprt for IGTK key in wlcore driver"

From: Mauro Carvalho Chehab
Date: Fri Aug 28 2020 - 03:45:05 EST


Em Thu, 27 Aug 2020 13:36:28 -0700
Steve deRosier <derosier@xxxxxxxxx> escreveu:

> > > And let's revisit the discussion of having a kernel splat because an
> > > unrelated piece of code fails yet the driver does exactly what it is
> > > supposed to do. We shouldn't be dumping registers and stack-trace when
> > > the code that crashed has nothing to do with the registers and
> > > stack-trace outputted. It is a false positive. A simple printk WARN
> > > or ERROR should output notifying us that the chip firmware has crashed
> > > and why. IMHO.

Yeah, that WARN_ON() is disturbing.

Sometimes, it prints it here out of the blue at the first time it
tries to use WiFi:

[ 4.502250] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 4.542376] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 4.678228] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 4.719082] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 4.830243] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 4.870524] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 5.088650] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[ 5.095260] wlcore: WARNING Detected unconfigured mac address in nvs, derive from fuse instead.
[ 5.104030] wlcore: WARNING This default nvs file can be removed from the file system
[ 5.114699] wlcore: loaded
[ 5.270777] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 5.310835] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 5.414725] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 5.454684] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 5.751078] wlcore: PHY firmware version: Rev 8.2.0.0.243
[ 5.799065] wlcore: firmware booted (Rev 8.9.0.0.81)
[ 5.804035] wlcore: ERROR Couldn't parse firmware version string

[ 5.821800] wlcore: down
[ 5.946770] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 5.986777] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 6.878108] ------------[ cut here ]------------
[ 6.882741] WARNING: CPU: 3 PID: 297 at drivers/net/wireless/ti/wlcore/sdio.c:78 wl12xx_sdio_raw_read+0x11c/0x1c0 [wlcore_sdio]
[ 6.894220] Modules linked in: wl18xx wlcore mac80211 libarc4 cfg80211 rfkill snd_soc_hdmi_codec wlcore_sdio adv7511 cec kirin9xx_drm(C) crct10dif_ce kirin9xx_dw_drm_dsi(C) drm_kms_helper drm ip_tables x_tables ipv6 nf_defrag_ipv6
[ 6.914682] CPU: 3 PID: 297 Comm: NetworkManager Tainted: G C 5.8.0+ #197
[ 6.922771] Hardware name: HiKey970 (DT)
[ 6.926693] pstate: 60000005 (nZCv daif -PAN -UAO BTYPE=--)
[ 6.932263] pc : wl12xx_sdio_raw_read+0x11c/0x1c0 [wlcore_sdio]
[ 6.938181] lr : wl12xx_sdio_raw_read+0x8c/0x1c0 [wlcore_sdio]
[ 6.944009] sp : ffff800012793140
[ 6.947318] x29: ffff800012793140 x28: 0000000000000000
[ 6.952626] x27: ffff0001a79ba258 x26: ffff0001a79b9e80
[ 6.957935] x25: 0000000000000000 x24: ffff0001ac5db100
[ 6.963243] x23: 0000000000000004 x22: ffff0001b19b1810
[ 6.968552] x21: ffff0001b17a0000 x20: 0000000000013738
[ 6.973859] x19: ffff0001b6988800 x18: 00000002e3eebd18
[ 6.979168] x17: 0000000000000001 x16: 0000000000000001
[ 6.984476] x15: 0008291e1896a232 x14: 0008290c7b540ede
[ 6.989784] x13: 00000000000003c4 x12: 00000000fa83b2da
[ 6.995093] x11: 00000000000003c4 x10: 00000000000009c0
[ 7.000401] x9 : ffff800012792d20 x8 : ffff0001b17a0a20
[ 7.005708] x7 : 0000000000000001 x6 : 0000000001fb396f
[ 7.011017] x5 : 00ffffffffffffff x4 : 0000000000000000
[ 7.016325] x3 : ffff0001b760e104 x2 : 0000000000000000
[ 7.021633] x1 : ffff0001b17a0000 x0 : 00000000ffffff92
[ 7.026943] Call trace:
[ 7.029386] wl12xx_sdio_raw_read+0x11c/0x1c0 [wlcore_sdio]
[ 7.034978] wl18xx_boot+0x414/0x890 [wl18xx]
[ 7.039373] wl1271_op_add_interface+0x784/0xa60 [wlcore]
[ 7.044843] drv_add_interface+0x38/0x84 [mac80211]
[ 7.049750] ieee80211_do_open+0x59c/0x8cc [mac80211]
[ 7.054829] ieee80211_open+0x48/0x70 [mac80211]
[ 7.059453] __dev_open+0xe4/0x190
[ 7.062852] __dev_change_flags+0x180/0x1f0
[ 7.067031] dev_change_flags+0x24/0x64
[ 7.070866] do_setlink+0x20c/0xc40
[ 7.074349] __rtnl_newlink+0x500/0x820
[ 7.078180] rtnl_newlink+0x4c/0x80
[ 7.081664] rtnetlink_rcv_msg+0x11c/0x340
[ 7.085759] netlink_rcv_skb+0x58/0x11c
[ 7.089591] rtnetlink_rcv+0x18/0x2c
[ 7.093163] netlink_unicast+0x25c/0x320
[ 7.097080] netlink_sendmsg+0x190/0x3a0
[ 7.101003] ____sys_sendmsg+0x1d8/0x230
[ 7.104921] ___sys_sendmsg+0x80/0xd0
[ 7.108579] __sys_sendmsg+0x68/0xc4
[ 7.112150] __arm64_sys_sendmsg+0x28/0x3c
[ 7.116247] el0_svc_common.constprop.0+0x6c/0x170
[ 7.121035] do_el0_svc+0x24/0x90
[ 7.124347] el0_sync_handler+0x90/0x19c
[ 7.128266] el0_sync+0x158/0x180
[ 7.131576] ---[ end trace 4dc4a75fcea462c4 ]---
[ 7.136220] wl1271_sdio mmc0:0001:2: sdio read failed (-110)

It then continues:

[ 7.262730] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 7.302704] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 7.406723] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 7.446674] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 7.738299] wlcore: PHY firmware version: Rev 8.2.0.0.243
[ 7.787048] wlcore: firmware booted (Rev 8.9.0.0.81)
[ 7.792020] wlcore: ERROR Couldn't parse firmware version string

[ 16.536187] random: crng init done
[ 16.539597] random: 7 urandom warning(s) missed due to ratelimiting
[ 23.820340] wlcore: down
[ 24.534944] wlan0: authenticate with de:ad:de:ad:de:ad
[ 24.542583] wlan0: send auth to de:ad:de:ad:de:ad (try 1/3)
[ 24.561316] wlan0: authenticated
[ 24.568198] wlan0: associate with de:ad:de:ad:de:ad (try 1/3)
[ 24.575998] wlan0: RX AssocResp from de:ad:de:ad:de:ad (capab=0x431 status=0 aid=3)
[ 24.589510] wlan0: associated

And WiFi works properly.

Maybe it is not properly handling -EPROBE_DEFER somewhere.


Thanks,
Mauro