Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King: - remove a now unnecessary usage of the KERNEL_DS for sys_oabi_epoll_ctl() - update my email address in a number of drivers - decompressor EFI updates from Ard Biesheuvel - module unwind section handling updates - sparsemem Kconfig cleanups - make act_mm macro respect THREAD_SIZE * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 8980/1: Allow either FLATMEM or SPARSEMEM on the multiplatform build ARM: 8979/1: Remove redundant ARCH_SPARSEMEM_DEFAULT setting ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE ARM: decompressor: run decompressor in place if loaded via UEFI ARM: decompressor: move GOT into .data for EFI enabled builds ARM: decompressor: defer loading of the contents of the LC0 structure ARM: decompressor: split off _edata and stack base into separate object ARM: decompressor: move headroom variable out of LC0 ARM: 8976/1: module: allow arch overrides for .init section names ARM: 8975/1: module: fix handling of unwind init sections ARM: 8974/1: use SPARSMEM_STATIC when SPARSEMEM is enabled ARM: 8971/1: replace the sole use of a symbol with its definition ARM: 8969/1: decompressor: simplify libfdt builds Update rmk's email address in various drivers ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()
This commit is contained in:
@@ -55,6 +55,13 @@ void *module_alloc(unsigned long size)
|
||||
}
|
||||
#endif
|
||||
|
||||
bool module_init_section(const char *name)
|
||||
{
|
||||
return strstarts(name, ".init") ||
|
||||
strstarts(name, ".ARM.extab.init") ||
|
||||
strstarts(name, ".ARM.exidx.init");
|
||||
}
|
||||
|
||||
bool module_exit_section(const char *name)
|
||||
{
|
||||
return strstarts(name, ".exit") ||
|
||||
@@ -409,8 +416,17 @@ module_arch_cleanup(struct module *mod)
|
||||
#ifdef CONFIG_ARM_UNWIND
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARM_SEC_MAX; i++)
|
||||
if (mod->arch.unwind[i])
|
||||
unwind_table_del(mod->arch.unwind[i]);
|
||||
for (i = 0; i < ARM_SEC_MAX; i++) {
|
||||
unwind_table_del(mod->arch.unwind[i]);
|
||||
mod->arch.unwind[i] = NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void __weak module_arch_freeing_init(struct module *mod)
|
||||
{
|
||||
#ifdef CONFIG_ARM_UNWIND
|
||||
unwind_table_del(mod->arch.unwind[ARM_SEC_INIT]);
|
||||
mod->arch.unwind[ARM_SEC_INIT] = NULL;
|
||||
#endif
|
||||
}
|
||||
|
@@ -253,20 +253,15 @@ asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
|
||||
{
|
||||
struct oabi_epoll_event user;
|
||||
struct epoll_event kernel;
|
||||
mm_segment_t fs;
|
||||
long ret;
|
||||
|
||||
if (op == EPOLL_CTL_DEL)
|
||||
return sys_epoll_ctl(epfd, op, fd, NULL);
|
||||
if (copy_from_user(&user, event, sizeof(user)))
|
||||
if (ep_op_has_event(op) &&
|
||||
copy_from_user(&user, event, sizeof(user)))
|
||||
return -EFAULT;
|
||||
|
||||
kernel.events = user.events;
|
||||
kernel.data = user.data;
|
||||
fs = get_fs();
|
||||
set_fs(KERNEL_DS);
|
||||
ret = sys_epoll_ctl(epfd, op, fd, &kernel);
|
||||
set_fs(fs);
|
||||
return ret;
|
||||
|
||||
return do_epoll_ctl(epfd, op, fd, &kernel, false);
|
||||
}
|
||||
|
||||
asmlinkage long sys_oabi_epoll_wait(int epfd,
|
||||
|
Reference in New Issue
Block a user