[bug report] ALSA: hda - Don't register a cb func if it is registered already
Hui Wang
hui.wang at canonical.com
Thu Oct 22 03:42:22 CEST 2020
On 10/22/20 1:27 AM, Dan Carpenter wrote:
> On Wed, Oct 21, 2020 at 11:03:11PM +0800, Hui Wang wrote:
>> Looks like this will not bring problem on patch_sigmatel.c, NULL and valid
>> kernel pointer are same for IS_ERR(), they will not make IS_ERR() come true.
>>
> Correct, but that is the problem. You can dereference a valid pointer
> but you can't dereference a NULL.
>
>> On 10/21/20 10:21 PM, Hui Wang wrote:
>>> On 10/21/20 8:19 PM, Dan Carpenter wrote:
>>>> Hello Hui Wang,
>>>>
>>>> The patch f4794c6064a8: "ALSA: hda - Don't register a cb func if it
>>>> is registered already" from Sep 30, 2020, leads to the following
>>>> static checker warning:
>>>>
>>>> sound/pci/hda/patch_sigmatel.c:3075 stac92hd71bxx_fixup_hp_m4()
>>>> warn: 'jack' can also be NULL
>>>>
>>>> sound/pci/hda/patch_sigmatel.c
>>>> 3069 /* Enable VREF power saving on GPIO1 detect */
>>>> 3070 snd_hda_codec_write_cache(codec, codec->core.afg, 0,
>>>> 3071 AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x02);
>>>> 3072 jack = snd_hda_jack_detect_enable_callback(codec,
>>>> codec->core.afg,
>>>> 3073 stac_vref_event);
>>>>
>>>> Originally snd_hda_jack_detect_enable_callback() would not return NULL
>>>> here.
>>>>
>>>> 3074 if (!IS_ERR(jack))
>>>> 3075 jack->private_data = 0x02;
> So if "jack" is NULL then it will say it's not an error pointer so it
> will try to assign jack->private_data = 0x02; and oops.
Right. Will fix it.
Thanks
>
> regards,
> dan carpenter
>
More information about the Alsa-devel
mailing list