[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <6.1.1.1.0.20060927121508.01ecea90@ptg1.spd.analog.com>
Date: Wed, 27 Sep 2006 12:25:17 -0400
From: Robin Getz <rgetz@...ckfin.uclinux.org>
To: arnd Bergmann <arnd@...db.de>
Cc: luke Yang <luke.adi@...il.com>, Andrew Morton <akpm@...l.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/4] Blackfin: arch patch for 2.6.18
Arnd wrote:
>Ok, looks good now. Just a few details that don't impact the
>functionality:
[snip]
What I committed (to our source) is:
+++ process.c 27 Sep 2006 15:32:46 -0000 1.42
@@ -101,10 +101,10 @@
{
while (!need_resched()) {
leds_switch(LED_OFF);
- __asm__("nop;\n\t \
- nop;\n\t \
- nop;\n\t \
- idle;\n\t": : :"cc");
+ local_irq_disable();
+ if (likely( !need_resched()))
+ idle_with_irq_disabled();
+ local_irq_enable();
leds_switch(LED_ON);
}
}
And in system.h, this was added (because this is where all the other
inlines is which messes with the interrupts are - and irq_flags is already
defined here)
+++ system.h 27 Sep 2006 15:32:51 -0000 1.24
+#define idle_with_irq_disabled() do { \
+ __asm__ __volatile__ ( \
+ "nop; nop;\n" \
+ ".align 8;\n" \
+ "sti %0; idle;\n" \
+ ::"d" (irq_flags)); \
+} while (0)
It seems to work OK.
Thanks for your help on this.
I think we have been weeding through everyone's comments, and have most
things fixed up.
Are there any other major issues that you can see (that have not been
pointed out).
-Robin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists