memcpy(l_new->key + round_up(key_size, 8), value, map->value_size);
l_new->hash = htab_map_hash(l_new->key, key_size);
+ head = select_bucket(htab, l_new->hash);
/* bpf_map_update_elem() can be called in_irq() */
raw_spin_lock_irqsave(&htab->lock, flags);
- head = select_bucket(htab, l_new->hash);
-
l_old = lookup_elem_raw(head, l_new->hash, key, key_size);
if (!l_old && unlikely(atomic_read(&htab->count) >= map->max_entries)) {
key_size = map->key_size;
hash = htab_map_hash(key, key_size);
+ head = select_bucket(htab, hash);
raw_spin_lock_irqsave(&htab->lock, flags);
- head = select_bucket(htab, hash);
-
l = lookup_elem_raw(head, hash, key, key_size);
if (l) {