Re: [PATCH -mm] fix per-device dma_mapping_ops support

From: Andrew Morton
Date: Wed Jul 02 2008 - 00:10:23 EST


On Wed, 2 Jul 2008 12:43:39 +0900 FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote:

> My initial patch has some bugs (wasn't tested because I don't have
> Calgary hardware) but Alexis fixed the problems and submitted new one
> (he successfully tested it). I had one minor comment about it then he
> submitted another one.
>
> http://marc.info/?l=linux-kernel&m=121329005131176&w=2
>
> I think that it can get into mainline with the dma-mapping-per-device
> patchset.
>
> As we discussed, we could do better but it takes some time. I think
> that it's better to fix Calgary problems now. Then I'll try to improve
> dma-mapping-per-device stuff.
>
> Here's a repost of Alexis's latest patch.
>
> Thanks,
>
> =
> From: Alexis Bruemmer <alexisb@xxxxxxxxxx>
> Subject: [PATCH] x86 calgary: fix handling of devces that aren't behind the Calgary
>
> The calgary code can give drivers addresses above 4GB which is very
> bad for hardware that is only 32bit DMA addressable.
>
> With this patch, the calgary code sets the global dma_ops to swiotlb
> or nommu properly, and the dma_ops of devices behind the
> Calgary/CalIOC2 to calgary_dma_ops. So the calgary code can handle
> devices safely that aren't behind the Calgary/CalIOC2.
>

OK.. Looks like this needs to be folded into
dma-mapping-x86-per-device-dma_mapping_ops-support prior to merging to
keep everything bisect-happy.

> + if(translation_enabled(tbl))

checkpatch?


btw, x86_64 allmodconfig says:

arch/x86/kernel/pci-calgary_64.c: In function 'build_detail_arrays':
arch/x86/kernel/pci-calgary_64.c:1263: warning: comparison is always false due t

which is

if (rio_table_hdr->num_scal_dev > MAX_NUMNODES){

so I'll cancel that order for a 512-node Calgary machine ;)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/