wiphy_work_flush(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 wiphy_work_flush(9) 🌸

okay so first things first, the vibe check: this is a page straight out of the Kernel API Manual β€” that's the manual name, and yes it's giving very serious kernel energy, but we're gonna make it make sense together, bestie πŸ’–


✨ NAME ✨

wiphy_work_flush β€” flush previously queued work 🧹


πŸ¦‹ SYNOPSIS πŸ¦‹

void wiphy_work_flush (struct wiphy *wiphy , struct wiphy_work *work );

like, that's the whole signature. void in, void out, no return value to obsess over πŸŽ€


πŸ’… ARGUMENTS πŸ’…

  • wiphy β€” the wiphy, and before you ask: it's there for debug purposes only. it's literally just standing there being pretty so your logs can tell you who's who πŸ‘‘
  • work β€” the work you wanna flush. and here's the gag: this can be NULL to flush all work. so yes, passing NULL is not a mistake, it's a whole mood 🌈

⭐ DESCRIPTION ⭐

so what does it actually do? it flushes the work β€” meaning it runs it if it's pending. not "schedules it later," not "thinks about it," it just goes ahead and runs it πŸ”₯

⚠️ important, do not skip this part: this must be called under the wiphy mutex acquired by wiphy_lock. no lock, no call. that's the rule, periodt πŸ’€

like, genuinely, the whole correctness of this thing hinges on you holding that mutex, so please don't be the main character who forgets 🫢

🫢 the header itself (yes the whole page lives in one file, bestie)

  • Kernel file ./include/net/cfg80211.h
  • Introduction(9)
  • Device registration(9)

Like, everything below is a doc-page in that one header, so if you're lost, start at the Introduction and the Device registration one and work your way down. No cap.


πŸ“‘ channels, rates & bands (the radio-physics girlies)

(HT β†’ VHT β†’ HE β†’ EHT β†’ UHR is genuinely a whole glow-up timeline, we love an evolution arc πŸ’…)


πŸ› οΈ Actions and configuration (the get-shit-done section)

  • Actions and configuration(9)
  • struct vif_params(9)
  • struct key_params(9)
  • struct cfg80211_chan_def(9)
  • struct cfg80211_tid_cfg(9)
  • struct cfg80211_tid_config(9)
  • struct cfg80211_fils_aad(9)
  • struct cfg80211_set_hw_timestamp(9)

the channel-width math girlies ✨

survey, crypto & beacon material 🌸

  • enum survey_info_flags(9)
  • struct survey_info(9)
  • struct cfg80211_crypto_settings(9)
  • struct cfg80211_mbssid_config(9)
  • struct cfg80211_mbssid_elems(9)
  • struct cfg80211_rnr_elems(9)
  • struct cfg80211_beacon_data(9)
  • struct cfg80211_acl_data(9)
  • struct cfg80211_fils_discovery(9)
  • struct cfg80211_unsol_bcast_probe_resp(9)
  • struct cfg80211_s1g_short_beacon(9)
  • struct cfg80211_ap_settings(9)
  • struct cfg80211_ap_update(9)
  • struct cfg80211_csa_settings(9)
  • struct cfg80211_color_change_settings(9)
  • struct iface_combination_params(9)
  • enum station_parameters_apply_mask(9)
  • struct sta_txpwr(9)
  • struct link_station_parameters(9)
  • struct link_station_del_parameters(9)
  • struct cfg80211_ttlm_params(9)
  • struct station_parameters(9)
  • struct station_del_parameters(9)
  • enum cfg80211_station_type(9)
  • cfg80211_check_station_change(9)
  • enum rate_info_flags(9)
  • enum rate_info_bw(9)
  • struct rate_info(9)
  • enum bss_param_flags(9)
  • struct sta_bss_parameters(9)
  • struct cfg80211_txq_stats(9)
  • struct cfg80211_tid_stats(9)
  • struct link_station_info(9)
  • struct station_info(9)

SAR, monitor, mesh, OCB & txq πŸ¦‹

  • struct cfg80211_sar_sub_specs(9)
  • struct cfg80211_sar_specs(9)
  • struct cfg80211_sar_freq_ranges(9)
  • struct cfg80211_sar_capa(9)
  • cfg80211_get_station(9)
  • enum monitor_flags(9)
  • enum mpath_info_flags(9)
  • struct mpath_info(9)
  • enum wiphy_bss_param_flags(9)
  • struct bss_parameters(9)
  • struct mesh_config(9)
  • struct mesh_setup(9)
  • struct ocb_setup(9)
  • struct ieee80211_txq_params(9)

πŸ” Scanning and BSS list handling (the "who's out there" section)

  • Scanning and BSS list handling(9)
  • struct cfg80211_ssid(9)
  • struct cfg80211_scan_info(9)
  • struct cfg80211_scan_6ghz_params(9)
  • struct cfg80211_scan_request(9)
  • struct cfg80211_match_set(9)
  • struct cfg80211_sched_scan_plan(9)
  • struct cfg80211_bss_select_adjust(9)
  • struct cfg80211_sched_scan_request(9)
  • enum cfg80211_signal_type(9)
  • struct cfg80211_inform_bss(9)
  • struct cfg80211_bss_ies(9)
  • struct cfg80211_bss(9)
  • ieee80211_bss_get_elem(9)
  • ieee80211_bss_get_ie(9)

auth, assoc & the connect-era 🌈

  • struct cfg80211_auth_request(9)
  • struct cfg80211_assoc_link(9)
  • struct cfg80211_ml_reconf_req(9)
  • enum cfg80211_assoc_req_flags(9)
  • struct cfg80211_assoc_request(9)
  • struct cfg80211_deauth_request(9)
  • struct cfg80211_disassoc_request(9)
  • struct cfg80211_ibss_params(9)
  • struct cfg80211_bss_selection(9)
  • struct cfg80211_connect_params(9)
  • enum cfg80211_connect_params_changed(9)
  • enum wiphy_params_flags(9)
  • struct cfg80211_pmksa(9)

wowlan, coalesce & the sleepy-time tech πŸ’€

  • struct cfg80211_pkt_pattern(9)
  • struct cfg80211_wowlan_tcp(9)
  • struct cfg80211_wowlan(9)
  • struct cfg80211_coalesce_rules(9)
  • struct cfg80211_coalesce(9)
  • struct cfg80211_wowlan_nd_match(9)
  • struct cfg80211_wowlan_nd_info(9)
  • struct cfg80211_wowlan_wakeup(9)

mgmt tx, GTK rekey & QoS map πŸ‘‘

  • struct cfg80211_gtk_rekey_data(9)
  • struct cfg80211_update_ft_ies_params(9)
  • struct cfg80211_mgmt_tx_params(9)
  • struct cfg80211_dscp_exception(9)
  • struct cfg80211_dscp_range(9)
  • struct cfg80211_qos_map(9)

🧚 Neighbor Awareness Networking (NAN) (the proximity besties)

  • Neighbor Awareness Networking (NAN)(9)
  • struct cfg80211_nan_band_config(9)
  • struct cfg80211_nan_conf(9)
  • struct cfg80211_nan_channel(9)
  • struct cfg80211_nan_local_sched(9)
  • struct cfg80211_nan_peer_map(9)
  • struct cfg80211_nan_peer_sched(9)
  • enum cfg80211_nan_conf_changes(9)
  • struct cfg80211_nan_func_filter(9)
  • struct cfg80211_nan_func(9)

πŸ” auth, ranging & PMK stuff (trust issues, but make it 802.11)

  • struct cfg80211_pmk_conf(9)
  • struct cfg80211_external_auth_params(9)
  • struct cfg80211_ftm_responder_stats(9)
  • struct cfg80211_pmsr_ftm_result(9)
  • struct cfg80211_pmsr_result(9)
  • struct cfg80211_pmsr_ftm_request_peer(9)
  • struct cfg80211_pmsr_request_peer(9)
  • struct cfg80211_pmsr_request(9)
  • struct cfg80211_update_owe_info(9)
  • struct mgmt_frame_regs(9)

πŸ‘‘ ops, wiphy flags & iface combos (the driver-facing menu)

  • struct cfg80211_ops(9)
  • enum wiphy_flags(9)
  • struct ieee80211_iface_limit(9)
  • struct ieee80211_iface_combination(9)
  • enum wiphy_wowlan_support_flags(9)
  • struct wiphy_wowlan_support(9)
  • struct wiphy_coalesce_support(9)
  • enum wiphy_vendor_command_flags(9)
  • enum wiphy_opmode_flag(9)
  • struct sta_opmode_info(9)
  • struct wiphy_vendor_command(9)
  • struct wiphy_iftype_ext_capab(9)
  • cfg80211_get_iftype_ext_capa(9)
  • struct cfg80211_pmsr_capabilities(9)
  • struct wiphy_iftype_akm_suites(9)
  • struct wiphy_radio_cfg(9)
  • struct wiphy_radio_freq_range(9)
  • struct wiphy_radio(9)
  • enum wiphy_nan_flags(9)
  • struct wiphy_nan_capa(9)
  • struct wiphy(9)

πŸ’– the wiphy lifecycle & the work/lock girlies (hi yes this is our page's neighborhood)

(okay like β€” the flush/cancel/pending trio for each work flavor is literally the friend group you'll be spending your whole afternoon with 🫢)


πŸŽ€ wireless_dev & the netdev side (the other main character)


πŸ¦‹ Utility functions (grab-bag of lil helpers, obsessed)


πŸ”₯ Data path helpers (where the packets actually go)

(ie vs elem, plain vs ext vs vendor β€” yes bestie there are like eight finders and you WILL pick the wrong one at least once 😭)


🌍 Regulatory enforcement infrastructure (the law, but make it kernel)

πŸ”’ Internal regulatory db functions


πŸ“£ scan results, BSS inform & mgmt reports (the notifying girlies)


πŸ“Ά RFkill integration (the "airplane mode said no" corner)


πŸ›οΈ Vendor commands (everyone's custom little extras)

πŸ§ͺ Test mode


πŸ’Œ connect / roam / disconnect notifications (the emotional-support callbacks)


πŸ“¨ rx/tx status & CQM notifications (the last batch, we're so close 🫢)

ngl if you actually read this whole SEE ALSO list you're built different β€” every single one is a real page in cfg80211.h, so go click around, the lore is deep πŸ’€βœ¨

...still going, bestie, the SEE ALSO list is long long 😭 but every single one of these is linked up, so here's the rest of the crew:


okay that's genuinely the whole list, you made it 🫢 go forth and flush those works, bestie β€” and if you ever forget how, you know exactly where to look πŸ’…βœ¨

this lil page lives in ./include/net, dropped October 2026, and it's filed under wiphy_work_flush(9) πŸŽ€

πŸ“¦ where this page comes from