In the Linux kernel, the following vulnerability has been resolved: ALSA: hda: Do not unset preset when cleaning up codec Several functions that take part in codec's initialization and removal are re-used by ASoC codec drivers implementations. Drivers mimic the behavior of hdacodecdriverprobe/remove() found in sound/pci/hda/hdabind.c with their component->probe/remove() instead. One of the reasons for that is the expectation of sndhdacodecdevicenew() to receive a valid pointer to an instance of struct sndcard. This expectation can be met only once sound card components probing commences. As ASoC sound card may be unbound without codec device being actually removed from the system, unsetting ->preset in sndhdacodeccleanupforunbind() interferes with module unload -> load scenario causing null-ptr-deref. Preset is assigned only once, during device/driver matching whereas ASoC codec driver's module reloading may occur several times throughout the lifetime of an audio stack.