Skip to contentSkip to conversation

Fix int to char conversion

PATCH Applied Philipp Klocke 2 participants 3 messages Oct 18, 2018 1 message not in the archive Sound

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix int to char conversion

Compiling with clang yields the following warning:

sound/i2c/cs8427.c:140:31: warning: implicit conversion from 'int' to 'char' changes value from 160 to -96 [-Wconstant-conversion]

    data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF;
            ~ ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~

Because CS8427_REG_AUTOINC is defined as 128, it is too big for a char field.
So change data from char to unsigned char, that it can hold the value.

This patch does not change the generated code.

---
 sound/i2c/cs8427.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
sound/i2c/cs8427.c +1 -1
index 2647309bc675..8afa2f888466 100644
@@ -118,7 +118,7 @@ static int snd_cs8427_send_corudata(struct snd_i2c_device *device,
 	struct cs8427 *chip = device->private_data;
 	char *hw_data = udata ?
 		chip->playback.hw_udata : chip->playback.hw_status;
-	char data[32];
+	unsigned char data[32];
 	int err, idx;
 
 	if (!memcmp(hw_data, ndata, count))
Signature · 1 line
2.19.1
Applied
#1 lore raw
Quoted 8 lines · Philipp Klocke

Compiling with clang yields the following warning:

sound/i2c/cs8427.c:140:31: warning: implicit conversion from 'int' to 'char' changes value from 160 to -96 [-Wconstant-conversion]

    data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF;
            ~ ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Quoted 7 lines

Because CS8427_REG_AUTOINC is defined as 128, it is too big for a char field.
So change data from char to unsigned char, that it can hold the value.

This patch does not change the generated code.

Applied, thanks.

But at the next time, please put the relevant subsystem MLs to Cc, and use the proper subject prefix (depending on the subsystem).

Takashi

A message that is not in the archive (sent off-list or not yet received): CAGZ+4_KdtsmuvrtmSnt729xCs1W4s+O+7hXS-D7gVc5+4W+ThQ@mail.gmail.com

#3 lore raw
Quoted 25 lines · Philipp K

[1 <text/plain; UTF-8 (7bit)>]

On Thu, Oct 18, 2018, 15:46 Takashi Iwai <[email protected]> wrote:

On Thu, 18 Oct 2018 12:33:02 +0200,
Philipp Klocke wrote:
>
> Compiling with clang yields the following warning:
>
> sound/i2c/cs8427.c:140:31: warning: implicit conversion from 'int' > to 'char' changes value from 160 to -96 [-Wconstant-conversion] >     data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF; >             ~ ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ >
> Because CS8427_REG_AUTOINC is defined as 128, it is too big for a > char field.
> So change data from char to unsigned char, that it can hold the value. >
> This patch does not change the generated code.
>
> Signed-off-by: Philipp Klocke <[email protected]>

Applied, thanks.

Quoted 7 lines

But at the next time, please put the relevant subsystem MLs to Cc,

Oh sorry I forgot that. Just used the get maintainer script.

and use the proper subject prefix (depending on the subsystem).

What would have been the correct prefix in this case?

In this particular case, I modified the subject to

ALSA: i2c/cs8427: Fix int to char conversion

The subject prefix usage is case-by-case. Better to look at the commits of the relevant file and just follow the convention in general.

thanks,

Takashi