Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton: "6 fixes" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: sparse doesn't support struct randomization proc: fix coredump vs read /proc/*/stat race scripts/gdb/linux/tasks.py: fix get_thread_info scripts/decodecode: fix decoding for AArch64 (arm64) instructions mm/page_owner.c: remove drain_all_pages from init_early_allocated_pages mm/memory.c: release locked page in do_swap_page()
This commit is contained in:
commit
d342740e26
|
@ -430,8 +430,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
|
|||
* safe because the task has stopped executing permanently.
|
||||
*/
|
||||
if (permitted && (task->flags & PF_DUMPCORE)) {
|
||||
eip = KSTK_EIP(task);
|
||||
esp = KSTK_ESP(task);
|
||||
if (try_get_task_stack(task)) {
|
||||
eip = KSTK_EIP(task);
|
||||
esp = KSTK_ESP(task);
|
||||
put_task_stack(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@
|
|||
/* Mark a function definition as prohibited from being cloned. */
|
||||
#define __noclone __attribute__((__noclone__, __optimize__("no-tracer")))
|
||||
|
||||
#ifdef RANDSTRUCT_PLUGIN
|
||||
#if defined(RANDSTRUCT_PLUGIN) && !defined(__CHECKER__)
|
||||
#define __randomize_layout __attribute__((randomize_layout))
|
||||
#define __no_randomize_layout __attribute__((no_randomize_layout))
|
||||
#endif
|
||||
|
|
10
mm/memory.c
10
mm/memory.c
|
@ -2857,8 +2857,11 @@ int do_swap_page(struct vm_fault *vmf)
|
|||
int ret = 0;
|
||||
bool vma_readahead = swap_use_vma_readahead();
|
||||
|
||||
if (vma_readahead)
|
||||
if (vma_readahead) {
|
||||
page = swap_readahead_detect(vmf, &swap_ra);
|
||||
swapcache = page;
|
||||
}
|
||||
|
||||
if (!pte_unmap_same(vma->vm_mm, vmf->pmd, vmf->pte, vmf->orig_pte)) {
|
||||
if (page)
|
||||
put_page(page);
|
||||
|
@ -2889,9 +2892,12 @@ int do_swap_page(struct vm_fault *vmf)
|
|||
|
||||
|
||||
delayacct_set_flag(DELAYACCT_PF_SWAPIN);
|
||||
if (!page)
|
||||
if (!page) {
|
||||
page = lookup_swap_cache(entry, vma_readahead ? vma : NULL,
|
||||
vmf->address);
|
||||
swapcache = page;
|
||||
}
|
||||
|
||||
if (!page) {
|
||||
struct swap_info_struct *si = swp_swap_info(entry);
|
||||
|
||||
|
|
|
@ -616,7 +616,6 @@ static void init_early_allocated_pages(void)
|
|||
{
|
||||
pg_data_t *pgdat;
|
||||
|
||||
drain_all_pages(NULL);
|
||||
for_each_online_pgdat(pgdat)
|
||||
init_zones_in_node(pgdat);
|
||||
}
|
||||
|
|
|
@ -59,6 +59,14 @@ disas() {
|
|||
${CROSS_COMPILE}strip $1.o
|
||||
fi
|
||||
|
||||
if [ "$ARCH" = "arm64" ]; then
|
||||
if [ $width -eq 4 ]; then
|
||||
type=inst
|
||||
fi
|
||||
|
||||
${CROSS_COMPILE}strip $1.o
|
||||
fi
|
||||
|
||||
${CROSS_COMPILE}objdump $OBJDUMPFLAGS -S $1.o | \
|
||||
grep -v "/tmp\|Disassembly\|\.text\|^$" > $1.dis 2>&1
|
||||
}
|
||||
|
|
|
@ -96,6 +96,8 @@ def get_thread_info(task):
|
|||
thread_info_addr = task.address + ia64_task_size
|
||||
thread_info = thread_info_addr.cast(thread_info_ptr_type)
|
||||
else:
|
||||
if task.type.fields()[0].type == thread_info_type.get_type():
|
||||
return task['thread_info']
|
||||
thread_info = task['stack'].cast(thread_info_ptr_type)
|
||||
return thread_info.dereference()
|
||||
|
||||
|
|
Loading…
Reference in a new issue