public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
@ 2026-04-27  7:07 wangdich9700
  2026-04-27 11:35 ` Markus Elfring
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: wangdich9700 @ 2026-04-27  7:07 UTC (permalink / raw)
  To: perex, tiwai, wangdich9700; +Cc: kees, linux-sound, linux-kernel, wangdicheng

From: wangdicheng <wangdicheng@kylinos.cn>

In cx_probe(), the return value of snd_hda_jack_detect_enable_callback()
is ignored. If this function fails (e.g., due to memory allocation
failure), the driver continues to probe, but the jack detection callback
will not be registered. This can lead to a kernel crash later when the
driver attempts to handle jack events or accesses the uninitialized
structure.

Check the return value and propagate the error to the probe caller.

Signed-off-by: wangdicheng <wangdicheng@kylinos.cn>
---
 sound/hda/codecs/conexant.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/hda/codecs/conexant.c b/sound/hda/codecs/conexant.c
index 3a9717df39b4..4c01c6270bd3 100644
--- a/sound/hda/codecs/conexant.c
+++ b/sound/hda/codecs/conexant.c
@@ -1190,7 +1190,9 @@ static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
 	case 0x14f11f86:
 	case 0x14f11f87:
 		spec->is_cx11880_sn6140 = true;
-		snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
+		err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
+		if (err < 0)
+			goto error;
 		break;
 	}
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
@ 2026-04-27 11:35 ` Markus Elfring
  2026-04-27 12:41 ` Takashi Iwai
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Markus Elfring @ 2026-04-27 11:35 UTC (permalink / raw)
  To: wangdicheng, linux-sound, Jaroslav Kysela, Takashi Iwai
  Cc: wangdich9700, LKML, Kees Cook

…
> Check the return value and propagate the error to the probe caller.

See also:
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v7.0#n145
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/stable-kernel-rules.rst?h=v7.0#n34

Regards,
Markus

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
  2026-04-27 11:35 ` Markus Elfring
@ 2026-04-27 12:41 ` Takashi Iwai
  2026-04-28 18:37 ` kernel test robot
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Takashi Iwai @ 2026-04-27 12:41 UTC (permalink / raw)
  To: wangdich9700; +Cc: perex, tiwai, kees, linux-sound, linux-kernel, wangdicheng

On Mon, 27 Apr 2026 09:07:39 +0200,
wangdich9700@163.com wrote:
> 
> From: wangdicheng <wangdicheng@kylinos.cn>
> 
> In cx_probe(), the return value of snd_hda_jack_detect_enable_callback()
> is ignored. If this function fails (e.g., due to memory allocation
> failure), the driver continues to probe, but the jack detection callback
> will not be registered. This can lead to a kernel crash later when the
> driver attempts to handle jack events or accesses the uninitialized
> structure.
> 
> Check the return value and propagate the error to the probe caller.
> 
> Signed-off-by: wangdicheng <wangdicheng@kylinos.cn>
> ---
>  sound/hda/codecs/conexant.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/hda/codecs/conexant.c b/sound/hda/codecs/conexant.c
> index 3a9717df39b4..4c01c6270bd3 100644
> --- a/sound/hda/codecs/conexant.c
> +++ b/sound/hda/codecs/conexant.c
> @@ -1190,7 +1190,9 @@ static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
>  	case 0x14f11f86:
>  	case 0x14f11f87:
>  		spec->is_cx11880_sn6140 = true;
> -		snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
> +		err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
> +		if (err < 0)
> +			goto error;

The function returns a pointer.  Use IS_ERR() and PTR_ERR() to check
and get the error, instead.

Also, don't forget to put Fixes tag.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
  2026-04-27 11:35 ` Markus Elfring
  2026-04-27 12:41 ` Takashi Iwai
