Re: remove the ->mapping_error method from dma_map_ops V2
From: Linus Torvalds
Date: Wed Nov 28 2018 - 13:00:29 EST
On Wed, Nov 28, 2018 at 9:45 AM Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxx> wrote:
>
> > I don't think this is a huge deal, but ERR_PTR() has been hugely
> > successful elsewhere. And I'm not hugely convinced about all these
> > "any address can be valid" arguments. How the hell do you generate a
> > random dma address in the last page that isn't even page-aligned?
>
> kmalloc() a 64-byte buffer, dma_map_single() that buffer.
No.
You already cannot do that kmalloc(), exactly because of ERR_PTR().
Not all memory is accessible even to the kernel. If you have memory
that shows up in the last page of phys_addr_t, you just mark it
reserved at boot-time.
Which is what we ALREADY do for these exact reasons. If the DMA
mappings means that you'd need to add one more page to that list of
reserved pages, then so be it.
The whole argument of "every possible piece of memory is DMA'able" is
just wrong.
Linus