module: Use binary search in lookup_symbol()
The function is_exported() with its helper function lookup_symbol() are used to verify if a provided symbol is effectively exported by the kernel or by the modules. Now that both have their symbols sorted we can replace a linear search with a binary search which provide a considerably speed-up. This work was supported by a hardware donation from the CE Linux Forum. Signed-off-by: Alessio Igor Bogani <abogani@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
403ed27846
commit
9d63487f86
1 changed files with 2 additions and 5 deletions
|
@ -2055,11 +2055,8 @@ static const struct kernel_symbol *lookup_symbol(const char *name,
|
||||||
const struct kernel_symbol *start,
|
const struct kernel_symbol *start,
|
||||||
const struct kernel_symbol *stop)
|
const struct kernel_symbol *stop)
|
||||||
{
|
{
|
||||||
const struct kernel_symbol *ks = start;
|
return bsearch(name, start, stop - start,
|
||||||
for (; ks < stop; ks++)
|
sizeof(struct kernel_symbol), cmp_name);
|
||||||
if (strcmp(ks->name, name) == 0)
|
|
||||||
return ks;
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int is_exported(const char *name, unsigned long value,
|
static int is_exported(const char *name, unsigned long value,
|
||||||
|
|
Loading…
Add table
Reference in a new issue