summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2016-09-04 20:16:55 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2016-09-04 20:16:55 -0400
commit3e5f7c9224e763116ef28a6f518883b05a971148 (patch)
tree1e0b0a2c523ec818551899a47d5caba98d383805
parentb9ced5a8ab8f5c876d09e9e3bb2527ac6bf14659 (diff)
download4.8-rt-patches-3e5f7c9224e763116ef28a6f518883b05a971148.tar.gz
random: trivial refreshrt-v4.7-1605-ge65805251f2d
-rw-r--r--patches/random-make-it-work-on-rt.patch28
1 files changed, 14 insertions, 14 deletions
diff --git a/patches/random-make-it-work-on-rt.patch b/patches/random-make-it-work-on-rt.patch
index 3c02405b78b2c..aee51378baddd 100644
--- a/patches/random-make-it-work-on-rt.patch
+++ b/patches/random-make-it-work-on-rt.patch
@@ -1,4 +1,4 @@
-From 4cd401760fdfc392c1f4e35e314c60107756ec40 Mon Sep 17 00:00:00 2001
+From d61f27cc88e51c74dfc1018eb9f570946aff5841 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 21 Aug 2012 20:38:50 +0200
Subject: [PATCH] random: Make it work on rt
@@ -11,10 +11,10 @@ entropy.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 86400bde0a6f..ac2bd8c62de9 100644
+index aef4e395caac..cd9a29914fd7 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
-@@ -888,28 +888,27 @@ static __u32 get_reg(struct fast_pool *f, struct pt_regs *regs)
+@@ -889,28 +889,27 @@ static __u32 get_reg(struct fast_pool *f, struct pt_regs *regs)
return *(ptr + f->reg_idx++);
}
@@ -61,7 +61,7 @@ index b51beebf9804..219d9824f762 100644
struct cpumask *percpu_enabled;
const struct cpumask *percpu_affinity;
diff --git a/include/linux/random.h b/include/linux/random.h
-index 9c29122037f9..e7f2f8604918 100644
+index 3d6e9815cd85..f6e8860b6494 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -20,7 +20,7 @@ struct random_ready_callback {
@@ -74,36 +74,36 @@ index 9c29122037f9..e7f2f8604918 100644
extern void get_random_bytes(void *buf, int nbytes);
extern int add_random_ready_callback(struct random_ready_callback *rdy);
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
-index a15b5485b446..28c39c16f989 100644
+index d3f24905852c..1523e48635a7 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -134,6 +134,8 @@ void __irq_wake_thread(struct irq_desc *desc, struct irqaction *action)
- irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
+ irqreturn_t __handle_irq_event_percpu(struct irq_desc *desc, unsigned int *flags)
{
+ struct pt_regs *regs = get_irq_regs();
+ u64 ip = regs ? instruction_pointer(regs) : 0;
irqreturn_t retval = IRQ_NONE;
- unsigned int flags = 0, irq = desc->irq_data.irq;
+ unsigned int irq = desc->irq_data.irq;
struct irqaction *action;
-@@ -174,7 +176,11 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
- retval |= res;
- }
+@@ -184,7 +186,11 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
+
+ retval = __handle_irq_event_percpu(desc, &flags);
-- add_interrupt_randomness(irq, flags);
+- add_interrupt_randomness(desc->irq_data.irq, flags);
+#ifdef CONFIG_PREEMPT_RT_FULL
+ desc->random_ip = ip;
+#else
-+ add_interrupt_randomness(irq, flags, ip);
++ add_interrupt_randomness(desc->irq_data.irq, flags, ip);
+#endif
if (!noirqdebug)
note_interrupt(desc, retval);
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index e2003da04b9e..2f9f271660a1 100644
+index 9d54fd7a37ec..5538d581b17a 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
-@@ -1043,6 +1043,12 @@ static int irq_thread(void *data)
+@@ -1059,6 +1059,12 @@ static int irq_thread(void *data)
if (action_ret == IRQ_WAKE_THREAD)
irq_wake_secondary(desc, action);