Re: [PATCH] char: mwave: smapi: Make usSmapiOK signed to fix warning

From: Purva Yeshi
Date: Thu Apr 17 2025 - 01:59:35 EST


On 15/04/25 20:22, Greg KH wrote:
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

Hi Greg,

Thanks for the feedback.

I’ll update the patch to use an explicit s16 type and rename the usSmapiOK with SmapiOK to match the new type. I’ll send a v2 shortly.

Best regards,
Purva