lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZIHSGf18w7htb9o8@hovoldconsulting.com>
Date:   Thu, 8 Jun 2023 15:05:29 +0200
From:   Johan Hovold <johan@...nel.org>
To:     Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
Cc:     vkoul@...nel.org, andersson@...nel.org,
        yung-chuan.liao@...ux.intel.com,
        pierre-louis.bossart@...ux.intel.com, sanyog.r.kale@...el.com,
        linux-arm-msm@...r.kernel.org, alsa-devel@...a-project.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 0/4] soundwire: qcom: stablity fixes

On Thu, Jun 08, 2023 at 01:45:22PM +0100, Srinivas Kandagatla wrote:
> On 08/06/2023 13:40, Johan Hovold wrote:

> > Looking at the above log it seems like we hit a probe deferral somewhere
> > as some resource is not available yet, and this is eventually turned
> > into a hard failure that breaks audio as the error is propagated up the
> > stack.
> 
> I was looking at this too, And I think this change should help..
> Not tried it though

>   	ret = snd_soc_tplg_component_load(component, &audioreach_tplg_ops, fw);
> -	if (ret < 0) {
> +	if (ret < 0)
>   		dev_err(dev, "tplg component load failed%d\n", ret);
> -		ret = -EINVAL;
> -	}

That in itself only seems to make the problem worse with new follow-on
errors. Looks like a dereference of an error pointer in a codec driver:

