ksz9477_acl_wait_ready(9)
π ksz9477_acl_wait_ready(9) β from the Kernel API Manual, bestie
okay so picture this: you're deep in the Microchip DSA driver, you just kicked off an ACL read or write, and now you're sitting there like π waiting for the hardware to finish. That's this function. It's the "girl, are we done yet?" of kernel functions, and it's lowkey doing the lord's work.
β¨ NAME β¨
ksz9477_acl_wait_ready β Waits for the ACL operation to complete on a given port.
Like literally, it waits. Patient queen behavior. π
π SYNOPSIS π
int ksz9477_acl_wait_ready (struct ksz_device *dev , int port );
πΈ ARGUMENTS πΈ
devβ Theksz_deviceinstance. That's your whole switch vibe right there. π«Άportβ The port number to wait for. Yes, the specific one. She's not waiting for all of them, she's waiting for this one. π―
π¦ DESCRIPTION π¦
This function checks if the ACL write or read operation is completed by polling the specified register. That's it, that's the whole thing β it's a polling loop, no interrupts, no fancy async drama, just checking and re-checking until the hardware says "done bestie β¨". It's giving patient, it's giving persistent, it's giving main character energy fr fr.
β RETURN β
0if the operation is successful π- a negative error code if an error occurs π
No cap, that's the whole return contract. Check your return value, bestie, don't just ignore it. π
π SEE ALSO π
The source lives at kernel file ./drivers/net/dsa/microchip/ksz9477_acl.c β go read it, it's iconic. π§
And here's the whole friend group, all of them, every single one, no skips:
ksz9477_dump_acl_index(9)ksz9477_dump_acl(9)ksz9477_acl_is_valid_matching_rule(9)ksz9477_acl_get_cont_entr(9)ksz9477_acl_update_linkage(9)ksz9477_validate_and_get_src_count(9)ksz9477_move_entries_downwards(9)ksz9477_move_entries_upwards(9)ksz9477_acl_move_entries(9)ksz9477_get_next_block_start(9)ksz9477_swap_acl_blocks(9)ksz9477_sort_acl_entr_no_back(9)ksz9477_sort_acl_entries(9)ksz9477_acl_entry_write(9)ksz9477_acl_port_enable(9)ksz9477_acl_port_disable(9)ksz9477_acl_write_list(9)ksz9477_acl_remove_entries(9)ksz9477_port_acl_init(9)ksz9477_port_acl_free(9)ksz9477_acl_set_reg(9)ksz9477_acl_matching_rule_cfg_l2(9)ksz9477_acl_action_rule_cfg(9)ksz9477_acl_processing_rule_set_action(9)ksz9477_acl_processing_rule_add_match(9)ksz9477_acl_get_init_entry(9)ksz9477_acl_match_process_l2(9)
tl;dr: you call it, it polls the register, you get 0 or a negative error code. That's the tea. βπ
and that's a wrap, babe π this lil page came straight out of the kernel source nest at ./drivers/net/dsa/microchip and it's dated October 2026 β slay, go poll that register, ily πβ¨
π¦ 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