国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
rcu學(xué)習(xí)心得
void __dev_remove_pack(struct packet_type *pt)
{
 struct list_head *head;
 struct packet_type *pt1;
 spin_lock_bh(&ptype_lock);
 if (pt->type == htons(ETH_P_ALL))
  head = &ptype_all;
 else
  head = &ptype_base[ntohs(pt->type) & PTYPE_HASH_MASK];
 list_for_each_entry(pt1, head, list) {
  if (pt == pt1) {
   list_del_rcu(&pt->list);
   goto out;
  }
 }
 printk(KERN_WARNING "dev_remove_pack: %p not found.\n", pt);
out:
 spin_unlock_bh(&ptype_lock);
}
 
從上面的代碼看出,當(dāng)需要遍歷刪除hash表的時(shí)候,只需要在相應(yīng)的桶上加寫鎖就可以了, spin_lock_bh(&ptype_lock); 在讀取的時(shí)候需要加上讀臨界鎖就可以了
 
 
 
static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)
{
 struct packet_type *ptype;
#ifdef CONFIG_NET_CLS_ACT
 if (!(skb->tstamp.tv64 && (G_TC_FROM(skb->tc_verd) & AT_INGRESS)))
  net_timestamp(skb);
#else
 net_timestamp(skb);
#endif
 rcu_read_lock();
 list_for_each_entry_rcu(ptype, &ptype_all, list) {
  /* Never send packets back to the socket
   * they originated from - MvS (miquels@drinkel.ow.org)
   */
  if ((ptype->dev == dev || !ptype->dev) &&
      (ptype->af_packet_priv == NULL ||
       (struct sock *)ptype->af_packet_priv != skb->sk)) {
   struct sk_buff *skb2= skb_clone(skb, GFP_ATOMIC);
   if (!skb2)
    break;
   /* skb->nh should be correctly
      set by sender, so that the second statement is
      just protection against buggy protocols.
    */
   skb_reset_mac_header(skb2);
   if (skb_network_header(skb2) < skb2->data ||
       skb2->network_header > skb2->tail) {
    if (net_ratelimit())
     printk(KERN_CRIT "protocol %04x is "
            "buggy, dev %s\n",
            skb2->protocol, dev->name);
    skb_reset_network_header(skb2);
   }
   skb2->transport_header = skb2->network_header;
   skb2->pkt_type = PACKET_OUTGOING;
   ptype->func(skb2, skb->dev, ptype, skb->dev);
  }
 }
 rcu_read_unlock();
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux內(nèi)核對(duì)三層協(xié)議的管理
ptype_base和ptype_all理解,netid_receive_skb()函數(shù)注解
TCP/IP協(xié)議棧初始化流程
Android socket創(chuàng)建、綁定流程分析(二)
Linux內(nèi)核分析 - 網(wǎng)絡(luò)[三]:從netif_receive_skb()說(shuō)起
一個(gè)險(xiǎn)惡bug的深入分析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服