[linux] 01/01: Update to 4.4.2

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Wed Feb 17 21:20:09 UTC 2016


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch sid
in repository linux.

commit edd433b85fd78f99af080c50f6e20f4d3185a550
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Mon Feb 15 15:31:33 2016 +0000

    Update to 4.4.2
    
    Drop patches included in it.
    
    Refresh rt patches with textual conflicts.
---
 debian/changelog                                   |  7 ++-
 ...sb-audio-avoid-freeing-umidi-object-twice.patch | 31 -----------
 ...unsafe-ldisc-reference-via-ioctl-tiocgetd.patch | 63 ----------------------
 ...sh-on-detecting-device-without-write_urbs.patch | 31 -----------
 .../crypto-sun4i-ss-add-missing-statesize.patch    | 40 --------------
 ...up-hrtimer-callback-changes-for-preempt-r.patch | 34 ++++++------
 .../all/rt/hrtimers-prepare-full-preemption.patch  | 22 ++++----
 debian/patches/features/all/rt/latency-hist.patch  | 22 ++++----
 .../patches/features/all/rt/printk-rt-aware.patch  | 21 ++++----
 debian/patches/series                              |  4 --
 10 files changed, 55 insertions(+), 220 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index a9491a4..02bfb39 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,8 @@
-linux (4.4.1-1) UNRELEASED; urgency=medium
+linux (4.4.2-1) UNRELEASED; urgency=medium
+
+  * New upstream stable update:
+    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.2
+    - ALSA: usb-audio: avoid freeing umidi object twice (CVE-2016-2384)
 
   [ Ben Hutchings ]
   * Set ABI to 1
@@ -13,7 +17,6 @@ linux (4.4.1-1) UNRELEASED; urgency=medium
     (regression in 4.4, 4.3.4)
   * bpf: fix branch offset adjustment on backjumps after patching ctx expansion
     (CVE-2016-2383)
-  * ALSA: usb-audio: avoid freeing umidi object twice (CVE-2016-2384)
   * udeb: Combine scsi-{common,extra}-modules with scsi-modules
   * udeb: Use wildcards to include entire classes of drivers:
     - input-modules: Include HID drivers by default