[   12.086999] snd-sc8280xp sound: ASoC: adding FE link failed
[   12.087231] snd-sc8280xp sound: ASoC: topology: could not load header: -517
[   12.087547] qcom-apm gprsvc:service:2:1: tplg component load failed-517
[   12.088865] snd-sc8280xp sound: ASoC: failed to instantiate card -517
[   12.117093] genirq: Flags mismatch irq 289. 00002001 (HPHR PDM WD INT) vs. 00002001 (HPHR PDM WD INT)
[   12.117504] wcd938x_codec audio-codec: Failed to request HPHR WD interrupt (-16)
[   12.117664] genirq: Flags mismatch irq 290. 00002001 (HPHL PDM WD INT) vs. 00002001 (HPHL PDM WD INT)
[   12.117861] wcd938x_codec audio-codec: Failed to request HPHL WD interrupt (-16)
[   12.118010] genirq: Flags mismatch irq 291. 00002001 (AUX PDM WD INT) vs. 00002001 (AUX PDM WD INT)
[   12.118197] wcd938x_codec audio-codec: Failed to request Aux WD interrupt (-16)
[   12.118579] genirq: Flags mismatch irq 292. 00002001 (mbhc sw intr) vs. 00002001 (mbhc sw intr)
[   12.118763] wcd938x_codec audio-codec: Failed to request mbhc interrupts -16
[   12.122415] snd-sc8280xp sound: ASoC: Parent card not yet available, widget card binding deferred
[   12.126740] Unable to handle kernel paging request at virtual address fffffffffffffff8
[   12.126856] Mem abort info:
[   12.126903]   ESR = 0x0000000096000004
[   12.126961]   EC = 0x25: DABT (current EL), IL = 32 bits
[   12.127036]   SET = 0, FnV = 0
[   12.127085]   EA = 0, S1PTW = 0
[   12.127135]   FSC = 0x04: level 0 translation fault
[   12.127205] Data abort info:
[   12.127250]   ISV = 0, ISS = 0x00000004
[   12.127308]   CM = 0, WnR = 0
[   12.127356] swapper pgtable: 4k pages, 48-bit VAs, pgdp=000000028e41b000
[   12.127445] [fffffffffffffff8] pgd=0000000000000000, p4d=0000000000000000
[   12.127624] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
[   12.127674] Modules linked in: q6apm_dai q6apm_lpass_dais snd_soc_wsa883x q6prm_clocks snd_q6dsp_common q6prm michael_mic cbc des_generic libdes ecb algif_skcipher md5 algif_hash af_alg ip6_tables xt_LOG nf_log_syslog ipt_REJECT nf_reject_ipv4 xt_tcpudp xt_conntrack snd_q6apm nf_conntrack libcrc32c nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter r8152 mii qrtr_mhi panel_edp snd_soc_hdmi_codec venus_dec venus_enc fastrpc gpio_sbu_mux rpmsg_ctrl apr videobuf2_dma_contig rpmsg_char qrtr_smd qcom_spmi_adc_tm5 videobuf2_memops snd_soc_lpass_va_macro snd_soc_lpass_tx_macro snd_soc_lpass_wsa_macro snd_soc_lpass_rx_macro snd_soc_lpass_macro_common ath11k_pci qcom_pm8008_regulator ath11k mac80211 venus_core pmic_glink_altmode qcom_battmgr msm libarc4 v4l2_mem2mem hci_uart videobuf2_v4l2 gpu_sched btqca videodev bluetooth drm_display_helper cfg80211 phy_qcom_qmp_combo videobuf2_common leds_qcom_lpg qcom_spmi_temp_alarm drm_dp_aux_bus ecdh_generic qcom_spmi_adc5 drm_kms_helper mc ecc led_class_multicolor rtc_pm8xxx mhi industrialio
[   12.127941]  qcom_pon rfkill syscopyarea snd_soc_sc8280xp reboot_mode qcom_vadc_common sysfillrect nvmem_qcom_spmi_sdam qcom_pm8008 snd_soc_wcd938x sysimgblt snd_soc_qcom_common snd_soc_qcom_sdw videocc_sc8280xp typec phy_qcom_edp qcom_stats regmap_i2c snd_soc_wcd938x_sdw phy_qcom_qmp_usb pinctrl_sc8280xp_lpass_lpi phy_qcom_snps_femto_v2 qcom_q6v5_pas icc_bwmon soundwire_qcom regmap_sdw pinctrl_lpass_lpi snd_soc_wcd_mbhc lpasscc_sc8280xp qcom_pil_info snd_soc_core qcom_common snd_compress qcom_glink_smem qcom_q6v5 snd_pcm qcom_sysmon snd_timer icc_osm_l3 mdt_loader qrtr qcom_wdt qcom_rng snd pmic_glink pdr_interface soundcore socinfo qmi_helpers pwm_bl soundwire_bus drm dm_mod ip_tables x_tables ipv6 pcie_qcom crc8 phy_qcom_qmp_pcie nvme nvme_core hid_multitouch i2c_qcom_geni i2c_hid_of i2c_hid i2c_core
[   12.129101] CPU: 1 PID: 158 Comm: kworker/u16:7 Not tainted 6.4.0-rc5 #62
[   12.129153] Hardware name: LENOVO 21BYZ9SRUS/21BYZ9SRUS, BIOS N3HET53W (1.25 ) 10/12/2022
[   12.129209] Workqueue: events_unbound deferred_probe_work_func
[   12.129267] pstate: a0400005 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   12.129319] pc : wcd_mbhc_start+0x28/0x380 [snd_soc_wcd_mbhc]
[   12.129381] lr : wcd938x_codec_set_jack+0x28/0x48 [snd_soc_wcd938x]
[   12.129445] sp : ffff80000a523950
[   12.129471] x29: ffff80000a523950 x28: ffff408fd176f080 x27: ffff408fd176c880
[   12.129530] x26: ffffac710f2c0b20 x25: 0002000000000000 x24: 00000000fffffdf4
[   12.129588] x23: ffff408fd176c880 x22: ffff408fd176d518 x21: ffff408fd176f080
[   12.129645] x20: ffff408fc5c30c80 x19: fffffffffffffff0 x18: 0000000000000020
[   12.129701] x17: 0000000000000000 x16: ffffac710e565dac x15: ffffffffffffffff
[   12.129758] x14: ffff40905779741b x13: ffffffffffffffff x12: 0000000000000000
[   12.129814] x11: ffff409b340586f0 x10: ffffac710fbcf1e0 x9 : 0000000000000000
[   12.129870] x8 : ffff408fd9288700 x7 : 0000000000000000 x6 : ffff408fd77891a0
[   12.129926] x5 : ffff408fd176f750 x4 : 0000000000000000 x3 : ffffac70c8662310
[   12.132271] x2 : ffff408fd176d518 x1 : ffff408fc3480158 x0 : fffffffffffffff0
[   12.133443] Call trace:
[   12.134003]  wcd_mbhc_start+0x28/0x380 [snd_soc_wcd_mbhc]
[   12.134567]  wcd938x_codec_set_jack+0x28/0x48 [snd_soc_wcd938x]
[   12.135131]  snd_soc_component_set_jack+0x28/0x8c [snd_soc_core]
[   12.135709]  qcom_snd_wcd_jack_setup+0x7c/0x19c [snd_soc_qcom_common]
[   12.136278]  sc8280xp_snd_init+0x20/0x2c [snd_soc_sc8280xp]
[   12.137080]  snd_soc_link_init+0x28/0x90 [snd_soc_core]
[   12.139427]  snd_soc_bind_card+0x628/0xbfc [snd_soc_core]
[   12.141761]  snd_soc_register_card+0xec/0x104 [snd_soc_core]
[   12.144082]  devm_snd_soc_register_card+0x4c/0xa4 [snd_soc_core]
[   12.146402]  sc8280xp_platform_probe+0xf0/0x108 [snd_soc_sc8280xp]
[   12.148694]  platform_probe+0x68/0xd8
[   12.150969]  really_probe+0x184/0x3c8
[   12.153257]  __driver_probe_device+0x7c/0x16c
[   12.155532]  driver_probe_device+0x3c/0x110
[   12.157787]  __device_attach_driver+0xbc/0x158
[   12.160056]  bus_for_each_drv+0x84/0xe0
[   12.162304]  __device_attach+0xa8/0x1d4
[   12.164518]  device_initial_probe+0x14/0x20
[   12.166716]  bus_probe_device+0xb0/0xb4
[   12.168924]  deferred_probe_work_func+0xa0/0xf4
[   12.171100]  process_one_work+0x288/0x5bc
[   12.173267]  worker_thread+0x74/0x450
[   12.175409]  kthread+0x124/0x128
[   12.177555]  ret_from_fork+0x10/0x20
[   12.179683] Code: fa401804 54001ae0 a9025bf5 aa0003f3 (f9400415) 
[   12.181815] ---[ end trace 0000000000000000 ]---

Johan

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