diff mbox

ASoC: arm64: use the same dma mmap codepath both for arm and arm64

Message ID 1413575014-19873-1-git-send-email-anatol.pomozov@gmail.com (mailing list archive)
State Accepted
Commit a011e213f3700233ed2a676f1ef0a74a052d7162
Headers show

Commit Message

Anatol Pomozov Oct. 17, 2014, 7:43 p.m. UTC
This avoids following kernel crash when try to playback on arm64

[  107.497203] [<ffffffc00046b310>] snd_pcm_mmap_data_fault+0x90/0xd4
[  107.503405] [<ffffffc0001541ac>] __do_fault+0xb0/0x498
[  107.508565] [<ffffffc0001576a0>] handle_mm_fault+0x224/0x7b0
[  107.514246] [<ffffffc000092640>] do_page_fault+0x11c/0x310
[  107.519738] [<ffffffc000081100>] do_mem_abort+0x38/0x98

Tested: backported to 3.14 and tried to playback on arm64 machine
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
---
 sound/core/pcm_native.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Takashi Iwai Oct. 18, 2014, 9:11 a.m. UTC | #1
At Fri, 17 Oct 2014 12:43:34 -0700,
Anatol Pomozov wrote:
> 
> This avoids following kernel crash when try to playback on arm64
> 
> [  107.497203] [<ffffffc00046b310>] snd_pcm_mmap_data_fault+0x90/0xd4
> [  107.503405] [<ffffffc0001541ac>] __do_fault+0xb0/0x498
> [  107.508565] [<ffffffc0001576a0>] handle_mm_fault+0x224/0x7b0
> [  107.514246] [<ffffffc000092640>] do_page_fault+0x11c/0x310
> [  107.519738] [<ffffffc000081100>] do_mem_abort+0x38/0x98
> 
> Tested: backported to 3.14 and tried to playback on arm64 machine
> Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>

It's not specific to ASoC, so I applied the patch with modified
subject now.

We should clean up the relevant part in general, as now more
architectures support dma_mmap_coherent().  But it'd be a change for
3.19.


thanks,

Takashi

> ---
>  sound/core/pcm_native.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
> index 8cd2f93..a95356f 100644
> --- a/sound/core/pcm_native.c
> +++ b/sound/core/pcm_native.c
> @@ -3193,7 +3193,7 @@ static const struct vm_operations_struct snd_pcm_vm_ops_data_fault = {
>  
>  #ifndef ARCH_HAS_DMA_MMAP_COHERENT
>  /* This should be defined / handled globally! */
> -#ifdef CONFIG_ARM
> +#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
>  #define ARCH_HAS_DMA_MMAP_COHERENT
>  #endif
>  #endif
> -- 
> 2.1.0.rc2.206.gedb03e5
>
diff mbox

Patch

diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 8cd2f93..a95356f 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -3193,7 +3193,7 @@  static const struct vm_operations_struct snd_pcm_vm_ops_data_fault = {
 
 #ifndef ARCH_HAS_DMA_MMAP_COHERENT
 /* This should be defined / handled globally! */
-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
 #define ARCH_HAS_DMA_MMAP_COHERENT
 #endif
 #endif