From 328e2f009b1af2df9bebd6379ab3905bdcfdf9bd Mon Sep 17 00:00:00 2001 From: Magnus Damm Date: Thu, 24 Apr 2008 21:53:07 +0900 Subject: [PATCH] --- yaml --- r: 96295 b: refs/heads/master c: 4370fe1c06ffa251b63b12a41e2599037a4b7f87 h: refs/heads/master i: 96293: be3591b02880aa7867d64031e1cf24d1a085c629 96291: b81c6a8b9202c98e8eaf3cc12602ecf5aad849bf 96287: 4e8621c793a37522998b47f8af2939f7ef566079 v: v3 --- [refs] | 2 +- trunk/arch/sh/kernel/cpu/irq/intc.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 936b9e6d6108..2c99464d01f6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 720be99006c5830970d5b62633c92b29e4cef137 +refs/heads/master: 4370fe1c06ffa251b63b12a41e2599037a4b7f87 diff --git a/trunk/arch/sh/kernel/cpu/irq/intc.c b/trunk/arch/sh/kernel/cpu/irq/intc.c index e5a4912d665f..da5dae787888 100644 --- a/trunk/arch/sh/kernel/cpu/irq/intc.c +++ b/trunk/arch/sh/kernel/cpu/irq/intc.c @@ -101,17 +101,26 @@ static void write_32(unsigned long addr, unsigned long h, unsigned long data) static void modify_8(unsigned long addr, unsigned long h, unsigned long data) { + unsigned long flags; + local_irq_save(flags); ctrl_outb(set_field(ctrl_inb(addr), data, h), addr); + local_irq_restore(flags); } static void modify_16(unsigned long addr, unsigned long h, unsigned long data) { + unsigned long flags; + local_irq_save(flags); ctrl_outw(set_field(ctrl_inw(addr), data, h), addr); + local_irq_restore(flags); } static void modify_32(unsigned long addr, unsigned long h, unsigned long data) { + unsigned long flags; + local_irq_save(flags); ctrl_outl(set_field(ctrl_inl(addr), data, h), addr); + local_irq_restore(flags); } enum { REG_FN_ERR = 0, REG_FN_WRITE_BASE = 1, REG_FN_MODIFY_BASE = 5 };