cfg80211_unregister_wdev(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ cfg80211_unregister_wdev(9) πŸ¦‹

okay so this is a page from the Kernel API Manual β€” yes bestie, the kernel docs got a glow-up, we're reading them together now πŸ’…


✨ NAME ✨

cfg80211_unregister_wdev β€” remove the given wdev 🫢


✨ SYNOPSIS ✨

void cfg80211_unregister_wdev (struct wireless_dev *wdev );

✨ ARGUMENTS ✨

  • wdev β€” the struct wireless_dev you wanna remove, bestie. that's the one. πŸŽ€

✨ DESCRIPTION ✨

so like, this function removes the device so it can no longer be used β€” like, it's gone, it's not coming to the group chat anymore πŸ’€

and here's the part people get wrong, so listen up: it is necessary to call this function even when cfg80211 requests the removal of the device by calling the del_virtual_intf callback. yes, even then. no cap. the callback asking you to remove it does not mean you get to skip this πŸ”₯

also β€” the function must also be called when the driver wishes to unregister the wdev, e.g. when the hardware device is unbound from the driver. so like, hardware peacing out? you still call this. it's giving "always call me" energy πŸ‘‘

🌸 tl;dr β€” this is not optional. not a vibe. call it. periodt.

✨ CONTEXT ✨

requires the RTNL and wiphy mutex to be held πŸ”’

like, both of them. held. before you call this. do not come in here unlocked, i'm begging πŸ™ˆ


🌈 SEE ALSO 🌈

okay bestie, buckle up πŸ’– this is the part of the page that's basically the group chat of every single thing that hangs out with cfg80211_unregister_wdev(9). Like, the whole friend list. Every mutual. Not one of them is getting left on read, and yes, that means you're getting all of them, in order, no cap 🫢

First up, the source of truth β€” the actual file, the mothership:

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

✨ band, rate & capability lore ✨

the "what even is a channel" girlies, in the exact order the page serves them:

that's a lot of "iftype" for one sitting, but honestly? slay πŸŽ€


πŸ’… actions & configuration (the chandef cinematic universe) πŸ’…

the chandef ones really said "we are a family" and honestly, respect πŸ’œ

  • 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)
  • 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)

mesh, OCB, SAR, txq β€” the whole extended fam showed up πŸ”₯


πŸ¦‹ scanning & BSS list handling πŸ¦‹

  • 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)
  • 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)
  • 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)
  • 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)

auth β†’ assoc β†’ deauth β†’ disassoc, a whole situationship arc 😭 and then wowlan just vibing at the end


🧚 NAN, PMKSR & friends 🧚

  • 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)
  • 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)
  • struct cfg80211_ops(9)

struct cfg80211_ops(9) is the actual main character here, lowkey πŸ‘‘ everything else is supporting cast


🌸 the wiphy clique 🌸

new / register / unregister / free β€” the lifecycle arc ate, no notes πŸ’€βœ¨ and the work / delayed_work / hrtimer_work trio (queue / cancel / flush / pending) is giving very organized bestie energy


⭐ utility functions ⭐

channel β†’ khz β†’ freq β†’ channel, they're doing conversions like it's a personality trait πŸŽ€


πŸ“ data path helpers πŸ“

the find_* girlies said "elem" and "ie" are both valid and we're keeping both, periodt πŸ’…


πŸ”₯ regulatory enforcement infrastructure πŸ”₯

the regulatory stuff is serious business bestie β€” this is the part that decides what you're allowed to transmit on, so like… read it properly, don't just skim for the vibe check πŸ™ˆ

"internal" β€” so you know it's the private group chat, not the public one πŸ’€


🌈 BSS / scan internals (iykyk) 🌈

note the __cfg80211_get_bss(9) with the double underscore sitting right above cfg80211_get_bss(9) β€” that's the "you're not ready for me yet" version, chef's kiss πŸ‘‘


πŸ’œ RFkill integration πŸ’œ

start polling, stop polling, set the hw state reason β€” short, sweet, iconic 🌸


πŸŽ€ vendor commands πŸŽ€

alloc β†’ reply β†’ get_sender, and the event side has a _ucast sibling because unicast said "and I took that personally" πŸ’…


🫢 test mode 🫢

literally the same shape as the vendor ones, just in test-mode cosplay 🧚


😭 connect / roam / station notifications 😭

the cqm quartet (rssi / pktloss / txe / beacon_loss) really said "we notify as a unit" πŸ”” and cfg80211_connect_done(9) next to cfg80211_conn_failed(9) is giving hope and heartbreak in the same list πŸ’€

okay that's the whole SEE ALSO roster, all 300-something of them, not a single one skipped πŸ’– and we're not done yet β€” keep scrolling, bestie, there's more coming πŸ¦‹

…and the rest of the crew, all of them (9) pages, all of them your besties if you're deep in this subsystem 🫢


okay that's the whole posse, bestie πŸ’– every last one of them lives over in ./include/net, and this page is stamped October 2026 β€” so like, future-dated and still serving ✨ go read them, they're all right there, mwah πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from