From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: David Woodhouse <dwmw2@infradead.org>
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] Stop pci_set_dma_mask() from failing when RAM doesn't exceed the mask anyway
Date: Sat, 01 Aug 2009 08:25:05 +1000 [thread overview]
Message-ID: <1249079105.1509.95.camel@pasglop> (raw)
In-Reply-To: <1249069310.20192.220.camel@macbook.infradead.org>
On Fri, 2009-07-31 at 20:41 +0100, David Woodhouse wrote:
> On an iMac G5, the b43 driver is failing to initialise because trying to
> set the dma mask to 30-bit fails. Even though there's only 512MiB of RAM
> in the machine anyway:
> https://bugzilla.redhat.com/show_bug.cgi?id=514787
>
> We should probably let it succeed if the available RAM in the system
> doesn't exceed the requested limit.
>
> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Also, isn't our iommu code smart enough to clamp allocations to the DMA
mask nowadays ? In that case, we could probably just force iommu on
always...
Cheers,
Ben.
> diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
> index 20a60d6..1769a8e 100644
> --- a/arch/powerpc/kernel/dma.c
> +++ b/arch/powerpc/kernel/dma.c
> @@ -90,11 +90,11 @@ static void dma_direct_unmap_sg(struct device *dev,
> struct scatterlist *sg,
> static int dma_direct_dma_supported(struct device *dev, u64 mask)
> {
> #ifdef CONFIG_PPC64
> - /* Could be improved to check for memory though it better be
> - * done via some global so platforms can set the limit in case
> + extern unsigned long highest_memmap_pfn;
> + /* Could be improved so platforms can set the limit in case
> * they have limited DMA windows
> */
> - return mask >= DMA_BIT_MASK(32);
> + return (mask >> PAGE_SHIFT) >= highest_memmap_pfn;
> #else
> return 1;
> #endif
>
next prev parent reply other threads:[~2009-07-31 22:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-31 19:41 [PATCH] Stop pci_set_dma_mask() from failing when RAM doesn't exceed the mask anyway David Woodhouse
2009-07-31 22:25 ` Benjamin Herrenschmidt [this message]
2009-08-01 7:54 ` David Woodhouse
2009-08-01 8:00 ` Benjamin Herrenschmidt
2009-08-01 9:00 ` David Woodhouse
2009-08-02 7:50 ` Benjamin Herrenschmidt
2009-08-03 13:14 ` David Woodhouse
2009-08-03 21:05 ` Benjamin Herrenschmidt
2009-08-10 6:46 ` Benjamin Herrenschmidt
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=1249079105.1509.95.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=dwmw2@infradead.org \
--cc=linuxppc-dev@lists.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 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.