linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/21] Allow compile-testing NO_DMA (drivers)
@ 2018-03-16 13:51 Geert Uytterhoeven
  2018-03-16 13:51 ` [PATCH v2 01/21] ASoC: Remove depends on HAS_DMA in case of platform dependency Geert Uytterhoeven
                   ` (23 more replies)
  0 siblings, 24 replies; 50+ messages in thread
From: Geert Uytterhoeven @ 2018-03-16 13:51 UTC (permalink / raw)
  To: Christoph Hellwig, Marek Szyprowski, Robin Murphy, Felipe Balbi,
	Greg Kroah-Hartman, James E . J . Bottomley, Martin K . Petersen,
	Andrew Morton, Mark Brown, Liam Girdwood, Tejun Heo, Herbert Xu,
	David S . Miller, Bartlomiej Zolnierkiewicz, Stefan Richter,
	Alan Tull, Moritz Fischer, Wolfram Sang, Jonathan Cameron,
	Joerg Roedel, Matias Bjorling, Jassi Brar, Mauro Carvalho Chehab,
	Ulf Hansson, David Woodhouse, Brian Norris, Marek Vasut,
	Cyrille Pitchen, Boris Brezillon, Richard Weinberger, Kalle Valo,
	Ohad Ben-Cohen, Bjorn Andersson, Eric Anholt, Stefan Wahren
  Cc: alsa-devel, linux-iio, linux-fpga, linux-remoteproc, linux-fbdev,
	linux-ide, linux-mtd, linux-i2c, linux1394-devel, devel,
	linux-scsi, Geert Uytterhoeven, linux-serial, linux-media,
	linux-block, netdev, linux-usb, linux-mmc, linux-kernel,
	linux-spi, iommu, linux-crypto

	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.
