1】netif_start_queue 启动接口传输队列 2】netif_wake_queue 通知网络系统可以再次开始传输数据包;并启动接口传输队列。 3】netif_stop_queue 标记设备不能传输其他数据包。 4】netif_queue_stopped 5】netif_tx_disable 和第三个功能接口类似,但它还确保在返回时,在其他cpu上没有运行hard_start_xmit函数。可以用...
*/voidmwifiex_stop_net_dev_queue(struct net_device *netdev, struct mwifiex_adapter *adapter){unsignedlongdev_queue_flags; spin_lock_irqsave(&adapter->queue_lock, dev_queue_flags);netif_tx_stop_all_queues(netdev); spin_unlock_irqrestore(&adapter->queue_lock, dev_queue_flags); } 开发者...
函数名称:测试如果发送队列阻塞 函数原型:static inline bool netif_queue_stopped(const struct net_device *dev) 返回类型:bool 参数: 类型参数名称 const struct net_device * dev 3189 返回:netif_tx_queue_stopped(netdev_get_tx_queue(dev, 0)) 源...
netif_carrier_ok(dev)) {intsome_queue_timedout =0;unsignedinti;unsignedlongtrans_start;for(i =0; i < dev->num_tx_queues; i++) {structnetdev_queue*txq;txq = netdev_get_tx_queue(dev, i); trans_start = txq->trans_start;if(netif_xmit_stopped(txq) && time_after(jiffies, (tra...
netif_start_queue(netdev);netif_carrier_on(netdev); printk(KERN_INFO"%s: Link up\n", netdev->name); } } *prev = now; } 开发者ID:artm1248,项目名称:linux,代码行数:23,代码来源:be_main.c 示例2: netvsc_open ▲点赞 7▼
* - tx queueing enabled if open *and* carrier is "on" */netif_stop_queue(net); netif_carrier_off(net); dev->gadget = g; SET_NETDEV_DEV(net, &g->dev); status = register_netdev(net);if(status <0) { dev_dbg(&g->dev,"register_netdev failed, %d\n", status); ...
}else{if(netif_msg_tx_err(priv) && net_ratelimit()) printk(KERN_WARNING"%s: end_xmit: spurious interrupt\n", dev->name);if(netif_subqueue_stopped(dev,queue)) netif_wake_subqueue(dev,queue); } } 开发者ID:LouZiffer,项目名称:m900_kernel_cupcake-SDX,代码行数:31,代码来源:cpmac.c ...
netif_stop_queue(netdev);if(netif_running(netdev)) {if(dev != netdev) bus_bitmask_start |= (1<< j); priv->tx.pending =0; priv->tx.echo_put =0; priv->tx.echo_get =0;/* * this bus' may just have called open_candev() ...
netif_stop_queue (dev->net);break;default:if(netif_msg_tx_err (dev)) devdbg (dev,"tx err %d", entry->urb->status);break; } }#ifdefined(CONFIG_ERICSSON_F3307_ENABLE)usb_autopm_put_interface_async(dev->intf);#endifurb->dev =NULL; ...
skb_queue_tail(&dev->rx_frames, skb); } skb =NULL; skb2 = skb_dequeue(&dev->rx_frames);while(skb2) {if(status <0|| ETH_HLEN > skb2->len || skb2->len > ETH_FRAME_LEN) { dev->net->stats.rx_errors++; dev->net->stats.rx_length_errors++; ...