CC: kbuild-...@lists.01.org TO: "Andrii, Nakryiko," <andr...@fb.com> CC: Daniel Borkmann <dan...@iogearbox.net>
tree: https://github.com/0day-ci/linux/commits/John-Fastabend/fix-ktls-with-sk_skb_verdict-programs/20200601-011016 head: 782773c4c3638155ca2955789a3f70e090afc347 commit: 35dd30a79d27f96ab5ca28e65a869ed9e611af69 [1888/1896] bpf: Implement BPF ring buffer and verifier support for it :::::: branch date: 35 hours ago :::::: commit date: 4 days ago config: microblaze-randconfig-s031-20200602 (attached as .config) compiler: microblaze-linux-gcc (GCC) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.1-243-gc100a7ab-dirty git checkout 35dd30a79d27f96ab5ca28e65a869ed9e611af69 # save the attached .config to linux build tree make W=1 C=1 ARCH=microblaze CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <l...@intel.com> sparse warnings: (new ones prefixed by >>) >> kernel/bpf/ringbuf.c:332:13: sparse: sparse: context imbalance in >> '__bpf_ringbuf_reserve' - different lock contexts for basic block # https://github.com/0day-ci/linux/commit/35dd30a79d27f96ab5ca28e65a869ed9e611af69 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 35dd30a79d27f96ab5ca28e65a869ed9e611af69 vim +/__bpf_ringbuf_reserve +332 kernel/bpf/ringbuf.c 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 331 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 @332 static void *__bpf_ringbuf_reserve(struct bpf_ringbuf *rb, u64 size) 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 333 { 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 334 unsigned long cons_pos, prod_pos, new_prod_pos, flags; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 335 u32 len, pg_off; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 336 struct bpf_ringbuf_hdr *hdr; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 337 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 338 if (unlikely(size > RINGBUF_MAX_RECORD_SZ)) 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 339 return NULL; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 340 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 341 len = round_up(size + BPF_RINGBUF_HDR_SZ, 8); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 342 cons_pos = smp_load_acquire(&rb->consumer_pos); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 343 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 344 if (in_nmi()) { 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 345 if (!spin_trylock_irqsave(&rb->spinlock, flags)) 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 346 return NULL; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 347 } else { 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 348 spin_lock_irqsave(&rb->spinlock, flags); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 349 } 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 350 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 351 prod_pos = rb->producer_pos; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 352 new_prod_pos = prod_pos + len; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 353 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 354 /* check for out of ringbuf space by ensuring producer position 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 355 * doesn't advance more than (ringbuf_size - 1) ahead 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 356 */ 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 357 if (new_prod_pos - cons_pos > rb->mask) { 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 358 spin_unlock_irqrestore(&rb->spinlock, flags); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 359 return NULL; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 360 } 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 361 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 362 hdr = (void *)rb->data + (prod_pos & rb->mask); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 363 pg_off = bpf_ringbuf_rec_pg_off(rb, hdr); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 364 hdr->len = size | BPF_RINGBUF_BUSY_BIT; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 365 hdr->pg_off = pg_off; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 366 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 367 /* pairs with consumer's smp_load_acquire() */ 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 368 smp_store_release(&rb->producer_pos, new_prod_pos); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 369 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 370 spin_unlock_irqrestore(&rb->spinlock, flags); 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 371 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 372 return (void *)hdr + BPF_RINGBUF_HDR_SZ; 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 373 } 35dd30a79d27f9 Andrii Nakryiko 2020-05-29 374 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org