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] [day] [month] [year] [list]
Message-ID: <s5h37ip9pbr.wl-tiwai@suse.de>
Date:   Fri, 18 Nov 2016 09:15:04 +0100
From:   Takashi Iwai <tiwai@...e.de>
To:     Florian Fainelli <f.fainelli@...il.com>
Cc:     linux-kernel@...r.kernel.org,
        "moderated list:SOUND" <alsa-devel@...a-project.org>,
        arnd@...db.de, Jaroslav Kysela <perex@...ex.cz>
Subject: Re: [PATCH] sound: Add dependency on DMA

On Thu, 17 Nov 2016 20:42:38 +0100,
Florian Fainelli wrote:
> 
> On 11/17/2016 11:14 AM, Florian Fainelli wrote:
> > On 11/17/2016 11:03 AM, Takashi Iwai wrote:
> >> On Thu, 17 Nov 2016 19:52:37 +0100,
> >> Florian Fainelli wrote:
> >>>
> >>> Architectures like m32r do not have a proper DMA-API implementation,
> >>> fixes COMPILE_TEST linking failures for the sounds subsystem.
> >>
> >> What error did you get exactly?
> >> There are already CONFIG_HAS_DMA dependency in a few places, so I
> >> wonder what's missing.
> > 
> > They looked like these:
> > 
> > sound/built-in.o: In function `snd_pcm_lib_default_mmap':
> > (.text+0xbb14): undefined reference to `bad_dma_ops'
> > sound/built-in.o: In function `snd_pcm_lib_default_mmap':
> > (.text+0xbb1c): undefined reference to `bad_dma_ops'
> > sound/built-in.o: In function `snd_pcm_lib_default_mmap':
> > (.text+0xbb34): undefined reference to `dma_common_mmap'
> > sound/built-in.o: In function `snd_pcm_lib_default_mmap':
> > (.text+0xbb34): relocation truncated to fit: R_M32R_26_PCREL_RELA
> > against undefined symbol `dma_common_mmap'
> > Makefile:961: recipe for target 'vmlinux' failed
> > 
> > I could probably add an ifdef CONFIG_HAS_DMA just surrounding these
> > snd_pcm_lib if you think this is more appropriate?
> 
> I can't reproduce this build failure reliably anyway now, it was due to
> switching between x86/m32r configurations, the only offender was the
> Broadcom Cygnus driver, and this has been fixed as well.

OK, good to hear.

Meanwhile, we can put a patch like below just to be sure, too.  But
you can't check whether it works now ;)


thanks,

Takashi

---
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 9d33c1e85c79..8d7a61078b9f 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -3403,6 +3403,7 @@ int snd_pcm_lib_default_mmap(struct snd_pcm_substream *substream,
 				area->vm_end - area->vm_start, area->vm_page_prot);
 	}
 #endif /* CONFIG_GENERIC_ALLOCATOR */
+#ifdef CONFIG_HAS_DMA
 #ifndef CONFIG_X86 /* for avoiding warnings arch/x86/mm/pat.c */
 	if (!substream->ops->page &&
 	    substream->dma_buffer.dev.type == SNDRV_DMA_TYPE_DEV)
@@ -3412,6 +3413,7 @@ int snd_pcm_lib_default_mmap(struct snd_pcm_substream *substream,
 					 substream->runtime->dma_addr,
 					 area->vm_end - area->vm_start);
 #endif /* CONFIG_X86 */
+#endif /* CONFIG_HAS_DMA */
 	/* mmap with fault handler */
 	area->vm_ops = &snd_pcm_vm_ops_data_fault;
 	return 0;

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