@ 2026-04-28 18:37 ` kernel test robot
  2026-04-28 22:38 ` kernel test robot
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-04-28 18:37 UTC (permalink / raw)
  To: wangdich9700, perex, tiwai
  Cc: oe-kbuild-all, kees, linux-sound, linux-kernel, wangdicheng

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on tiwai-sound/for-next]
[also build test ERROR on tiwai-sound/for-linus linus/master v7.1-rc1 next-20260428]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/wangdich9700-163-com/ALSA-hda-conexant-Fix-missing-error-check-for-jack-detection/20260427-223457
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
patch link:    https://lore.kernel.org/r/20260427070739.133369-1-wangdich9700%40163.com
patch subject: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20260429/202604290213.cQAWGYOO-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260429/202604290213.cQAWGYOO-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604290213.cQAWGYOO-lkp@intel.com/

All errors (new ones prefixed by >>):

   sound/hda/codecs/conexant.c: In function 'cx_probe':
>> sound/hda/codecs/conexant.c:1193:21: error: assignment to 'int' from 'struct hda_jack_callback *' makes integer from pointer without a cast [-Wint-conversion]
    1193 |                 err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
         |                     ^


vim +1193 sound/hda/codecs/conexant.c

  1174	
  1175	static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
  1176	{
  1177		struct conexant_spec *spec;
  1178		int err;
  1179	
  1180		codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
  1181	
  1182		spec = kzalloc_obj(*spec);
  1183		if (!spec)
  1184			return -ENOMEM;
  1185		snd_hda_gen_spec_init(&spec->gen);
  1186		codec->spec = spec;
  1187	
  1188		/* init cx11880/sn6140 flag and reset headset_present_flag */
  1189		switch (codec->core.vendor_id) {
  1190		case 0x14f11f86:
  1191		case 0x14f11f87:
  1192			spec->is_cx11880_sn6140 = true;
> 1193			err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
  1194			if (err < 0)
  1195				goto error;
  1196			break;
  1197		}
  1198	
  1199		cx_auto_parse_eapd(codec);
  1200		spec->gen.own_eapd_ctl = 1;
  1201	
  1202		switch (codec->core.vendor_id) {
  1203		case 0x14f15045:
  1204			codec->single_adc_amp = 1;
  1205			spec->gen.mixer_nid = 0x17;
  1206			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1207			snd_hda_pick_fixup(codec, cxt5045_fixup_models,
  1208					   cxt5045_fixups, cxt_fixups);
  1209			break;
  1210		case 0x14f15047:
  1211			codec->pin_amp_workaround = 1;
  1212			spec->gen.mixer_nid = 0x19;
  1213			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1214			snd_hda_pick_fixup(codec, cxt5047_fixup_models,
  1215					   cxt5047_fixups, cxt_fixups);
  1216			break;
  1217		case 0x14f15051:
  1218			add_cx5051_fake_mutes(codec);
  1219			codec->pin_amp_workaround = 1;
  1220			snd_hda_pick_fixup(codec, cxt5051_fixup_models,
  1221					   cxt5051_fixups, cxt_fixups);
  1222			break;
  1223		case 0x14f15098:
  1224			codec->pin_amp_workaround = 1;
  1225			spec->gen.mixer_nid = 0x22;
  1226			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1227			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1228					   cxt5066_fixups, cxt_fixups);
  1229			break;
  1230		case 0x14f150f2:
  1231			codec->power_save_node = 1;
  1232			fallthrough;
  1233		default:
  1234			codec->pin_amp_workaround = 1;
  1235			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1236					   cxt5066_fixups, cxt_fixups);
  1237			break;
  1238		}
  1239	
  1240		if (!spec->gen.vmaster_mute.hook && spec->dynamic_eapd)
  1241			spec->gen.vmaster_mute.hook = cx_auto_vmaster_hook;
  1242	
  1243		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
  1244	
  1245		err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL,
  1246					       spec->parse_flags);
  1247		if (err < 0)
  1248			goto error;
  1249	
  1250		err = cx_auto_parse_beep(codec);
  1251		if (err < 0)
  1252			goto error;
  1253	
  1254		err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
  1255		if (err < 0)
  1256			goto error;
  1257	
  1258		/* Some laptops with Conexant chips show stalls in S3 resume,
  1259		 * which falls into the single-cmd mode.
  1260		 * Better to make reset, then.
  1261		 */
  1262		if (!codec->bus->core.sync_write) {
  1263			codec_info(codec,
  1264				   "Enable sync_write for stable communication\n");
  1265			codec->bus->core.sync_write = 1;
  1266			codec->bus->allow_bus_reset = 1;
  1267		}
  1268	
  1269		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
  1270	
  1271		return 0;
  1272	
  1273	 error:
  1274		cx_remove(codec);
  1275		return err;
  1276	}
  1277	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
                   ` (2 preceding siblings ...)
  2026-04-28 18:37 ` kernel test robot
