This small patch was needed to make the xenU kernel compile and boot in SMP mode. There are a number of run-time warnings left, which I will tackle later. Signed-off-by: Rik van Riel <riel@redhat.com> --- linux-2.6.10/arch/xen/i386/kernel/smpboot.c.xensmp 2005-01-31 15:32:11.260228265 -0500 +++ linux-2.6.10/arch/xen/i386/kernel/smpboot.c 2005-01-31 14:04:09.300916781 -0500 @@ -437,9 +437,6 @@ int cpucount; -extern int cpu_idle(void); - - static irqreturn_t local_debug_interrupt(int irq, void *dev_id, struct pt_regs *regs) { @@ -496,7 +493,9 @@ } } } - return cpu_idle(); + cpu_idle(); + /* Unreached, cpu_idle() never returns. */ + return -1; } /* --- linux-2.6.10/include/asm-xen/asm-i386/spinlock.h.xensmp 2005-01-31 14:18:33.000000000 -0500 +++ linux-2.6.10/include/asm-xen/asm-i386/spinlock.h 2005-01-31 14:19:54.693968423 -0500 @@ -212,6 +212,16 @@ #define _raw_read_unlock(rw) asm volatile("lock ; incl %0" :"=m" ((rw)->lock) : : "memory") #define _raw_write_unlock(rw) asm volatile("lock ; addl $" RW_LOCK_BIAS_STR ",%0":"=m" ((rw)->lock) : : "memory") +static inline int _raw_read_trylock(rwlock_t *lock) +{ + atomic_t *count = (atomic_t *)lock; + atomic_dec(count); + if (atomic_read(count) >= 0) + return 1; + atomic_inc(count); + return 0; +} + static inline int _raw_write_trylock(rwlock_t *lock) { atomic_t *count = (atomic_t *)lock; ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel