On Thu, Feb 21, 2019 at 01:12:40PM +0100, Cornelia Huck wrote: > On Thu, 21 Feb 2019 11:42:25 +0100 > Harald Freudenberger <freude@xxxxxxxxxxxxx> wrote: > > > On 30.01.19 19:32, Sebastian Ott wrote: > > > On Wed, 30 Jan 2019, Tony Krowiak wrote: > > > >> /* > > >> +* A config change has happened, Force an ap bus rescan. > > >> +*/ > > >> +void ap_bus_cfg_chg(void) > > >> +{ > > >> + AP_DBF(DBF_INFO, "%s config change, forcing bus rescan\n", __func__); > > >> + > > >> + ap_bus_force_rescan(); > > >> +} > > >> +EXPORT_SYMBOL(ap_bus_cfg_chg); > > > There is no need for the export symbol - you don't call that function > > > from module code. > > That's what I have learned now: You don't need to export a symbol > > as long as the symbol is only called in static code parts of the kernel. > > But you need to export it when it is intended to be used by code > > which sits in a kernel module. So now the big question: > > How does a provider of a function in the kernel know, if the caller is in static > > code or in module code ? And ... maybe this may even change over > > the time. So my recommendation is to always export the symbol with > > the EXPORT_SYMBOL macro. This way you don't need to change the > > code providing a function when the caller code changes or additional > > code uses the symbol. > > > > Other opinions ? > > Well, if you know it will be called from module code in upcoming > patches, export it. If not, I consider it the choice of the maintainer. > You can easily add the export later on, if needed, anyway, and I don't > consider changing the code a problem. > > In this particular case, both exporting and not exporting looked like > reasonable choices to me. The number of exported symbols should be as small as possible. Each exported symbol eats up extra memory for meta information, plus I really do not want to deal with semi-automated bots sending patches to remove not needed exported symbols. You can check usage of exported symbols with "make export_report".