| @@ -596,7 +596,8 @@ static void *__htab_map_lookup_elem(struct bpf_map *map, void *key) · 595 unmodified lines |
| 596 | 596 | struct htab_elem *l; |
| 597 | 597 | u32 hash, key_size; |
| 598 | 598 | |
| 599 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 599 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 600 | + !rcu_read_lock_bh_held()); |
| 600 | 601 | |
| 601 | 602 | key_size = map->key_size; |
| 602 | 603 | |
| @@ -989,7 +990,8 @@ static int htab_map_update_elem(struct bpf_map *map, void *key, void *value, · 386 unmodified lines |
| 989 | 990 | /* unknown flags */ |
| 990 | 991 | return -EINVAL; |
| 991 | 992 | |
| 992 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 993 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 994 | + !rcu_read_lock_bh_held()); |
| 993 | 995 | |
| 994 | 996 | key_size = map->key_size; |
| 995 | 997 | |
| @@ -1082,7 +1084,8 @@ static int htab_lru_map_update_elem(struct bpf_map *map, void *key, void *value, · 86 unmodified lines |
| 1082 | 1084 | /* unknown flags */ |
| 1083 | 1085 | return -EINVAL; |
| 1084 | 1086 | |
| 1085 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 1087 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 1088 | + !rcu_read_lock_bh_held()); |
| 1086 | 1089 | |
| 1087 | 1090 | key_size = map->key_size; |
| 1088 | 1091 | |
| @@ -1148,7 +1151,8 @@ static int __htab_percpu_map_update_elem(struct bpf_map *map, void *key, · 59 unmodified lines |
| 1148 | 1151 | /* unknown flags */ |
| 1149 | 1152 | return -EINVAL; |
| 1150 | 1153 | |
| 1151 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 1154 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 1155 | + !rcu_read_lock_bh_held()); |
| 1152 | 1156 | |
| 1153 | 1157 | key_size = map->key_size; |
| 1154 | 1158 | |
| @@ -1202,7 +1206,8 @@ static int __htab_lru_percpu_map_update_elem(struct bpf_map *map, void *key, · 47 unmodified lines |
| 1202 | 1206 | /* unknown flags */ |
| 1203 | 1207 | return -EINVAL; |
| 1204 | 1208 | |
| 1205 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 1209 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 1210 | + !rcu_read_lock_bh_held()); |
| 1206 | 1211 | |
| 1207 | 1212 | key_size = map->key_size; |
| 1208 | 1213 | |
| @@ -1276,7 +1281,8 @@ static int htab_map_delete_elem(struct bpf_map *map, void *key) · 67 unmodified lines |
| 1276 | 1281 | u32 hash, key_size; |
| 1277 | 1282 | int ret; |
| 1278 | 1283 | |
| 1279 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 1284 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 1285 | + !rcu_read_lock_bh_held()); |
| 1280 | 1286 | |
| 1281 | 1287 | key_size = map->key_size; |
| 1282 | 1288 | |
| @@ -1311,7 +1317,8 @@ static int htab_lru_map_delete_elem(struct bpf_map *map, void *key) · 28 unmodified lines |
| 1311 | 1317 | u32 hash, key_size; |
| 1312 | 1318 | int ret; |
| 1313 | 1319 | |
| 1314 | | − WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held()); |
| 1320 | + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_trace_held() && |
| 1321 | + !rcu_read_lock_bh_held()); |
| 1315 | 1322 | |
| 1316 | 1323 | key_size = map->key_size; |
| 1317 | 1324 | |