函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source File:kernel\bpf\devmap.c Create Date:2022-07-27 14:40:07
首页 Copyright©Brick

561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
static int dev_map_hash_delete_elem(struct bpf_map *map, void *key)
{
    struct bpf_dtab *dtab = container_of(map, struct bpf_dtab, map);
    struct bpf_dtab_netdev *old_dev;
    int k = *(u32 *)key;
    unsigned long flags;
    int ret = -ENOENT;
 
    spin_lock_irqsave(&dtab->index_lock, flags);
 
    old_dev = __dev_map_hash_lookup_elem(map, k);
    if (old_dev) {
        dtab->items--;
        hlist_del_init_rcu(&old_dev->index_hlist);
        call_rcu(&old_dev->rcu, __dev_map_entry_free);
        ret = 0;
    }
    spin_unlock_irqrestore(&dtab->index_lock, flags);
 
    return ret;
}