* Aron Griffis (aron@xxxxxx) wrote: > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/devel/linux-2.6-xen-ia64-fixes.patch Tue Jun 27 15:50:47 2006 -0400 > @@ -0,0 +1,63 @@ > +--- linux-2.6.17.ia64.orig/arch/ia64/xen/xenentry.S 2006-06-21 16:56:36.000000000 -0400 > ++++ linux-2.6.17.ia64/arch/ia64/xen/xenentry.S 2006-06-21 20:59:47.000000000 -0400 > +@@ -819,9 +819,6 @@ skip_rbs_switch: > + st8 [r2]=r8 > + st8 [r3]=r10 > + .work_pending: > +- tbit.nz p6,p0=r31,TIF_SIGDELAYED // signal delayed from MCA/INIT/NMI/PMI context? > +-(p6) br.cond.sptk.few .sigdelayed > +- ;; > + tbit.z p6,p0=r31,TIF_NEED_RESCHED // current_thread_info()->need_resched==0? > + (p6) br.cond.sptk.few .notify > + #ifdef CONFIG_PREEMPT > +@@ -857,17 +854,6 @@ skip_rbs_switch: > + (pLvSys)br.cond.sptk.few .work_pending_syscall_end > + br.cond.sptk.many .work_processed_kernel // don't re-check > + > +-// There is a delayed signal that was detected in MCA/INIT/NMI/PMI context where > +-// it could not be delivered. Deliver it now. The signal might be for us and > +-// may set TIF_SIGPENDING, so redrive ia64_leave_* after processing the delayed > +-// signal. > +- > +-.sigdelayed: > +- br.call.sptk.many rp=do_sigdelayed > +- cmp.eq p6,p0=r0,r0 // p6 <- 1, always re-check > +-(pLvSys)br.cond.sptk.few .work_pending_syscall_end > +- br.cond.sptk.many .work_processed_kernel // re-check > +- > + .work_pending_syscall_end: > + adds r2=PT(R8)+16,r12 > + adds r3=PT(R10)+16,r12 This should already be in tip-xen on xenbits (thanks to your patch). > +--- linux-2.6.17.ia64.orig/include/asm-ia64/io.h 2006-06-21 16:56:36.000000000 -0400 > ++++ linux-2.6.17.ia64/include/asm-ia64/io.h 2006-06-21 18:11:00.000000000 -0400 > +@@ -450,28 +450,14 @@ __writeq (unsigned long val, volatile vo > + # define outl_p outl > + #endif > + > +-/* > +- * An "address" in IO memory space is not clearly either an integer or a pointer. We will > +- * accept both, thus the casts. > +- * > +- * On ia-64, we access the physical I/O memory space through the uncached kernel region. > +- */ > +-static inline void __iomem * > +-ioremap (unsigned long offset, unsigned long size) > +-{ > +-#ifdef CONFIG_XEN > +- offset = HYPERVISOR_ioremap(offset, size); > +-#endif > +- return (void __iomem *) (__IA64_UNCACHED_OFFSET | (offset)); > +-} > ++extern void __iomem * ioremap(unsigned long offset, unsigned long size); > ++extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); > + > + static inline void > + iounmap (volatile void __iomem *addr) > + { > + } > + > +-#define ioremap_nocache(o,s) ioremap(o,s) > +- > + /* Use normal IO mappings for DMI */ > + #define dmi_ioremap ioremap > + #define dmi_iounmap(x,l) iounmap(x) This should already be this way in tip-xen on xenbits, that's how I did the merge. > diff -r 73280cc9332c -r ab31e6d960bb devel/xen-ia64-fixes.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/devel/xen-ia64-fixes.patch Tue Jun 27 15:50:47 2006 -0400 > @@ -0,0 +1,13 @@ > +--- xen.orig/include/asm-ia64/xenpage.h 2006-05-03 15:05:40.000000000 -0400 > ++++ xen/include/asm-ia64/xenpage.h 2006-06-22 12:15:40.000000000 -0400 > +@@ -28,6 +28,10 @@ > + #define page_to_virt(_page) maddr_to_virt(page_to_maddr(_page)) > + #define maddr_to_page(kaddr) mfn_to_page(((kaddr) >> PAGE_SHIFT)) > + > ++/* Convert between Xen-heap virtual addresses and machine frame numbers. */ > ++#define virt_to_mfn(va) (virt_to_maddr(va) >> PAGE_SHIFT) > ++#define mfn_to_virt(mfn) maddr_to_virt(mfn << PAGE_SHIFT) > ++ > + #ifndef __ASSEMBLY__ > + typedef union xen_va { > + struct { Hmm, this one is missing, and it's not in xen-unstable sparse tree either, so I can see why it's not picked up. thanks, -chris -- Fedora-xen@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-xen