Messages in this thread |  | | Date | Sat, 9 Jan 2021 09:30:30 +0100 | From | Thomas Meyer <> | Subject | Same symbol with EXPORT_SYMBOL and EXPORT_SYMBOL_GPL |
| |
Hi,
I have a question regarding EXPORT_SYMBOL vs. EXPORT_SYMBOL_GPL: I did stumble upon different export declarations between different architectures, e.g.:
$ grep -r -e "EXPORT_SYMBOL[^(]*(" * | tr ":()" " " | sort -s -k 3 -k 2 | grep __virt_addr_valid arch/mips/mm/mmap.c EXPORT_SYMBOL_GPL __virt_addr_valid ; arch/x86/mm/physaddr.c EXPORT_SYMBOL __virt_addr_valid ;
Bug or feature?
Other examples are: clk_disable EXPORT_SYMBOL 7 clk_disable EXPORT_SYMBOL_GPL 3 clk_enable EXPORT_SYMBOL 7 clk_enable EXPORT_SYMBOL_GPL 3 clk_get_parent EXPORT_SYMBOL 4 clk_get_parent EXPORT_SYMBOL_GPL 2 clk_get_rate EXPORT_SYMBOL 7 clk_get_rate EXPORT_SYMBOL_GPL 3 clk_register EXPORT_SYMBOL 2 clk_register EXPORT_SYMBOL_GPL 2 clk_round_rate EXPORT_SYMBOL 6 clk_round_rate EXPORT_SYMBOL_GPL 4 clk_set_parent EXPORT_SYMBOL 5 clk_set_parent EXPORT_SYMBOL_GPL 2 clk_set_rate EXPORT_SYMBOL 6 clk_set_rate EXPORT_SYMBOL_GPL 4 clk_unregister EXPORT_SYMBOL 2 clk_unregister EXPORT_SYMBOL_GPL 2 copy_user_highpage EXPORT_SYMBOL 4 copy_user_highpage EXPORT_SYMBOL_GPL 1 cpu_have_feature EXPORT_SYMBOL 1 cpu_have_feature EXPORT_SYMBOL_GPL 1 ec_read EXPORT_SYMBOL 1 ec_read EXPORT_SYMBOL_GPL 1 ec_write EXPORT_SYMBOL 1 ec_write EXPORT_SYMBOL_GPL 1 elf_hwcap EXPORT_SYMBOL 2 elf_hwcap EXPORT_SYMBOL_GPL 2 empty_zero_page EXPORT_SYMBOL 26 empty_zero_page EXPORT_SYMBOL_GPL 1 flush_icache_range EXPORT_SYMBOL 9 flush_icache_range EXPORT_SYMBOL_GPL 2 ioremap_uc EXPORT_SYMBOL 1 ioremap_uc EXPORT_SYMBOL_GPL 1 irq_of_parse_and_map EXPORT_SYMBOL 1 irq_of_parse_and_map EXPORT_SYMBOL_GPL 1 irq_to_desc EXPORT_SYMBOL 1 irq_to_desc EXPORT_SYMBOL_GPL 1 machine_power_off EXPORT_SYMBOL 1 machine_power_off EXPORT_SYMBOL_GPL 1 memcpy_flushcache EXPORT_SYMBOL 1 memcpy_flushcache EXPORT_SYMBOL_GPL 1 memstart_addr EXPORT_SYMBOL 1 memstart_addr EXPORT_SYMBOL_GPL 1 node_data EXPORT_SYMBOL 7 node_data EXPORT_SYMBOL_GPL 1 pci_domain_nr EXPORT_SYMBOL 2 pci_domain_nr EXPORT_SYMBOL_GPL 1 pci_iomap_wc EXPORT_SYMBOL 1 pci_iomap_wc EXPORT_SYMBOL_GPL 1 pci_iomap_wc_range EXPORT_SYMBOL 1 pci_iomap_wc_range EXPORT_SYMBOL_GPL 1 perf_num_counters EXPORT_SYMBOL 1 perf_num_counters EXPORT_SYMBOL_GPL 2 perf_pmu_name EXPORT_SYMBOL 1 perf_pmu_name EXPORT_SYMBOL_GPL 2 pm_power_off EXPORT_SYMBOL 22 pm_power_off EXPORT_SYMBOL_GPL 3 pv_ops EXPORT_SYMBOL 1 pv_ops EXPORT_SYMBOL_GPL 2 rcu_barrier EXPORT_SYMBOL 1 rcu_barrier EXPORT_SYMBOL_GPL 1 return_address EXPORT_SYMBOL 1 return_address EXPORT_SYMBOL_GPL 3 rtc_lock EXPORT_SYMBOL 5 rtc_lock EXPORT_SYMBOL_GPL 2 save_stack_trace EXPORT_SYMBOL 1 save_stack_trace EXPORT_SYMBOL_GPL 14 save_stack_trace_tsk EXPORT_SYMBOL 1 save_stack_trace_tsk EXPORT_SYMBOL_GPL 11 smp_call_function_single_async EXPORT_SYMBOL 1 smp_call_function_single_async EXPORT_SYMBOL_GPL 1 start_thread EXPORT_SYMBOL 4 start_thread EXPORT_SYMBOL_GPL 2 ww_mutex_lock EXPORT_SYMBOL 1 ww_mutex_lock EXPORT_SYMBOL_GPL 1 ww_mutex_lock_interruptible EXPORT_SYMBOL 1 ww_mutex_lock_interruptible EXPORT_SYMBOL_GPL 1 xen_domain_type EXPORT_SYMBOL 1 xen_domain_type EXPORT_SYMBOL_GPL 1 xen_start_info EXPORT_SYMBOL 1 xen_start_info EXPORT_SYMBOL_GPL 1
Mfg thomas
|  |