diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/module.c | 6 | ||||
| -rw-r--r-- | kernel/time/alarmtimer.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/kernel/module.c b/kernel/module.c index a0eeedb3e5cd..57809d2b4271 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3866,7 +3866,7 @@ static unsigned long mod_find_symname(struct module *mod, const char *name) for (i = 0; i < kallsyms->num_symtab; i++) if (strcmp(name, symname(kallsyms, i)) == 0 && - kallsyms->symtab[i].st_info != 'U') + kallsyms->symtab[i].st_shndx != SHN_UNDEF) return kallsyms->symtab[i].st_value; return 0; } @@ -3912,6 +3912,10 @@ int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, if (mod->state == MODULE_STATE_UNFORMED) continue; for (i = 0; i < kallsyms->num_symtab; i++) { + + if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) + continue; + ret = fn(data, symname(kallsyms, i), mod, kallsyms->symtab[i].st_value); if (ret != 0) diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index ceec77c652b5..271b37995a89 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -1005,7 +1005,8 @@ static int alarm_timer_nsleep(const clockid_t which_clock, int flags, /* Convert (if necessary) to absolute time */ if (flags != TIMER_ABSTIME) { ktime_t now = alarm_bases[type].gettime(); - exp = ktime_add(now, exp); + + exp = ktime_add_safe(now, exp); } if (alarmtimer_do_nsleep(&alarm, exp)) |
