From ae2cb0019b7f33638e39abcc19ad4ab3375e9ca1 Mon Sep 17 00:00:00 2001 From: Wenping Zhang Date: Fri, 22 Jun 2018 10:17:42 +0800 Subject: [PATCH] ASoC: soc-generic-dmaengine-pcm: fix kernel panic caused by no dma channel. if there is no dma channel for sound, it will cause kernel panic. CallTrace: [ 3.051899] Unable to handle kernel NULL pointer dereference at virtual address 00000268 [ 3.056756] PC is at dmaengine_pcm_new+0x94/0x268 [ 3.057189] LR is at soc_new_pcm+0x394/0x42c [ 3.225565] [] dmaengine_pcm_new+0x94/0x268 [ 3.226083] [] soc_new_pcm+0x394/0x42c [ 3.226568] [] snd_soc_register_card+0x9cc/0xe78 [ 3.227124] [] devm_snd_soc_register_card+0x4c/0x88 [ 3.227704] [] asoc_simple_card_probe+0x3c8/0x3f8 [ 3.228274] [] platform_drv_probe+0x58/0xa4 [ 3.228791] [] driver_probe_device+0x118/0x2ac [ 3.229333] [] __device_attach_driver+0x88/0x98 [ 3.229886] [] bus_for_each_drv+0x7c/0xac [ 3.230391] [] __device_attach+0xa4/0x124 [ 3.230896] [] device_initial_probe+0x10/0x18 [ 3.231425] [] bus_probe_device+0x2c/0x8c [ 3.231930] [] deferred_probe_work_func+0x74/0xa0 [ 3.232500] [] process_one_work+0x228/0x3f4 [ 3.233018] [] worker_thread+0x304/0x418 [ 3.233512] [] kthread+0xe8/0xf0 [ 3.233944] [] ret_from_fork+0x10/0x30 Fixes: 57fae85633fe ("ASoC: rockchip: add support for "rockchip,force-iram"") Change-Id: Ia225ec129d04690fe64a61f15ad6152a71927d27 Signed-off-by: Wenping Zhang --- sound/soc/soc-generic-dmaengine-pcm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c index 50c5c1e9e77b..88f049996f72 100644 --- a/sound/soc/soc-generic-dmaengine-pcm.c +++ b/sound/soc/soc-generic-dmaengine-pcm.c @@ -278,7 +278,7 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd) return 0; dev = dmaengine_dma_dev(pcm, substream); - if (dev->of_node) { + if (dev && dev->of_node) { ret = of_property_read_bool(dev->of_node, "rockchip,force-iram"); if (ret)