Patch series "[PATCH v2 0/5] Allow compile-testing NO_DMA (core)"
(https://lkml.org/lkml/2018/3/16/435) already:
  - Changed get_dma_ops() to return NULL instead,
  - Added a few more dummies to enable compile-testing.

This patch series:
  - Removes dependencies on HAS_DMA for symbols that already have
    platform dependencies implying HAS_DMA.

To avoid allmodconfig/allyesconfig regressions on NO_DMA=y platforms,
this (drivers) series should be applied after the previous (core)
series (but not many people may notice/care ;-)

Changes compared to v1:
  - Add Reviewed-by, Acked-by,
  - Drop dependency of SND_SOC_LPASS_IPQ806X on HAS_DMA,
  - Drop dependency of VIDEOBUF{,2}_DMA_{CONTIG,SG} on HAS_DMA,
  - Drop new dependencies of VIDEO_IPU3_CIO2, DVB_C8SECTPFE, and
    MTD_NAND_MARVELL on HAS_DMA,
  - Split in per-subsystem patches,
  - Split-off the core part in a separate 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 (21):
  ASoC: Remove depends on HAS_DMA in case of platform dependency
  ata: Remove depends on HAS_DMA in case of platform dependency
  crypto: Remove depends on HAS_DMA in case of platform dependency
  fbdev: Remove depends on HAS_DMA in case of platform dependency
  firewire: Remove depends on HAS_DMA in case of platform dependency
  fpga: Remove depends on HAS_DMA in case of platform dependency
  i2c: Remove depends on HAS_DMA in case of platform dependency
  iio: adc: Remove depends on HAS_DMA in case of platform dependency
  iommu: Remove depends on HAS_DMA in case of platform dependency
  lightnvm: Remove depends on HAS_DMA in case of platform dependency
  mailbox: Remove depends on HAS_DMA in case of platform dependency
  media: Remove depends on HAS_DMA in case of platform dependency
  mmc: Remove depends on HAS_DMA in case of platform dependency
  mtd: Remove depends on HAS_DMA in case of platform dependency
  net: Remove depends on HAS_DMA in case of platform dependency
  remoteproc: Remove depends on HAS_DMA in case of platform dependency
  scsi: hisi_sas: Remove depends on HAS_DMA in case of platform
    dependency
  serial: Remove depends on HAS_DMA in case of platform dependency
  spi: Remove depends on HAS_DMA in case of platform dependency
  staging: vc04_services: Remove depends on HAS_DMA in case of platform
    dependency
  usb: Remove depends on HAS_DMA in case of platform dependency

 drivers/ata/Kconfig                             |  2 --
 drivers/crypto/Kconfig                          | 14 +++------
 drivers/firewire/Kconfig                        |  1 -
 drivers/fpga/Kconfig                            |  1 -
 drivers/i2c/busses/Kconfig                      |  3 --
 drivers/iio/adc/Kconfig                         |  2 --
 drivers/iommu/Kconfig                           |  5 ++--
 drivers/lightnvm/Kconfig                        |  2 +-
 drivers/mailbox/Kconfig                         |  2 --
 drivers/media/common/videobuf2/Kconfig          |  2 --
 drivers/media/pci/dt3155/Kconfig                |  1 -
 drivers/media/pci/intel/ipu3/Kconfig            |  1 -
 drivers/media/pci/solo6x10/Kconfig              |  1 -
 drivers/media/pci/sta2x11/Kconfig               |  1 -
 drivers/media/pci/tw5864/Kconfig                |  1 -
 drivers/media/pci/tw686x/Kconfig                |  1 -
 drivers/media/platform/Kconfig                  | 40 ++++++++-----------------
 drivers/media/platform/am437x/Kconfig           |  2 +-
 drivers/media/platform/atmel/Kconfig            |  4 +--
 drivers/media/platform/blackfin/Kconfig         |  1 -
 drivers/media/platform/davinci/Kconfig          |  6 ----
 drivers/media/platform/marvell-ccic/Kconfig     |  3 +-
 drivers/media/platform/rcar-vin/Kconfig         |  2 +-
 drivers/media/platform/soc_camera/Kconfig       |  3 +-
 drivers/media/platform/sti/c8sectpfe/Kconfig    |  2 +-
 drivers/media/v4l2-core/Kconfig                 |  2 --
 drivers/mmc/host/Kconfig                        | 10 ++-----
 drivers/mtd/nand/Kconfig                        |  8 ++---
 drivers/mtd/spi-nor/Kconfig                     |  2 +-
 drivers/net/ethernet/amd/Kconfig                |  2 +-
 drivers/net/ethernet/apm/xgene-v2/Kconfig       |  1 -
 drivers/net/ethernet/apm/xgene/Kconfig          |  1 -
 drivers/net/ethernet/arc/Kconfig                |  6 ++--
 drivers/net/ethernet/broadcom/Kconfig           |  2 --
 drivers/net/ethernet/calxeda/Kconfig            |  2 +-
 drivers/net/ethernet/hisilicon/Kconfig          |  2 +-
 drivers/net/ethernet/marvell/Kconfig            |  8 ++---
 drivers/net/ethernet/mellanox/mlxsw/Kconfig     |  2 +-
 drivers/net/ethernet/renesas/Kconfig            |  2 --
 drivers/net/wireless/broadcom/brcm80211/Kconfig |  1 -
 drivers/net/wireless/quantenna/qtnfmac/Kconfig  |  2 +-
 drivers/remoteproc/Kconfig                      |  1 -
 drivers/scsi/hisi_sas/Kconfig                   |  2 +-
 drivers/spi/Kconfig                             | 12 ++------
 drivers/staging/media/davinci_vpfe/Kconfig      |  1 -
 drivers/staging/media/omap4iss/Kconfig          |  1 -
 drivers/staging/vc04_services/Kconfig           |  1 -
 drivers/tty/serial/Kconfig                      |  4 ---
 drivers/usb/gadget/udc/Kconfig                  |  4 +--
 drivers/usb/mtu3/Kconfig                        |  2 +-
 drivers/video/fbdev/Kconfig                     |  3 +-
 sound/soc/bcm/Kconfig                           |  3 +-
 sound/soc/kirkwood/Kconfig                      |  1 -
 sound/soc/pxa/Kconfig                           |  1 -
 sound/soc/qcom/Kconfig                          |  7 ++---
 55 files changed, 56 insertions(+), 143 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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2018-04-17 17:48 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-16 13:51 [PATCH v2 00/21] Allow compile-testing NO_DMA (drivers) Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 01/21] ASoC: Remove depends on HAS_DMA in case of platform dependency Geert Uytterhoeven