diff --git a/debian/patches/bugfix/all/alsa-usb-audio-avoid-freeing-umidi-object-twice.patch b/debian/patches/bugfix/all/alsa-usb-audio-avoid-freeing-umidi-object-twice.patch
deleted file mode 100644
index 72c57bf..0000000
--- a/debian/patches/bugfix/all/alsa-usb-audio-avoid-freeing-umidi-object-twice.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Andrey Konovalov <andreyknvl at gmail.com>
-Date: Sat, 13 Feb 2016 11:08:06 +0300
-Subject: ALSA: usb-audio: avoid freeing umidi object twice
-Origin: https://git.kernel.org/linus/07d86ca93db7e5cdf4743564d98292042ec21af7
-
-The 'umidi' object will be free'd on the error path by snd_usbmidi_free()
-when tearing down the rawmidi interface. So we shouldn't try to free it
-in snd_usbmidi_create() after having registered the rawmidi interface.
-
-Found by KASAN.
-
-Signed-off-by: Andrey Konovalov <andreyknvl at gmail.com>
-Acked-by: Clemens Ladisch <clemens at ladisch.de>
-Cc: <stable at vger.kernel.org>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
----
- sound/usb/midi.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/usb/midi.c b/sound/usb/midi.c
-index cc39f63299ef..007cf5831121 100644
---- a/sound/usb/midi.c
-+++ b/sound/usb/midi.c
-@@ -2455,7 +2455,6 @@ int snd_usbmidi_create(struct snd_card *card,
- 	else
- 		err = snd_usbmidi_create_endpoints(umidi, endpoints);
- 	if (err < 0) {
--		snd_usbmidi_free(umidi);
- 		return err;
- 	}
- 
diff --git a/debian/patches/bugfix/all/tty-fix-unsafe-ldisc-reference-via-ioctl-tiocgetd.patch b/debian/patches/bugfix/all/tty-fix-unsafe-ldisc-reference-via-ioctl-tiocgetd.patch
deleted file mode 100644
index 02fe5e7..0000000
--- a/debian/patches/bugfix/all/tty-fix-unsafe-ldisc-reference-via-ioctl-tiocgetd.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From: Peter Hurley <peter at hurleysoftware.com>
-Subject: tty: Fix unsafe ldisc reference via ioctl(TIOCGETD)
-Date: Sun, 10 Jan 2016 22:40:55 -0800
-Origin: http://article.gmane.org/gmane.linux.kernel/2123249
-
-ioctl(TIOCGETD) retrieves the line discipline id directly from the
-ldisc because the line discipline id (c_line) in termios is untrustworthy;
-userspace may have set termios via ioctl(TCSETS*) without actually
-changing the line discipline via ioctl(TIOCSETD).
-
-However, directly accessing the current ldisc via tty->ldisc is
-unsafe; the ldisc ptr dereferenced may be stale if the line discipline
-is changing via ioctl(TIOCSETD) or hangup.
-
-Wait for the line discipline reference (just like read() or write())
-to retrieve the "current" line discipline id.
-
-Cc: <stable at vger.kernel.org>
-Signed-off-by: Peter Hurley <peter at hurleysoftware.com>
----
- drivers/tty/tty_io.c | 24 +++++++++++++++++++++++-
- 1 file changed, 23 insertions(+), 1 deletion(-)
-
---- a/drivers/tty/tty_io.c
-+++ b/drivers/tty/tty_io.c
-@@ -2654,6 +2654,28 @@ static int tiocsetd(struct tty_struct *t
- }
- 
- /**
-+ *	tiocgetd	-	get line discipline
-+ *	@tty: tty device
-+ *	@p: pointer to user data
-+ *
-+ *	Retrieves the line discipline id directly from the ldisc.
-+ *
-+ *	Locking: waits for ldisc reference (in case the line discipline
-+ *		is changing or the tty is being hungup)
-+ */
-+
-+static int tiocgetd(struct tty_struct *tty, int __user *p)
-+{
-+	struct tty_ldisc *ld;
-+	int ret;
-+
-+	ld = tty_ldisc_ref_wait(tty);
-+	ret = put_user(ld->ops->num, p);
-+	tty_ldisc_deref(ld);
-+	return ret;
-+}
-+
-+/**
-  *	send_break	-	performed time break
-  *	@tty: device to break on
-  *	@duration: timeout in mS
-@@ -2879,7 +2901,7 @@ long tty_ioctl(struct file *file, unsign
- 	case TIOCGSID:
- 		return tiocgsid(tty, real_tty, p);
- 	case TIOCGETD:
--		return put_user(tty->ldisc->ops->num, (int __user *)p);
-+		return tiocgetd(tty, p);
- 	case TIOCSETD:
- 		return tiocsetd(tty, p);
- 	case TIOCVHANGUP:
diff --git a/debian/patches/bugfix/all/usb-serial-visor-fix-crash-on-detecting-device-without-write_urbs.patch b/debian/patches/bugfix/all/usb-serial-visor-fix-crash-on-detecting-device-without-write_urbs.patch
deleted file mode 100644
index 4b6a5d6..0000000
--- a/debian/patches/bugfix/all/usb-serial-visor-fix-crash-on-detecting-device-without-write_urbs.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Vladis Dronov <vdronov at redhat.com>
-Subject: usb: serial: visor: fix crash on detecting device without write_urbs
-Date: Tue, 12 Jan 2016 15:10:50 +0100
-Origin: http://article.gmane.org/gmane.linux.usb.general/136045
-Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1296466
-
-The visor driver crashes in clie_5_attach() when a specially crafted USB
-device without bulk-out endpoint is detected. This fix adds a check that
-the device has proper configuration expected by the driver.
-
-Reported-by: Ralf Spenneberg <ralf at spenneberg.net>
-Signed-off-by: Vladis Dronov <vdronov at redhat.com>
----
- drivers/usb/serial/visor.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/usb/serial/visor.c
-+++ b/drivers/usb/serial/visor.c
-@@ -597,8 +597,10 @@ static int clie_5_attach(struct usb_seri
- 	 */
- 
- 	/* some sanity check */
--	if (serial->num_ports < 2)
--		return -1;
-+	if (serial->num_bulk_out < 2) {
-+		dev_err(&serial->interface->dev, "missing bulk out endpoints\n");
-+		return -ENODEV;
-+	}
- 
- 	/* port 0 now uses the modified endpoint Address */
- 	port = serial->port[0];
diff --git a/debian/patches/bugfix/arm/crypto-sun4i-ss-add-missing-statesize.patch b/debian/patches/bugfix/arm/crypto-sun4i-ss-add-missing-statesize.patch
deleted file mode 100644
index 7aace65..0000000
--- a/debian/patches/bugfix/arm/crypto-sun4i-ss-add-missing-statesize.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: LABBE Corentin <clabbe.montjoie at gmail.com>
-Date: Mon, 16 Nov 2015 09:35:54 +0100
-Subject: crypto: sun4i-ss - add missing statesize
-Origin: https://git.kernel.org/cgit/linux/kernel/git/herbert/cryptodev-2.6.git/commit?id=4f9ea86604e3ba64edd2817795798168fbb3c1a6
-Bug-Debian: https://bugs.debian.org/808625
-
-sun4i-ss implementaton of md5/sha1 is via ahash algorithms.
-Commit 8996eafdcbad ("crypto: ahash - ensure statesize is non-zero")
-made impossible to load them without giving statesize. This patch
-specifiy statesize for sha1 and md5.
-
-Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator")
-Cc: <stable at vger.kernel.org> # v4.3+
-Tested-by: Chen-Yu Tsai <wens at csie.org>
-Signed-off-by: LABBE Corentin <clabbe.montjoie at gmail.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
----
- drivers/crypto/sunxi-ss/sun4i-ss-core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-core.c b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
-index eab6fe2..107cd2a 100644
---- a/drivers/crypto/sunxi-ss/sun4i-ss-core.c
-+++ b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
-@@ -39,6 +39,7 @@ static struct sun4i_ss_alg_template ss_algs[] = {
- 		.import = sun4i_hash_import_md5,
- 		.halg = {
- 			.digestsize = MD5_DIGEST_SIZE,
-+			.statesize = sizeof(struct md5_state),
- 			.base = {
- 				.cra_name = "md5",
- 				.cra_driver_name = "md5-sun4i-ss",
-@@ -66,6 +67,7 @@ static struct sun4i_ss_alg_template ss_algs[] = {
- 		.import = sun4i_hash_import_sha1,
- 		.halg = {
- 			.digestsize = SHA1_DIGEST_SIZE,
-+			.statesize = sizeof(struct sha1_state),
- 			.base = {
- 				.cra_name = "sha1",
- 				.cra_driver_name = "sha1-sun4i-ss",
diff --git a/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
index c72f4d7..f961442 100644
--- a/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
+++ b/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
@@ -23,25 +23,25 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
 
 --- a/include/linux/hrtimer.h
 +++ b/include/linux/hrtimer.h
-@@ -87,6 +87,8 @@ enum hrtimer_restart {
-  * @function:	timer expiry callback function
+@@ -88,6 +88,8 @@ enum hrtimer_restart {
   * @base:	pointer to the timer base (per cpu and per clock)
   * @state:	state information (See bit values above)
+  * @is_rel:	Set if the timer was armed relative
 + * @cb_entry:	list entry to defer timers from hardirq context
 + * @irqsafe:	timer can run in hardirq context
   * @praecox:	timer expiry time if expired at the time of programming
-  * @start_pid: timer statistics field to store the pid of the task which
+  * @start_pid:  timer statistics field to store the pid of the task which
   *		started the timer
-@@ -103,6 +105,8 @@ struct hrtimer {
- 	enum hrtimer_restart		(*function)(struct hrtimer *);
+@@ -105,6 +107,8 @@ struct hrtimer {
  	struct hrtimer_clock_base	*base;
- 	unsigned long			state;
+ 	u8				state;
+ 	u8				is_rel;
 +	struct list_head		cb_entry;
 +	int				irqsafe;
  #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
  	ktime_t				praecox;
  #endif
-@@ -134,6 +138,7 @@ struct hrtimer_sleeper {
+@@ -136,6 +140,7 @@ struct hrtimer_sleeper {
   *			timer to a base on another cpu.
   * @clockid:		clock id for per_cpu support
   * @active:		red black tree root node for the active timers
@@ -49,7 +49,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
   * @get_time:		function to retrieve the current time of the clock
   * @offset:		offset of this clock to the monotonic base
   */
-@@ -142,6 +147,7 @@ struct hrtimer_clock_base {
+@@ -144,6 +149,7 @@ struct hrtimer_clock_base {
  	int			index;
  	clockid_t		clockid;
  	struct timerqueue_head	active;
@@ -57,7 +57,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  	ktime_t			(*get_time)(void);
  	ktime_t			offset;
  } __attribute__((__aligned__(HRTIMER_CLOCK_BASE_ALIGN)));
-@@ -185,6 +191,7 @@ struct hrtimer_cpu_base {
+@@ -187,6 +193,7 @@ struct hrtimer_cpu_base {
  	raw_spinlock_t			lock;
  	seqcount_t			seq;
  	struct hrtimer			*running;
@@ -122,7 +122,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  	if (!timerqueue_del(&base->active, &timer->node))
  		cpu_base->active_bases &= ~(1 << base->index);
  
-@@ -1162,6 +1164,7 @@ static void __hrtimer_init(struct hrtime
+@@ -1173,6 +1175,7 @@ static void __hrtimer_init(struct hrtime
  
  	base = hrtimer_clockid_to_base(clock_id);
  	timer->base = &cpu_base->clock_base[base];
@@ -130,7 +130,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  	timerqueue_init(&timer->node);
  
  #ifdef CONFIG_TIMER_STATS
-@@ -1202,6 +1205,7 @@ bool hrtimer_active(const struct hrtimer
+@@ -1213,6 +1216,7 @@ bool hrtimer_active(const struct hrtimer
  		seq = raw_read_seqcount_begin(&cpu_base->seq);
  
  		if (timer->state != HRTIMER_STATE_INACTIVE ||
@@ -138,7 +138,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  		    cpu_base->running == timer)
  			return true;
  
-@@ -1292,12 +1296,112 @@ static void __run_hrtimer(struct hrtimer
+@@ -1311,12 +1315,112 @@ static void __run_hrtimer(struct hrtimer
  	cpu_base->running = NULL;
  }
  
@@ -251,7 +251,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  
  	for (; active; base++, active >>= 1) {
  		struct timerqueue_node *node;
-@@ -1337,9 +1441,14 @@ static void __hrtimer_run_queues(struct
+@@ -1356,9 +1460,14 @@ static void __hrtimer_run_queues(struct
  			if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer))
  				break;
  
@@ -267,7 +267,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  }
  
  #ifdef CONFIG_HIGH_RES_TIMERS
-@@ -1481,8 +1590,6 @@ void hrtimer_run_queues(void)
+@@ -1500,8 +1609,6 @@ void hrtimer_run_queues(void)
  	now = hrtimer_update_base(cpu_base);
  	__hrtimer_run_queues(cpu_base, now);
  	raw_spin_unlock(&cpu_base->lock);
@@ -276,7 +276,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  }
  
  /*
-@@ -1504,6 +1611,7 @@ static enum hrtimer_restart hrtimer_wake
+@@ -1523,6 +1630,7 @@ static enum hrtimer_restart hrtimer_wake
  void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
  {
  	sl->timer.function = hrtimer_wakeup;
@@ -284,7 +284,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  	sl->task = task;
  }
  EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
-@@ -1638,6 +1746,7 @@ static void init_hrtimers_cpu(int cpu)
+@@ -1657,6 +1765,7 @@ static void init_hrtimers_cpu(int cpu)
  	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);
@@ -292,7 +292,7 @@ Signed-off-by: Ingo Molnar <mingo at elte.hu>
  	}
  
  	cpu_base->cpu = cpu;
-@@ -1742,11 +1851,21 @@ static struct notifier_block hrtimers_nb
+@@ -1761,11 +1870,21 @@ static struct notifier_block hrtimers_nb
  	.notifier_call = hrtimer_cpu_notify,
  };
  
diff --git a/debian/patches/features/all/rt/hrtimers-prepare-full-preemption.patch b/debian/patches/features/all/rt/hrtimers-prepare-full-preemption.patch
index 860fcbc..77b457d 100644
--- a/debian/patches/features/all/rt/hrtimers-prepare-full-preemption.patch
+++ b/debian/patches/features/all/rt/hrtimers-prepare-full-preemption.patch
@@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 
 --- a/include/linux/hrtimer.h
 +++ b/include/linux/hrtimer.h
-@@ -205,6 +205,9 @@ struct hrtimer_cpu_base {
+@@ -207,6 +207,9 @@ struct hrtimer_cpu_base {
  	unsigned int			nr_hangs;
  	unsigned int			max_hang_time;
  #endif
@@ -28,7 +28,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	struct hrtimer_clock_base	clock_base[HRTIMER_MAX_CLOCK_BASES];
  } ____cacheline_aligned;
  
-@@ -393,6 +396,13 @@ static inline void hrtimer_restart(struc
+@@ -416,6 +419,13 @@ static inline void hrtimer_restart(struc
  	hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
  }
  
@@ -40,9 +40,9 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 +#endif
 +
  /* Query timers: */
- extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
+ extern ktime_t __hrtimer_get_remaining(const struct hrtimer *timer, bool adjust);
  
-@@ -412,7 +422,7 @@ static inline int hrtimer_is_queued(stru
+@@ -440,7 +450,7 @@ static inline int hrtimer_is_queued(stru
   * Helper function to check, whether the timer is running the callback
   * function
   */
@@ -86,7 +86,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  /*
   * enqueue_hrtimer - internal function to (re)start a timer
   *
-@@ -1076,7 +1102,7 @@ int hrtimer_cancel(struct hrtimer *timer
+@@ -1083,7 +1109,7 @@ int hrtimer_cancel(struct hrtimer *timer
  
  		if (ret >= 0)
  			return ret;
@@ -95,7 +95,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	}
  }
  EXPORT_SYMBOL_GPL(hrtimer_cancel);
-@@ -1455,6 +1481,8 @@ void hrtimer_run_queues(void)
+@@ -1474,6 +1500,8 @@ void hrtimer_run_queues(void)
  	now = hrtimer_update_base(cpu_base);
  	__hrtimer_run_queues(cpu_base, now);
  	raw_spin_unlock(&cpu_base->lock);
@@ -104,7 +104,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  }
  
  /*
-@@ -1614,6 +1642,9 @@ static void init_hrtimers_cpu(int cpu)
+@@ -1633,6 +1661,9 @@ static void init_hrtimers_cpu(int cpu)
  
  	cpu_base->cpu = cpu;
  	hrtimer_init_hres(cpu_base);
@@ -116,7 +116,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  #ifdef CONFIG_HOTPLUG_CPU
 --- a/kernel/time/itimer.c
 +++ b/kernel/time/itimer.c
-@@ -213,6 +213,7 @@ int do_setitimer(int which, struct itime
+@@ -213,6 +213,7 @@ again:
  		/* We are sharing ->siglock with it_real_fn() */
  		if (hrtimer_try_to_cancel(timer) < 0) {
  			spin_unlock_irq(&tsk->sighand->siglock);
@@ -147,7 +147,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  /* Set a POSIX.1b interval timer. */
  /* timr->it_lock is taken. */
  static int
-@@ -905,6 +919,7 @@ SYSCALL_DEFINE4(timer_settime, timer_t,
+@@ -905,6 +919,7 @@ retry:
  	if (!timr)
  		return -EINVAL;
  
@@ -155,7 +155,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	kc = clockid_to_kclock(timr->it_clock);
  	if (WARN_ON_ONCE(!kc || !kc->timer_set))
  		error = -EINVAL;
-@@ -913,9 +928,12 @@ SYSCALL_DEFINE4(timer_settime, timer_t,
+@@ -913,9 +928,12 @@ retry:
  
  	unlock_timer(timr, flag);
  	if (error == TIMER_RETRY) {
@@ -168,7 +168,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  
  	if (old_setting && !error &&
  	    copy_to_user(old_setting, &old_spec, sizeof (old_spec)))
-@@ -953,10 +971,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, t
+@@ -953,10 +971,15 @@ retry_delete:
  	if (!timer)
  		return -EINVAL;
  
diff --git a/debian/patches/features/all/rt/latency-hist.patch b/debian/patches/features/all/rt/latency-hist.patch
index 63fc4cb..ff53bb0 100644
--- a/debian/patches/features/all/rt/latency-hist.patch
+++ b/debian/patches/features/all/rt/latency-hist.patch
@@ -217,18 +217,18 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 +These data are also reset when the wakeup histogram is reset.
 --- a/include/linux/hrtimer.h
 +++ b/include/linux/hrtimer.h
-@@ -87,6 +87,7 @@ enum hrtimer_restart {
-  * @function:	timer expiry callback function
+@@ -88,6 +88,7 @@ enum hrtimer_restart {
   * @base:	pointer to the timer base (per cpu and per clock)
   * @state:	state information (See bit values above)
+  * @is_rel:	Set if the timer was armed relative
 + * @praecox:	timer expiry time if expired at the time of programming
-  * @start_pid: timer statistics field to store the pid of the task which
+  * @start_pid:  timer statistics field to store the pid of the task which
   *		started the timer
   * @start_site:	timer statistics field to store the site where the timer
-@@ -102,6 +103,9 @@ struct hrtimer {
- 	enum hrtimer_restart		(*function)(struct hrtimer *);
+@@ -104,6 +105,9 @@ struct hrtimer {
  	struct hrtimer_clock_base	*base;
- 	unsigned long			state;
+ 	u8				state;
+ 	u8				is_rel;
 +#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
 +	ktime_t				praecox;
 +#endif
@@ -237,7 +237,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	void				*start_site;
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1796,6 +1796,12 @@ struct task_struct {
+@@ -1797,6 +1797,12 @@ struct task_struct {
  	unsigned long trace;
  	/* bitmask and counter of trace recursion */
  	unsigned long trace_recursion;
@@ -367,7 +367,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  
  #include "tick-internal.h"
  
-@@ -994,7 +995,16 @@ void hrtimer_start_range_ns(struct hrtim
+@@ -1001,7 +1002,16 @@ void hrtimer_start_range_ns(struct hrtim
  	new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
  
  	timer_stats_hrtimer_set_start_info(timer);
@@ -384,7 +384,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	leftmost = enqueue_hrtimer(timer, new_base);
  	if (!leftmost)
  		goto unlock;
-@@ -1256,6 +1266,8 @@ static void __run_hrtimer(struct hrtimer
+@@ -1275,6 +1285,8 @@ static void __run_hrtimer(struct hrtimer
  	cpu_base->running = NULL;
  }
  
@@ -393,7 +393,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
  {
  	struct hrtimer_clock_base *base = cpu_base->clock_base;
-@@ -1275,6 +1287,15 @@ static void __hrtimer_run_queues(struct
+@@ -1294,6 +1306,15 @@ static void __hrtimer_run_queues(struct
  
  			timer = container_of(node, struct hrtimer, node);
  
@@ -1792,7 +1792,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	if (!preempt_trace() && irq_trace())
  		stop_critical_timing(CALLER_ADDR0, caller_addr);
  }
-@@ -490,6 +498,7 @@ EXPORT_SYMBOL(trace_hardirqs_on_caller);
+@@ -490,6 +498,7 @@ __visible void trace_hardirqs_off_caller
  {
  	if (!preempt_trace() && irq_trace())
  		start_critical_timing(CALLER_ADDR0, caller_addr);
diff --git a/debian/patches/features/all/rt/printk-rt-aware.patch b/debian/patches/features/all/rt/printk-rt-aware.patch
index ff8008e..994d0cd 100644
--- a/debian/patches/features/all/rt/printk-rt-aware.patch
+++ b/debian/patches/features/all/rt/printk-rt-aware.patch
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 
 --- a/kernel/printk/printk.c
 +++ b/kernel/printk/printk.c
-@@ -1502,6 +1502,7 @@ static void call_console_drivers(int lev
+@@ -1503,6 +1503,7 @@ static void call_console_drivers(int lev
  	if (!console_drivers)
  		return;
  
@@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	for_each_console(con) {
  		if (exclusive_console && con != exclusive_console)
  			continue;
-@@ -1517,6 +1518,7 @@ static void call_console_drivers(int lev
+@@ -1518,6 +1519,7 @@ static void call_console_drivers(int lev
  		else
  			con->write(con, text, len);
  	}
@@ -29,7 +29,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  }
  
  /*
-@@ -1577,6 +1579,15 @@ static inline int can_use_console(unsign
+@@ -1578,6 +1580,15 @@ static inline int can_use_console(unsign
  static int console_trylock_for_printk(void)
  {
  	unsigned int cpu = smp_processor_id();
@@ -45,7 +45,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  
  	if (!console_trylock())
  		return 0;
-@@ -1879,8 +1890,7 @@ asmlinkage int vprintk_emit(int facility
+@@ -1880,8 +1891,7 @@ asmlinkage int vprintk_emit(int facility
  		 * console_sem which would prevent anyone from printing to
  		 * console
  		 */
@@ -55,7 +55,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  		/*
  		 * Try to acquire and then immediately release the console
  		 * semaphore.  The release will print out buffers and wake up
-@@ -1888,7 +1898,7 @@ asmlinkage int vprintk_emit(int facility
+@@ -1889,7 +1899,7 @@ asmlinkage int vprintk_emit(int facility
  		 */
  		if (console_trylock_for_printk())
  			console_unlock();
@@ -64,7 +64,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  		lockdep_on();
  	}
  
-@@ -2248,11 +2258,16 @@ static void console_cont_flush(char *tex
+@@ -2249,11 +2259,16 @@ static void console_cont_flush(char *tex
  		goto out;
  
  	len = cont_print_text(text, size);
@@ -81,7 +81,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  	return;
  out:
  	raw_spin_unlock_irqrestore(&logbuf_lock, flags);
-@@ -2351,12 +2366,17 @@ void console_unlock(void)
+@@ -2363,6 +2378,10 @@ skip:
  		console_idx = log_next(console_idx);
  		console_seq++;
  		console_prev = msg->flags;
@@ -92,9 +92,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  		raw_spin_unlock(&logbuf_lock);
  
  		stop_critical_timings();	/* don't trace print latency */
- 		call_console_drivers(level, ext_text, ext_len, text, len);
- 		start_critical_timings();
- 		local_irq_restore(flags);
+@@ -2372,6 +2391,7 @@ skip:
+ 
+ 		if (do_cond_resched)
+ 			cond_resched();
 +#endif
  	}
  	console_locked = 0;
diff --git a/debian/patches/series b/debian/patches/series
index 379f50e..6d47798 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -43,7 +43,6 @@ bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
 
 # Arch bug fixes
 bugfix/x86/drm-i915-shut-up-gen8-sde-irq-dmesg-noise.patch
-bugfix/arm/crypto-sun4i-ss-add-missing-statesize.patch
 bugfix/x86/drm-vmwgfx-fix-a-width-pitch-mismatch-on-framebuffer.patch
 bugfix/mips/mips-math-emu-correctly-handle-nop-emulation.patch
 
@@ -114,8 +113,6 @@ features/all/grsecurity/grkernsec_perf_harden.patch
 bugfix/all/usbvision-fix-overflow-of-interfaces-array.patch
 bugfix/all/media-usbvision-fix-crash-on-detecting-device-with-i.patch
 bugfix/all/ptrace-being-capable-wrt-a-process-requires-mapped-uids-gids.patch
-bugfix/all/usb-serial-visor-fix-crash-on-detecting-device-without-write_urbs.patch
-bugfix/all/tty-fix-unsafe-ldisc-reference-via-ioctl-tiocgetd.patch
 bugfix/all/pipe-limit-the-per-user-amount-of-pages-allocated-in.patch
 bugfix/all/iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch
 bugfix/all/fs-hugetlbfs-inode.c-fix-bugs-in-hugetlb_vmtruncate_.patch
@@ -123,7 +120,6 @@ bugfix/all/af_unix-guard-against-other-sk-in-unix_dgram_sendmsg.patch
 bugfix/all/revert-workqueue-make-sure-delayed-work-run-in-local-cpu.patch
 bugfix/all/af_unix-don-t-set-err-in-unix_stream_read_generic-unless-there-was-an-error.patch
 bugfix/all/bpf-fix-branch-offset-adjustment-on-backjumps-after-.patch
-bugfix/all/alsa-usb-audio-avoid-freeing-umidi-object-twice.patch
 bugfix/x86/x86-mm-page-align-the-_end-symbol-to-avoid-pfn-conve.patch
 bugfix/x86/x86-mm-pat-ensure-cpa-pfn-only-contains-page-frame-n.patch
 bugfix/x86/x86-efi-map-ram-into-the-identity-page-table-for-mix.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list