The following changes since commit 779cfc6a68bcc9c4acb1eec3922c25eb43b08a2f:
  Jan Kiszka (1):
        Set oops_in_progress on failing context check

are available in the git repository at:

  git://git.kiszka.org/ipipe-2.6 queues/2.6.31-noarch

Jan Kiszka (1):
      Disable both real and virtual interrupts during ftrace code changes

 kernel/trace/ftrace.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

------

Disable both real and virtual interrupts during ftrace code changes

This is required as the call stack contains some further local_irq_save/
restore which would otherwise reenable real interrupts spuriously.

Signed-off-by: Jan Kiszka <[email protected]>
---
 kernel/trace/ftrace.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 5c007b6..9ca1e65 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2802,9 +2802,11 @@ static int ftrace_convert_nops(struct module *mod,
        }
 
        /* disable interrupts to prevent kstop machine */
-       local_irq_save_hw_notrace(flags);
+       local_irq_save(flags);
+       local_irq_disable_hw();
        ftrace_update_code(mod);
-       local_irq_restore_hw_notrace(flags);
+       local_irq_enable_hw();
+       local_irq_restore(flags);
        mutex_unlock(&ftrace_lock);
 
        return 0;
@@ -2887,9 +2889,11 @@ void __init ftrace_init(void)
        /* Keep the ftrace pointer to the stub */
        addr = (unsigned long)ftrace_stub;
 
-       local_irq_save_hw_notrace(flags);
+       local_irq_save(flags);
+       local_irq_disable_hw();
        ftrace_dyn_arch_init(&addr);
-       local_irq_restore_hw_notrace(flags);
+       local_irq_enable_hw();
+       local_irq_restore(flags);
 
        /* ftrace_dyn_arch_init places the return code in addr */
        if (addr)
-- 
1.6.0.2

_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to