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: <20160612213224.fcjalhwmjqwpjhui@rhwork>
Date:	Sun, 12 Jun 2016 14:32:24 -0700
From:	Jerry Snitselaar <dev@...tselaar.org>
To:	Sudip Mukherjee <sudipm.mukherjee@...il.com>
Cc:	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org, Simran Rai <ssimran@...adcom.com>,
	Christoph Hellwig <hch@....de>
Subject: Re: [PATCH] dma: remove bad_dma_ops to fix build fail

On Sun Jun 12 16, Sudip Mukherjee wrote:
>m32r allmodconfig is failng with errors like:
>ERROR: "bad_dma_ops" [sound/soc/bcm/snd-soc-cygnus.ko] undefined!
>
>On checking the code it turns out that struct bad_dma_ops has been
>declared as extern but no one has actually defined struct bad_dma_ops.
>Lets remove that and return NULL from get_dma_ops() if HAS_DMA is not
>defined.
>
>Signed-off-by: Sudip Mukherjee <sudip.mukherjee@...ethink.co.uk>
>---
>
>This patch has been build tested with m32r allmodconfig,
>x86_64 allmodconfig and i386 allmodconfig.
>
> include/linux/dma-mapping.h | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
>diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
>index 71c1b21..583795a 100644
>--- a/include/linux/dma-mapping.h
>+++ b/include/linux/dma-mapping.h
>@@ -113,10 +113,9 @@ int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma,
>  * dma dependent code.  Code that depends on the dma-mapping
>  * API needs to set 'depends on HAS_DMA' in its Kconfig
>  */
>-extern struct dma_map_ops bad_dma_ops;
> static inline struct dma_map_ops *get_dma_ops(struct device *dev)
> {
>-	return &bad_dma_ops;
>+	return NULL;
> }
> #endif
>
>-- 
>1.9.1
>


Ccing Christoph since his commit introduced bad_dma_ops, and Simran
who wrote that cygnus code.

I'm thinking that is there to complain loudly when someone is trying
to use dma without HAS_DMA, correct Christoph?

cygnus_pcm_preallocate_dma_buffer() is calling dma_alloc_coherent(),
which ends up in a call to get_dma_ops() and tripping over the above.

Possibly this instead:

diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
index d528aac..edf3671 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
@@ -11,6 +11,7 @@ config SND_BCM2835_SOC_I2S
 config SND_SOC_CYGNUS
 	tristate "SoC platform audio for Broadcom Cygnus chips"
 	depends on ARCH_BCM_CYGNUS || COMPILE_TEST
+	depends on HAS_DMA
 	help
 	  Say Y if you want to add support for ASoC audio on Broadcom
 	  Cygnus chips (bcm958300, bcm958305, bcm911360)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