[Fedora-xen] Re: [RFC] enable xen-ia64 in fedora kernel cvs
Chris Wright
chrisw at sous-sol.org
Tue Jun 27 21:34:10 UTC 2006
* Aron Griffis (aron at hp.com) 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
More information about the Fedora-xen
mailing list