Re: [PATCH] char: mwave: smapi: Make usSmapiOK signed to fix warning
From: Greg KH
Date: Tue Apr 15 2025 - 10:52:15 EST
On Thu, Apr 10, 2025 at 02:49:29AM +0530, Purva Yeshi wrote:
> Fix Smatch-detected warning:
> drivers/char/mwave/smapi.c:69 smapi_request() warn:
> assigning (-5) to unsigned variable 'usSmapiOK'
>
> Assigning a negative value (-EIO, which is -5) to an unsigned short
> (usSmapiOK) causes a Smatch warning because negative values cannot
> be correctly represented in an unsigned type, leading to unexpected
> behavior.
>
> Change the type of usSmapiOK from unsigned short to short to allow
> storing negative values like -EIO without causing a type mismatch or
> logic error.
>
> Signed-off-by: Purva Yeshi <purvayeshi550@xxxxxxxxx>
> ---
> drivers/char/mwave/smapi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/mwave/smapi.c b/drivers/char/mwave/smapi.c
> index f8d79d393b69..37da1339357e 100644
> --- a/drivers/char/mwave/smapi.c
> +++ b/drivers/char/mwave/smapi.c
> @@ -66,7 +66,7 @@ static int smapi_request(unsigned short inBX, unsigned short inCX,
> unsigned short myoutDX = 5, *pmyoutDX = &myoutDX;
> unsigned short myoutDI = 6, *pmyoutDI = &myoutDI;
> unsigned short myoutSI = 7, *pmyoutSI = &myoutSI;
> - unsigned short usSmapiOK = -EIO, *pusSmapiOK = &usSmapiOK;
> + short usSmapiOK = -EIO, *pusSmapiOK = &usSmapiOK;
This no longer a "us" variable type :(
The joy of using this type of notation, ick. Please fix this up to use
an explicit type (like s16), and fix the variable name at the same time.
thanks,
greg k-h