@ 2026-04-28 22:38 ` kernel test robot
  2026-04-29 11:03 ` kernel test robot
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-04-28 22:38 UTC (permalink / raw)
  To: wangdich9700, perex, tiwai
  Cc: llvm, oe-kbuild-all, kees, linux-sound, linux-kernel, wangdicheng

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on tiwai-sound/for-next]
[also build test ERROR on tiwai-sound/for-linus linus/master v7.1-rc1 next-20260428]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/wangdich9700-163-com/ALSA-hda-conexant-Fix-missing-error-check-for-jack-detection/20260427-223457
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
patch link:    https://lore.kernel.org/r/20260427070739.133369-1-wangdich9700%40163.com
patch subject: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260429/202604290635.UqkW5dEd-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260429/202604290635.UqkW5dEd-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604290635.UqkW5dEd-lkp@intel.com/

All errors (new ones prefixed by >>):

>> sound/hda/codecs/conexant.c:1193:7: error: incompatible pointer to integer conversion assigning to 'int' from 'struct hda_jack_callback *' [-Wint-conversion]
    1193 |                 err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
         |                     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 error generated.


vim +1193 sound/hda/codecs/conexant.c

  1174	
  1175	static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
  1176	{
  1177		struct conexant_spec *spec;
  1178		int err;
  1179	
  1180		codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
  1181	
  1182		spec = kzalloc_obj(*spec);
  1183		if (!spec)
  1184			return -ENOMEM;
  1185		snd_hda_gen_spec_init(&spec->gen);
  1186		codec->spec = spec;
  1187	
  1188		/* init cx11880/sn6140 flag and reset headset_present_flag */
  1189		switch (codec->core.vendor_id) {
  1190		case 0x14f11f86:
  1191		case 0x14f11f87:
  1192			spec->is_cx11880_sn6140 = true;
> 1193			err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
  1194			if (err < 0)
  1195				goto error;
  1196			break;
  1197		}
  1198	
  1199		cx_auto_parse_eapd(codec);
  1200		spec->gen.own_eapd_ctl = 1;
  1201	
  1202		switch (codec->core.vendor_id) {
  1203		case 0x14f15045:
  1204			codec->single_adc_amp = 1;
  1205			spec->gen.mixer_nid = 0x17;
  1206			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1207			snd_hda_pick_fixup(codec, cxt5045_fixup_models,
  1208					   cxt5045_fixups, cxt_fixups);
  1209			break;
  1210		case 0x14f15047:
  1211			codec->pin_amp_workaround = 1;
  1212			spec->gen.mixer_nid = 0x19;
  1213			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1214			snd_hda_pick_fixup(codec, cxt5047_fixup_models,
  1215					   cxt5047_fixups, cxt_fixups);
  1216			break;
  1217		case 0x14f15051:
  1218			add_cx5051_fake_mutes(codec);
  1219			codec->pin_amp_workaround = 1;
  1220			snd_hda_pick_fixup(codec, cxt5051_fixup_models,
  1221					   cxt5051_fixups, cxt_fixups);
  1222			break;
  1223		case 0x14f15098:
  1224			codec->pin_amp_workaround = 1;
  1225			spec->gen.mixer_nid = 0x22;
  1226			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1227			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1228					   cxt5066_fixups, cxt_fixups);
  1229			break;
  1230		case 0x14f150f2:
  1231			codec->power_save_node = 1;
  1232			fallthrough;
  1233		default:
  1234			codec->pin_amp_workaround = 1;
  1235			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1236					   cxt5066_fixups, cxt_fixups);
  1237			break;
  1238		}
  1239	
  1240		if (!spec->gen.vmaster_mute.hook && spec->dynamic_eapd)
  1241			spec->gen.vmaster_mute.hook = cx_auto_vmaster_hook;
  1242	
  1243		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
  1244	
  1245		err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL,
  1246					       spec->parse_flags);
  1247		if (err < 0)
  1248			goto error;
  1249	
  1250		err = cx_auto_parse_beep(codec);
  1251		if (err < 0)
  1252			goto error;
  1253	
  1254		err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
  1255		if (err < 0)
  1256			goto error;
  1257	
  1258		/* Some laptops with Conexant chips show stalls in S3 resume,
  1259		 * which falls into the single-cmd mode.
  1260		 * Better to make reset, then.
  1261		 */
  1262		if (!codec->bus->core.sync_write) {
  1263			codec_info(codec,
  1264				   "Enable sync_write for stable communication\n");
  1265			codec->bus->core.sync_write = 1;
  1266			codec->bus->allow_bus_reset = 1;
  1267		}
  1268	
  1269		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
  1270	
  1271		return 0;
  1272	
  1273	 error:
  1274		cx_remove(codec);
  1275		return err;
  1276	}
  1277	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
                   ` (3 preceding siblings ...)
  2026-04-28 22:38 ` kernel test robot
