/* The fw only supports one peer. We do allow reconfiguration of the * same peer for cases of fw reset etc.
*/ if (time_sync && time_sync->active_protocols &&
!ether_addr_equal(addr, time_sync->peer_addr)) {
IWL_DEBUG_INFO(mld, "Time sync: reject config for peer: %pM\n",
addr); return -ENOBUFS;
}
if (protocols & ~(IWL_TIME_SYNC_PROTOCOL_TM |
IWL_TIME_SYNC_PROTOCOL_FTM)) return -EINVAL;
IWL_DEBUG_INFO(mld, "Time sync: set peer addr=%pM\n", addr);
iwl_mld_deinit_time_sync(mld);
err = iwl_mld_init_time_sync(mld, protocols, addr); if (err) return err;
time_sync = rcu_dereference(mld->time_sync); if (IWL_FW_CHECK(mld, !time_sync, "Time sync notification but time sync is not initialized\n")) {
rcu_read_unlock(); return NULL;
}
/* The notifications are expected to arrive in the same order of the * frames. If the incoming notification doesn't match the first SKB * in the queue, it means there was no time sync notification for this * SKB and it can be dropped.
*/ while ((skb = skb_dequeue(&time_sync->frame_list))) { if (iwl_mld_is_skb_match(skb, addr, dialog_token)) break;
kfree_skb(skb);
skb = NULL;
IWL_DEBUG_DROP(mld, "Time sync: drop SKB without matching notification\n");
}
rcu_read_unlock();
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:
(vorverarbeitet am 2026-06-07)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.