[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