[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [patch] bitops on irq_cpustat_t->__softirq_pending

As mentioned earlier, PowerPC's atomic ops operate on longs, and we have made 
our *_bit() prototypes use long* (instead of void*) to warn us of problems at 
compile time. Here's one caller that was flagged:
        test_and_set_bit(nr, &softirq_pending(cpu))
Accordingly, we need __softirq_pending to be long, not int.

PowerPC is currently using a few files unmodified from the x86 versions; 
hardirq.h is one of them. We could copy asm-x86/hardirq.h and change the type 
of this one field, but that leads to maintenance headaches down the road.

Instead, this patch changes asm-x86/hardirq.h to use a long where PPC needs 
it. This doesn't change the size of the structure for x86. There are other 
ways we could and should do this code-sharing, but this one is the least 
impact (and this is an area where IA64's divergence is potentially 

I think it would be a good idea to make a wiki page that covers the files that 
are candidates for sharing. I know Jimi has investigated this subject...

Please apply.

Hollis Blanchard
IBM Linux Technology Center

Use long instead of int for irq_cpustat_t->__softirq_pending, allowing PowerPC 
to share this file unchanged (PowerPC bitops operate on longs).

Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>

diff -r 50778f42f2dd xen/include/asm-x86/hardirq.h
--- a/xen/include/asm-x86/hardirq.h     Wed Mar 29 16:02:40 2006 +0100
+++ b/xen/include/asm-x86/hardirq.h     Wed Mar 29 16:23:32 2006 -0600
@@ -5,7 +5,7 @@
 #include <xen/cache.h>
 typedef struct {
-       unsigned int __softirq_pending;
+       unsigned long __softirq_pending;
        unsigned int __local_irq_count;
        unsigned int __nmi_count;
        unsigned long idle_timestamp;

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.