axienet_rx_irq(9)
π axienet_rx_irq β Rx Isr β¨
okay bestie, so this is a page straight out of the Kernel API Manual (that's the manual name, keep it in your notes π), and it's about one tiny but iconic little function. Let's get into it π
πΈ NAME πΈ
axienet_rx_irq β the Rx Isr. that's it, that's the whole vibe. receive-side interrupt service routine, main character energy π«Ά
β¨ SYNOPSIS β¨
irqreturn_t axienet_rx_irq (int irq , void *_ndev );
like yes, two args, one return type, no notes π
π¦ ARGUMENTS π¦
irqβ the irq number. yep, just the number of the interrupt we're dealing with, no cap π₯_ndevβ anet_devicepointer. lowkey the important one π
π RETURN π
IRQ_HANDLEDβ if the device actually generated a RX interrupt (slay, we handled it β )IRQ_NONEβ otherwise (not us, not our interrupt, we move on π)
π§ DESCRIPTION π§
okay so. this is the Axi DMA Rx Isr π and what it does is genuinely so simple it's giving minimalism: it invokes NAPI polling to complete the RX BD processing. that's the whole thing. it hands the actual finishing work off to NAPI like the responsible queen it is π
literally: interrupt fires β function says "not doing all that here" β NAPI polling takes over β RX BD processing gets completed π
π SEE ALSO π
the entire friend group, fr fr π β first up, the kernel file where all of this lives:
./drivers/net/ethernet/xilinx/xilinx_axienet_main.c
and then the whole squad of sibling functions, all (9):
axienet_dma_in32(9)axienet_dma_bd_release(9)axienet_calc_cr(9)axienet_coalesce_params(9)axienet_dma_start(9)axienet_dma_bd_init(9)axienet_set_mac_address(9)netdev_set_mac_address(9)axienet_set_multicast_list(9)axienet_setoptions(9)axienet_dma_stop(9)axienet_device_reset(9)axienet_free_tx_chain(9)axienet_check_tx_bd_space(9)axienet_dma_tx_cb(9)axienet_start_xmit_dmaengine(9)axienet_tx_poll(9)axienet_start_xmit(9)axienet_dma_rx_cb(9)axienet_rx_poll(9)axienet_tx_irq(9)axienet_eth_irq(9)axienet_rx_submit_desc(9)axienet_init_dmaengine(9)axienet_init_legacy_dma(9)axienet_open(9)axienet_stop(9)axienet_change_mtu(9)axienet_poll_controller(9)axienet_ethtools_get_drvinfo(9)axienet_ethtools_get_regs_len(9)axienet_ethtools_get_regs(9)axienet_ethtools_get_pauseparam(9)axienet_ethtools_set_pauseparam(9)axienet_update_coalesce_rx(9)axienet_dim_coalesce_count_rx(9)axienet_rx_dim_work(9)axienet_update_coalesce_tx(9)axienet_ethtools_get_coalesce(9)axienet_ethtools_set_coalesce(9)axienet_dma_err_handler(9)axienet_probe(9)
no skipping any of them bestie, that's all 42, i counted π
ngl this whole page is short and sweet β don't overthink it, just remember: RX interrupt comes in, NAPI does the rest β¨
and that's the page, bb π«Ά this one came from the source tree over at ./drivers/net/ethernet/xilinx and it's dated October 2026 β so go forth and slay those receive interrupts, 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