mbox series

[0/9] ALSA: hda: Codec-reload bug fixes and cleanups

Message ID 20220706120230.427296-1-cezary.rojewski@intel.com (mailing list archive)
Headers show
Series ALSA: hda: Codec-reload bug fixes and cleanups | expand

Message

Cezary Rojewski July 6, 2022, 12:02 p.m. UTC
Total of 6 fixes and 3 cleanups - cleanups are last.

All of the fixes address problems that present themselves in situation
when user engages in codec driver reload. Second condition to reproduce
is two-step initialization of HDAudio codec - this is the case only for
ASoC HDAudio bus driver as snd_hda_intel calls only compound function
snd_hda_codec_new(). Once these conditions are met, several
reload/unload scenarios end with null-ptr-deref and page faults. Goal of
the series is to allow codec/bus driver reloading without any errors.

Amadeusz Sławiński (2):
  ALSA: hda: Reset all SIE bits in INTCTL
  ALSA: hda: Remove unused macro definition

Cezary Rojewski (7):
  ALSA: hda: Do not unset preset when cleaning up codec
  ALSA: hda: Fix null-ptr-deref when i915 fails and hdmi is denylisted
  ALSA: hda: Make device usage_count consistent across subsequent
    probing
  ALSA: hda: Fix put_device() inconsistency in error path
  ALSA: hda: Skip event processing for unregistered codecs
  ALSA: hda: Fix page fault in snd_hda_codec_shutdown()
  ALSA: hda/realtek: Remove redundant init_hook() in alc_default_init()

 include/sound/hda_codec.h           |  1 -
 include/sound/hdaudio.h             |  1 +
 sound/hda/ext/hdac_ext_controller.c |  7 ---
 sound/hda/hdac_bus.c                |  2 +-
 sound/hda/hdac_controller.c         |  7 +--
 sound/pci/hda/hda_bind.c            |  7 +++
 sound/pci/hda/hda_codec.c           | 83 +++++++++++++++--------------
 sound/pci/hda/patch_realtek.c       |  3 --
 sound/soc/codecs/hda.c              |  4 +-
 9 files changed, 56 insertions(+), 59 deletions(-)

Comments

Takashi Iwai July 9, 2022, 4:50 p.m. UTC | #1
On Wed, 06 Jul 2022 14:02:21 +0200,
Cezary Rojewski wrote:
> 
> Total of 6 fixes and 3 cleanups - cleanups are last.
> 
> All of the fixes address problems that present themselves in situation
> when user engages in codec driver reload. Second condition to reproduce
> is two-step initialization of HDAudio codec - this is the case only for
> ASoC HDAudio bus driver as snd_hda_intel calls only compound function
> snd_hda_codec_new(). Once these conditions are met, several
> reload/unload scenarios end with null-ptr-deref and page faults. Goal of
> the series is to allow codec/bus driver reloading without any errors.
> 
> Amadeusz Sławiński (2):
>   ALSA: hda: Reset all SIE bits in INTCTL
>   ALSA: hda: Remove unused macro definition
> 
> Cezary Rojewski (7):
>   ALSA: hda: Do not unset preset when cleaning up codec
>   ALSA: hda: Fix null-ptr-deref when i915 fails and hdmi is denylisted
>   ALSA: hda: Make device usage_count consistent across subsequent
>     probing
>   ALSA: hda: Fix put_device() inconsistency in error path
>   ALSA: hda: Skip event processing for unregistered codecs
>   ALSA: hda: Fix page fault in snd_hda_codec_shutdown()
>   ALSA: hda/realtek: Remove redundant init_hook() in alc_default_init()

Now applied partially what are applicable and look correct: patches
2, 3, 4, 6, 7, and 8.

Patch 5 waits for Mark's PR of ASoC changes, and patch 1 needs a bit
more clarification and investigation.


thanks,

Takashi