From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Christoph Hellwig <hch@lst.de>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Robin Murphy <robin.murphy@arm.com>,
Felipe Balbi <balbi@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"James E . J . Bottomley" <jejb@linux.vnet.ibm.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: iommu@lists.linux-foundation.org, linux-usb@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
Geert Uytterhoeven <geert@linux-m68k.org>
Subject: [PATCH v2 0/5] Allow compile-testing NO_DMA (core)
Date: Fri, 16 Mar 2018 14:25:39 +0100 [thread overview]
Message-ID: <1521206744-1504-1-git-send-email-geert@linux-m68k.org> (raw)
Hi all,
If NO_DMA=y, get_dma_ops() returns a reference to the non-existing
symbol bad_dma_ops, thus causing a link failure if it is ever used.
The intention of this is twofold:
1. To catch users of the DMA API on systems that do no support the DMA
mapping API,
2. To avoid building drivers that cannot work on such systems anyway.
However, the disadvantage is that we have to keep on adding dependencies
on HAS_DMA all over the place.
Thanks to the COMPILE_TEST symbol, lots of drivers now depend on one or
more platform dependencies (that imply HAS_DMA) || COMPILE_TEST, thus
already covering intention #2. Having to add an explicit dependency on
HAS_DMA here is cumbersome, and hinders compile-testing.
Hence I think the time is ripe to reconsider the link failure.
This patch series:
- Changes get_dma_ops() to return NULL instead,
- Adds a few more dummies to enable compile-testing.
A follow-up patch series will:
- Remove dependencies on HAS_DMA for symbols that already have
platform dependencies implying HAS_DMA.
Changes compared to v1:
- Add Reviewed-by, Acked-by,
- Group NO_DMA-stubs for the DMA pool API under a single #ifdef,
- Split the big Kconfig patch in per-subsystem patches, split-off in a
follow-up series.
This series is against v4.16-rc5. It can also be found at
https://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git/log/?h=no-dma-compile-testing-v2
It has been compile-tested with allmodconfig and allyesconfig for
m68k/sun3, and has received attention from the kbuild test robot.
Thanks!
Geert Uytterhoeven (5):
dma-mapping: Convert NO_DMA get_dma_ops() into a real dummy
dma-coherent: Add NO_DMA dummies for managed DMA API
usb: gadget: Add NO_DMA dummies for DMA mapping API
mm: Add NO_DMA dummies for DMA pool API
scsi: Add NO_DMA dummies for SCSI DMA mapping API
include/linux/dma-mapping.h | 19 ++++++++++++++-----
include/linux/dmapool.h | 30 +++++++++++++++++++++++-------
include/linux/usb/gadget.h | 12 ++++++++++++
include/scsi/scsi_cmnd.h | 5 +++++
4 files changed, 54 insertions(+), 12 deletions(-)
--
2.7.4
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
next reply other threads:[~2018-03-16 13:25 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-16 13:25 Geert Uytterhoeven [this message]
2018-03-16 13:25 ` [PATCH v2 1/5] dma-mapping: Convert NO_DMA get_dma_ops() into a real dummy Geert Uytterhoeven
2018-03-16 13:25 ` [PATCH v2 2/5] dma-coherent: Add NO_DMA dummies for managed DMA API Geert Uytterhoeven
2018-03-16 13:25 ` [PATCH v2 3/5] usb: gadget: Add NO_DMA dummies for DMA mapping API Geert Uytterhoeven
2018-03-16 14:34 ` Greg Kroah-Hartman
2018-03-16 13:25 ` [PATCH v2 4/5] mm: Add NO_DMA dummies for DMA pool API Geert Uytterhoeven
2018-03-16 13:25 ` [PATCH v2 5/5] scsi: Add NO_DMA dummies for SCSI DMA mapping API Geert Uytterhoeven
2018-03-16 18:59 ` [PATCH v2 0/5] Allow compile-testing NO_DMA (core) 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=1521206744-1504-1-git-send-email-geert@linux-m68k.org \
--to=geert@linux-m68k.org \
--cc=akpm@linux-foundation.org \
--cc=balbi@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=iommu@lists.linux-foundation.org \
--cc=jejb@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=martin.petersen@oracle.com \
--cc=robin.murphy@arm.com \
/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).