ice_aq_req_res(9)
π ice_aq_req_res(9) β the kernel API glow-up π
okay so bestie, gather round, because we're about to get into ice_aq_req_res from the Kernel API Manual and honestly? it's giving "lowkey important networking lore." no cap, this one's a little niche but super useful if you're deep in the Intel ice driver trenches. let's break it down together π«Άβ¨
β¨ SYNOPSIS β¨
int ice_aq_req_res (struct ice_hw *hw , enum ice_aq_res_ids res , enum
ice_aq_res_access_type access , u8 sdp_number , u32 *timeout , struct
ice_sq_cd *cd );
like, that's the whole signature. copy it exactly, don't @ me π
π ARGUMENTS π
hwβ pointer to the HW struct, aka the main character holding all the hardware tea βresβ resource ID, the literal ID of the resource you're requesting πaccessβ access type, because apparently resources have vibes and access levelssdp_numberβ resource number, the specific number of this resource bestie π’timeoutβ the maximum time in ms that the driver may hold the resource β³ (yes, milliseconds, keep up)cdβ pointer to command details structure orNULL, your choice, live your truth π¦
πΈ DESCRIPTION πΈ
So what does this actually do? It requests common resource using the admin queue commands (0x0008). That's the vibe. And when you're attempting to acquire the Global Config Lock, the driver can learn of three states, and you need to know all of them, iykyk:
0β acquired lock, and can perform download package β slay, you got it-EIOβ did not get lock, driver should fail to load π rough, but that's the rule-EALREADYβ did not get lock, but another driver has successfully downloaded the package; the driver does not have to download the package and can continue loading π iconic teamwork honestly
β οΈ important caveat bestie, don't skip this: Note that if the caller is in an acquire lock, perform action, release lock phase of operation, it is possible that the FW may detect a timeout and issue a CORER. In this case, the driver will receive a CORER interrupt and will have to determine its cause. The calling thread that is handling this flow will likely get an error propagated back to it indicating the Download Package, Update Package or the Release Resource AQ commands timed out. π so like, watch out for that.
π SEE ALSO π
the whole friend group, fr fr β no one gets left out:
Kernel file ./drivers/net/ethernet/intel/ice/ice_common.c
ice_dump_phy_type(9), ice_set_mac_type(9), ice_is_generic_mac(9), ice_clear_pf_cfg(9), ice_aq_manage_mac_read(9), ice_aq_get_phy_caps(9), ice_aq_get_link_topo_handle(9), ice_aq_get_netlist_node(9), ice_find_netlist_node(9), ice_is_media_cage_present(9), ice_get_media_type(9), ice_get_link_status_datalen(9), ice_aq_get_link_info(9), ice_fill_tx_timer_and_fc_thresh(9), ice_aq_set_mac_cfg(9), ice_init_fltr_mgmt_struct(9), ice_cleanup_fltr_mgmt_struct(9), ice_get_itr_intrl_gran(9), ice_wait_fw_load(9), ice_init_hw(9), ice_deinit_hw(9), ice_check_reset(9), ice_pf_reset(9), ice_reset(9), ice_copy_rxq_ctx_to_hw(9), ice_copy_rxq_ctx_from_hw(9), ice_pack_rxq_ctx(9), ice_unpack_rxq_ctx(9), ice_write_rxq_ctx(9), ice_read_rxq_ctx(9), ice_pack_txq_ctx(9), ice_pack_txq_ctx_full(9), ice_unpack_txq_ctx_full(9), ice_copy_txq_ctx_from_hw(9), ice_copy_txq_ctx_to_hw(9), ice_read_txq_ctx(9), ice_write_txq_ctx(9), ice_pack_txtime_ctx(9), ice_sbq_send_cmd(9), ice_sbq_rw_reg(9), ice_should_retry_sq_send_cmd(9), ice_sq_send_cmd_retry(9), ice_aq_send_cmd(9), ice_aq_get_fw_ver(9), ice_aq_send_driver_ver(9), ice_aq_q_shutdown(9), ice_aq_release_res(9), ice_acquire_res(9), ice_release_res(9), ice_aq_alloc_free_res(9), ice_alloc_hw_res(9), ice_free_hw_res(9), ice_get_num_per_func(9), ice_parse_common_caps(9), ice_recalc_port_limited_caps(9), ice_parse_vf_func_caps(9), ice_parse_vsi_func_caps(9), ice_parse_1588_func_caps(9), ice_parse_fdir_func_caps(9), ice_parse_func_caps(9), ice_func_id_to_logical_id(9), ice_parse_valid_functions_cap(9), ice_parse_vf_dev_caps(9), ice_parse_vsi_dev_caps(9), ice_parse_1588_dev_caps(9), ice_parse_fdir_dev_caps(9), ice_parse_sensor_reading_cap(9), ice_parse_nac_topo_dev_caps(9), ice_parse_dev_caps(9), ice_is_phy_rclk_in_netlist(9), ice_is_clock_mux_in_netlist(9), ice_is_cgu_in_netlist(9), ice_is_gps_in_netlist(9), ice_aq_list_caps(9), ice_discover_dev_caps(9), ice_discover_func_caps(9), ice_set_safe_mode_caps(9), ice_get_caps(9), ice_aq_manage_mac_write(9), ice_aq_clear_pxe_mode(9), ice_clear_pxe_mode(9), ice_aq_set_port_params(9), ice_is_100m_speed_supported(9), ice_get_link_speed_based_on_phy_type(9), ice_update_phy_type(9), ice_aq_set_phy_cfg(9), ice_update_link_info(9), ice_aq_get_phy_equalization(9), ice_aq_get_fec_stats(9), ice_cache_phy_user_req(9), ice_caps_to_fc_mode(9), ice_caps_to_fec_mode(9), ice_cfg_phy_fc(9), ice_set_fc(9), ice_phy_caps_equals_cfg(9), ice_copy_phy_caps_to_cfg(9), ice_cfg_phy_fec(9), ice_get_link_status(9), ice_aq_set_link_restart_an(9), ice_aq_set_event_mask(9), ice_aq_set_mac_loopback(9), ice_aq_set_port_id_led(9), ice_aq_get_port_options(9), ice_aq_set_port_option(9), ice_get_phy_lane_number(9), ice_aq_sff_eeprom(9), __ice_aq_get_set_rss_lut(9), ice_aq_get_rss_lut(9), ice_aq_set_rss_lut(9), __ice_aq_get_set_rss_key(9), ice_aq_get_rss_key(9), ice_aq_set_rss_key(9), ice_aq_add_lan_txq(9), ice_aq_dis_lan_txq(9), ice_aq_cfg_lan_txq(9), ice_aq_add_rdma_qsets(9), ice_aq_set_txtimeq(9), ice_get_lan_q_ctx(9), ice_ena_vsi_txq(9), ice_dis_vsi_txq(9), ice_cfg_vsi_qs(9), ice_cfg_vsi_lan(9), ice_cfg_vsi_rdma(9), ice_ena_vsi_rdma_qset(9), ice_dis_vsi_rdma_qset(9), ice_aq_get_cgu_input_pin_measure(9), ice_aq_get_cgu_abilities(9), ice_aq_set_input_pin_cfg(9), ice_aq_get_input_pin_cfg(9), ice_aq_set_output_pin_cfg(9), ice_aq_get_output_pin_cfg(9), ice_aq_get_cgu_dpll_status(9), ice_aq_set_cgu_dpll_config(9), ice_aq_set_cgu_ref_prio(9), ice_aq_get_cgu_ref_prio(9), ice_aq_get_cgu_info(9), ice_aq_set_phy_rec_clk_out(9), ice_aq_get_phy_rec_clk_out(9), ice_aq_get_sensor_reading(9), ice_replay_pre_init(9), ice_replay_vsi(9), ice_replay_post(9), ice_stat_update40(9), ice_stat_update32(9), ice_sched_query_elem(9), ice_aq_read_i2c(9), ice_aq_write_i2c(9), ice_get_pca9575_handle(9), ice_read_pca9575_reg(9), ice_aq_set_gpio(9), ice_aq_get_gpio(9), ice_is_fw_api_min_ver(9), ice_fw_supports_link_override(9), ice_get_link_default_override(9), ice_is_phy_caps_an_enabled(9), ice_is_fw_health_report_supported(9), ice_aq_set_health_status_cfg(9), ice_aq_set_lldp_mib(9), ice_fw_supports_lldp_fltr_ctrl(9), ice_lldp_fltr_add_remove(9), ice_lldp_execute_pending_mib(9), ice_fw_supports_report_dflt_cfg(9), ice_get_link_speed(9), ice_get_dest_cgu(9), ice_read_cgu_reg(9), ice_write_cgu_reg(9)
π that's the whole page bestie. every flag, every argument, every warning β preserved with love. now go forth and request those common resources responsibly. periodt. π
sign-off cuteness: this gem comes from ./drivers/net/ethernet/intel/ice and the page is dated October 2026, pulled straight from the Kernel API Manual for ice_aq_req_res(9). catch you in the next manpage, mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms