From: Rusty Russell <rusty@rustcorp.com.au>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: lkml - Kernel Mailing List <linux-kernel@vger.kernel.org>,
virtualization <virtualization@lists.osdl.org>,
Andi Kleen <andi@firstfloor.org>
Subject: [PATCH] Define EFLAGS_IF
Date: Thu, 22 Mar 2007 14:16:14 +1100 [thread overview]
Message-ID: <1174533374.2713.104.camel@localhost.localdomain> (raw)
There is now more than one place where we use the fact that bit 9 of
eflags is the interrupt-enabled flag, so define EFLAGS_IF. We make it
512 so it can be used in asm, too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
--- a/arch/i386/lguest/lguest.c
+++ b/arch/i386/lguest/lguest.c
@@ -107,9 +107,8 @@ static void fastcall irq_disable(void)
static void fastcall irq_enable(void)
{
- /* Linux i386 code expects bit 9 set. */
/* FIXME: Check if interrupt pending... */
- lguest_data.irq_enabled = 512;
+ lguest_data.irq_enabled = EFLAGS_IF;
}
static void fastcall lguest_load_gdt(const struct Xgt_desc_struct *desc)
@@ -394,7 +393,7 @@ static fastcall void lguest_write_idt_en
extern const char start_##name[], end_##name[]; \
asm("start_" #name ": " code "; end_" #name ":")
DEF_LGUEST(cli, "movl $0," LGUEST_IRQ);
-DEF_LGUEST(sti, "movl $512," LGUEST_IRQ);
+DEF_LGUEST(sti, "movl $"__stringify(EFLAGS_IF)"," LGUEST_IRQ);
DEF_LGUEST(popf, "movl %eax," LGUEST_IRQ);
DEF_LGUEST(pushf, "movl " LGUEST_IRQ ",%eax");
DEF_LGUEST(pushf_cli, "movl " LGUEST_IRQ ",%eax; movl $0," LGUEST_IRQ);
===================================================================
--- a/include/asm-i386/irqflags.h
+++ b/include/asm-i386/irqflags.h
@@ -87,6 +87,9 @@ static inline unsigned long __raw_local_
#endif /* __ASSEMBLY__ */
#endif /* CONFIG_PARAVIRT */
+/* Bit 9 of eflags means interrupts are enabled: a raw int for asm. */
+#define EFLAGS_IF 512
+
#ifndef __ASSEMBLY__
#define raw_local_save_flags(flags) \
do { (flags) = __raw_local_save_flags(); } while (0)
@@ -96,7 +99,7 @@ static inline unsigned long __raw_local_
static inline int raw_irqs_disabled_flags(unsigned long flags)
{
- return !(flags & (1 << 9));
+ return !(flags & EFLAGS_IF);
}
static inline int raw_irqs_disabled(void)
next reply other threads:[~2007-03-22 3:16 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-22 3:16 Rusty Russell [this message]
2007-03-22 3:24 ` [PATCH] Define EFLAGS_IF Rusty Russell
2007-03-22 3:52 ` [PATCH] Use X86_EFLAGS_IF in irqflags.h, lguest Rusty Russell
2007-03-22 4:03 ` Keith Owens
2007-04-06 0:20 ` [PATCH] Define EFLAGS_IF H. Peter Anvin
2007-04-06 0:22 ` Jeremy Fitzhardinge
2007-04-06 0:22 ` Jeremy Fitzhardinge
2007-04-06 0:29 ` H. Peter Anvin
2007-04-06 0:29 ` H. Peter Anvin
2007-04-06 0:48 ` Andi Kleen
2007-04-06 1:06 ` H. Peter Anvin
2007-04-06 2:24 ` Rusty Russell
2007-04-06 10:30 ` Andi Kleen
2007-04-06 15:39 ` H. Peter Anvin
2007-04-09 1:11 ` Rusty Russell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1174533374.2713.104.camel@localhost.localdomain \
--to=rusty@rustcorp.com.au \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=virtualization@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.