All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Isaac J. Manjarres" <isaacm@codeaurora.org>
To: Will Deacon <will@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	iommu@lists.linux-foundation.org,
	Robin Murphy <robin.murphy@arm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/7] iommu/arm-smmu: Allow building as a module
Date: Mon, 4 Nov 2019 11:34:00 -0800	[thread overview]
Message-ID: <20191104193400.GA24983@codeaurora.org> (raw)
In-Reply-To: <20191030145112.19738-8-will@kernel.org>

On Wed, Oct 30, 2019 at 02:51:12PM +0000, Will Deacon wrote:
> By conditionally dropping support for the legacy binding and exporting
> the newly introduced 'arm_smmu_impl_init()' function we can allow the
> ARM SMMU driver to be built as a module.
> 
> Signed-off-by: Will Deacon <will@kernel.org>
> ---
>  drivers/iommu/Kconfig         | 14 ++++++++-
>  drivers/iommu/arm-smmu-impl.c |  6 ++++
>  drivers/iommu/arm-smmu.c      | 54 +++++++++++++++++++++--------------
>  3 files changed, 51 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index 7583d47fc4d5..02703f51e533 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -350,7 +350,7 @@ config SPAPR_TCE_IOMMU
>  
>  # ARM IOMMU support
>  config ARM_SMMU
> -	bool "ARM Ltd. System MMU (SMMU) Support"
> +	tristate "ARM Ltd. System MMU (SMMU) Support"
>  	depends on (ARM64 || ARM) && MMU
>  	select IOMMU_API
>  	select IOMMU_IO_PGTABLE_LPAE
> @@ -362,6 +362,18 @@ config ARM_SMMU
>  	  Say Y here if your SoC includes an IOMMU device implementing
>  	  the ARM SMMU architecture.
>  
> +config ARM_SMMU_LEGACY_DT_BINDINGS
> +	bool "Support the legacy \"mmu-masters\" devicetree bindings"
> +	depends on ARM_SMMU=y && OF
> +	help
> +	  Support for the badly designed and deprecated \"mmu-masters\"
> +	  devicetree bindings. This allows some DMA masters to attach
> +	  to the SMMU but does not provide any support via the DMA API.
> +	  If you're lucky, you might be able to get VFIO up and running.
> +
> +	  If you say Y here then you'll make me very sad. Instead, say N
> +	  and move your firmware to the utopian future that was 2016.
> +
>  config ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT
>  	bool "Default to disabling bypass on ARM SMMU v1 and v2"
>  	depends on ARM_SMMU
> diff --git a/drivers/iommu/arm-smmu-impl.c b/drivers/iommu/arm-smmu-impl.c
> index 5c87a38620c4..2f82d40317d6 100644
> --- a/drivers/iommu/arm-smmu-impl.c
> +++ b/drivers/iommu/arm-smmu-impl.c
> @@ -5,6 +5,7 @@
>  #define pr_fmt(fmt) "arm-smmu: " fmt
>  
>  #include <linux/bitfield.h>
> +#include <linux/module.h>
>  #include <linux/of.h>
>  
>  #include "arm-smmu.h"
> @@ -172,3 +173,8 @@ struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu)
>  
>  	return smmu;
>  }
> +EXPORT_SYMBOL_GPL(arm_smmu_impl_init);
> +
> +MODULE_DESCRIPTION("IOMMU quirks for ARM architected SMMU implementations");
> +MODULE_AUTHOR("Robin Murphy <robin.murphy@arm.com>");
> +MODULE_LICENSE("GPL v2");
Hi Will,

A minor comment: I was curious about why arm-smmu.c and arm-smmu-impl.c
were being compiled as two separate modules, as opposed to combining
them into one module? The latter approach seemed more appropriate, given
that arm-smmu-impl doesn't offer much as a module on its own. Thoughts?

--Isaac
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: "Isaac J. Manjarres" <isaacm@codeaurora.org>
To: Will Deacon <will@kernel.org>
Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
	Bjorn Helgaas <bhelgaas@google.com>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH 7/7] iommu/arm-smmu: Allow building as a module
Date: Mon, 4 Nov 2019 11:34:00 -0800	[thread overview]
Message-ID: <20191104193400.GA24983@codeaurora.org> (raw)
In-Reply-To: <20191030145112.19738-8-will@kernel.org>

