Re: Linux 4.9 RT stable has a merge conflict

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey Dan-

On Mon, Feb 19, 2018 at 09:17:37AM -0600, Dan Murphy wrote:
> Julia
> 
> The latest 4.9 stable dot release has a conflict on the following files
> 
> 	both modified:   arch/x86/include/asm/thread_info.h
> 	both modified:   kernel/time/posix-timers.c
> 	both modified:   kernel/workqueue.c
> 
> Attached is the output file from the conflict
> 
> Can you please resolve this conflict and update the 4.9 rt stable branch?

Yes, that is the role of a maintainer :).  I've got a preliminary
resolution (see below), and will do testing over the next few days
before releasing it.

Thanks,
   Julia

--
diff --cc arch/x86/include/asm/thread_info.h
index 5ceb3a1c2b1a,89978b9c667a..b65c6705d6b9
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@@ -54,8 -54,7 +54,9 @@@ struct task_struct
  
  struct thread_info {
  	unsigned long		flags;		/* low level flags */
 +	int                     preempt_lazy_count;     /* 0 => lazy preemptable
 +							   <0 => BUG */
+ 	u32			status;		/* thread synchronous flags */
  };
  
  #define INIT_THREAD_INFO(tsk)			\
diff --cc kernel/time/hrtimer.c
index 369203af6406,54fd2fed36e9..bb0bf0651b99
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@@ -1824,14 -1610,11 +1826,15 @@@ int hrtimers_prepare_cpu(unsigned int c
  	for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) {
  		cpu_base->clock_base[i].cpu_base = cpu_base;
  		timerqueue_init_head(&cpu_base->clock_base[i].active);
 +		INIT_LIST_HEAD(&cpu_base->clock_base[i].expired);
  	}
  
+ 	cpu_base->active_bases = 0;
  	cpu_base->cpu = cpu;
  	hrtimer_init_hres(cpu_base);
 +#ifdef CONFIG_PREEMPT_RT_BASE
 +	init_waitqueue_head(&cpu_base->wait);
 +#endif
  	return 0;
  }
  
diff --cc kernel/time/posix-timers.c
index 464a98155a0e,fc7c37ad90a0..d4ee07e00b74
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@@ -506,20 -506,23 +506,26 @@@ static enum hrtimer_restart posix_timer
  static struct pid *good_sigevent(sigevent_t * event)
  {
  	struct task_struct *rtn = current->group_leader;
 +	int sig = event->sigev_signo;
  
- 	if ((event->sigev_notify & SIGEV_THREAD_ID ) &&
- 		(!(rtn = find_task_by_vpid(event->sigev_notify_thread_id)) ||
- 		 !same_thread_group(rtn, current) ||
- 		 (event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_SIGNAL))
+ 	switch (event->sigev_notify) {
+ 	case SIGEV_SIGNAL | SIGEV_THREAD_ID:
+ 		rtn = find_task_by_vpid(event->sigev_notify_thread_id);
+ 		if (!rtn || !same_thread_group(rtn, current))
+ 			return NULL;
+ 		/* FALLTHRU */
+ 	case SIGEV_SIGNAL:
+ 	case SIGEV_THREAD:
+ 		if (event->sigev_signo <= 0 || event->sigev_signo > SIGRTMAX)
+ 			return NULL;
++		if (sig_kernel_only(event->sigev_signo) ||
++		    sig_kernel_coredump(event->sigev_signo)
++			return NULL;
+ 		/* FALLTHRU */
+ 	case SIGEV_NONE:
+ 		return task_pid(rtn);
+ 	default:
  		return NULL;
- 
- 	if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) &&
- 	    (sig <= 0 || sig > SIGRTMAX || sig_kernel_only(sig) ||
- 	     sig_kernel_coredump(sig)))
- 		return NULL;
- 
- 	return task_pid(rtn);
 -	}
  }
  
  void posix_timers_register_clock(const clockid_t clock_id,
diff --cc kernel/workqueue.c
index 7eed129f114a,ebfea5f94b66..0750110471e4
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@@ -48,8 -48,7 +48,9 @@@
  #include <linux/nodemask.h>
  #include <linux/moduleparam.h>
  #include <linux/uaccess.h>
 +#include <linux/locallock.h>
 +#include <linux/delay.h>
+ #include <linux/nmi.h>
  
  #include "workqueue_internal.h"
  
@@@ -4492,9 -4458,15 +4499,15 @@@ void show_workqueue_state(void
  		pr_cont("\n");
  	next_pool:
  		spin_unlock_irqrestore(&pool->lock, flags);
+ 		/*
+ 		 * We could be printing a lot from atomic context, e.g.
+ 		 * sysrq-t -> show_workqueue_state(). Avoid triggering
+ 		 * hard lockup.
+ 		 */
+ 		touch_nmi_watchdog();
  	}
  
 -	rcu_read_unlock_sched();
 +	rcu_read_unlock();
  }
  
  /*
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux