All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: Nicolas Pitre <nico@cam.org>, lkml <linux-kernel@vger.kernel.org>
Subject: Re: wrong usage of MAX_DMA_ADDRESS in bootmem.h
Date: Tue, 30 Sep 2008 21:12:24 +0100	[thread overview]
Message-ID: <20080930201224.GL15911@flint.arm.linux.org.uk> (raw)
In-Reply-To: <48E2846A.4030802@linux-foundation.org>

On Tue, Sep 30, 2008 at 02:56:26PM -0500, Christoph Lameter wrote:
> Nicolas Pitre wrote:
> > I have implemented highmem for ARM.  To catch wrong usage of __pa() and 
> >
> > One issue is that bootmem.h uses __pa(MAX_DMA_ADDRESS). However 
> > MAX_DMA_ADDRESS on ARM is defined as 0xffffffff because there is usually 
> > no restriction on the maximum DMA-able address.
> > 
> > RMK suggested that those places should be using ISA_DMA_THRESHOLD 
> > instead -- here's an excert of our conversation on this topic:
> >
> 
> ok so do
> 
> #define MAX_DMA_ADDRESS ISA_DMA_THRESHOLD

Not correct.  MAX_DMA_ADDRESS is a virtual address.  ISA_DMA_THRESHOLD
is the last byte of _physical_ memory which ISA DMA can transfer:

include/asm-x86/scatterlist.h:#define ISA_DMA_THRESHOLD (0x00ffffff)

So what you've just suggested is completely insane.

>  >> I suspect all those places which are doing __pa(MAX_DMA_ADDRESS) really
> >> want to be using ISA_DMA_THRESHOLD - that's something to raise on LKML
> >> if it's causing problems.
> 
> MAX_DMA_ADDRESS is the highest address used for ZONE_DMA / GFP_DMA

Incorrect.  MAX_DMA_ADDRESS is the highest possible virtual DMA address:

include/asm-x86/dma.h:#define MAX_DMA_ADDRESS      (PAGE_OFFSET + 0x1000000)

Think about what that means on an x86 machine with less than 16MB of RAM.

> Does ISA_DMA_THRESHOLD have any meaning on ARM? If you use old ISA stuff then
> you need CONFIG_ZONE_DMA and therefore also MAX_DMA_ADDRESS.

As we have already covered in the past, CONFIG_ZONE_DMA has to always
be enabled on ARM because ARM always puts all memory in the first zone.
To do otherwise introduces lots of special cases, and I steadfastly
refuse to make the memory initialisation any more complicated than it
already is.

And besides, this has nothing to do with that issue.

  reply	other threads:[~2008-09-30 20:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1222230419-15661-21-git-send-email-nico@cam.org>
     [not found] ` <1222230592-15868-1-git-send-email-nico@cam.org>
     [not found]   ` <20080930162809.GD15911@flint.arm.linux.org.uk>
     [not found]     ` <alpine.LFD.2.00.0809301409230.3635@xanadu.home>
     [not found]       ` <20080930184411.GJ15911@flint.arm.linux.org.uk>
2008-09-30 19:35         ` wrong usage of MAX_DMA_ADDRESS in bootmem.h Nicolas Pitre
2008-09-30 19:56           ` Christoph Lameter
2008-09-30 20:12             ` Russell King - ARM Linux [this message]
2008-09-30 21:09               ` Nicolas Pitre
2008-10-01 12:07               ` Christoph Lameter
2008-10-01 14:06                 ` Russell King - ARM Linux
2008-10-01 14:50                   ` Christoph Lameter
2008-10-01 15:02                     ` Russell King - ARM Linux
2008-10-02 16:49                       ` Christoph Lameter
2008-10-02 19:06                         ` Russell King - ARM Linux

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=20080930201224.GL15911@flint.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=cl@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nico@cam.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.