Re: linux-next: build failure after merge of the slave-dma tree

From: Vinod Koul
Date: Mon Jul 28 2014 - 03:23:49 EST


On Mon, Jul 28, 2014 at 12:18:56PM +1000, Stephen Rothwell wrote:
> Hi Vinod,
>
> After merging the slave-dma tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/dma/sun6i-dma.c: In function 'sun6i_dma_dump_chan_regs':
> drivers/dma/sun6i-dma.c:203:2: error: implicit declaration of function '__virt_to_phys' [-Werror=implicit-function-declaration]
> phys_addr_t reg = __virt_to_phys((unsigned long)pchan->base);
> ^
>
> Caused by commit 555859308723 ("dmaengine: sun6i: Add driver for the
> Allwinner A31 DMA controller"). Presumably missing an include file.
>
> I have used the slave-dma tree from next-20140725 for today.

Thanks, Feng's robot also gave such warning. SInce maxime didnt send any
fixes it, I am applying below to fix this.
We shouldnt have used __virt_to_phys here

--x8---
From: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Mon, 28 Jul 2014 11:57:25 +0530
Subject: [PATCH 1/2] dmaengine: sun6i: fix build failure on x86, xilinx targets
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Since the driver defined COMPILE_TEST, it gets compiled for different arch's.
The driver uses __virt_to_phys() insteadof virt_to_phys, so replace it

drivers/dma/sun6i-dma.c: In function âsun6i_dma_dump_chan_regsâ:
drivers/dma/sun6i-dma.c:203: error: implicit declaration of function '__virt_to_phys'

Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
---
drivers/dma/sun6i-dma.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
index ce8d5d1..e9f99bb 100644
--- a/drivers/dma/sun6i-dma.c
+++ b/drivers/dma/sun6i-dma.c
@@ -200,7 +200,7 @@ static inline void sun6i_dma_dump_com_regs(struct sun6i_dma_dev *sdev)
static inline void sun6i_dma_dump_chan_regs(struct sun6i_dma_dev *sdev,
struct sun6i_pchan *pchan)
{
- phys_addr_t reg = __virt_to_phys((unsigned long)pchan->base);
+ phys_addr_t reg = virt_to_phys(pchan->base);

dev_dbg(sdev->slave.dev, "Chan %d reg: %pa\n"
"\t___en(%04x): \t0x%08x\n"
@@ -330,7 +330,7 @@ static inline int sun6i_dma_cfg_lli(struct sun6i_dma_lli *lli,
static inline void sun6i_dma_dump_lli(struct sun6i_vchan *vchan,
struct sun6i_dma_lli *lli)
{
- phys_addr_t p_lli = __virt_to_phys((unsigned long)lli);
+ phys_addr_t p_lli = virt_to_phys(lli);

dev_dbg(chan2dev(&vchan->vc.chan),
"\n\tdesc: p - %pa v - 0x%p\n"
--
1.7.0.4

Attachment: signature.asc
Description: Digital signature