Patch "ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-nau8822-fix-incorrect-type-in-assignment-and-ca.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 978c67f815dcadd8264d49604163fa58b003a19b
Author: David Lin <CTLIN0@xxxxxxxxxxx>
Date:   Fri Nov 17 12:30:12 2023 +0800

    ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
    
    [ Upstream commit c1501f2597dd08601acd42256a4b0a0fc36bf302 ]
    
    This issue is reproduced when W=1 build in compiler gcc-12.
    The following are sparse warnings:
    
    sound/soc/codecs/nau8822.c:199:25: sparse: sparse: incorrect type in assignment
    sound/soc/codecs/nau8822.c:199:25: sparse: expected unsigned short
    sound/soc/codecs/nau8822.c:199:25: sparse: got restricted __be16
    sound/soc/codecs/nau8822.c:235:25: sparse: sparse: cast to restricted __be16
    sound/soc/codecs/nau8822.c:235:25: sparse: sparse: cast to restricted __be16
    sound/soc/codecs/nau8822.c:235:25: sparse: sparse: cast to restricted __be16
    sound/soc/codecs/nau8822.c:235:25: sparse: sparse: cast to restricted __be16
    
    Reported-by: kernel test robot <lkp@xxxxxxxxx>
    Closes: https://lore.kernel.org/oe-kbuild-all/202311122320.T1opZVkP-lkp@xxxxxxxxx/
    Signed-off-by: David Lin <CTLIN0@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20231117043011.1747594-1-CTLIN0@xxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/codecs/nau8822.c b/sound/soc/codecs/nau8822.c
index cd163978792e..1450a84df4e8 100644
--- a/sound/soc/codecs/nau8822.c
+++ b/sound/soc/codecs/nau8822.c
@@ -184,6 +184,7 @@ static int nau8822_eq_get(struct snd_kcontrol *kcontrol,
 	struct soc_bytes_ext *params = (void *)kcontrol->private_value;
 	int i, reg;
 	u16 reg_val, *val;
+	__be16 tmp;
 
 	val = (u16 *)ucontrol->value.bytes.data;
 	reg = NAU8822_REG_EQ1;
@@ -192,8 +193,8 @@ static int nau8822_eq_get(struct snd_kcontrol *kcontrol,
 		/* conversion of 16-bit integers between native CPU format
 		 * and big endian format
 		 */
-		reg_val = cpu_to_be16(reg_val);
-		memcpy(val + i, &reg_val, sizeof(reg_val));
+		tmp = cpu_to_be16(reg_val);
+		memcpy(val + i, &tmp, sizeof(tmp));
 	}
 
 	return 0;
@@ -216,6 +217,7 @@ static int nau8822_eq_put(struct snd_kcontrol *kcontrol,
 	void *data;
 	u16 *val, value;
 	int i, reg, ret;
+	__be16 *tmp;
 
 	data = kmemdup(ucontrol->value.bytes.data,
 		params->max, GFP_KERNEL | GFP_DMA);
@@ -228,7 +230,8 @@ static int nau8822_eq_put(struct snd_kcontrol *kcontrol,
 		/* conversion of 16-bit integers between native CPU format
 		 * and big endian format
 		 */
-		value = be16_to_cpu(*(val + i));
+		tmp = (__be16 *)(val + i);
+		value = be16_to_cpup(tmp);
 		ret = snd_soc_component_write(component, reg + i, value);
 		if (ret) {
 			dev_err(component->dev,




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux