Search Linux Wireless

Re: KASAN memory detection problem with be200 in 6.7 + hacks.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/9/23 17:01, Ben Greear wrote:
So, this log is huge.  The problem could easily start with the firmware crash,
though not certain of that.  I have a bunch of radios attempting to associate,
in order to reproduce the problems faster, but a single radio will cause the same
or similar issue after some time.

[snip big bug report]

I am thinking the problem I hit might originate in this code below.

The radio's firmware has crashed and/or is bugging at this point,
user-space is trying to admin down the wlan.  But, the code below
probably restores the configuration instead of actually cleaning
it up as expected.

So maybe we need at least option to not roll back to the old config in
cases where we really need to clean things up?

	ret = ieee80211_check_dup_link_addrs(sdata);
	if (!ret) {
		/* for keys we will not be able to undo this */
		ieee80211_tear_down_links(sdata, to_free, rem);

		ieee80211_set_vif_links_bitmaps(sdata, new_links, dormant_links);

		/* tell the driver */
		ret = drv_change_vif_links(sdata->local, sdata,
					   old_links & old_active,
					   new_links & sdata->vif.active_links,
					   old);
		if (!new_links)
			ieee80211_debugfs_recreate_netdev(sdata, false);
	}

	if (ret) {
		sdata_info(sdata, "vif-update-links, error applying links: %d  Restoring old configuration, links: 0x%x  dormant_links: 0x%x\n",
			   ret, old_links, dormant_links);
		/* restore config */
		memcpy(sdata->link, old_data, sizeof(old_data));
		memcpy(sdata->vif.link_conf, old, sizeof(old));
		ieee80211_set_vif_links_bitmaps(sdata, old_links, dormant_links);
		/* and free (only) the newly allocated links */
		memset(to_free, 0, sizeof(links));
		goto free;
	}


Thanks,
Ben




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux