RE: [PATCH next 6/7] minmax.h: Simplify the variants of clamp()

From: David Laight
Date: Thu Nov 28 2024 - 10:53:23 EST


From: kernel test robot
> Sent: 28 November 2024 15:05
>
> Hi David,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on next-20241121]
>
> url: https://github.com/intel-lab-lkp/linux/commits/David-Laight/minmax-h-Add-whitespace-around-
> operators-and-after-commas/20241121-152617
> base: next-20241121
> patch link: https://lore.kernel.org/r/8f69f4deac014f558bab186444bac2e8%40AcuMS.aculab.com
> patch subject: [PATCH next 6/7] minmax.h: Simplify the variants of clamp()
> config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20241128/202411282222.oF0B4110-
> lkp@xxxxxxxxx/config)
> compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project
> 592c0fe55f6d9a811028b5f3507be91458ab2713)
> reproduce (this is a W=1 build): (https://download.01.org/0day-
> ci/archive/20241128/202411282222.oF0B4110-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202411282222.oF0B4110-lkp@xxxxxxxxx/
...
> vim +414 drivers/iio/magnetometer/yamaha-yas530.c
...
> 65f79b50103067 Jakob Hauser 2022-08-13 407 if (yas5xx->version == YAS537_VERSION_1) {
> 65f79b50103067 Jakob Hauser 2022-08-13 408 for (i = 0; i < 3; i++)
> 65f79b50103067 Jakob Hauser 2022-08-13 409 s[i] = xy1y2[i] - BIT(13);
> 65f79b50103067 Jakob Hauser 2022-08-13 410 h[0] = (c->k * (128 * s[0] + c->a2 * s[1] + c-> >a3 * s[2])) / BIT(13);
> 65f79b50103067 Jakob Hauser 2022-08-13 411 h[1] = (c->k * (c->a4 * s[0] + c->a5 * s[1] + c-> >a6 * s[2])) / BIT(13);
> 65f79b50103067 Jakob Hauser 2022-08-13 412 h[2] = (c->k * (c->a7 * s[0] + c->a8 * s[1] + c-> >a9 * s[2])) / BIT(13);
> 65f79b50103067 Jakob Hauser 2022-08-13 413 for (i = 0; i < 3; i++) {
> 65f79b50103067 Jakob Hauser 2022-08-13 @414 clamp_val(h[i], -BIT(13), BIT(13) - 1);
> 65f79b50103067 Jakob Hauser 2022-08-13 415 xy1y2[i] = h[i] + BIT(13);
> 65f79b50103067 Jakob Hauser 2022-08-13 416 }
> 65f79b50103067 Jakob Hauser 2022-08-13 417 }

Duplicate, very buggy code...
It very much needs BIT(13) to be signed.
And it shouldn't ignore the result of clamp()

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)