On Wed, Oct 30, 2019 at 02:51:12PM +0000, Will Deacon wrote:
> By conditionally dropping support for the legacy binding and exporting
> the newly introduced 'arm_smmu_impl_init()' function we can allow the
> ARM SMMU driver to be built as a module.
> 
> Signed-off-by: Will Deacon <will@kernel.org>
> ---
>  drivers/iommu/Kconfig         | 14 ++++++++-
>  drivers/iommu/arm-smmu-impl.c |  6 ++++
>  drivers/iommu/arm-smmu.c      | 54 +++++++++++++++++++++--------------
>  3 files changed, 51 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index 7583d47fc4d5..02703f51e533 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -350,7 +350,7 @@ config SPAPR_TCE_IOMMU
>  
>  # ARM IOMMU support
>  config ARM_SMMU
> -	bool "ARM Ltd. System MMU (SMMU) Support"
> +	tristate "ARM Ltd. System MMU (SMMU) Support"
>  	depends on (ARM64 || ARM) && MMU
>  	select IOMMU_API
>  	select IOMMU_IO_PGTABLE_LPAE
> @@ -362,6 +362,18 @@ config ARM_SMMU
>  	  Say Y here if your SoC includes an IOMMU device implementing
>  	  the ARM SMMU architecture.
>  
> +config ARM_SMMU_LEGACY_DT_BINDINGS
> +	bool "Support the legacy \"mmu-masters\" devicetree bindings"
> +	depends on ARM_SMMU=y && OF
> +	help
> +	  Support for the badly designed and deprecated \"mmu-masters\"
> +	  devicetree bindings. This allows some DMA masters to attach
> +	  to the SMMU but does not provide any support via the DMA API.
> +	  If you're lucky, you might be able to get VFIO up and running.
> +
> +	  If you say Y here then you'll make me very sad. Instead, say N
> +	  and move your firmware to the utopian future that was 2016.
> +
>  config ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT
>  	bool "Default to disabling bypass on ARM SMMU v1 and v2"
>  	depends on ARM_SMMU
> diff --git a/drivers/iommu/arm-smmu-impl.c b/drivers/iommu/arm-smmu-impl.c
> index 5c87a38620c4..2f82d40317d6 100644
> --- a/drivers/iommu/arm-smmu-impl.c
> +++ b/drivers/iommu/arm-smmu-impl.c
> @@ -5,6 +5,7 @@
>  #define pr_fmt(fmt) "arm-smmu: " fmt
>  
>  #include <linux/bitfield.h>
> +#include <linux/module.h>
>  #include <linux/of.h>
>  
>  #include "arm-smmu.h"
> @@ -172,3 +173,8 @@ struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu)
>  
>  	return smmu;
>  }
> +EXPORT_SYMBOL_GPL(arm_smmu_impl_init);
> +
> +MODULE_DESCRIPTION("IOMMU quirks for ARM architected SMMU implementations");
> +MODULE_AUTHOR("Robin Murphy <robin.murphy@arm.com>");
> +MODULE_LICENSE("GPL v2");
Hi Will,

A minor comment: I was curious about why arm-smmu.c and arm-smmu-impl.c
were being compiled as two separate modules, as opposed to combining
them into one module? The latter approach seemed more appropriate, given
that arm-smmu-impl doesn't offer much as a module on its own. Thoughts?

