Hi,
On Fri, 9 Dec 2022, Mark Brown wrote:
On Fri, Dec 09, 2022 at 01:45:29PM +0200, Kai Vehmanen wrote:
This reverts commit 83bfc7e793b555291785136c3ae86abcdc046887.
Please include human readable descriptions of things like commits and issues being discussed in e-mail in your mails, this makes them much
ack, will fix in V2.
easier for humans to read especially when they have no internet access. I do frequently catch up on my mail on flights or while otherwise travelling so this is even more pressing for me than just being about making things a bit easier to read.
- /*
* make sure clients and machine driver(s) are unregistered to force
* all userspace devices to be closed prior to the DSP shutdown sequence
*/
- sof_unregister_clients(sdev);
- snd_sof_machine_unregister(sdev, pdata);
I am somewhat surprised that these block on the kernel side rather than just disconnecting the kernel side of whatever userspace sees - I'd thought they were more like hotplug operations than something blocking.
Yes, this is not so obvious. The machine unregister ends up in soc-core.c:soc_cleanup_card_resources()
--cut-- static void soc_cleanup_card_resources(struct snd_soc_card *card) { » struct snd_soc_pcm_runtime *rtd, *n;
» if (card->snd_card) » » snd_card_disconnect_sync(card->snd_card); --cut--
... and there we have the "sync" variant call that gets us in trouble with e.g. kexec().
This seems to be only user of snd_card_disconnect_sync(), but it was specifically added to fix a bug in commit 0ced7b050224 ("ASoC: soc-pcm: remove soc_pcm_private_free()").
Br, Kai