Search Linux Wireless

MLO failing due to attempting wrong link-id

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

 



Hello Johannes et al,

I have an AP that is advertising MLO link 1 and 2 (but not zero).  I'm using be200
6.10 ish kernel, be200 hacked to enable MLO.

I am seeing that the method below is failing because link_id is set to 0,
and link and link_sta both end up at NULL.  When this happens, I see only
one active link (and no dormant ones) when looking at those fields in debugfs,
but there is a second link at least partially constructed and seen in debugfs.

I'm going to keep digging at this, but curious if this is already known
issue and fixed by some of the pending 6.11 patches?


static int sta_link_apply_parameters(struct ieee80211_local *local,
				     struct sta_info *sta, bool new_link,
				     struct link_station_parameters *params)
{
	int ret = 0;
	struct ieee80211_supported_band *sband;
	struct ieee80211_sub_if_data *sdata = sta->sdata;
	u32 link_id = params->link_id < 0 ? 0 : params->link_id;
	struct ieee80211_link_data *link =
		sdata_dereference(sdata->link[link_id], sdata);
	struct link_sta_info *link_sta =
		rcu_dereference_protected(sta->link[link_id],
					  lockdep_is_held(&local->hw.wiphy->mtx));

	/*
	 * If there are no changes, then accept a link that exist,
	 * unless it's a new link.
	 */
	if (params->link_id >= 0 && !new_link &&
	    !params->link_mac && !params->txpwr_set &&
	    !params->supported_rates_len &&
	    !params->ht_capa && !params->vht_capa &&
	    !params->he_capa && !params->eht_capa &&
	    !params->opmode_notif_used)
		return 0;

	if (!link || !link_sta) {
		sdata_info(sdata, "sta-link-apply-parameters failed: link: %p  link_sta: %p link-id: %d new-link: %d\n",
			   link, link_sta, link_id, new_link);
		return -EINVAL;
	}

Thanks,
Ben

--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc  http://www.candelatech.com





[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