- 论坛徽章:
- 0
|
最近看无限驱动一些不解的地方,如下
首先在__ath_attach定义: dev->hard_start_xmit = ath_netdev_hardstart;
查看ath_netdev_hardstart代码,最终会调用dev_queue_xmit函数,而dev_queue_xmit又会调用ndo_start_xmit,ndo_start_xmit同样定义为
ath_netdev_hardstart,如下:
static const struct net_device_ops athdev_net_ops = {
.ndo_open = ath_netdev_open,
.ndo_stop = ath_netdev_stop,
.ndo_start_xmit = ath_netdev_hardstart,
.ndo_set_mac_address = ath_netdev_set_macaddr,
.ndo_tx_timeout = ath_netdev_tx_timeout,
.ndo_get_stats = ath_getstats,
.ndo_change_mtu = ath_change_mtu,
.ndo_set_multicast_list = ath_netdev_set_mcast_list,
.ndo_do_ioctl = ath_ioctl,
};
想请教下这里为什么要再执行一遍ath_netdev_hardstart函数?什么时候会最终结束呢? 洗耳恭听。
|
|