ks8851_start_xmit(9)
π ks8851_start_xmit(9) β from the Kernel API Manual, bestie β¨
okay so picture this: you're in the kernel, you're the ks8851 driver, and the network layer just handed you a packet like "here, do something with this." that's literally this function. it's giving main character energy at the driver's front door π
β¨ SYNOPSIS β¨
netdev_tx_t ks8851_start_xmit (struct sk_buff *skb , struct net_device *dev );
no cap, that's the whole signature. two args, one return, zero drama π
π«Ά ARGUMENTS π«Ά
skbβ the buffer to transmit. it's the actual packet, the whole point of the operation, the icon, the moment π«devβ the device used to transmit the packet. your little hardware bestie doing the actual sending πΈ
π₯ DESCRIPTION π₯
so the network layer calls this to transmit the skb. your job? queue the packet for the device and schedule the necessary work to transmit the packet when it is free. that's it. that's the vibe check β
and the reason we do it this way β lowkey the whole design philosophy β is two things:
- firstly, to avoid sleeping with the network device locked. sleeping while holding that lock is a big yikes, we don't do that here π
- secondly, so we can round up more than one packet to transmit, which means we can try and avoid generating too many transmit done interrupts. fewer interrupts = fewer "are we there yet" moments from the hardware, and honestly? iconic behavior π¦
fr fr though β don't go just firing off one packet per interrupt. the whole point is batching. the scheduler is your friend, periodt.
π SEE ALSO π
kernel file: ./drivers/net/ethernet/micrel/ks8851_common.c
ks8851_lock(9)ks8851_unlock(9)ks8851_wrreg16(9)ks8851_rdreg16(9)ks8851_soft_reset(9)ks8851_set_powermode(9)ks8851_write_mac_addr(9)ks8851_read_mac_addr(9)ks8851_init_mac(9)ks8851_rx_pkts(9)ks8851_irq(9)ks8851_flush_tx_work(9)ks8851_net_open(9)ks8851_net_stop(9)ks8851_rxctrl_work(9)ks8851_eeprom_claim(9)ks8851_eeprom_release(9)ks8851_phy_reg(9)ks8851_phy_read(9)ks8851_read_selftest(9)
like, read all of them. be that girl. iykyk π
okay that's the whole page, mwah π this was written down in the Kernel API Manual, living at ./drivers/net/ethernet/micrel, dated October 2026 β go ship some packets, love u, bye ππΈβ¨
π¦ 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