From: Josh Boyer <jwboyer@linux.vnet.ibm.com>
To: Becky Bruce <becky.bruce@freescale.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH V2 4/4] POWERPC: Merge 32 and 64-bit dma code
Date: Mon, 13 Oct 2008 11:41:27 -0400 [thread overview]
Message-ID: <20081013154127.GA27124@yoda.jdub.homelinux.org> (raw)
In-Reply-To: <20081013144904.GB18363@yoda.jdub.homelinux.org>
On Mon, Oct 13, 2008 at 10:49:04AM -0400, Josh Boyer wrote:
>On Fri, Sep 12, 2008 at 03:34:46PM -0500, Becky Bruce wrote:
>>We essentially adopt the 64-bit dma code, with some changes to support
>>32-bit systems, including HIGHMEM. dma functions on 32-bit are now
>>invoked via accessor functions which call the correct op for a device based
>>on archdata dma_ops. If there is no archdata dma_ops, this defaults
>>to dma_direct_ops.
>>
>>In addition, the dma_map/unmap_page functions are added to dma_ops
>>because we can't just fall back on map/unmap_single when HIGHMEM is
>>enabled. In the case of dma_direct_*, we stop using map/unmap_single
>>and just use the page version - this saves a lot of ugly
>>ifdeffing. We leave map/unmap_single in the dma_ops definition,
>>though, because they are needed by the iommu code, which does not
>>implement map/unmap_page. Ideally, going forward, we will completely
>>eliminate map/unmap_single and just have map/unmap_page, if it's
>>workable for 64-bit.
>>
>>Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
>
>While doing a buildall this morning, I notice chrp32_defconfig fails
>to build with:
>
>drivers/built-in.o: In function `hard_dma_setup':
>floppy.c:(.text+0x6e40e): undefined reference to `isa_bridge_pcidev'
>floppy.c:(.text+0x6e412): undefined reference to `isa_bridge_pcidev'
>floppy.c:(.text+0x6e53e): undefined reference to `isa_bridge_pcidev'
>floppy.c:(.text+0x6e546): undefined reference to `isa_bridge_pcidev'
>floppy.c:(.text+0x6e54a): undefined reference to `isa_bridge_pcidev'
>make[1]: *** [.tmp_vmlinux1] Error 1
>
>(the hard_dma_setup thing is in arch/powerpc/include/asm/floppy.h).
>
>I did a git bisect and it pointed at this commit as causing the build
>to fail. Why, I have no idea.
Ok, I was annoyed enough to look at why.
Basically, before this patch pci_map_single on 32-bit PPC seemed to
be compiled down to __dma_sync(ptr, size, direction); and the "dev"
parameter to the function was never actually used. The compiler
seems to have optimized this out entirely, so we don't get the odd
link reference to isa_bridge_pcidev at all. (Neither pci_map_single
or isa_bridge_pcidev are present in the vmlinux at all).
With the patch, the compiler doesn't do this code elimination
because pci_map_single boils down to dma_map_page, which calls
get_dma_direct_offset with the "dev" parameter. So since it is
still used, the compiler can't eliminate it and hence FAIL.
I have no patch for this at the moment. Someone should look at
it more closely, because this is causing the 5 chrp32_defconfig
users to weep.
josh
next prev parent reply other threads:[~2008-10-13 15:42 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-08 19:09 [PATCH 0/4] POWERPC: 32/64-bit DMA code merge and cleanup Becky Bruce
2008-09-08 19:09 ` [PATCH 1/4] POWERPC: Rename dma_64.c to dma.c Becky Bruce
2008-09-08 19:09 ` [PATCH 2/4] POWERPC: Move iommu dma ops from dma.c to dma-iommu.c Becky Bruce
2008-09-08 19:09 ` [PATCH 3/4] POWERPC: Drop archdata numa_node Becky Bruce
2008-09-08 19:09 ` [PATCH 4/4] POWERPC: Merge 32 and 64-bit dma code Becky Bruce
2008-09-08 22:03 ` Christoph Hellwig
2008-09-09 10:54 ` Benjamin Herrenschmidt
2008-09-09 14:39 ` Becky Bruce
2008-09-09 20:45 ` Christoph Hellwig
2008-09-09 22:10 ` Benjamin Herrenschmidt
2008-09-09 22:13 ` Christoph Hellwig
2008-09-09 22:17 ` Becky Bruce
2008-09-12 20:34 ` [PATCH V2 " Becky Bruce
2008-10-13 14:49 ` Josh Boyer
2008-10-13 15:41 ` Josh Boyer [this message]
2008-10-13 18:06 ` Kumar Gala
2008-10-13 18:21 ` Josh Boyer
2008-10-13 18:22 ` Kumar Gala
2008-10-13 23:30 ` Benjamin Herrenschmidt
2008-10-14 1:52 ` Kumar Gala
2008-10-14 10:24 ` Josh Boyer
2008-10-14 12:05 ` Benjamin Herrenschmidt
2008-10-14 15:45 ` Becky Bruce
2008-10-13 23:30 ` Benjamin Herrenschmidt
2008-09-08 21:57 ` [PATCH 2/4] POWERPC: Move iommu dma ops from dma.c to dma-iommu.c Christoph Hellwig
2008-09-12 15:32 ` Becky Bruce
2008-09-08 19:18 ` [PATCH 1/4] POWERPC: Rename dma_64.c to dma.c Scott Wood
2008-09-08 21:27 ` git apply vs. renamed files index mismatch (was: Re: [PATCH 1/4] POWERPC: Rename dma_64.c to dma.c) Anton Vorontsov
2008-09-08 21:38 ` git apply vs. renamed files index mismatch Scott Wood
2008-09-08 21:54 ` Anton Vorontsov
2008-09-09 0:55 ` Junio C Hamano
2008-09-09 9:06 ` Geert Uytterhoeven
2008-09-08 21:58 ` git apply vs. renamed files index mismatch (was: Re: [PATCH 1/4] POWERPC: Rename dma_64.c to dma.c) Christoph Hellwig
2008-09-09 0:53 ` git apply vs. renamed files index mismatch Junio C Hamano
2008-09-09 10:06 ` Anton Vorontsov
2008-09-09 14:45 ` Junio C Hamano
2008-09-09 15:14 ` Anton Vorontsov
2008-09-10 3:31 ` Junio C Hamano
2008-09-08 21:56 ` [PATCH 0/4] POWERPC: 32/64-bit DMA code merge and cleanup Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081013154127.GA27124@yoda.jdub.homelinux.org \
--to=jwboyer@linux.vnet.ibm.com \
--cc=becky.bruce@freescale.com \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).