2020-07-29 06:27:59

by Christoph Hellwig

[permalink] [raw]
Subject: [PATCH 2/7] modules: mark find_symbol static

find_symbol is only used in module.c.

Signed-off-by: Christoph Hellwig <[email protected]>
---
include/linux/module.h | 11 -----------
kernel/module.c | 3 +--
2 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index f1fdbeef2153a8..90bdc362be3681 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -590,17 +590,6 @@ struct symsearch {
bool unused;
};

-/*
- * Search for an exported symbol by name.
- *
- * Must be called with module_mutex held or preemption disabled.
- */
-const struct kernel_symbol *find_symbol(const char *name,
- struct module **owner,
- const s32 **crc,
- bool gplok,
- bool warn);
-
/*
* Walk the exported symbol table
*
diff --git a/kernel/module.c b/kernel/module.c
index 17d64dae756c80..84da96a6d8241c 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -585,7 +585,7 @@ static bool find_exported_symbol_in_section(const struct symsearch *syms,

/* Find an exported symbol and return it, along with, (optional) crc and
* (optional) module which owns it. Needs preempt disabled or module_mutex. */
-const struct kernel_symbol *find_symbol(const char *name,
+static const struct kernel_symbol *find_symbol(const char *name,
struct module **owner,
const s32 **crc,
bool gplok,
@@ -608,7 +608,6 @@ const struct kernel_symbol *find_symbol(const char *name,
pr_debug("Failed to find symbol %s\n", name);
return NULL;
}
-EXPORT_SYMBOL_GPL(find_symbol);

/*
* Search for module by name: must hold module_mutex (or preempt disabled
--
2.27.0


2020-07-29 16:15:10

by Jessica Yu

[permalink] [raw]
Subject: Re: [PATCH 2/7] modules: mark find_symbol static

+++ Christoph Hellwig [29/07/20 08:27 +0200]:
>find_symbol is only used in module.c.
>
>Signed-off-by: Christoph Hellwig <[email protected]>

CCing the livepatching ML, as this may or may not impact its users.

AFAIK, the out-of-tree kpatch module had used find_symbol() in the
past, I am not sure what its current status is. I suspect all of its
functionality has been migrated to upstream livepatch already.

>---
> include/linux/module.h | 11 -----------
> kernel/module.c | 3 +--
> 2 files changed, 1 insertion(+), 13 deletions(-)
>
>diff --git a/include/linux/module.h b/include/linux/module.h
>index f1fdbeef2153a8..90bdc362be3681 100644
>--- a/include/linux/module.h
>+++ b/include/linux/module.h
>@@ -590,17 +590,6 @@ struct symsearch {
> bool unused;
> };
>
>-/*
>- * Search for an exported symbol by name.
>- *
>- * Must be called with module_mutex held or preemption disabled.
>- */
>-const struct kernel_symbol *find_symbol(const char *name,
>- struct module **owner,
>- const s32 **crc,
>- bool gplok,
>- bool warn);
>-
> /*
> * Walk the exported symbol table
> *
>diff --git a/kernel/module.c b/kernel/module.c
>index 17d64dae756c80..84da96a6d8241c 100644
>--- a/kernel/module.c
>+++ b/kernel/module.c
>@@ -585,7 +585,7 @@ static bool find_exported_symbol_in_section(const struct symsearch *syms,
>
> /* Find an exported symbol and return it, along with, (optional) crc and
> * (optional) module which owns it. Needs preempt disabled or module_mutex. */
>-const struct kernel_symbol *find_symbol(const char *name,
>+static const struct kernel_symbol *find_symbol(const char *name,
> struct module **owner,
> const s32 **crc,
> bool gplok,
>@@ -608,7 +608,6 @@ const struct kernel_symbol *find_symbol(const char *name,
> pr_debug("Failed to find symbol %s\n", name);
> return NULL;
> }
>-EXPORT_SYMBOL_GPL(find_symbol);
>
> /*
> * Search for module by name: must hold module_mutex (or preempt disabled
>--
>2.27.0
>

2020-07-29 16:26:06

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 2/7] modules: mark find_symbol static

On Wed, Jul 29, 2020 at 06:13:18PM +0200, Jessica Yu wrote:
> +++ Christoph Hellwig [29/07/20 08:27 +0200]:
> > find_symbol is only used in module.c.
> >
> > Signed-off-by: Christoph Hellwig <[email protected]>
>
> CCing the livepatching ML, as this may or may not impact its users.
>
> AFAIK, the out-of-tree kpatch module had used find_symbol() in the
> past, I am not sure what its current status is. I suspect all of its
> functionality has been migrated to upstream livepatch already.

We still have symbol_get(), which is what I thought they were using.

If only we could get rid of that export one day...

thanks,

greg k-h

2020-07-29 17:07:33

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 2/7] modules: mark find_symbol static

On Wed, Jul 29, 2020 at 06:24:35PM +0200, Greg Kroah-Hartman wrote:
> On Wed, Jul 29, 2020 at 06:13:18PM +0200, Jessica Yu wrote:
> > +++ Christoph Hellwig [29/07/20 08:27 +0200]:
> > > find_symbol is only used in module.c.
> > >
> > > Signed-off-by: Christoph Hellwig <[email protected]>
> >
> > CCing the livepatching ML, as this may or may not impact its users.
> >
> > AFAIK, the out-of-tree kpatch module had used find_symbol() in the
> > past, I am not sure what its current status is. I suspect all of its
> > functionality has been migrated to upstream livepatch already.
>
> We still have symbol_get(), which is what I thought they were using.

And even if it didn't out of tree modules really don't matter.

2020-07-29 17:28:46

by Joe Lawrence

[permalink] [raw]
Subject: Re: [PATCH 2/7] modules: mark find_symbol static

On 7/29/20 12:24 PM, Greg Kroah-Hartman wrote:
> On Wed, Jul 29, 2020 at 06:13:18PM +0200, Jessica Yu wrote:
>> +++ Christoph Hellwig [29/07/20 08:27 +0200]:
>>> find_symbol is only used in module.c.
>>>
>>> Signed-off-by: Christoph Hellwig <[email protected]>
>>
>> CCing the livepatching ML, as this may or may not impact its users.
>>
>> AFAIK, the out-of-tree kpatch module had used find_symbol() in the
>> past, I am not sure what its current status is. I suspect all of its
>> functionality has been migrated to upstream livepatch already.
>
> We still have symbol_get(), which is what I thought they were using.
>

The deprecated (though still in the repo) kpatch.ko still references
find_symbol(), but that module is no longer officially supported by the
project.

Jessica is correct that the functionality has been migrated upstream.

I don't see any references to symbol_get() either, so we're good on that
front, too.

Thanks,

-- Joe