arc_emac_rx_stall_check(9)
π arc_emac_rx_stall_check(9) β like, the kernel API manual, bestie
okay so this is a page from the Kernel API Manual and honestly? it's giving "small function, big rescue mission." let's get into it β¨
πΈ NAME
arc_emac_rx_stall_check β the function that checks for an RX stall π«Ά
π SYNOPSIS
void arc_emac_rx_stall_check (struct net_device *ndev , int budget ,
unsigned int work_done );
no cap, that's the whole signature. void return, three args, we move π
β¨ ARGUMENTS
ndevβ a pointer to thestruct net_devicestructure. like, the actual network device we're checking on πbudgetβ how many BDs are requested to process on 1 call. that's the cap for a single round, periodt.work_doneβ how many BDs got processed. the receipts of what already happened π
π¦ DESCRIPTION
okay so here's the drama π β under certain conditions, EMAC just stops receiving incoming packets. like, fully ghosts them. and instead of saving the data into the provided buffer, it just keeps continuously incrementing the R_MISS register. rude honestly.
this function detects that exact condition and restarts EMAC. that's it, that's the whole glow-up. it notices the vibe is off and hits the reset button so reception comes back π₯
π SEE ALSO
kernel file ./drivers/net/ethernet/arc/emac_main.c β and the whole friend group of related calls:
arc_emac_tx_avail(9)arc_emac_adjust_link(9)arc_emac_get_drvinfo(9)arc_emac_tx_clean(9)arc_emac_rx(9)arc_emac_rx_miss_handle(9)arc_emac_poll(9)arc_emac_intr(9)arc_emac_open(9)arc_emac_set_rx_mode(9)arc_free_tx_queue(9)arc_free_rx_queue(9)arc_emac_stop(9)arc_emac_stats(9)arc_emac_tx(9)arc_emac_set_address(9)arc_emac_restart(9)
anyway that's the page π sourced from ./drivers/net/ethernet/arc, stamped October 2026, and it's literally signed arc_emac_rx_stall_check(9). go off, little net driver function ππ
π¦ 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