Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cxl/core: Convert to EXPORT_SYMBOL_NS_GPL

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.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/163676356810.3618264.601632777702192938.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>

+29 -29
+1 -1
drivers/cxl/core/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 obj-$(CONFIG_CXL_BUS) += cxl_core.o 3 3 4 - ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=CXL -I$(srctree)/drivers/cxl 4 + ccflags-y += -I$(srctree)/drivers/cxl 5 5 cxl_core-y := bus.o 6 6 cxl_core-y += pmem.o 7 7 cxl_core-y += regs.o
+10 -10
drivers/cxl/core/bus.c
··· 200 200 { 201 201 return dev->type == &cxl_decoder_root_type; 202 202 } 203 - EXPORT_SYMBOL_GPL(is_root_decoder); 203 + EXPORT_SYMBOL_NS_GPL(is_root_decoder, CXL); 204 204 205 205 struct cxl_decoder *to_cxl_decoder(struct device *dev) 206 206 { ··· 209 209 return NULL; 210 210 return container_of(dev, struct cxl_decoder, dev); 211 211 } 212 - EXPORT_SYMBOL_GPL(to_cxl_decoder); 212 + EXPORT_SYMBOL_NS_GPL(to_cxl_decoder, CXL); 213 213 214 214 static void cxl_dport_release(struct cxl_dport *dport) 215 215 { ··· 376 376 put_device(dev); 377 377 return ERR_PTR(rc); 378 378 } 379 - EXPORT_SYMBOL_GPL(devm_cxl_add_port); 379 + EXPORT_SYMBOL_NS_GPL(devm_cxl_add_port, CXL); 380 380 381 381 static struct cxl_dport *find_dport(struct cxl_port *port, int id) 382 382 { ··· 451 451 cxl_dport_release(dport); 452 452 return rc; 453 453 } 454 - EXPORT_SYMBOL_GPL(cxl_add_dport); 454 + EXPORT_SYMBOL_NS_GPL(cxl_add_dport, CXL); 455 455 456 456 static int decoder_populate_targets(struct cxl_decoder *cxld, 457 457 struct cxl_port *port, int *target_map) ··· 521 521 kfree(cxld); 522 522 return ERR_PTR(rc); 523 523 } 524 - EXPORT_SYMBOL_GPL(cxl_decoder_alloc); 524 + EXPORT_SYMBOL_NS_GPL(cxl_decoder_alloc, CXL); 525 525 526 526 int cxl_decoder_add(struct cxl_decoder *cxld, int *target_map) 527 527 { ··· 550 550 551 551 return device_add(dev); 552 552 } 553 - EXPORT_SYMBOL_GPL(cxl_decoder_add); 553 + EXPORT_SYMBOL_NS_GPL(cxl_decoder_add, CXL); 554 554 555 555 static void cxld_unregister(void *dev) 556 556 { ··· 561 561 { 562 562 return devm_add_action_or_reset(host, cxld_unregister, &cxld->dev); 563 563 } 564 - EXPORT_SYMBOL_GPL(cxl_decoder_autoremove); 564 + EXPORT_SYMBOL_NS_GPL(cxl_decoder_autoremove, CXL); 565 565 566 566 /** 567 567 * __cxl_driver_register - register a driver for the cxl bus ··· 594 594 595 595 return driver_register(&cxl_drv->drv); 596 596 } 597 - EXPORT_SYMBOL_GPL(__cxl_driver_register); 597 + EXPORT_SYMBOL_NS_GPL(__cxl_driver_register, CXL); 598 598 599 599 void cxl_driver_unregister(struct cxl_driver *cxl_drv) 600 600 { 601 601 driver_unregister(&cxl_drv->drv); 602 602 } 603 - EXPORT_SYMBOL_GPL(cxl_driver_unregister); 603 + EXPORT_SYMBOL_NS_GPL(cxl_driver_unregister, CXL); 604 604 605 605 static int cxl_device_id(struct device *dev) 606 606 { ··· 642 642 .probe = cxl_bus_probe, 643 643 .remove = cxl_bus_remove, 644 644 }; 645 - EXPORT_SYMBOL_GPL(cxl_bus_type); 645 + EXPORT_SYMBOL_NS_GPL(cxl_bus_type, CXL); 646 646 647 647 static __init int cxl_core_init(void) 648 648 {
+5 -5
drivers/cxl/core/mbox.c
··· 182 182 183 183 return 0; 184 184 } 185 - EXPORT_SYMBOL_GPL(cxl_mbox_send_cmd); 185 + EXPORT_SYMBOL_NS_GPL(cxl_mbox_send_cmd, CXL); 186 186 187 187 static bool cxl_mem_raw_command_allowed(u16 opcode) 188 188 { ··· 624 624 kvfree(gsl); 625 625 return rc; 626 626 } 627 - EXPORT_SYMBOL_GPL(cxl_enumerate_cmds); 627 + EXPORT_SYMBOL_NS_GPL(cxl_enumerate_cmds, CXL); 628 628 629 629 /** 630 630 * cxl_mem_get_partition_info - Get partition info ··· 709 709 710 710 return 0; 711 711 } 712 - EXPORT_SYMBOL_GPL(cxl_dev_state_identify); 712 + EXPORT_SYMBOL_NS_GPL(cxl_dev_state_identify, CXL); 713 713 714 714 int cxl_mem_create_range_info(struct cxl_dev_state *cxlds) 715 715 { ··· 748 748 749 749 return 0; 750 750 } 751 - EXPORT_SYMBOL_GPL(cxl_mem_create_range_info); 751 + EXPORT_SYMBOL_NS_GPL(cxl_mem_create_range_info, CXL); 752 752 753 753 struct cxl_dev_state *cxl_dev_state_create(struct device *dev) 754 754 { ··· 765 765 766 766 return cxlds; 767 767 } 768 - EXPORT_SYMBOL_GPL(cxl_dev_state_create); 768 + EXPORT_SYMBOL_NS_GPL(cxl_dev_state_create, CXL); 769 769 770 770 static struct dentry *cxl_debugfs; 771 771
+3 -3
drivers/cxl/core/memdev.c
··· 150 150 CXL_MEM_COMMAND_ID_MAX); 151 151 up_write(&cxl_memdev_rwsem); 152 152 } 153 - EXPORT_SYMBOL_GPL(set_exclusive_cxl_commands); 153 + EXPORT_SYMBOL_NS_GPL(set_exclusive_cxl_commands, CXL); 154 154 155 155 /** 156 156 * clear_exclusive_cxl_commands() - atomically enable user cxl commands ··· 164 164 CXL_MEM_COMMAND_ID_MAX); 165 165 up_write(&cxl_memdev_rwsem); 166 166 } 167 - EXPORT_SYMBOL_GPL(clear_exclusive_cxl_commands); 167 + EXPORT_SYMBOL_NS_GPL(clear_exclusive_cxl_commands, CXL); 168 168 169 169 static void cxl_memdev_shutdown(struct device *dev) 170 170 { ··· 317 317 put_device(dev); 318 318 return ERR_PTR(rc); 319 319 } 320 - EXPORT_SYMBOL_GPL(devm_cxl_add_memdev); 320 + EXPORT_SYMBOL_NS_GPL(devm_cxl_add_memdev, CXL); 321 321 322 322 __init int cxl_memdev_init(void) 323 323 {
+6 -6
drivers/cxl/core/pmem.c
··· 49 49 return NULL; 50 50 return container_of(dev, struct cxl_nvdimm_bridge, dev); 51 51 } 52 - EXPORT_SYMBOL_GPL(to_cxl_nvdimm_bridge); 52 + EXPORT_SYMBOL_NS_GPL(to_cxl_nvdimm_bridge, CXL); 53 53 54 54 __mock int match_nvdimm_bridge(struct device *dev, const void *data) 55 55 { ··· 65 65 return NULL; 66 66 return to_cxl_nvdimm_bridge(dev); 67 67 } 68 - EXPORT_SYMBOL_GPL(cxl_find_nvdimm_bridge); 68 + EXPORT_SYMBOL_NS_GPL(cxl_find_nvdimm_bridge, CXL); 69 69 70 70 static struct cxl_nvdimm_bridge * 71 71 cxl_nvdimm_bridge_alloc(struct cxl_port *port) ··· 167 167 put_device(dev); 168 168 return ERR_PTR(rc); 169 169 } 170 - EXPORT_SYMBOL_GPL(devm_cxl_add_nvdimm_bridge); 170 + EXPORT_SYMBOL_NS_GPL(devm_cxl_add_nvdimm_bridge, CXL); 171 171 172 172 static void cxl_nvdimm_release(struct device *dev) 173 173 { ··· 191 191 { 192 192 return dev->type == &cxl_nvdimm_type; 193 193 } 194 - EXPORT_SYMBOL_GPL(is_cxl_nvdimm); 194 + EXPORT_SYMBOL_NS_GPL(is_cxl_nvdimm, CXL); 195 195 196 196 struct cxl_nvdimm *to_cxl_nvdimm(struct device *dev) 197 197 { ··· 200 200 return NULL; 201 201 return container_of(dev, struct cxl_nvdimm, dev); 202 202 } 203 - EXPORT_SYMBOL_GPL(to_cxl_nvdimm); 203 + EXPORT_SYMBOL_NS_GPL(to_cxl_nvdimm, CXL); 204 204 205 205 static struct cxl_nvdimm *cxl_nvdimm_alloc(struct cxl_memdev *cxlmd) 206 206 { ··· 262 262 put_device(dev); 263 263 return rc; 264 264 } 265 - EXPORT_SYMBOL_GPL(devm_cxl_add_nvdimm); 265 + EXPORT_SYMBOL_NS_GPL(devm_cxl_add_nvdimm, CXL);
+4 -4
drivers/cxl/core/regs.c
··· 90 90 } 91 91 } 92 92 } 93 - EXPORT_SYMBOL_GPL(cxl_probe_component_regs); 93 + EXPORT_SYMBOL_NS_GPL(cxl_probe_component_regs, CXL); 94 94 95 95 /** 96 96 * cxl_probe_device_regs() - Detect CXL Device register blocks ··· 156 156 } 157 157 } 158 158 } 159 - EXPORT_SYMBOL_GPL(cxl_probe_device_regs); 159 + EXPORT_SYMBOL_NS_GPL(cxl_probe_device_regs, CXL); 160 160 161 161 static void __iomem *devm_cxl_iomap_block(struct device *dev, 162 162 resource_size_t addr, ··· 199 199 200 200 return 0; 201 201 } 202 - EXPORT_SYMBOL_GPL(cxl_map_component_regs); 202 + EXPORT_SYMBOL_NS_GPL(cxl_map_component_regs, CXL); 203 203 204 204 int cxl_map_device_regs(struct pci_dev *pdev, 205 205 struct cxl_device_regs *regs, ··· 246 246 247 247 return 0; 248 248 } 249 - EXPORT_SYMBOL_GPL(cxl_map_device_regs); 249 + EXPORT_SYMBOL_NS_GPL(cxl_map_device_regs, CXL);