Jay Lan wrote: <snip> > > Well, i built 2.6.18 kernel and 2.6.18rc5 kernels. > I also built 2 kexec-tools based on kdump10 patch. I have been > associating the kexec-tools tree that i built at the rc5 time with > the rc5 kernel and the newer kexec-tools tree with the 2.6.18 > kernel. > > I just ran a few tests with different combination of kexec-tools > and kernels. Well, it showed that the rc5 version of kexec-tools > worked correctly with both kernels, but the newer version of > kexec-tools displayed the system restart problem with both kernels. > > So, it was the kexec-tools that caused the problem. Not the kernel > side. I will diff the patches i applied to both trees... Nan-hai, OK, the '-noio' option patch you posted on 9/20 was the cause of my system restart. http://lists.osdl.org/pipermail/fastboot/2006-September/004062.html If instead, if i make every inline functions in purgatory/arch/ia64/io.h null functions, it would then work. I will attach the patch i used (based on your suggestion) here for your reference. It was in rough form. Thanks, - jay > > Later, > - jay > > > >> Zou Nan hai >>> Thanks, >>> - jay >> - >> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > - > To unsubscribe from this list: send the line "unsubscribe linux-ia64" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html
Index: kexec-tools-1.101/purgatory/arch/ia64/io.h =================================================================== --- kexec-tools-1.101.orig/purgatory/arch/ia64/io.h 2006-10-16 18:19:07.346416494 -0700 +++ kexec-tools-1.101/purgatory/arch/ia64/io.h 2006-10-16 18:47:14.742913628 -0700 @@ -4,6 +4,7 @@ #define MF() asm volatile ("mf.a" ::: "memory") #define IO_SPACE_ENCODING(p) ((((p) >> 2) << 12) | (p & 0xfff)) +#ifdef DO_VGA_IO static inline void *io_addr (unsigned long port) { unsigned long offset; @@ -91,4 +92,46 @@ static inline void writel(unsigned int b { *(volatile unsigned int *) addr = b; } +#else +static inline void *io_addr (unsigned long port) +{ return (void*)0; } + +static inline unsigned int inb (unsigned long port) +{ return 0; } + +static inline unsigned int inw (unsigned long port) +{ return 0; } + +static inline unsigned int ia64_inl (unsigned long port) +{ return 0; } + +static inline void outb (unsigned char val, unsigned long port) +{ return; } + +static inline void outw (unsigned short val, unsigned long port) +{ return; } + +static inline void outl (unsigned int val, unsigned long port) +{ return; } + + +static inline unsigned char readb(const volatile void *addr) +{ return 0; } + +static inline unsigned short readw(const volatile void *addr) +{ return 0; } + +static inline unsigned int readl(const volatile void *addr) +{ return 0; } + +static inline void writeb(unsigned char b, volatile void *addr) +{ return; } + +static inline void writew(unsigned short b, volatile void *addr) +{ return; } + +static inline void writel(unsigned int b, volatile void *addr) +{ return; } + +#endif #endif
![]() |