lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 18 Nov 2021 16:43:26 +1100
From:   Jupiter <jupiter.hce@...il.com>
To:     linux-wireless <linux-wireless@...r.kernel.org>
Cc:     netdev@...r.kernel.org, Nishant Sarmukadam <nishants@...vell.com>
Subject: Re: mwifiex_sdio and mwifiex failure

Hi,

After debugging, I figured out why mwifiex failed and could not be
recovered, but I don't understand why, appreciate anyone's kind
advice.

I have both mwifiex_sdio and mwifiex modules installed during kernel
booting, here is how I manually made it failure:

# lsmod
Module                  Size  Used by
mwifiex_sdio           36864  0
mwifiex               278528  1 mwifiex_sdio
option                 45056  0
usb_wwan               20480  1 option
usbserial              36864  2 option,usb_wwan
evbug                  16384  0

# ifconfig
mlan0     Link encap:Ethernet  HWaddr D4:CA:6E:A4:E9:D4
          inet addr:192.168.0.102  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:107 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13059 (12.7 KiB)  TX bytes:13989 (13.6 KiB)

Now I made it failure:

# modprobe -r mwifiex_sdio
[ 1609.691798] mwifiex_sdio mmc0:0001:1: info: shutdown mwifiex...
[ 1609.774118] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
[ 1610.019431] mwifiex_sdio mmc0:0001:1: deleting the crypto keys

# lsmod
Module                  Size  Used by
option                 45056  0
usb_wwan               20480  1 option
usbserial              36864  2 option,usb_wwan
evbug                  16384  0

The WiFi interface was gone.

# modprobe mwifiex_sdio
[ 1634.073391] mwifiex_sdio mmc0:0001:1: WLAN FW already running! Skip FW dnld
[ 1634.080781] mwifiex_sdio mmc0:0001:1: WLAN FW is active

[ 1644.176847] mwifiex_sdio mmc0:0001:1: mwifiex_cmd_timeout_func:
Timeout cmd id = 0xa9, act = 0x0
[ 1644.186272] mwifiex_sdio mmc0:0001:1: num_data_h2c_failure = 0
[ 1644.192181] mwifiex_sdio mmc0:0001:1: num_cmd_h2c_failure = 0
[ 1644.198224] mwifiex_sdio mmc0:0001:1: is_cmd_timedout = 1
[ 1644.203691] mwifiex_sdio mmc0:0001:1: num_tx_timeout = 0
[ 1644.209181] mwifiex_sdio mmc0:0001:1: last_cmd_index = 1
[ 1644.214563] mwifiex_sdio mmc0:0001:1: last_cmd_id: 00 00 a9 00 00
00 00 00 00 00
[ 1644.222127] mwifiex_sdio mmc0:0001:1: last_cmd_act: 00 00 00 00 00
00 00 00 00 00
[ 1644.229767] mwifiex_sdio mmc0:0001:1: last_cmd_resp_index = 0
[ 1644.235576] mwifiex_sdio mmc0:0001:1: last_cmd_resp_id: 00 00 00 00
00 00 00 00 00 00
[ 1644.243565] mwifiex_sdio mmc0:0001:1: last_event_index = 0
[ 1644.249200] mwifiex_sdio mmc0:0001:1: last_event: 00 00 00 00 00 00
00 00 00 00
[ 1644.256667] mwifiex_sdio mmc0:0001:1: data_sent=0 cmd_sent=0
[ 1644.262386] mwifiex_sdio mmc0:0001:1: ps_mode=0 ps_state=0
[ 1644.277044] mwifiex_sdio mmc0:0001:1: info: _mwifiex_fw_dpc:
unregister device

That made mwifiex_sdio failed and no longer be able to be recovered

# lsmod
Module                  Size  Used by
mwifiex_sdio           36864  0
mwifiex               278528  1 mwifiex_sdio
option                 45056  0
usb_wwan               20480  1 option
usbserial              36864  2 option,usb_wwan
evbug                  16384  0

# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:102 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8222 (8.0 KiB)  TX bytes:8222 (8.0 KiB)

Is it because restoring mwifiex_sdio could not restore crypto keys?

Could you please advise why running modprobe mwifiex_sdio is not working?

Thank you very much.

Kind regards,

- jupiter


On 11/13/21, Jupiter <jupiter.hce@...il.com> wrote:
> Hi,
>
> I am work on a Linux embedded IoT device including both 4G LTE and
> WiFi modems, I use linux-firmware-sd8801 and Marvell driver
> mwifiex_sdio.ko and mwifiex.ko drivers, it works well for a couple of
> days, then the WiFi failed which could be caused by low WiFi signal
> strength level, but that should not cause the mwifiex_sdio errors.
> While the connman was able to switch from WiFi connection to 4G LTE
> connection automatically, following error messages popped up in
> console and kernel logs every second to consume lots of resources
> despite the 4G LTE being connected and worked perfectly.
> ...............
> [924785.415505] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
> [924807.818102] mwifiex_sdio mmc0:0001:1: Ignore scan. Card removed or
> firmware in bad state
> [924808.406775] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
> ...........
>
> I am not quite sure if the error message indicated the mwifiex_sdio or
> kernel crash or not, but given the 4G LTE was connected fine, the
> device was still in good operation, I don't think it is a kernel crash
> sign.
>
> My questions are:
>
> (a) Is there any way to recover the mwifiex_sdio or reset
> mwifiex_sdio? I tried modprobe -r mwifiex_sdio, modprobe mwifiex_sdio
> and modprobe mwifiex, but that crashed my debug console despite the
> device was still in good operation. I could only make it recover by
> rebooting the device which was not a good solution as it was operated
> 24 / 7.
>
> (b) If there is no way to recover or reset mwifiex_sdio, are there any
> methods to suppress mwifiex_sdio endless error messages to both debug
> console and to kernel logs?
>
> Thank you.
>
> Kind regards,
>
> - jh
>


--
"A man can fail many times, but he isn't a failure until he begins to
blame somebody else."
-- John Burroughs

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