2018-03-19  0:54   ` Mark Brown
2018-03-16 13:51 ` [PATCH v2 02/21] ata: " Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 03/21] crypto: " Geert Uytterhoeven
2018-03-16 15:52   ` Herbert Xu
2018-03-16 13:51 ` [PATCH v2 04/21] fbdev: " Geert Uytterhoeven
2018-03-16 16:01   ` Bartlomiej Zolnierkiewicz
2018-03-16 13:51 ` [PATCH v2 05/21] firewire: " Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 06/21] fpga: " Geert Uytterhoeven
2018-03-19 16:06   ` Alan Tull
2018-03-20 10:04     ` Geert Uytterhoeven
2018-03-20 18:20       ` Alan Tull
2018-03-16 13:51 ` [PATCH v2 07/21] i2c: " Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 08/21] iio: adc: " Geert Uytterhoeven
2018-03-17 16:42   ` Jonathan Cameron
2018-03-16 13:51 ` [PATCH v2 09/21] iommu: " Geert Uytterhoeven
2018-03-16 14:51   ` Joerg Roedel
2018-03-16 13:51 ` [PATCH v2 10/21] lightnvm: " Geert Uytterhoeven
2018-03-18 18:46   ` Matias Bjørling
2018-03-19  5:27   ` Madalin-cristian Bucur
2018-03-20 10:09     ` Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 11/21] mailbox: " Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 12/21] media: " Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 13/21] mmc: " Geert Uytterhoeven
2018-03-19  3:08   ` Ulf Hansson
2018-03-16 13:51 ` [PATCH v2 14/21] mtd: " Geert Uytterhoeven
2018-03-18 22:04   ` Boris Brezillon
2018-03-20 10:06     ` Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 15/21] net: " Geert Uytterhoeven
2018-03-16 13:51 ` [PATCH v2 16/21] remoteproc: " Geert Uytterhoeven
2018-03-18 22:36   ` Bjorn Andersson
2018-03-16 13:51 ` [PATCH v2 17/21] scsi: hisi_sas: " Geert Uytterhoeven
2018-03-16 14:36   ` John Garry
2018-03-16 13:51 ` [PATCH v2 18/21] serial: " Geert Uytterhoeven
2018-03-16 14:34   ` Greg Kroah-Hartman
2018-03-16 13:51 ` [PATCH v2 19/21] spi: " Geert Uytterhoeven
2018-03-19  0:54   ` Mark Brown
2018-03-16 13:51 ` [PATCH v2 20/21] staging: vc04_services: " Geert Uytterhoeven
2018-03-16 14:34   ` Greg Kroah-Hartman
2018-03-16 13:51 ` [PATCH v2 21/21] usb: " Geert Uytterhoeven
2018-03-16 14:36   ` Greg Kroah-Hartman
2018-03-16 15:14 ` [PATCH v2 00/21] Allow compile-testing NO_DMA (drivers) Herbert Xu
2018-03-16 15:41   ` Geert Uytterhoeven
2018-03-16 15:52     ` Herbert Xu
2018-03-16 21:23 ` Wolfram Sang
2018-03-20  9:57   ` Geert Uytterhoeven
2018-03-20 10:02     ` Wolfram Sang
2018-04-05  0:32 ` Rob Herring
2018-04-17 17:48   ` Geert Uytterhoeven

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).