linux-next: manual merge of the tiny tree with the tip tree

From: Stephen Rothwell
Date: Tue Sep 23 2014 - 00:32:58 EST


Hi Josh,

Today's linux-next merge of the tiny tree got conflicts in
arch/x86/kernel/process_32.c and arch/x86/kernel/process_64.c between
commits dc56c0f9b870 ("x86, fpu: Shift "fpu_counter = 0" from
copy_thread() to arch_dup_task_struct()") and 6f46b3aef003 ("x86:
copy_thread: Don't nullify ->ptrace_bps twice") from the tip tree and
commits a1cf09f93e66 ("x86: process: Unify 32-bit and 64-bit
copy_thread I/O bitmap handling") and e4a191d1e05b ("x86: Support
compiling out userspace I/O (iopl and ioperm)") from the tiny tree.

I fixed it up (I think - see below) and can carry the fix as necessary
(no action is required).

--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

diff --cc arch/x86/kernel/process_32.c
index 8f3ebfe710d0,e37f006fda6e..000000000000
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@@ -153,7 -153,9 +154,7 @@@ int copy_thread(unsigned long clone_fla
childregs->orig_ax = -1;
childregs->cs = __KERNEL_CS | get_kernel_rpl();
childregs->flags = X86_EFLAGS_IF | X86_EFLAGS_FIXED;
- p->thread.io_bitmap_ptr = NULL;
- p->thread.fpu_counter = 0;
+ clear_thread_io_bitmap(p);
- memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
return 0;
}
*childregs = *current_pt_regs();
@@@ -164,22 -166,12 +165,9 @@@
p->thread.ip = (unsigned long) ret_from_fork;
task_user_gs(p) = get_user_gs(current_pt_regs());

- p->thread.io_bitmap_ptr = NULL;
- p->thread.fpu_counter = 0;
+ clear_thread_io_bitmap(p);
tsk = current;
- err = -ENOMEM;
-
- if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) {
- p->thread.io_bitmap_ptr = kmemdup(tsk->thread.io_bitmap_ptr,
- IO_BITMAP_BYTES, GFP_KERNEL);
- if (!p->thread.io_bitmap_ptr) {
- p->thread.io_bitmap_max = 0;
- return -ENOMEM;
- }
- set_tsk_thread_flag(p, TIF_IO_BITMAP);
- }
-
- err = 0;

- memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
-
/*
* Set a new TLS for the child thread?
*/
diff --cc arch/x86/kernel/process_64.c
index 3ed4a68d4013,80f348659edd..000000000000
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@@ -163,7 -164,8 +164,7 @@@ int copy_thread(unsigned long clone_fla
p->thread.sp = (unsigned long) childregs;
p->thread.usersp = me->thread.usersp;
set_tsk_thread_flag(p, TIF_FORK);
- p->thread.io_bitmap_ptr = NULL;
- p->thread.fpu_counter = 0;
+ clear_thread_io_bitmap(p);

savesegment(gs, p->thread.gsindex);
p->thread.gs = p->thread.gsindex ? 0 : me->thread.gs;
@@@ -191,17 -193,8 +192,6 @@@
if (sp)
childregs->sp = sp;

- err = -ENOMEM;
- if (unlikely(test_tsk_thread_flag(me, TIF_IO_BITMAP))) {
- p->thread.io_bitmap_ptr = kmemdup(me->thread.io_bitmap_ptr,
- IO_BITMAP_BYTES, GFP_KERNEL);
- if (!p->thread.io_bitmap_ptr) {
- p->thread.io_bitmap_max = 0;
- return -ENOMEM;
- }
- set_tsk_thread_flag(p, TIF_IO_BITMAP);
- }
- memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
--
/*
* Set a new TLS for the child thread?
*/

Attachment: signature.asc
Description: PGP signature