Hello Jens Axboe, This is a semi-automatic email about new static checker warnings. The patch 5cf4f52e6d8a: "io_uring: free io_buffer_list entries via RCU" from Nov 27, 2023, leads to the following Smatch complaint: io_uring/kbuf.c:766 io_pbuf_get_address() warn: variable dereferenced before check 'bl' (see line 764) io_uring/kbuf.c 753 void *io_pbuf_get_address(struct io_ring_ctx *ctx, unsigned long bgid) 754 { 755 struct io_buffer_list *bl; 756 757 bl = __io_buffer_get_list(ctx, smp_load_acquire(&ctx->io_bl), bgid); 758 759 /* 760 * Ensure the list is fully setup. Only strictly needed for RCU lookup 761 * via mmap, and in that case only for the array indexed groups. For 762 * the xarray lookups, it's either visible and ready, or not at all. 763 */ 764 if (!smp_load_acquire(&bl->is_ready)) ^^^^^ bl dereferenced here 765 return NULL; 766 if (!bl || !bl->is_mmap) ^^^ Checked for NULL too late. 767 return NULL; 768 769 return bl->buf_ring; 770 } regards, dan carpenter