Linux CXL
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: <linux-cxl@vger.kernel.org>, <ira.weiny@intel.com>,
	<ben.widawsky@intel.com>, <alison.schofield@intel.com>,
	<vishal.l.verma@intel.com>
Subject: Re: [PATCH] cxl/core: Convert to EXPORT_SYMBOL_NS_GPL
Date: Mon, 1 Nov 2021 10:09:27 +0000	[thread overview]
Message-ID: <20211101100927.00002e40@Huawei.com> (raw)
In-Reply-To: <163555506776.2553440.17247681249660176777.stgit@dwillia2-desk3.amr.corp.intel.com>

On Fri, 29 Oct 2021 17:51:07 -0700
Dan Williams <dan.j.williams@intel.com> wrote:

> It turns out that the usb example of specifying the subsystem namespace
> at build time is not preferred. The rationale for that preference has
> become more apparent as CXL patches with plain EXPORT_SYMBOL_GPL beg the
> question, "why would any code other than CXL care about this symbol?".
> Make the namespace explicit.
> 
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>

LGTM and I definitely prefer this explicit approach.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  drivers/cxl/core/Makefile |    2 +-
>  drivers/cxl/core/bus.c    |   20 ++++++++++----------
>  drivers/cxl/core/mbox.c   |   10 +++++-----
>  drivers/cxl/core/memdev.c |    6 +++---
>  drivers/cxl/core/pmem.c   |   10 +++++-----
>  drivers/cxl/core/regs.c   |    8 ++++----
>  6 files changed, 28 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/cxl/core/Makefile b/drivers/cxl/core/Makefile
> index 07eb8e1fb8a6..40ab50318daf 100644
> --- a/drivers/cxl/core/Makefile
> +++ b/drivers/cxl/core/Makefile
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>  obj-$(CONFIG_CXL_BUS) += cxl_core.o
>  
> -ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=CXL -I$(srctree)/drivers/cxl
> +ccflags-y += -I$(srctree)/drivers/cxl
>  cxl_core-y := bus.o
>  cxl_core-y += pmem.o
>  cxl_core-y += regs.o
> diff --git a/drivers/cxl/core/bus.c b/drivers/cxl/core/bus.c
> index ebd061d03950..17a4fff029f8 100644
> --- a/drivers/cxl/core/bus.c
> +++ b/drivers/cxl/core/bus.c
> @@ -200,7 +200,7 @@ bool is_root_decoder(struct device *dev)
>  {
>  	return dev->type == &cxl_decoder_root_type;
>  }
> -EXPORT_SYMBOL_GPL(is_root_decoder);
> +EXPORT_SYMBOL_NS_GPL(is_root_decoder, CXL);
>  
>  struct cxl_decoder *to_cxl_decoder(struct device *dev)
>  {
> @@ -209,7 +209,7 @@ struct cxl_decoder *to_cxl_decoder(struct device *dev)
>  		return NULL;
>  	return container_of(dev, struct cxl_decoder, dev);
>  }
> -EXPORT_SYMBOL_GPL(to_cxl_decoder);
> +EXPORT_SYMBOL_NS_GPL(to_cxl_decoder, CXL);
>  
>  static void cxl_dport_release(struct cxl_dport *dport)
>  {
> @@ -376,7 +376,7 @@ struct cxl_port *devm_cxl_add_port(struct device *host, struct device *uport,
>  	put_device(dev);
>  	return ERR_PTR(rc);
>  }
> -EXPORT_SYMBOL_GPL(devm_cxl_add_port);
> +EXPORT_SYMBOL_NS_GPL(devm_cxl_add_port, CXL);
>  
>  static struct cxl_dport *find_dport(struct cxl_port *port, int id)
>  {
> @@ -451,7 +451,7 @@ int cxl_add_dport(struct cxl_port *port, struct device *dport_dev, int port_id,
>  	cxl_dport_release(dport);
>  	return rc;
>  }
> -EXPORT_SYMBOL_GPL(cxl_add_dport);
> +EXPORT_SYMBOL_NS_GPL(cxl_add_dport, CXL);
>  
>  static int decoder_populate_targets(struct cxl_decoder *cxld,
>  				    struct cxl_port *port, int *target_map)
> @@ -521,7 +521,7 @@ struct cxl_decoder *cxl_decoder_alloc(struct cxl_port *port, int nr_targets)
>  	kfree(cxld);
>  	return ERR_PTR(rc);
>  }
> -EXPORT_SYMBOL_GPL(cxl_decoder_alloc);
> +EXPORT_SYMBOL_NS_GPL(cxl_decoder_alloc, CXL);
>  
>  int cxl_decoder_add(struct cxl_decoder *cxld, int *target_map)
>  {
> @@ -550,7 +550,7 @@ int cxl_decoder_add(struct cxl_decoder *cxld, int *target_map)
>  
>  	return device_add(dev);
>  }
> -EXPORT_SYMBOL_GPL(cxl_decoder_add);
> +EXPORT_SYMBOL_NS_GPL(cxl_decoder_add, CXL);
>  
>  static void cxld_unregister(void *dev)
>  {
> @@ -561,7 +561,7 @@ int cxl_decoder_autoremove(struct device *host, struct cxl_decoder *cxld)
>  {
>  	return devm_add_action_or_reset(host, cxld_unregister, &cxld->dev);
>  }
> -EXPORT_SYMBOL_GPL(cxl_decoder_autoremove);
> +EXPORT_SYMBOL_NS_GPL(cxl_decoder_autoremove, CXL);
>  
>  /**
>   * __cxl_driver_register - register a driver for the cxl bus
> @@ -594,13 +594,13 @@ int __cxl_driver_register(struct cxl_driver *cxl_drv, struct module *owner,
>  
>  	return driver_register(&cxl_drv->drv);
>  }
> -EXPORT_SYMBOL_GPL(__cxl_driver_register);
> +EXPORT_SYMBOL_NS_GPL(__cxl_driver_register, CXL);
>  
>  void cxl_driver_unregister(struct cxl_driver *cxl_drv)
>  {
>  	driver_unregister(&cxl_drv->drv);
>  }
> -EXPORT_SYMBOL_GPL(cxl_driver_unregister);
> +EXPORT_SYMBOL_NS_GPL(cxl_driver_unregister, CXL);
>  
>  static int cxl_device_id(struct device *dev)
>  {
> @@ -642,7 +642,7 @@ struct bus_type cxl_bus_type = {
>  	.probe = cxl_bus_probe,
>  	.remove = cxl_bus_remove,
>  };
> -EXPORT_SYMBOL_GPL(cxl_bus_type);
> +EXPORT_SYMBOL_NS_GPL(cxl_bus_type, CXL);
>  
>  static __init int cxl_core_init(void)
>  {
> diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c
> index 576796a5d9f3..c57137fb01c9 100644
> --- a/drivers/cxl/core/mbox.c
> +++ b/drivers/cxl/core/mbox.c
> @@ -184,7 +184,7 @@ int cxl_mem_mbox_send_cmd(struct cxl_mem *cxlm, u16 opcode, void *in,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL_GPL(cxl_mem_mbox_send_cmd);
> +EXPORT_SYMBOL_NS_GPL(cxl_mem_mbox_send_cmd, CXL);
>  
>  static bool cxl_mem_raw_command_allowed(u16 opcode)
>  {
> @@ -626,7 +626,7 @@ int cxl_mem_enumerate_cmds(struct cxl_mem *cxlm)
>  	kvfree(gsl);
>  	return rc;
>  }
> -EXPORT_SYMBOL_GPL(cxl_mem_enumerate_cmds);
> +EXPORT_SYMBOL_NS_GPL(cxl_mem_enumerate_cmds, CXL);
>  
>  /**
>   * cxl_mem_get_partition_info - Get partition info
> @@ -711,7 +711,7 @@ int cxl_mem_identify(struct cxl_mem *cxlm)
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL_GPL(cxl_mem_identify);
> +EXPORT_SYMBOL_NS_GPL(cxl_mem_identify, CXL);
>  
>  int cxl_mem_create_range_info(struct cxl_mem *cxlm)
>  {
> @@ -750,7 +750,7 @@ int cxl_mem_create_range_info(struct cxl_mem *cxlm)
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL_GPL(cxl_mem_create_range_info);
> +EXPORT_SYMBOL_NS_GPL(cxl_mem_create_range_info, CXL);
>  
>  struct cxl_mem *cxl_mem_create(struct device *dev)
>  {
> @@ -767,7 +767,7 @@ struct cxl_mem *cxl_mem_create(struct device *dev)
>  
>  	return cxlm;
>  }
> -EXPORT_SYMBOL_GPL(cxl_mem_create);
> +EXPORT_SYMBOL_NS_GPL(cxl_mem_create, CXL);
>  
>  static struct dentry *cxl_debugfs;
>  
> diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c
> index bf1b04d00ff4..a398f289518c 100644
> --- a/drivers/cxl/core/memdev.c
> +++ b/drivers/cxl/core/memdev.c
> @@ -150,7 +150,7 @@ void set_exclusive_cxl_commands(struct cxl_mem *cxlm, unsigned long *cmds)
>  		  CXL_MEM_COMMAND_ID_MAX);
>  	up_write(&cxl_memdev_rwsem);
>  }
> -EXPORT_SYMBOL_GPL(set_exclusive_cxl_commands);
> +EXPORT_SYMBOL_NS_GPL(set_exclusive_cxl_commands, CXL);
>  
>  /**
>   * clear_exclusive_cxl_commands() - atomically enable user cxl commands
> @@ -164,7 +164,7 @@ void clear_exclusive_cxl_commands(struct cxl_mem *cxlm, unsigned long *cmds)
>  		      CXL_MEM_COMMAND_ID_MAX);
>  	up_write(&cxl_memdev_rwsem);
>  }
> -EXPORT_SYMBOL_GPL(clear_exclusive_cxl_commands);
> +EXPORT_SYMBOL_NS_GPL(clear_exclusive_cxl_commands, CXL);
>  
>  static void cxl_memdev_shutdown(struct device *dev)
>  {
> @@ -318,7 +318,7 @@ devm_cxl_add_memdev(struct cxl_mem *cxlm)
>  	put_device(dev);
>  	return ERR_PTR(rc);
>  }
> -EXPORT_SYMBOL_GPL(devm_cxl_add_memdev);
> +EXPORT_SYMBOL_NS_GPL(devm_cxl_add_memdev, CXL);
>  
>  __init int cxl_memdev_init(void)
>  {
> diff --git a/drivers/cxl/core/pmem.c b/drivers/cxl/core/pmem.c
> index 5032f4c1c69d..76a4fa39834c 100644
> --- a/drivers/cxl/core/pmem.c
> +++ b/drivers/cxl/core/pmem.c
> @@ -49,7 +49,7 @@ struct cxl_nvdimm_bridge *to_cxl_nvdimm_bridge(struct device *dev)
>  		return NULL;
>  	return container_of(dev, struct cxl_nvdimm_bridge, dev);
>  }
> -EXPORT_SYMBOL_GPL(to_cxl_nvdimm_bridge);
> +EXPORT_SYMBOL_NS_GPL(to_cxl_nvdimm_bridge, CXL);
>  
>  __mock int match_nvdimm_bridge(struct device *dev, const void *data)
>  {
> @@ -65,7 +65,7 @@ struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge(struct cxl_nvdimm *cxl_nvd)
>  		return NULL;
>  	return to_cxl_nvdimm_bridge(dev);
>  }
> -EXPORT_SYMBOL_GPL(cxl_find_nvdimm_bridge);
> +EXPORT_SYMBOL_NS_GPL(cxl_find_nvdimm_bridge, CXL);
>  
>  static struct cxl_nvdimm_bridge *
>  cxl_nvdimm_bridge_alloc(struct cxl_port *port)
> @@ -167,7 +167,7 @@ struct cxl_nvdimm_bridge *devm_cxl_add_nvdimm_bridge(struct device *host,
>  	put_device(dev);
>  	return ERR_PTR(rc);
>  }
> -EXPORT_SYMBOL_GPL(devm_cxl_add_nvdimm_bridge);
> +EXPORT_SYMBOL_NS_GPL(devm_cxl_add_nvdimm_bridge, CXL);
>  
>  static void cxl_nvdimm_release(struct device *dev)
>  {
> @@ -191,7 +191,7 @@ bool is_cxl_nvdimm(struct device *dev)
>  {
>  	return dev->type == &cxl_nvdimm_type;
>  }
> -EXPORT_SYMBOL_GPL(is_cxl_nvdimm);
> +EXPORT_SYMBOL_NS_GPL(is_cxl_nvdimm, CXL);
>  
>  struct cxl_nvdimm *to_cxl_nvdimm(struct device *dev)
>  {
> @@ -200,7 +200,7 @@ struct cxl_nvdimm *to_cxl_nvdimm(struct device *dev)
>  		return NULL;
>  	return container_of(dev, struct cxl_nvdimm, dev);
>  }
> -EXPORT_SYMBOL_GPL(to_cxl_nvdimm);
> +EXPORT_SYMBOL_NS_GPL(to_cxl_nvdimm, CXL);
>  
>  static struct cxl_nvdimm *cxl_nvdimm_alloc(struct cxl_memdev *cxlmd)
>  {
> diff --git a/drivers/cxl/core/regs.c b/drivers/cxl/core/regs.c
> index 41de4a136ecd..e37e23bf4355 100644
> --- a/drivers/cxl/core/regs.c
> +++ b/drivers/cxl/core/regs.c
> @@ -90,7 +90,7 @@ void cxl_probe_component_regs(struct device *dev, void __iomem *base,
>  		}
>  	}
>  }
> -EXPORT_SYMBOL_GPL(cxl_probe_component_regs);
> +EXPORT_SYMBOL_NS_GPL(cxl_probe_component_regs, CXL);
>  
>  /**
>   * cxl_probe_device_regs() - Detect CXL Device register blocks
> @@ -156,7 +156,7 @@ void cxl_probe_device_regs(struct device *dev, void __iomem *base,
>  		}
>  	}
>  }
> -EXPORT_SYMBOL_GPL(cxl_probe_device_regs);
> +EXPORT_SYMBOL_NS_GPL(cxl_probe_device_regs, CXL);
>  
>  static void __iomem *devm_cxl_iomap_block(struct device *dev,
>  					  resource_size_t addr,
> @@ -199,7 +199,7 @@ int cxl_map_component_regs(struct pci_dev *pdev,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL_GPL(cxl_map_component_regs);
> +EXPORT_SYMBOL_NS_GPL(cxl_map_component_regs, CXL);
>  
>  int cxl_map_device_regs(struct pci_dev *pdev,
>  			struct cxl_device_regs *regs,
> @@ -246,4 +246,4 @@ int cxl_map_device_regs(struct pci_dev *pdev,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL_GPL(cxl_map_device_regs);
> +EXPORT_SYMBOL_NS_GPL(cxl_map_device_regs, CXL);
> 


  parent reply	other threads:[~2021-11-01 10:09 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-30  0:51 [PATCH] cxl/core: Convert to EXPORT_SYMBOL_NS_GPL Dan Williams
2021-10-31 18:31 ` Ben Widawsky
2021-10-31 18:35   ` Dan Williams
2021-10-31 18:41     ` Ben Widawsky
2021-10-31 20:03       ` Dan Williams
2021-11-01 10:09 ` Jonathan Cameron [this message]
2021-11-13  0:32 ` [PATCH v2] " Dan Williams

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=20211101100927.00002e40@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=alison.schofield@intel.com \
    --cc=ben.widawsky@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=vishal.l.verma@intel.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