aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle McMartin <kyle@debian.org>2006-06-29 13:30:46 +0000
committerKyle McMartin <kyle@debian.org>2006-06-29 13:30:46 +0000
commit75125be17e4b8ada3590392c58a4932f878bbd76 (patch)
tree1ce82fce129b8dc16500831f6654dd1fa90aa4ea
parent2cdd815ff872068ef47d463ce7bfda7913107016 (diff)
downloadkernel_replicant_linux-75125be17e4b8ada3590392c58a4932f878bbd76.tar.gz
kernel_replicant_linux-75125be17e4b8ada3590392c58a4932f878bbd76.tar.bz2
kernel_replicant_linux-75125be17e4b8ada3590392c58a4932f878bbd76.zip
Update hppa patchset to 2.6.17-pa6
svn path=/dists/trunk/linux-2.6/; revision=6923
-rw-r--r--debian/changelog7
-rw-r--r--debian/patches/hppa.patch520
2 files changed, 414 insertions, 113 deletions
diff --git a/debian/changelog b/debian/changelog
index dc45b0c5fb65..0e79d241bbf4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -22,7 +22,12 @@ linux-2.6 (2.6.17-2) UNRELEASED; urgency=low
* [m68k] Add m68k-as and m68k-macro patch which allow building with current binutils.
* [m68k] Disable all subarches but amiga and mac for official linux-images.
- -- Christian T. Steigies <cts@debian.org> Wed, 28 Jun 2006 00:41:00 +0200
+ [ Kyle McMartin ]
+ * [hppa] Update patchset (2.6.17-pa6) from parisc-linux.org.
+ Which fixes relocation errors in modules with 64-bit kernels, and
+ a softlockup on non-SMP flavours with gettimeofday.
+
+ -- Kyle McMartin <kyle@debian.org> Thu, 29 Jun 2006 09:29:06 -0400
linux-2.6 (2.6.17-1) unstable; urgency=low
diff --git a/debian/patches/hppa.patch b/debian/patches/hppa.patch
index 0044ef505033..ad763f1253de 100644
--- a/debian/patches/hppa.patch
+++ b/debian/patches/hppa.patch
@@ -1,6 +1,6 @@
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/CREDITS CVS2_6_17_PA2/CREDITS
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/CREDITS CVS2_6_17_PA6/CREDITS
--- LINUS_2_6_17/CREDITS 2006-06-17 22:24:34.000000000 -0600
-+++ CVS2_6_17_PA2/CREDITS 2006-05-27 10:29:47.000000000 -0600
++++ CVS2_6_17_PA6/CREDITS 2006-05-27 10:29:47.000000000 -0600
@@ -3400,10 +3400,10 @@
N: Thibaut Varene
@@ -14,9 +14,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
D: AD1889 sound driver
S: Paris, France
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/Documentation/pci.txt CVS2_6_17_PA2/Documentation/pci.txt
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/Documentation/pci.txt CVS2_6_17_PA6/Documentation/pci.txt
--- LINUS_2_6_17/Documentation/pci.txt 2006-06-17 22:24:34.000000000 -0600
-+++ CVS2_6_17_PA2/Documentation/pci.txt 2006-06-05 15:32:03.000000000 -0600
++++ CVS2_6_17_PA6/Documentation/pci.txt 2006-06-05 15:32:03.000000000 -0600
@@ -213,9 +213,17 @@
See Documentation/IO-mapping.txt for how to access device memory.
@@ -38,19 +38,20 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
All interrupt handlers should be registered with SA_SHIRQ and use the devid
to map IRQs to devices (remember that all PCI interrupts are shared).
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/cache.c CVS2_6_17_PA2/arch/parisc/kernel/cache.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/cache.c CVS2_6_17_PA6/arch/parisc/kernel/cache.c
--- LINUS_2_6_17/arch/parisc/kernel/cache.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/cache.c 2006-06-18 19:02:09.000000000 -0600
-@@ -97,15 +97,16 @@
++++ CVS2_6_17_PA6/arch/parisc/kernel/cache.c 2006-06-21 10:42:08.000000000 -0600
+@@ -97,15 +97,17 @@
void
show_cache_info(struct seq_file *m)
{
-+ char buf[64];
++ char buf[32];
+
seq_printf(m, "I-cache\t\t: %ld KB\n",
cache_info.ic_size/1024 );
- seq_printf(m, "D-cache\t\t: %ld KB (%s%s, %d-way associative)\n",
-+ snprintf(buf, 64, "%lu-way associative", cache_info.dc_loop);
++ if (cache_info.dc_loop == 1)
++ snprintf(buf, 32, "%lu-way associative", cache_info.dc_loop);
+ seq_printf(m, "D-cache\t\t: %ld KB (%s%s, %s)\n",
cache_info.dc_size/1024,
(cache_info.dc_conf.cc_wt ? "WT":"WB"),
@@ -58,11 +59,11 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
- (cache_info.dc_conf.cc_assoc)
- );
-
-+ ((cache_info.dc_loop == 1) ? "direct-mapped" : buf));
++ ((cache_info.dc_loop == 1) ? "direct mapped" : buf));
seq_printf(m, "ITLB entries\t: %ld\n" "DTLB entries\t: %ld%s\n",
cache_info.it_size,
cache_info.dt_size,
-@@ -158,11 +159,11 @@
+@@ -158,11 +160,11 @@
cache_info.dc_conf.cc_block,
cache_info.dc_conf.cc_line,
cache_info.dc_conf.cc_shift);
@@ -76,7 +77,7 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
printk("IC base 0x%lx stride 0x%lx count 0x%lx loop 0x%lx\n",
cache_info.ic_base,
-@@ -176,11 +177,11 @@
+@@ -176,11 +178,11 @@
cache_info.ic_conf.cc_block,
cache_info.ic_conf.cc_line,
cache_info.ic_conf.cc_shift);
@@ -90,7 +91,7 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
printk("D-TLB conf: sh %d page %d cst %d aid %d pad1 %d \n",
cache_info.dt_conf.tc_sh,
-@@ -234,7 +235,8 @@
+@@ -234,7 +236,8 @@
void disable_sr_hashing(void)
{
@@ -100,7 +101,7 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
switch (boot_cpu_data.cpu_type) {
case pcx: /* We shouldn't get this far. setup.c should prevent it. */
-@@ -260,6 +262,13 @@
+@@ -260,6 +263,13 @@
}
disable_sr_hashing_asm(srhash_type);
@@ -114,9 +115,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
}
void flush_dcache_page(struct page *page)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/entry.S CVS2_6_17_PA2/arch/parisc/kernel/entry.S
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/entry.S CVS2_6_17_PA6/arch/parisc/kernel/entry.S
--- LINUS_2_6_17/arch/parisc/kernel/entry.S 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/entry.S 2006-04-23 20:26:57.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/entry.S 2006-04-23 20:26:57.000000000 -0600
@@ -1638,7 +1638,7 @@
load32 PA(pa_dbit_lock),t0
@@ -144,9 +145,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
cmpib,= 0,t1,dbit_spin_20
nop
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/firmware.c CVS2_6_17_PA2/arch/parisc/kernel/firmware.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/firmware.c CVS2_6_17_PA6/arch/parisc/kernel/firmware.c
--- LINUS_2_6_17/arch/parisc/kernel/firmware.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/firmware.c 2006-06-18 19:02:09.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/firmware.c 2006-06-21 13:27:29.000000000 -0600
@@ -11,7 +11,7 @@
* Copyright 1999 The Puffin Group, (Alex deVries, David Kennedy)
* Copyright 2003 Grant Grundler <grundler parisc-linux org>
@@ -191,7 +192,18 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
* pdc_coproc_cfg - To identify coprocessors attached to the processor.
* @pdc_coproc_info: Return buffer address.
*
-@@ -498,6 +512,26 @@
+@@ -393,7 +407,9 @@
+ * pdc_model_sysmodel - Get the system model name.
+ * @name: A char array of at least 81 characters.
+ *
+- * Get system model name from PDC ROM (e.g. 9000/715 or 9000/778/B160L)
++ * Get system model name from PDC ROM (e.g. 9000/715 or 9000/778/B160L).
++ * Using OS_ID_HPUX will return the equivalent of the 'modelname' command
++ * on HP/UX.
+ */
+ int pdc_model_sysmodel(char *name)
+ {
+@@ -498,6 +514,26 @@
return retval;
}
@@ -218,9 +230,142 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#ifndef CONFIG_PA20
/**
* pdc_btlb_info - Return block TLB information.
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/pdc_chassis.c CVS2_6_17_PA2/arch/parisc/kernel/pdc_chassis.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/module.c CVS2_6_17_PA6/arch/parisc/kernel/module.c
+--- LINUS_2_6_17/arch/parisc/kernel/module.c 2005-02-25 07:54:20.000000000 -0700
++++ CVS2_6_17_PA6/arch/parisc/kernel/module.c 2006-06-23 14:15:19.000000000 -0600
+@@ -89,6 +89,12 @@
+ return is_init(me, loc) || is_core(me, loc);
+ }
+
++static inline int is_local_section(struct module *me, void *loc, void *dot)
++{
++ return (is_init(me, loc) && is_init(me, dot)) ||
++ (is_core(me, loc) && is_core(me, dot));
++}
++
+
+ #ifndef __LP64__
+ struct got_entry {
+@@ -364,8 +370,14 @@
+ }
+ #endif /* __LP64__ */
+
++enum elf_stub_type {
++ ELF_STUB_GOT,
++ ELF_STUB_MILLI,
++ ELF_STUB_DIRECT,
++};
++
+ static Elf_Addr get_stub(struct module *me, unsigned long value, long addend,
+- int millicode, int init_section)
++ enum elf_stub_type stub_type, int init_section)
+ {
+ unsigned long i;
+ struct stub_entry *stub;
+@@ -396,7 +408,7 @@
+ stub->insns[1] |= reassemble_17(rrsel(value, addend) / 4);
+
+ #else
+-/* for 64-bit we have two kinds of stubs:
++/* for 64-bit we have three kinds of stubs:
+ * for normal function calls:
+ * ldd 0(%dp),%dp
+ * ldd 10(%dp), %r1
+@@ -408,18 +420,23 @@
+ * ldo 0(%r1), %r1
+ * ldd 10(%r1), %r1
+ * bve,n (%r1)
++ *
++ * for direct branches (jumps between different section of the
++ * same module):
++ * ldil 0, %r1
++ * ldo 0(%r1), %r1
++ * bve,n (%r1)
+ */
+- if (!millicode)
+- {
++ switch (stub_type) {
++ case ELF_STUB_GOT:
+ stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */
+ stub->insns[1] = 0x53610020; /* ldd 10(%dp),%r1 */
+ stub->insns[2] = 0xe820d000; /* bve (%r1) */
+ stub->insns[3] = 0x537b0030; /* ldd 18(%dp),%dp */
+
+ stub->insns[0] |= reassemble_14(get_got(me, value, addend) & 0x3fff);
+- }
+- else
+- {
++ break;
++ case ELF_STUB_MILLI:
+ stub->insns[0] = 0x20200000; /* ldil 0,%r1 */
+ stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */
+ stub->insns[2] = 0x50210020; /* ldd 10(%r1),%r1 */
+@@ -427,7 +444,17 @@
+
+ stub->insns[0] |= reassemble_21(lrsel(value, addend));
+ stub->insns[1] |= reassemble_14(rrsel(value, addend));
++ break;
++ case ELF_STUB_DIRECT:
++ stub->insns[0] = 0x20200000; /* ldil 0,%r1 */
++ stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */
++ stub->insns[2] = 0xe820d002; /* bve,n (%r1) */
++
++ stub->insns[0] |= reassemble_21(lrsel(value, addend));
++ stub->insns[1] |= reassemble_14(rrsel(value, addend));
++ break;
+ }
++
+ #endif
+
+ return (Elf_Addr)stub;
+@@ -539,14 +566,14 @@
+ break;
+ case R_PARISC_PCREL17F:
+ /* 17-bit PC relative address */
+- val = get_stub(me, val, addend, 0, is_init(me, loc));
++ val = get_stub(me, val, addend, ELF_STUB_GOT, is_init(me, loc));
+ val = (val - dot - 8)/4;
+ CHECK_RELOC(val, 17)
+ *loc = (*loc & ~0x1f1ffd) | reassemble_17(val);
+ break;
+ case R_PARISC_PCREL22F:
+ /* 22-bit PC relative address; only defined for pa20 */
+- val = get_stub(me, val, addend, 0, is_init(me, loc));
++ val = get_stub(me, val, addend, ELF_STUB_GOT, is_init(me, loc));
+ DEBUGP("STUB FOR %s loc %lx+%lx at %lx\n",
+ strtab + sym->st_name, (unsigned long)loc, addend,
+ val)
+@@ -643,13 +670,23 @@
+ strtab + sym->st_name,
+ loc, val);
+ /* can we reach it locally? */
+- if(!is_local(me, (void *)val)) {
+- if (strncmp(strtab + sym->st_name, "$$", 2)
++ if(!is_local_section(me, (void *)val, (void *)dot)) {
++
++ if (is_local(me, (void *)val))
++ /* this is the case where the
++ * symbol is local to the
++ * module, but in a different
++ * section, so stub the jump
++ * in case it's more than 22
++ * bits away */
++ val = get_stub(me, val, addend, ELF_STUB_DIRECT,
++ is_init(me, loc));
++ else if (strncmp(strtab + sym->st_name, "$$", 2)
+ == 0)
+- val = get_stub(me, val, addend, 1,
++ val = get_stub(me, val, addend, ELF_STUB_MILLI,
+ is_init(me, loc));
+ else
+- val = get_stub(me, val, addend, 0,
++ val = get_stub(me, val, addend, ELF_STUB_GOT,
+ is_init(me, loc));
+ }
+ DEBUGP("STUB FOR %s loc %lx, val %lx+%lx at %lx\n",
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/pdc_chassis.c CVS2_6_17_PA6/arch/parisc/kernel/pdc_chassis.c
--- LINUS_2_6_17/arch/parisc/kernel/pdc_chassis.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/pdc_chassis.c 2006-05-04 09:29:32.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/pdc_chassis.c 2006-05-04 09:29:32.000000000 -0600
@@ -1,8 +1,8 @@
/*
- * interfaces to log Chassis Codes via PDC (firmware)
@@ -404,9 +549,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
+
+#endif /* CONFIG_PROC_FS */
+#endif /* CONFIG_PDC_CHASSIS_WARN */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/ptrace.c CVS2_6_17_PA2/arch/parisc/kernel/ptrace.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/ptrace.c CVS2_6_17_PA6/arch/parisc/kernel/ptrace.c
--- LINUS_2_6_17/arch/parisc/kernel/ptrace.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/ptrace.c 2006-06-16 13:10:02.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/ptrace.c 2006-06-16 13:10:02.000000000 -0600
@@ -91,7 +91,7 @@
int copied;
@@ -443,9 +588,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
if (addr & (sizeof(int)-1))
goto out_tsk;
if ((addr = translate_usr_offset(addr)) < 0)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/real2.S CVS2_6_17_PA2/arch/parisc/kernel/real2.S
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/real2.S CVS2_6_17_PA6/arch/parisc/kernel/real2.S
--- LINUS_2_6_17/arch/parisc/kernel/real2.S 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/real2.S 2006-05-25 10:22:30.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/real2.S 2006-05-25 10:22:30.000000000 -0600
@@ -276,15 +276,6 @@
#endif
@@ -462,14 +607,14 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
.export __canonicalize_funcptr_for_compare
.text
/* http://lists.parisc-linux.org/hypermail/parisc-linux/10916.html
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/setup.c CVS2_6_17_PA2/arch/parisc/kernel/setup.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/setup.c CVS2_6_17_PA6/arch/parisc/kernel/setup.c
--- LINUS_2_6_17/arch/parisc/kernel/setup.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/setup.c 2006-05-04 18:43:33.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/setup.c 2006-06-21 13:27:29.000000000 -0600
@@ -303,6 +303,8 @@
static int __init parisc_init(void)
{
-+ u32 osid = (0x0006 << 16);
++ u32 osid = (OS_ID_LINUX << 16);
+
parisc_proc_mkdir();
parisc_init_resources();
@@ -484,9 +629,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
processor_init();
printk(KERN_INFO "CPU(s): %d x %s at %d.%06d MHz\n",
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/signal.c CVS2_6_17_PA2/arch/parisc/kernel/signal.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/signal.c CVS2_6_17_PA6/arch/parisc/kernel/signal.c
--- LINUS_2_6_17/arch/parisc/kernel/signal.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/signal.c 2006-06-16 13:10:02.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/signal.c 2006-06-16 13:10:02.000000000 -0600
@@ -76,7 +76,7 @@
#ifdef __LP64__
compat_sigset_t newset32;
@@ -573,9 +718,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
regs->gr[25] = A(&compat_frame->info); /* siginfo pointer */
regs->gr[24] = A(&compat_frame->uc); /* ucontext pointer */
} else
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/syscall.S CVS2_6_17_PA2/arch/parisc/kernel/syscall.S
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/syscall.S CVS2_6_17_PA6/arch/parisc/kernel/syscall.S
--- LINUS_2_6_17/arch/parisc/kernel/syscall.S 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/syscall.S 2006-06-17 11:53:43.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/syscall.S 2006-06-17 11:53:43.000000000 -0600
@@ -29,18 +29,6 @@
.level 1.1
#endif
@@ -610,32 +755,154 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
.end
-
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/traps.c CVS2_6_17_PA2/arch/parisc/kernel/traps.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/time.c CVS2_6_17_PA6/arch/parisc/kernel/time.c
+--- LINUS_2_6_17/arch/parisc/kernel/time.c 2005-12-17 10:21:16.000000000 -0700
++++ CVS2_6_17_PA6/arch/parisc/kernel/time.c 2006-06-24 10:05:18.000000000 -0600
+@@ -157,8 +157,22 @@
+ usec += (xtime.tv_nsec / 1000);
+ } while (read_seqretry_irqrestore(&xtime_lock, seq, flags));
+
+- while (usec >= 1000000) {
+- usec -= 1000000;
++ if (unlikely(usec > LONG_MAX)) {
++ /* This can happen if the gettimeoffset adjustment is
++ * negative and xtime.tv_nsec is smaller than the
++ * adjustment */
++ printk(KERN_ERR "do_gettimeofday() spurious xtime.tv_nsec of %ld\n", usec);
++ usec += USEC_PER_SEC;
++ --sec;
++ /* This should never happen, it means the negative
++ * time adjustment was more than a second, so there's
++ * something seriously wrong */
++ BUG_ON(usec > LONG_MAX);
++ }
++
++
++ while (usec >= USEC_PER_SEC) {
++ usec -= USEC_PER_SEC;
+ ++sec;
+ }
+
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/traps.c CVS2_6_17_PA6/arch/parisc/kernel/traps.c
--- LINUS_2_6_17/arch/parisc/kernel/traps.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/traps.c 2006-06-01 05:33:33.000000000 -0600
-@@ -111,7 +111,10 @@
++++ CVS2_6_17_PA6/arch/parisc/kernel/traps.c 2006-06-22 05:39:09.000000000 -0600
+@@ -66,57 +66,42 @@
+ #else
+ #define RFMT "%08lx"
+ #endif
++#define FFMT "%016llx" /* fpregs are 64-bit always */
+
+-void show_regs(struct pt_regs *regs)
++#define PRINTREGS(lvl,r,f,fmt,x) \
++ printk("%s%s%02d-%02d " fmt " " fmt " " fmt " " fmt "\n", \
++ lvl, f, (x), (x+3), (r)[(x)+0], (r)[(x)+1], \
++ (r)[(x)+2], (r)[(x)+3])
++
++static void print_gr(char *level, struct pt_regs *regs)
+ {
+ int i;
+- char buf[128], *p;
+- char *level;
+- unsigned long cr30;
+- unsigned long cr31;
+- /* carlos says that gcc understands better memory in a struct,
+- * and it makes our life easier with fpregs -- T-Bone */
+- struct { u32 sw[2]; } s;
+-
+- level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT;
+-
+- printk("%s\n", level); /* don't want to have that pretty register dump messed up */
++ char buf[64];
+
++ printk("%s\n", level);
+ printk("%s YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI\n", level);
+ printbinary(buf, regs->gr[0], 32);
+ printk("%sPSW: %s %s\n", level, buf, print_tainted());
+
+- for (i = 0; i < 32; i += 4) {
+- int j;
+- p = buf;
+- p += sprintf(p, "%sr%02d-%02d ", level, i, i + 3);
+- for (j = 0; j < 4; j++) {
+- p += sprintf(p, " " RFMT, (i+j) == 0 ? 0 : regs->gr[i + j]);
+- }
+- printk("%s\n", buf);
+- }
++ for (i = 0; i < 32; i += 4)
++ PRINTREGS(level, regs->gr, "r", RFMT, i);
++}
+
+- for (i = 0; i < 8; i += 4) {
+- int j;
+- p = buf;
+- p += sprintf(p, "%ssr%d-%d ", level, i, i + 3);
+- for (j = 0; j < 4; j++) {
+- p += sprintf(p, " " RFMT, regs->sr[i + j]);
+- }
+- printk("%s\n", buf);
+- }
++static void print_fr(char *level, struct pt_regs *regs)
++{
++ int i;
++ char buf[64];
++ struct { u32 sw[2]; } s;
+
+- /* FR are 64bit everywhere. Need to use asm to get the content
++ /* FR are 64bit everywhere. Need to use asm to get the content
+ * of fpsr/fper1, and we assume that we won't have a FP Identify
* in our way, otherwise we're screwed.
* The fldd is used to restore the T-bit if there was one, as the
* store clears it anyway.
- * BTW, PA2.0 book says "thou shall not use fstw on FPSR/FPERs". */
-+ * BTW, PA2.0 book says "thou shall not use fstw on FPSR/FPERs".
-+ * We disabled use of fpregs in our kernel so far. Don't print them
-+ * unnecessarily - T-Bone */
-+ if (user_mode(regs)) {
- __asm__ (
- "fstd %%fr0,0(%1) \n\t"
- "fldd 0(%1),%%fr0 \n\t"
-@@ -133,6 +136,7 @@
- p += sprintf(p, " %016llx", (i+j) == 0 ? 0 : regs->fr[i+j]);
- printk("%s\n", buf);
- }
-+ }
+- __asm__ (
+- "fstd %%fr0,0(%1) \n\t"
+- "fldd 0(%1),%%fr0 \n\t"
+- : "=m" (s) : "r" (&s) : "%r0"
+- );
++ * PA2.0 book says "thou shall not use fstw on FPSR/FPERs" - T-Bone */
++ asm volatile ("fstd %%fr0,0(%1) \n\t"
++ "fldd 0(%1),%%fr0 \n\t"
++ : "=m" (s) : "r" (&s) : "r0");
+
+ printk("%s\n", level);
+ printk("%s VZOUICununcqcqcqcqcqcrmunTDVZOUI\n", level);
+@@ -125,14 +110,25 @@
+ printk("%sFPER1: %08x\n", level, s.sw[1]);
+
+ /* here we'll print fr0 again, tho it'll be meaningless */
+- for (i = 0; i < 32; i += 4) {
+- int j;
+- p = buf;
+- p += sprintf(p, "%sfr%02d-%02d ", level, i, i + 3);
+- for (j = 0; j < 4; j++)
+- p += sprintf(p, " %016llx", (i+j) == 0 ? 0 : regs->fr[i+j]);
+- printk("%s\n", buf);
+- }
++ for (i = 0; i < 32; i += 4)
++ PRINTREGS(level, regs->fr, "fr", FFMT, i);
++}
++
++void show_regs(struct pt_regs *regs)
++{
++ int i;
++ char *level;
++ unsigned long cr30, cr31;
++
++ level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT;
++
++ print_gr(level, regs);
++
++ for (i = 0; i < 8; i += 4)
++ PRINTREGS(level, regs->sr, "sr", RFMT, i);
++
++ if (user_mode(regs))
++ print_fr(level, regs);
cr30 = mfctl(30);
cr31 = mfctl(31);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/unaligned.c CVS2_6_17_PA2/arch/parisc/kernel/unaligned.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/arch/parisc/kernel/unaligned.c CVS2_6_17_PA6/arch/parisc/kernel/unaligned.c
--- LINUS_2_6_17/arch/parisc/kernel/unaligned.c 2006-06-17 22:24:39.000000000 -0600
-+++ CVS2_6_17_PA2/arch/parisc/kernel/unaligned.c 2006-04-22 14:47:20.000000000 -0600
++++ CVS2_6_17_PA6/arch/parisc/kernel/unaligned.c 2006-04-22 14:47:20.000000000 -0600
@@ -43,6 +43,8 @@
"\tldil L%%" #lbl ", %%r1\n" \
"\tldo R%%" #lbl "(%%r1), %%r1\n" \
@@ -717,9 +984,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
}
#endif
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/dummy.c CVS2_6_17_PA2/drivers/net/dummy.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/dummy.c CVS2_6_17_PA6/drivers/net/dummy.c
--- LINUS_2_6_17/drivers/net/dummy.c 2006-06-17 22:24:44.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/dummy.c 2006-04-20 14:25:07.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/dummy.c 2006-04-20 14:25:07.000000000 -0600
@@ -57,7 +57,7 @@
{
}
@@ -729,9 +996,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
{
/* Initialize the device structure. */
dev->get_stats = dummy_get_stats;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/21142.c CVS2_6_17_PA2/drivers/net/tulip/21142.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/21142.c CVS2_6_17_PA6/drivers/net/tulip/21142.c
--- LINUS_2_6_17/drivers/net/tulip/21142.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/21142.c 2006-06-14 09:23:41.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/21142.c 2006-06-14 09:23:41.000000000 -0600
@@ -26,9 +26,9 @@
/* Handle the 21143 uniquely: do autoselect with NWay, not the EEPROM list
@@ -744,9 +1011,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
struct tulip_private *tp = netdev_priv(dev);
void __iomem *ioaddr = tp->base_addr;
int csr12 = ioread32(ioaddr + CSR12);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/de2104x.c CVS2_6_17_PA2/drivers/net/tulip/de2104x.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/de2104x.c CVS2_6_17_PA6/drivers/net/tulip/de2104x.c
--- LINUS_2_6_17/drivers/net/tulip/de2104x.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/de2104x.c 2006-04-20 14:25:07.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/de2104x.c 2006-04-20 14:25:07.000000000 -0600
@@ -1731,7 +1731,7 @@
}
@@ -774,9 +1041,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
{
struct net_device *dev = pci_get_drvdata(pdev);
struct de_private *de = dev->priv;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/interrupt.c CVS2_6_17_PA2/drivers/net/tulip/interrupt.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/interrupt.c CVS2_6_17_PA6/drivers/net/tulip/interrupt.c
--- LINUS_2_6_17/drivers/net/tulip/interrupt.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/interrupt.c 2006-05-30 00:46:14.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/interrupt.c 2006-05-30 00:46:14.000000000 -0600
@@ -88,6 +88,10 @@
}
tp->rx_ring[entry].status = cpu_to_le32(DescOwned);
@@ -788,9 +1055,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
if(tp->chip_id == LC82C168) {
if(((ioread32(tp->base_addr + CSR5)>>17)&0x07) == 4) {
/* Rx stopped due to out of buffers,
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/media.c CVS2_6_17_PA2/drivers/net/tulip/media.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/media.c CVS2_6_17_PA6/drivers/net/tulip/media.c
--- LINUS_2_6_17/drivers/net/tulip/media.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/media.c 2006-06-14 10:12:39.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/media.c 2006-06-14 10:12:39.000000000 -0600
@@ -44,8 +44,10 @@
/* MII transceiver control section.
@@ -862,9 +1129,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
tmp_info = get_u16(&misc_info[1]);
if (tmp_info)
tp->advertising[phy_num] = tmp_info | 1;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/timer.c CVS2_6_17_PA2/drivers/net/tulip/timer.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/timer.c CVS2_6_17_PA6/drivers/net/tulip/timer.c
--- LINUS_2_6_17/drivers/net/tulip/timer.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/timer.c 2006-06-14 09:23:41.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/timer.c 2006-06-14 09:23:41.000000000 -0600
@@ -18,13 +18,14 @@
#include "tulip.h"
@@ -898,9 +1165,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
/* mod_timer synchronizes us with potential add_timer calls
* from interrupts.
*/
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/tulip.h CVS2_6_17_PA2/drivers/net/tulip/tulip.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/tulip.h CVS2_6_17_PA6/drivers/net/tulip/tulip.h
--- LINUS_2_6_17/drivers/net/tulip/tulip.h 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/tulip.h 2006-06-14 09:23:41.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/tulip.h 2006-06-14 09:23:41.000000000 -0600
@@ -31,11 +31,10 @@
/* undefine, or define to various debugging levels (>4 == obscene levels) */
#define TULIP_DEBUG 1
@@ -1014,9 +1281,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
+}
+
#endif /* __NET_TULIP_H__ */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/tulip_core.c CVS2_6_17_PA2/drivers/net/tulip/tulip_core.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/tulip_core.c CVS2_6_17_PA6/drivers/net/tulip/tulip_core.c
--- LINUS_2_6_17/drivers/net/tulip/tulip_core.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/tulip_core.c 2006-06-14 09:28:08.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/tulip_core.c 2006-06-14 09:28:08.000000000 -0600
@@ -18,11 +18,11 @@
#define DRV_NAME "tulip"
@@ -1272,9 +1539,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
pci_save_state(pdev);
pci_disable_device(pdev);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/winbond-840.c CVS2_6_17_PA2/drivers/net/tulip/winbond-840.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/net/tulip/winbond-840.c CVS2_6_17_PA6/drivers/net/tulip/winbond-840.c
--- LINUS_2_6_17/drivers/net/tulip/winbond-840.c 2006-06-17 22:24:45.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/net/tulip/winbond-840.c 2006-05-30 00:46:14.000000000 -0600
++++ CVS2_6_17_PA6/drivers/net/tulip/winbond-840.c 2006-05-30 00:46:14.000000000 -0600
@@ -90,10 +90,8 @@
Making the Tx ring too large decreases the effectiveness of channel
bonding and packet priority.
@@ -1486,9 +1753,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
}
iowrite32(mc_filter[0], ioaddr + MulticastFilter0);
iowrite32(mc_filter[1], ioaddr + MulticastFilter1);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/parisc/Kconfig CVS2_6_17_PA2/drivers/parisc/Kconfig
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/parisc/Kconfig CVS2_6_17_PA6/drivers/parisc/Kconfig
--- LINUS_2_6_17/drivers/parisc/Kconfig 2006-06-17 22:24:46.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/parisc/Kconfig 2006-05-03 17:27:35.000000000 -0600
++++ CVS2_6_17_PA6/drivers/parisc/Kconfig 2006-05-03 17:27:35.000000000 -0600
@@ -140,18 +140,37 @@
If unsure, say Y.
@@ -1534,9 +1801,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
config PDC_STABLE
tristate "PDC Stable Storage support"
depends on SYSFS
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/parisc/pdc_stable.c CVS2_6_17_PA2/drivers/parisc/pdc_stable.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/parisc/pdc_stable.c CVS2_6_17_PA6/drivers/parisc/pdc_stable.c
--- LINUS_2_6_17/drivers/parisc/pdc_stable.c 2006-06-17 22:24:46.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/parisc/pdc_stable.c 2006-05-05 04:58:32.000000000 -0600
++++ CVS2_6_17_PA6/drivers/parisc/pdc_stable.c 2006-05-05 04:58:32.000000000 -0600
@@ -28,8 +28,15 @@
* following code can deal with just 96 bytes of Stable Storage, and all
* sizes between 96 and 192 bytes (provided they are multiple of struct
@@ -1872,9 +2139,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
goto fail_subsysreg;
/* now we create all "files" for the paths subsys */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/parisc/sba_iommu.c CVS2_6_17_PA2/drivers/parisc/sba_iommu.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/parisc/sba_iommu.c CVS2_6_17_PA6/drivers/parisc/sba_iommu.c
--- LINUS_2_6_17/drivers/parisc/sba_iommu.c 2006-06-17 22:24:46.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/parisc/sba_iommu.c 2006-05-31 06:58:33.000000000 -0600
++++ CVS2_6_17_PA6/drivers/parisc/sba_iommu.c 2006-05-31 06:58:33.000000000 -0600
@@ -39,15 +39,12 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
@@ -1944,9 +2211,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
printk(KERN_INFO MODULE_NAME " FDC/SYNC required.\n");
} else {
printk(KERN_INFO MODULE_NAME " IOC has cache coherent PDIR.\n");
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/53c700.c CVS2_6_17_PA2/drivers/scsi/53c700.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/53c700.c CVS2_6_17_PA6/drivers/scsi/53c700.c
--- LINUS_2_6_17/drivers/scsi/53c700.c 2006-06-17 22:24:46.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/scsi/53c700.c 2006-04-03 07:44:53.000000000 -0600
++++ CVS2_6_17_PA6/drivers/scsi/53c700.c 2006-04-03 07:44:53.000000000 -0600
@@ -294,6 +294,7 @@
__u8 *memory;
__u32 *script;
@@ -1971,9 +2238,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
/* reset the chip */
NCR_700_chip_reset(host);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/constants.c CVS2_6_17_PA2/drivers/scsi/constants.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/constants.c CVS2_6_17_PA6/drivers/scsi/constants.c
--- LINUS_2_6_17/drivers/scsi/constants.c 2006-06-17 22:24:46.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/scsi/constants.c 2006-01-17 07:51:48.000000000 -0700
++++ CVS2_6_17_PA6/drivers/scsi/constants.c 2006-01-17 07:51:48.000000000 -0700
@@ -114,8 +114,7 @@
{0xd, "Report supported task management functions"},
{0xe, "Report priority"},
@@ -2058,9 +2325,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
void scsi_print_driverbyte(int scsiresult)
{
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/sym53c8xx_2/sym_glue.c CVS2_6_17_PA2/drivers/scsi/sym53c8xx_2/sym_glue.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/sym53c8xx_2/sym_glue.c CVS2_6_17_PA6/drivers/scsi/sym53c8xx_2/sym_glue.c
--- LINUS_2_6_17/drivers/scsi/sym53c8xx_2/sym_glue.c 2006-06-17 22:24:47.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/scsi/sym53c8xx_2/sym_glue.c 2006-04-28 00:43:26.000000000 -0600
++++ CVS2_6_17_PA6/drivers/scsi/sym53c8xx_2/sym_glue.c 2006-04-28 00:43:26.000000000 -0600
@@ -210,13 +210,6 @@
cmd->scsi_done(cmd);
}
@@ -2139,9 +2406,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
spin_unlock_irqrestore(instance->host_lock, flags);
return instance;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/sym53c8xx_2/sym_glue.h CVS2_6_17_PA2/drivers/scsi/sym53c8xx_2/sym_glue.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/scsi/sym53c8xx_2/sym_glue.h CVS2_6_17_PA6/drivers/scsi/sym53c8xx_2/sym_glue.h
--- LINUS_2_6_17/drivers/scsi/sym53c8xx_2/sym_glue.h 2006-06-17 22:24:47.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/scsi/sym53c8xx_2/sym_glue.h 2006-04-19 22:08:31.000000000 -0600
++++ CVS2_6_17_PA6/drivers/scsi/sym53c8xx_2/sym_glue.h 2006-04-19 22:08:31.000000000 -0600
@@ -185,7 +185,6 @@
void __iomem * ioaddr; /* MMIO kernel io address */
void __iomem * ramaddr; /* RAM kernel io address */
@@ -2150,9 +2417,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
struct timer_list timer; /* Timer handler link header */
u_long lasttime;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/serial/serial_core.c CVS2_6_17_PA2/drivers/serial/serial_core.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/serial/serial_core.c CVS2_6_17_PA6/drivers/serial/serial_core.c
--- LINUS_2_6_17/drivers/serial/serial_core.c 2006-06-17 22:24:47.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/serial/serial_core.c 2006-05-27 10:30:14.000000000 -0600
++++ CVS2_6_17_PA6/drivers/serial/serial_core.c 2006-05-27 10:30:14.000000000 -0600
@@ -2015,6 +2015,7 @@
uart_report_port(struct uart_driver *drv, struct uart_port *port)
{
@@ -2183,9 +2450,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
}
static void
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/usb/host/pci-quirks.c CVS2_6_17_PA2/drivers/usb/host/pci-quirks.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/usb/host/pci-quirks.c CVS2_6_17_PA6/drivers/usb/host/pci-quirks.c
--- LINUS_2_6_17/drivers/usb/host/pci-quirks.c 2006-06-17 22:24:47.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/usb/host/pci-quirks.c 2006-06-16 12:21:45.000000000 -0600
++++ CVS2_6_17_PA6/drivers/usb/host/pci-quirks.c 2006-06-16 12:21:45.000000000 -0600
@@ -168,8 +168,6 @@
static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev)
{
@@ -2216,9 +2483,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#endif
/*
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/usb/input/hid-core.c CVS2_6_17_PA2/drivers/usb/input/hid-core.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/drivers/usb/input/hid-core.c CVS2_6_17_PA6/drivers/usb/input/hid-core.c
--- LINUS_2_6_17/drivers/usb/input/hid-core.c 2006-06-17 22:24:48.000000000 -0600
-+++ CVS2_6_17_PA2/drivers/usb/input/hid-core.c 2006-05-27 10:30:15.000000000 -0600
++++ CVS2_6_17_PA6/drivers/usb/input/hid-core.c 2006-05-27 10:30:15.000000000 -0600
@@ -752,21 +752,31 @@
}
@@ -2258,9 +2525,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
}
/*
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/assembly.h CVS2_6_17_PA2/include/asm-parisc/assembly.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/assembly.h CVS2_6_17_PA6/include/asm-parisc/assembly.h
--- LINUS_2_6_17/include/asm-parisc/assembly.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/assembly.h 2006-04-23 20:26:58.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/assembly.h 2006-04-23 20:26:58.000000000 -0600
@@ -48,6 +48,7 @@
#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE)
@@ -2277,9 +2544,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#define BL bl
#define LEVEL 1.1
#endif
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/compat.h CVS2_6_17_PA2/include/asm-parisc/compat.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/compat.h CVS2_6_17_PA6/include/asm-parisc/compat.h
--- LINUS_2_6_17/include/asm-parisc/compat.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/compat.h 2006-06-16 13:10:02.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/compat.h 2006-06-16 13:10:02.000000000 -0600
@@ -5,6 +5,7 @@
*/
#include <linux/types.h>
@@ -2303,9 +2570,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
+}
+
#endif /* _ASM_PARISC_COMPAT_H */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/mckinley.h CVS2_6_17_PA2/include/asm-parisc/mckinley.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/mckinley.h CVS2_6_17_PA6/include/asm-parisc/mckinley.h
--- LINUS_2_6_17/include/asm-parisc/mckinley.h 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_17_PA2/include/asm-parisc/mckinley.h 2006-05-31 06:58:34.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/mckinley.h 2006-05-31 06:58:34.000000000 -0600
@@ -0,0 +1,9 @@
+#ifndef ASM_PARISC_MCKINLEY_H
+#define ASM_PARISC_MCKINLEY_H
@@ -2316,10 +2583,24 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
+
+#endif /*__KERNEL__*/
+#endif /*ASM_PARISC_MCKINLEY_H*/
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/pdc.h CVS2_6_17_PA2/include/asm-parisc/pdc.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/pdc.h CVS2_6_17_PA6/include/asm-parisc/pdc.h
--- LINUS_2_6_17/include/asm-parisc/pdc.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/pdc.h 2006-06-16 12:20:01.000000000 -0600
-@@ -353,8 +353,8 @@
++++ CVS2_6_17_PA6/include/asm-parisc/pdc.h 2006-06-21 13:27:29.000000000 -0600
+@@ -279,12 +279,11 @@
+ /* constants for OS (NVM...) */
+ #define OS_ID_NONE 0 /* Undefined OS ID */
+ #define OS_ID_HPUX 1 /* HP-UX OS */
+-#define OS_ID_LINUX OS_ID_HPUX /* just use the same value as hpux */
+ #define OS_ID_MPEXL 2 /* MPE XL OS */
+ #define OS_ID_OSF 3 /* OSF OS */
+ #define OS_ID_HPRT 4 /* HP-RT OS */
+ #define OS_ID_NOVEL 5 /* NOVELL OS */
+-#define OS_ID_NT 6 /* NT OS */
++#define OS_ID_LINUX 6 /* Linux */
+
+
+ /* constants for PDC_CHASSIS */
+@@ -353,8 +352,8 @@
cc_wt : 1, /* 0 = WT-Dcache, 1 = WB-Dcache */
cc_sh : 2, /* 0 = separate I/D-cache, else shared I/D-cache */
cc_cst : 3, /* 0 = incoherent D-cache, 1=coherent D-cache */
@@ -2330,7 +2611,7 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
};
struct pdc_tlb_cf { /* for PDC_CACHE (I/D-TLB's) */
-@@ -720,6 +720,7 @@
+@@ -720,6 +719,7 @@
int pdc_add_valid(unsigned long address);
int pdc_chassis_info(struct pdc_chassis_info *chassis_info, void *led_info, unsigned long len);
int pdc_chassis_disp(unsigned long disp);
@@ -2338,7 +2619,7 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
int pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info);
int pdc_iodc_read(unsigned long *actcnt, unsigned long hpa, unsigned int index,
void *iodc_data, unsigned int iodc_data_size);
-@@ -733,6 +734,7 @@
+@@ -733,6 +733,7 @@
int pdc_model_versions(unsigned long *versions, int id);
int pdc_model_capabilities(unsigned long *capabilities);
int pdc_cache_info(struct pdc_cache_info *cache);
@@ -2346,9 +2627,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#ifndef CONFIG_PA20
int pdc_btlb_info(struct pdc_btlb_info *btlb);
int pdc_mem_map_hpa(struct pdc_memory_map *r_addr, struct pdc_module_path *mod_path);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/pgtable.h CVS2_6_17_PA2/include/asm-parisc/pgtable.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/pgtable.h CVS2_6_17_PA6/include/asm-parisc/pgtable.h
--- LINUS_2_6_17/include/asm-parisc/pgtable.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/pgtable.h 2006-04-20 20:20:37.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/pgtable.h 2006-04-20 20:20:37.000000000 -0600
@@ -507,13 +507,13 @@
/* TLB page size encoding - see table 3-1 in parisc20.pdf */
@@ -2367,9 +2648,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#if defined(CONFIG_PARISC_PAGE_SIZE_4KB)
# define _PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_4K
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/processor.h CVS2_6_17_PA2/include/asm-parisc/processor.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/processor.h CVS2_6_17_PA6/include/asm-parisc/processor.h
--- LINUS_2_6_17/include/asm-parisc/processor.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/processor.h 2006-05-19 14:18:17.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/processor.h 2006-05-19 14:18:17.000000000 -0600
@@ -27,14 +27,12 @@
* Default implementation of macro that returns current
* instruction pointer ("program counter").
@@ -2391,9 +2672,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#define TASK_SIZE (current->thread.task_size)
#define TASK_UNMAPPED_BASE (current->thread.map_base)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/system.h CVS2_6_17_PA2/include/asm-parisc/system.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/system.h CVS2_6_17_PA6/include/asm-parisc/system.h
--- LINUS_2_6_17/include/asm-parisc/system.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/system.h 2006-04-23 20:26:58.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/system.h 2006-04-23 20:26:58.000000000 -0600
@@ -156,13 +156,14 @@
type and dynamically select the 16-byte aligned int from the array
for the semaphore. */
@@ -2440,9 +2721,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
})
#ifdef CONFIG_SMP
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/uaccess.h CVS2_6_17_PA2/include/asm-parisc/uaccess.h
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/uaccess.h CVS2_6_17_PA6/include/asm-parisc/uaccess.h
--- LINUS_2_6_17/include/asm-parisc/uaccess.h 2006-06-17 22:24:50.000000000 -0600
-+++ CVS2_6_17_PA2/include/asm-parisc/uaccess.h 2006-04-22 14:47:20.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/uaccess.h 2006-04-22 14:47:20.000000000 -0600
@@ -172,7 +172,11 @@
/*
* The "__put_user/kernel_asm()" macros tell gcc they read from memory
@@ -2466,9 +2747,24 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
#define __put_user_asm(stx,x,ptr) \
__asm__ __volatile__ ( \
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/kernel/resource.c CVS2_6_17_PA2/kernel/resource.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/include/asm-parisc/unistd.h CVS2_6_17_PA6/include/asm-parisc/unistd.h
+--- LINUS_2_6_17/include/asm-parisc/unistd.h 2006-04-16 11:34:30.000000000 -0600
++++ CVS2_6_17_PA6/include/asm-parisc/unistd.h 2006-06-20 21:43:52.000000000 -0600
+@@ -796,11 +796,6 @@
+
+ #define SYS_ify(syscall_name) __NR_##syscall_name
+
+-/* Assume all syscalls are done from PIC code just to be
+- * safe. The worst case scenario is that you lose a register
+- * and save/restore r19 across the syscall. */
+-#define PIC
+-
+ #ifndef ASM_LINE_SEP
+ # define ASM_LINE_SEP ;
+ #endif
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/kernel/resource.c CVS2_6_17_PA6/kernel/resource.c
--- LINUS_2_6_17/kernel/resource.c 2006-06-17 22:24:52.000000000 -0600
-+++ CVS2_6_17_PA2/kernel/resource.c 2006-01-17 07:53:00.000000000 -0700
++++ CVS2_6_17_PA6/kernel/resource.c 2006-01-17 07:53:00.000000000 -0700
@@ -181,6 +181,8 @@
{
struct resource *tmp, **p;
@@ -2528,9 +2824,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
}
for (next = first; ; next = next->sibling) {
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/mm/shmem.c CVS2_6_17_PA2/mm/shmem.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/mm/shmem.c CVS2_6_17_PA6/mm/shmem.c
--- LINUS_2_6_17/mm/shmem.c 2006-06-17 22:24:52.000000000 -0600
-+++ CVS2_6_17_PA2/mm/shmem.c 2006-06-17 22:34:52.000000000 -0600
++++ CVS2_6_17_PA6/mm/shmem.c 2006-06-17 22:34:52.000000000 -0600
@@ -627,7 +627,7 @@
}
}
@@ -2540,9 +2836,9 @@ diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontd
{
shmem_truncate_range(inode, inode->i_size, (loff_t)-1);
}
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/sound/pci/ad1889.c CVS2_6_17_PA2/sound/pci/ad1889.c
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_17/sound/pci/ad1889.c CVS2_6_17_PA6/sound/pci/ad1889.c
--- LINUS_2_6_17/sound/pci/ad1889.c 2006-06-17 22:24:53.000000000 -0600
-+++ CVS2_6_17_PA2/sound/pci/ad1889.c 2006-05-12 22:12:43.000000000 -0600
++++ CVS2_6_17_PA6/sound/pci/ad1889.c 2006-05-12 22:12:43.000000000 -0600
@@ -100,6 +100,7 @@
struct snd_pcm *pcm;
struct snd_info_entry *proc;