--Isaac

  parent reply	other threads:[~2019-11-04 19:34 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-30 14:51 [PATCH 0/7] iommu: Permit modular builds of ARM SMMU[v3] drivers Will Deacon
2019-10-30 14:51 ` Will Deacon
2019-10-30 14:51 ` [PATCH 1/7] drivers/iommu: Export core IOMMU API symbols to permit modular drivers Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 14:51 ` [PATCH 2/7] iommu/of: Request ACS from the PCI core when configuring IOMMU linkage Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 14:51 ` [PATCH 3/7] PCI: Export pci_ats_disabled() as a GPL symbol to modules Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 20:30   ` Bjorn Helgaas
2019-10-30 20:30     ` Bjorn Helgaas
2019-10-30 14:51 ` [PATCH 4/7] Revert "iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular" Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 14:51 ` [PATCH 5/7] iommu/arm-smmu-v3: Allow building as a module Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 19:31   ` Joerg Roedel
2019-10-30 19:31     ` Joerg Roedel
2019-10-31 15:42     ` Will Deacon
2019-10-31 15:42       ` Will Deacon
2019-11-04 19:15       ` Jean-Philippe Brucker
2019-11-04 19:15         ` Jean-Philippe Brucker
2019-11-08 14:54         ` Will Deacon
2019-11-08 14:54           ` Will Deacon
2019-11-05 12:15       ` Joerg Roedel
2019-11-05 12:15         ` Joerg Roedel
2019-11-08 11:03         ` Will Deacon
2019-11-08 11:03           ` Will Deacon
2019-10-30 14:51 ` [PATCH 6/7] Revert "iommu/arm-smmu: Make arm-smmu explicitly non-modular" Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 23:09   ` Jordan Crouse
2019-10-30 23:09     ` Jordan Crouse
2019-10-31 12:03     ` Will Deacon
2019-10-31 12:03       ` Will Deacon
2019-10-31 15:32       ` Jordan Crouse
2019-10-31 15:32         ` Jordan Crouse
2019-10-30 14:51 ` [PATCH 7/7] iommu/arm-smmu: Allow building as a module Will Deacon
2019-10-30 14:51   ` Will Deacon
2019-10-30 15:22   ` Rob Herring
2019-10-30 15:22     ` Rob Herring
2019-10-30 15:26     ` Will Deacon
2019-10-30 15:26       ` Will Deacon
2019-10-30 15:33     ` Robin Murphy
2019-10-30 15:33       ` Robin Murphy
2019-11-04 19:34   ` Isaac J. Manjarres [this message]
2019-11-04 19:34     ` Isaac J. Manjarres
2019-11-07 12:48     ` Will Deacon
2019-11-07 12:48       ` Will Deacon
2019-10-30 15:35 ` [PATCH 0/7] iommu: Permit modular builds of ARM SMMU[v3] drivers Robin Murphy
2019-10-30 15:35   ` Robin Murphy
2019-10-30 15:54   ` Will Deacon
2019-10-30 15:54     ` Will Deacon
2019-10-31  0:57     ` Saravana Kannan via iommu
2019-10-31  0:57       ` Saravana Kannan
2019-10-31 19:37       ` Jean-Philippe Brucker
2019-10-31 19:37         ` Jean-Philippe Brucker
2019-10-31 23:34         ` Saravana Kannan via iommu
2019-10-31 23:34           ` Saravana Kannan
2019-11-01 10:27           ` John Garry
2019-11-01 10:27             ` John Garry
2019-11-01 21:13             ` Saravana Kannan via iommu
2019-11-01 21:13               ` Saravana Kannan
2019-11-04 12:16               ` John Garry
2019-11-04 12:16                 ` John Garry
2019-11-04 13:29                 ` Robin Murphy
2019-11-04 13:29                   ` Robin Murphy
2019-11-07  6:11                   ` Saravana Kannan via iommu
2019-11-07  6:11                     ` Saravana Kannan
2019-11-07  9:13                     ` Jean-Philippe Brucker
2019-11-07  9:13                       ` Jean-Philippe Brucker
2019-11-07  6:02                 ` Saravana Kannan via iommu
2019-11-07  6:02                   ` Saravana Kannan
2019-11-01 11:41           ` Jean-Philippe Brucker
2019-11-01 11:41             ` Jean-Philippe Brucker
2019-11-01 12:28             ` Lorenzo Pieralisi
2019-11-01 12:28               ` Lorenzo Pieralisi
2019-11-01 21:26               ` Saravana Kannan via iommu
2019-11-01 21:26                 ` Saravana Kannan
2019-11-04 11:43                 ` Lorenzo Pieralisi
2019-11-04 11:43                   ` Lorenzo Pieralisi
2019-11-07  5:55                   ` Saravana Kannan via iommu
2019-11-07  5:55                     ` Saravana Kannan
2019-11-01 17:21         ` Will Deacon
2019-11-01 17:21           ` Will Deacon
2019-11-04  7:54           ` Jean-Philippe Brucker
2019-11-04  7:54             ` Jean-Philippe Brucker
2019-11-07  6:16       ` Saravana Kannan via iommu
2019-11-07  6:16         ` Saravana Kannan

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=20191104193400.GA24983@codeaurora.org \
    --to=isaacm@codeaurora.org \
    --cc=bhelgaas@google.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=will@kernel.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.