@ 2026-04-29 11:03 ` kernel test robot
  2026-04-30 12:23 ` kernel test robot
  2026-05-01  4:05 ` kernel test robot
  6 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-04-29 11:03 UTC (permalink / raw)
  To: wangdich9700, perex, tiwai
  Cc: oe-kbuild-all, kees, linux-sound, linux-kernel, wangdicheng

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tiwai-sound/for-next]
[also build test WARNING on linus/master v7.1-rc1 next-20260428]
[cannot apply to tiwai-sound/for-linus]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/wangdich9700-163-com/ALSA-hda-conexant-Fix-missing-error-check-for-jack-detection/20260427-223457
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
patch link:    https://lore.kernel.org/r/20260427070739.133369-1-wangdich9700%40163.com
patch subject: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
config: nios2-allmodconfig (https://download.01.org/0day-ci/archive/20260429/202604291855.b3tkw7T5-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260429/202604291855.b3tkw7T5-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604291855.b3tkw7T5-lkp@intel.com/

All warnings (new ones prefixed by >>):

   sound/hda/codecs/conexant.c: In function 'cx_probe':
>> sound/hda/codecs/conexant.c:1193:21: warning: assignment to 'int' from 'struct hda_jack_callback *' makes integer from pointer without a cast [-Wint-conversion]
    1193 |                 err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
         |                     ^


vim +1193 sound/hda/codecs/conexant.c

  1174	
  1175	static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
  1176	{
  1177		struct conexant_spec *spec;
  1178		int err;
  1179	
  1180		codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
  1181	
  1182		spec = kzalloc_obj(*spec);
  1183		if (!spec)
  1184			return -ENOMEM;
  1185		snd_hda_gen_spec_init(&spec->gen);
  1186		codec->spec = spec;
  1187	
  1188		/* init cx11880/sn6140 flag and reset headset_present_flag */
  1189		switch (codec->core.vendor_id) {
  1190		case 0x14f11f86:
  1191		case 0x14f11f87:
  1192			spec->is_cx11880_sn6140 = true;
> 1193			err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
  1194			if (err < 0)
  1195				goto error;
  1196			break;
  1197		}
  1198	
  1199		cx_auto_parse_eapd(codec);
  1200		spec->gen.own_eapd_ctl = 1;
  1201	
  1202		switch (codec->core.vendor_id) {
  1203		case 0x14f15045:
  1204			codec->single_adc_amp = 1;
  1205			spec->gen.mixer_nid = 0x17;
  1206			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1207			snd_hda_pick_fixup(codec, cxt5045_fixup_models,
  1208					   cxt5045_fixups, cxt_fixups);
  1209			break;
  1210		case 0x14f15047:
  1211			codec->pin_amp_workaround = 1;
  1212			spec->gen.mixer_nid = 0x19;
  1213			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1214			snd_hda_pick_fixup(codec, cxt5047_fixup_models,
  1215					   cxt5047_fixups, cxt_fixups);
  1216			break;
  1217		case 0x14f15051:
  1218			add_cx5051_fake_mutes(codec);
  1219			codec->pin_amp_workaround = 1;
  1220			snd_hda_pick_fixup(codec, cxt5051_fixup_models,
  1221					   cxt5051_fixups, cxt_fixups);
  1222			break;
  1223		case 0x14f15098:
  1224			codec->pin_amp_workaround = 1;
  1225			spec->gen.mixer_nid = 0x22;
  1226			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1227			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1228					   cxt5066_fixups, cxt_fixups);
  1229			break;
  1230		case 0x14f150f2:
  1231			codec->power_save_node = 1;
  1232			fallthrough;
  1233		default:
  1234			codec->pin_amp_workaround = 1;
  1235			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1236					   cxt5066_fixups, cxt_fixups);
  1237			break;
  1238		}
  1239	
  1240		if (!spec->gen.vmaster_mute.hook && spec->dynamic_eapd)
  1241			spec->gen.vmaster_mute.hook = cx_auto_vmaster_hook;
  1242	
  1243		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
  1244	
  1245		err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL,
  1246					       spec->parse_flags);
  1247		if (err < 0)
  1248			goto error;
  1249	
  1250		err = cx_auto_parse_beep(codec);
  1251		if (err < 0)
  1252			goto error;
  1253	
  1254		err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
  1255		if (err < 0)
  1256			goto error;
  1257	
  1258		/* Some laptops with Conexant chips show stalls in S3 resume,
  1259		 * which falls into the single-cmd mode.
  1260		 * Better to make reset, then.
  1261		 */
  1262		if (!codec->bus->core.sync_write) {
  1263			codec_info(codec,
  1264				   "Enable sync_write for stable communication\n");
  1265			codec->bus->core.sync_write = 1;
  1266			codec->bus->allow_bus_reset = 1;
  1267		}
  1268	
  1269		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
  1270	
  1271		return 0;
  1272	
  1273	 error:
  1274		cx_remove(codec);
  1275		return err;
  1276	}
  1277	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
                   ` (4 preceding siblings ...)
  2026-04-29 11:03 ` kernel test robot
@ 2026-04-30 12:23 ` kernel test robot
  2026-05-01  4:05 ` kernel test robot
  6 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-04-30 12:23 UTC (permalink / raw)
  To: wangdich9700, perex, tiwai
  Cc: oe-kbuild-all, kees, linux-sound, linux-kernel, wangdicheng

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tiwai-sound/for-next]
[also build test WARNING on linus/master v7.1-rc1]
[cannot apply to tiwai-sound/for-linus next-20260429]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/wangdich9700-163-com/ALSA-hda-conexant-Fix-missing-error-check-for-jack-detection/20260427-223457
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
patch link:    https://lore.kernel.org/r/20260427070739.133369-1-wangdich9700%40163.com
patch subject: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
config: i386-randconfig-062-20260430 (https://download.01.org/0day-ci/archive/20260430/202604302001.sGykyKli-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260430/202604302001.sGykyKli-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604302001.sGykyKli-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> sound/hda/codecs/conexant.c:1193:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected int err @@     got struct hda_jack_callback * @@
   sound/hda/codecs/conexant.c:1193:21: sparse:     expected int err
   sound/hda/codecs/conexant.c:1193:21: sparse:     got struct hda_jack_callback *

vim +1193 sound/hda/codecs/conexant.c

  1174	
  1175	static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
  1176	{
  1177		struct conexant_spec *spec;
  1178		int err;
  1179	
  1180		codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
  1181	
  1182		spec = kzalloc_obj(*spec);
  1183		if (!spec)
  1184			return -ENOMEM;
  1185		snd_hda_gen_spec_init(&spec->gen);
  1186		codec->spec = spec;
  1187	
  1188		/* init cx11880/sn6140 flag and reset headset_present_flag */
  1189		switch (codec->core.vendor_id) {
  1190		case 0x14f11f86:
  1191		case 0x14f11f87:
  1192			spec->is_cx11880_sn6140 = true;
> 1193			err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
  1194			if (err < 0)
  1195				goto error;
  1196			break;
  1197		}
  1198	
  1199		cx_auto_parse_eapd(codec);
  1200		spec->gen.own_eapd_ctl = 1;
  1201	
  1202		switch (codec->core.vendor_id) {
  1203		case 0x14f15045:
  1204			codec->single_adc_amp = 1;
  1205			spec->gen.mixer_nid = 0x17;
  1206			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1207			snd_hda_pick_fixup(codec, cxt5045_fixup_models,
  1208					   cxt5045_fixups, cxt_fixups);
  1209			break;
  1210		case 0x14f15047:
  1211			codec->pin_amp_workaround = 1;
  1212			spec->gen.mixer_nid = 0x19;
  1213			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1214			snd_hda_pick_fixup(codec, cxt5047_fixup_models,
  1215					   cxt5047_fixups, cxt_fixups);
  1216			break;
  1217		case 0x14f15051:
  1218			add_cx5051_fake_mutes(codec);
  1219			codec->pin_amp_workaround = 1;
  1220			snd_hda_pick_fixup(codec, cxt5051_fixup_models,
  1221					   cxt5051_fixups, cxt_fixups);
  1222			break;
  1223		case 0x14f15098:
  1224			codec->pin_amp_workaround = 1;
  1225			spec->gen.mixer_nid = 0x22;
  1226			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1227			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1228					   cxt5066_fixups, cxt_fixups);
  1229			break;
  1230		case 0x14f150f2:
  1231			codec->power_save_node = 1;
  1232			fallthrough;
  1233		default:
  1234			codec->pin_amp_workaround = 1;
  1235			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1236					   cxt5066_fixups, cxt_fixups);
  1237			break;
  1238		}
  1239	
  1240		if (!spec->gen.vmaster_mute.hook && spec->dynamic_eapd)
  1241			spec->gen.vmaster_mute.hook = cx_auto_vmaster_hook;
  1242	
  1243		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
  1244	
  1245		err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL,
  1246					       spec->parse_flags);
  1247		if (err < 0)
  1248			goto error;
  1249	
  1250		err = cx_auto_parse_beep(codec);
  1251		if (err < 0)
  1252			goto error;
  1253	
  1254		err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
  1255		if (err < 0)
  1256			goto error;
  1257	
  1258		/* Some laptops with Conexant chips show stalls in S3 resume,
  1259		 * which falls into the single-cmd mode.
  1260		 * Better to make reset, then.
  1261		 */
  1262		if (!codec->bus->core.sync_write) {
  1263			codec_info(codec,
  1264				   "Enable sync_write for stable communication\n");
  1265			codec->bus->core.sync_write = 1;
  1266			codec->bus->allow_bus_reset = 1;
  1267		}
  1268	
  1269		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
  1270	
  1271		return 0;
  1272	
  1273	 error:
  1274		cx_remove(codec);
  1275		return err;
  1276	}
  1277	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
  2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
                   ` (5 preceding siblings ...)
  2026-04-30 12:23 ` kernel test robot
@ 2026-05-01  4:05 ` kernel test robot
  6 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-05-01  4:05 UTC (permalink / raw)
  To: wangdich9700, perex, tiwai
  Cc: oe-kbuild-all, kees, linux-sound, linux-kernel, wangdicheng

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tiwai-sound/for-next]
[also build test WARNING on v7.1-rc1]
[cannot apply to tiwai-sound/for-linus linus/master next-20260430]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/wangdich9700-163-com/ALSA-hda-conexant-Fix-missing-error-check-for-jack-detection/20260427-223457
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
patch link:    https://lore.kernel.org/r/20260427070739.133369-1-wangdich9700%40163.com
patch subject: [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection
config: i386-randconfig-062-20260430 (https://download.01.org/0day-ci/archive/20260501/202605011107.lDwIcnm6-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260501/202605011107.lDwIcnm6-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605011107.lDwIcnm6-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> sound/hda/codecs/conexant.c:1193:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected int err @@     got struct hda_jack_callback * @@
   sound/hda/codecs/conexant.c:1193:21: sparse:     expected int err
   sound/hda/codecs/conexant.c:1193:21: sparse:     got struct hda_jack_callback *

vim +1193 sound/hda/codecs/conexant.c

  1174	
  1175	static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
  1176	{
  1177		struct conexant_spec *spec;
  1178		int err;
  1179	
  1180		codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
  1181	
  1182		spec = kzalloc_obj(*spec);
  1183		if (!spec)
  1184			return -ENOMEM;
  1185		snd_hda_gen_spec_init(&spec->gen);
  1186		codec->spec = spec;
  1187	
  1188		/* init cx11880/sn6140 flag and reset headset_present_flag */
  1189		switch (codec->core.vendor_id) {
  1190		case 0x14f11f86:
  1191		case 0x14f11f87:
  1192			spec->is_cx11880_sn6140 = true;
> 1193			err = snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
  1194			if (err < 0)
  1195				goto error;
  1196			break;
  1197		}
  1198	
  1199		cx_auto_parse_eapd(codec);
  1200		spec->gen.own_eapd_ctl = 1;
  1201	
  1202		switch (codec->core.vendor_id) {
  1203		case 0x14f15045:
  1204			codec->single_adc_amp = 1;
  1205			spec->gen.mixer_nid = 0x17;
  1206			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1207			snd_hda_pick_fixup(codec, cxt5045_fixup_models,
  1208					   cxt5045_fixups, cxt_fixups);
  1209			break;
  1210		case 0x14f15047:
  1211			codec->pin_amp_workaround = 1;
  1212			spec->gen.mixer_nid = 0x19;
  1213			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1214			snd_hda_pick_fixup(codec, cxt5047_fixup_models,
  1215					   cxt5047_fixups, cxt_fixups);
  1216			break;
  1217		case 0x14f15051:
  1218			add_cx5051_fake_mutes(codec);
  1219			codec->pin_amp_workaround = 1;
  1220			snd_hda_pick_fixup(codec, cxt5051_fixup_models,
  1221					   cxt5051_fixups, cxt_fixups);
  1222			break;
  1223		case 0x14f15098:
  1224			codec->pin_amp_workaround = 1;
  1225			spec->gen.mixer_nid = 0x22;
  1226			spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
  1227			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1228					   cxt5066_fixups, cxt_fixups);
  1229			break;
  1230		case 0x14f150f2:
  1231			codec->power_save_node = 1;
  1232			fallthrough;
  1233		default:
  1234			codec->pin_amp_workaround = 1;
  1235			snd_hda_pick_fixup(codec, cxt5066_fixup_models,
  1236					   cxt5066_fixups, cxt_fixups);
  1237			break;
  1238		}
  1239	
  1240		if (!spec->gen.vmaster_mute.hook && spec->dynamic_eapd)
  1241			spec->gen.vmaster_mute.hook = cx_auto_vmaster_hook;
  1242	
  1243		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
  1244	
  1245		err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL,
  1246					       spec->parse_flags);
  1247		if (err < 0)
  1248			goto error;
  1249	
  1250		err = cx_auto_parse_beep(codec);
  1251		if (err < 0)
  1252			goto error;
  1253	
  1254		err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
  1255		if (err < 0)
  1256			goto error;
  1257	
  1258		/* Some laptops with Conexant chips show stalls in S3 resume,
  1259		 * which falls into the single-cmd mode.
  1260		 * Better to make reset, then.
  1261		 */
  1262		if (!codec->bus->core.sync_write) {
  1263			codec_info(codec,
  1264				   "Enable sync_write for stable communication\n");
  1265			codec->bus->core.sync_write = 1;
  1266			codec->bus->allow_bus_reset = 1;
  1267		}
  1268	
  1269		snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
  1270	
  1271		return 0;
  1272	
  1273	 error:
  1274		cx_remove(codec);
  1275		return err;
  1276	}
  1277	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-05-01  4:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-27  7:07 [PATCH] ALSA: hda/conexant: Fix missing error check for jack detection wangdich9700
2026-04-27 11:35 ` Markus Elfring
2026-04-27 12:41 ` Takashi Iwai
2026-04-28 18:37 ` kernel test robot
2026-04-28 22:38 ` kernel test robot
2026-04-29 11:03 ` kernel test robot
2026-04-30 12:23 ` kernel test robot
2026-05-01  4:05 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox