Subject: Re: [axboe:for-7.0/block 19/138] block/blk-crypto-fallback.c:154:17: sparse: sparse: cast from restricted blk_status_t

From: Christoph Hellwig <[email-masked]>
Date: Mon, 1 Jun 2026 17:29:33 +0200

I think powerpc really need to pick the tricks from other architectures
to make cmpxchg work on __bitwise fields.

On Mon, Jun 01, 2026 at 11:26:16PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git for-7.0/block
> head:   72f4d6fca699a1e35b39c5e5dacac2926d254135
> commit: b37fbce460ad60b0c4449c1c7566cf24f3016713 [19/138] blk-crypto: optimize bio splitting in blk_crypto_fallback_encrypt_bio
> config: powerpc64-randconfig-r111-20260601 (https://download.01.org/0day-ci/archive/20260601/[email-masked]/config)
> compiler: powerpc64-linux-gcc (GCC) 8.5.0
> sparse: v0.6.5-rc1
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260601/[email-masked]/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <[email-masked]>
> | Closes: https://lore.kernel.org/oe-kbuild-all/[email-masked]/
> 
> sparse warnings: (new ones prefixed by >>)
> >> block/blk-crypto-fallback.c:154:17: sparse: sparse: cast from restricted blk_status_t
> >> block/blk-crypto-fallback.c:154:17: sparse: sparse: cast from restricted blk_status_t
>    block/blk-crypto-fallback.c:154:17: sparse: sparse: cast to restricted blk_status_t
> 
> vim +154 block/blk-crypto-fallback.c
> 
>    143	
>    144	static void blk_crypto_fallback_encrypt_endio(struct bio *enc_bio)
>    145	{
>    146		struct bio *src_bio = enc_bio->bi_private;
>    147		int i;
>    148	
>    149		for (i = 0; i < enc_bio->bi_vcnt; i++)
>    150			mempool_free(enc_bio->bi_io_vec[i].bv_page,
>    151				     blk_crypto_bounce_page_pool);
>    152	
>    153		if (enc_bio->bi_status)
>  > 154			cmpxchg(&src_bio->bi_status, 0, enc_bio->bi_status);
>    155	
>    156		bio_put(enc_bio);
>    157		bio_endio(src_bio);
>    158	}
>    159	
> 
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
---end quoted text---