On Tue, Apr 27, 2021 at 11:32:49PM +0200, Stefan Sperling wrote:
> On Tue, Apr 27, 2021 at 06:36:32PM +0000, Mikolaj Kucharski wrote:
> > I got it again, but had official snapshot, so I don't have more info
> > than I had in the past, but I would like to share it anyway..
>
> > ddb{0}> show panic
> > ieee80211_encrypt: key unset for sw crypto: 0
>
> It would be nice to have more information about the bad key.
> Could you run with this?
>
> diff 87962d75d1c1a416b89e927cd4ab8e3327a47509 /usr/src
> blob - 037aca21138df15a4b0b8ec2a96afd8d67c5e3cc
> file + sys/net80211/ieee80211_crypto.c
> --- sys/net80211/ieee80211_crypto.c
> +++ sys/net80211/ieee80211_crypto.c
> @@ -257,8 +257,10 @@ struct mbuf *
> ieee80211_encrypt(struct ieee80211com *ic, struct mbuf *m0,
> struct ieee80211_key *k)
> {
> - if ((k->k_flags & IEEE80211_KEY_SWCRYPTO) == 0)
> - panic("%s: key unset for sw crypto: %d", __func__, k->k_id);
> + if ((k->k_flags & IEEE80211_KEY_SWCRYPTO) == 0) {
> + panic("%s: key unset for sw crypto: id=%d cipher=%d flags=0x%x",
> + __func__, k->k_id, k->k_cipher, k->k_flags);
> + }
>
> switch (k->k_cipher) {
> case IEEE80211_CIPHER_WEP40:
Finally managed to `got rebase` all my testing diffs with above
included and build new kernel. Not deployed yet. Panic is very rare,
looking at my logs it's between once per quarter and even once per
half of a year. I'm not always in a position to quickly rebase my
testing diffs and sometimes I just deploy official snapshot, because
sysupgrade makes it so super easy.
Do you think above could be committed to HEAD?
Wrong place, wong time.. but could `got rebase` return dedicated
exit code for below situation?
$ got rebase main
got: refs/heads/main is already based on refs/heads/key-unset-printf-trigger
At present it's exit code 1, but if that would be lets say 2, I could
improve my automation script to rebase stack of my diffs and rebuild
my custom kernel in more efficient manner. Probably without human
intervention.
--
Regards,
Mikolaj