Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Oct 2008 21:38:14 +0000 (14:38 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Oct 2008 21:40:31 +0000 (14:40 -0700)
* git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
  parisc: convert to generic compat_sys_ptrace
  parisc: add rtc platform driver
  parisc: initialize unwinder much earlier
  parisc: add new syscalls
  parisc: hijack jump to start_kernel
  parisc: add pdc_coproc_cfg_unlocked and set_firmware_width_unlocked
  parisc: move include/asm-parisc to arch/parisc/include/asm
  parisc: move pdc_result to real2.S
  parisc: unify CCIO_COLLECT_STATS implementation
  parisc: add arch/parisc/kernel/.gitignore
  parisc: ropes.h - fix <asm-parisc/*> -> <asm/*>
  parisc: parisc-agp - fix <asm-parisc/*> -> <asm/*>

Resolve remove/rename conflict: include/asm-parisc/a.out.h is no longer
relevant.

1  2 
arch/parisc/Kconfig
arch/parisc/include/asm/elf.h
arch/parisc/include/asm/ide.h
arch/parisc/include/asm/siginfo.h
arch/parisc/include/asm/statfs.h
arch/parisc/include/asm/thread_info.h
arch/parisc/kernel/syscall_table.S
drivers/char/agp/parisc-agp.c
drivers/rtc/Kconfig
drivers/rtc/Makefile

Simple merge
index 0000000,d0a4a82..7fa6757
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,342 +1,342 @@@
 -#define SET_PERSONALITY(ex, ibcs2) \
+ #ifndef __ASMPARISC_ELF_H
+ #define __ASMPARISC_ELF_H
+ /*
+  * ELF register definitions..
+  */
+ #include <asm/ptrace.h>
+ #define EM_PARISC 15
+ /* HPPA specific definitions.  */
+ /* Legal values for e_flags field of Elf32_Ehdr.  */
+ #define EF_PARISC_TRAPNIL     0x00010000 /* Trap nil pointer dereference.  */
+ #define EF_PARISC_EXT         0x00020000 /* Program uses arch. extensions. */
+ #define EF_PARISC_LSB         0x00040000 /* Program expects little endian. */
+ #define EF_PARISC_WIDE                0x00080000 /* Program expects wide mode.  */
+ #define EF_PARISC_NO_KABP     0x00100000 /* No kernel assisted branch
+                                             prediction.  */
+ #define EF_PARISC_LAZYSWAP    0x00400000 /* Allow lazy swapping.  */
+ #define EF_PARISC_ARCH                0x0000ffff /* Architecture version.  */
+ /* Defined values for `e_flags & EF_PARISC_ARCH' are:  */
+ #define EFA_PARISC_1_0                    0x020b /* PA-RISC 1.0 big-endian.  */
+ #define EFA_PARISC_1_1                    0x0210 /* PA-RISC 1.1 big-endian.  */
+ #define EFA_PARISC_2_0                    0x0214 /* PA-RISC 2.0 big-endian.  */
+ /* Additional section indices.  */
+ #define SHN_PARISC_ANSI_COMMON        0xff00     /* Section for tenatively declared
+                                             symbols in ANSI C.  */
+ #define SHN_PARISC_HUGE_COMMON        0xff01     /* Common blocks in huge model.  */
+ /* Legal values for sh_type field of Elf32_Shdr.  */
+ #define SHT_PARISC_EXT                0x70000000 /* Contains product specific ext. */
+ #define SHT_PARISC_UNWIND     0x70000001 /* Unwind information.  */
+ #define SHT_PARISC_DOC                0x70000002 /* Debug info for optimized code. */
+ /* Legal values for sh_flags field of Elf32_Shdr.  */
+ #define SHF_PARISC_SHORT      0x20000000 /* Section with short addressing. */
+ #define SHF_PARISC_HUGE               0x40000000 /* Section far from gp.  */
+ #define SHF_PARISC_SBP                0x80000000 /* Static branch prediction code. */
+ /* Legal values for ST_TYPE subfield of st_info (symbol type).  */
+ #define STT_PARISC_MILLICODE  13      /* Millicode function entry point.  */
+ #define STT_HP_OPAQUE         (STT_LOOS + 0x1)
+ #define STT_HP_STUB           (STT_LOOS + 0x2)
+ /* HPPA relocs.  */
+ #define R_PARISC_NONE         0       /* No reloc.  */
+ #define R_PARISC_DIR32                1       /* Direct 32-bit reference.  */
+ #define R_PARISC_DIR21L               2       /* Left 21 bits of eff. address.  */
+ #define R_PARISC_DIR17R               3       /* Right 17 bits of eff. address.  */
+ #define R_PARISC_DIR17F               4       /* 17 bits of eff. address.  */
+ #define R_PARISC_DIR14R               6       /* Right 14 bits of eff. address.  */
+ #define R_PARISC_PCREL32      9       /* 32-bit rel. address.  */
+ #define R_PARISC_PCREL21L     10      /* Left 21 bits of rel. address.  */
+ #define R_PARISC_PCREL17R     11      /* Right 17 bits of rel. address.  */
+ #define R_PARISC_PCREL17F     12      /* 17 bits of rel. address.  */
+ #define R_PARISC_PCREL14R     14      /* Right 14 bits of rel. address.  */
+ #define R_PARISC_DPREL21L     18      /* Left 21 bits of rel. address.  */
+ #define R_PARISC_DPREL14R     22      /* Right 14 bits of rel. address.  */
+ #define R_PARISC_GPREL21L     26      /* GP-relative, left 21 bits.  */
+ #define R_PARISC_GPREL14R     30      /* GP-relative, right 14 bits.  */
+ #define R_PARISC_LTOFF21L     34      /* LT-relative, left 21 bits.  */
+ #define R_PARISC_LTOFF14R     38      /* LT-relative, right 14 bits.  */
+ #define R_PARISC_SECREL32     41      /* 32 bits section rel. address.  */
+ #define R_PARISC_SEGBASE      48      /* No relocation, set segment base.  */
+ #define R_PARISC_SEGREL32     49      /* 32 bits segment rel. address.  */
+ #define R_PARISC_PLTOFF21L    50      /* PLT rel. address, left 21 bits.  */
+ #define R_PARISC_PLTOFF14R    54      /* PLT rel. address, right 14 bits.  */
+ #define R_PARISC_LTOFF_FPTR32 57      /* 32 bits LT-rel. function pointer. */
+ #define R_PARISC_LTOFF_FPTR21L        58      /* LT-rel. fct ptr, left 21 bits. */
+ #define R_PARISC_LTOFF_FPTR14R        62      /* LT-rel. fct ptr, right 14 bits. */
+ #define R_PARISC_FPTR64               64      /* 64 bits function address.  */
+ #define R_PARISC_PLABEL32     65      /* 32 bits function address.  */
+ #define R_PARISC_PCREL64      72      /* 64 bits PC-rel. address.  */
+ #define R_PARISC_PCREL22F     74      /* 22 bits PC-rel. address.  */
+ #define R_PARISC_PCREL14WR    75      /* PC-rel. address, right 14 bits.  */
+ #define R_PARISC_PCREL14DR    76      /* PC rel. address, right 14 bits.  */
+ #define R_PARISC_PCREL16F     77      /* 16 bits PC-rel. address.  */
+ #define R_PARISC_PCREL16WF    78      /* 16 bits PC-rel. address.  */
+ #define R_PARISC_PCREL16DF    79      /* 16 bits PC-rel. address.  */
+ #define R_PARISC_DIR64                80      /* 64 bits of eff. address.  */
+ #define R_PARISC_DIR14WR      83      /* 14 bits of eff. address.  */
+ #define R_PARISC_DIR14DR      84      /* 14 bits of eff. address.  */
+ #define R_PARISC_DIR16F               85      /* 16 bits of eff. address.  */
+ #define R_PARISC_DIR16WF      86      /* 16 bits of eff. address.  */
+ #define R_PARISC_DIR16DF      87      /* 16 bits of eff. address.  */
+ #define R_PARISC_GPREL64      88      /* 64 bits of GP-rel. address.  */
+ #define R_PARISC_GPREL14WR    91      /* GP-rel. address, right 14 bits.  */
+ #define R_PARISC_GPREL14DR    92      /* GP-rel. address, right 14 bits.  */
+ #define R_PARISC_GPREL16F     93      /* 16 bits GP-rel. address.  */
+ #define R_PARISC_GPREL16WF    94      /* 16 bits GP-rel. address.  */
+ #define R_PARISC_GPREL16DF    95      /* 16 bits GP-rel. address.  */
+ #define R_PARISC_LTOFF64      96      /* 64 bits LT-rel. address.  */
+ #define R_PARISC_LTOFF14WR    99      /* LT-rel. address, right 14 bits.  */
+ #define R_PARISC_LTOFF14DR    100     /* LT-rel. address, right 14 bits.  */
+ #define R_PARISC_LTOFF16F     101     /* 16 bits LT-rel. address.  */
+ #define R_PARISC_LTOFF16WF    102     /* 16 bits LT-rel. address.  */
+ #define R_PARISC_LTOFF16DF    103     /* 16 bits LT-rel. address.  */
+ #define R_PARISC_SECREL64     104     /* 64 bits section rel. address.  */
+ #define R_PARISC_SEGREL64     112     /* 64 bits segment rel. address.  */
+ #define R_PARISC_PLTOFF14WR   115     /* PLT-rel. address, right 14 bits.  */
+ #define R_PARISC_PLTOFF14DR   116     /* PLT-rel. address, right 14 bits.  */
+ #define R_PARISC_PLTOFF16F    117     /* 16 bits LT-rel. address.  */
+ #define R_PARISC_PLTOFF16WF   118     /* 16 bits PLT-rel. address.  */
+ #define R_PARISC_PLTOFF16DF   119     /* 16 bits PLT-rel. address.  */
+ #define R_PARISC_LTOFF_FPTR64 120     /* 64 bits LT-rel. function ptr.  */
+ #define R_PARISC_LTOFF_FPTR14WR       123     /* LT-rel. fct. ptr., right 14 bits. */
+ #define R_PARISC_LTOFF_FPTR14DR       124     /* LT-rel. fct. ptr., right 14 bits. */
+ #define R_PARISC_LTOFF_FPTR16F        125     /* 16 bits LT-rel. function ptr.  */
+ #define R_PARISC_LTOFF_FPTR16WF       126     /* 16 bits LT-rel. function ptr.  */
+ #define R_PARISC_LTOFF_FPTR16DF       127     /* 16 bits LT-rel. function ptr.  */
+ #define R_PARISC_LORESERVE    128
+ #define R_PARISC_COPY         128     /* Copy relocation.  */
+ #define R_PARISC_IPLT         129     /* Dynamic reloc, imported PLT */
+ #define R_PARISC_EPLT         130     /* Dynamic reloc, exported PLT */
+ #define R_PARISC_TPREL32      153     /* 32 bits TP-rel. address.  */
+ #define R_PARISC_TPREL21L     154     /* TP-rel. address, left 21 bits.  */
+ #define R_PARISC_TPREL14R     158     /* TP-rel. address, right 14 bits.  */
+ #define R_PARISC_LTOFF_TP21L  162     /* LT-TP-rel. address, left 21 bits. */
+ #define R_PARISC_LTOFF_TP14R  166     /* LT-TP-rel. address, right 14 bits.*/
+ #define R_PARISC_LTOFF_TP14F  167     /* 14 bits LT-TP-rel. address.  */
+ #define R_PARISC_TPREL64      216     /* 64 bits TP-rel. address.  */
+ #define R_PARISC_TPREL14WR    219     /* TP-rel. address, right 14 bits.  */
+ #define R_PARISC_TPREL14DR    220     /* TP-rel. address, right 14 bits.  */
+ #define R_PARISC_TPREL16F     221     /* 16 bits TP-rel. address.  */
+ #define R_PARISC_TPREL16WF    222     /* 16 bits TP-rel. address.  */
+ #define R_PARISC_TPREL16DF    223     /* 16 bits TP-rel. address.  */
+ #define R_PARISC_LTOFF_TP64   224     /* 64 bits LT-TP-rel. address.  */
+ #define R_PARISC_LTOFF_TP14WR 227     /* LT-TP-rel. address, right 14 bits.*/
+ #define R_PARISC_LTOFF_TP14DR 228     /* LT-TP-rel. address, right 14 bits.*/
+ #define R_PARISC_LTOFF_TP16F  229     /* 16 bits LT-TP-rel. address.  */
+ #define R_PARISC_LTOFF_TP16WF 230     /* 16 bits LT-TP-rel. address.  */
+ #define R_PARISC_LTOFF_TP16DF 231     /* 16 bits LT-TP-rel. address.  */
+ #define R_PARISC_HIRESERVE    255
+ #define PA_PLABEL_FDESC               0x02    /* bit set if PLABEL points to
+                                        * a function descriptor, not
+                                        * an address */
+ /* The following are PA function descriptors 
+  *
+  * addr:      the absolute address of the function
+  * gp:                either the data pointer (r27) for non-PIC code or the
+  *            the PLT pointer (r19) for PIC code */
+ /* Format for the Elf32 Function descriptor */
+ typedef struct elf32_fdesc {
+       __u32   addr;
+       __u32   gp;
+ } Elf32_Fdesc;
+ /* Format for the Elf64 Function descriptor */
+ typedef struct elf64_fdesc {
+       __u64   dummy[2]; /* FIXME: nothing uses these, why waste
+                          * the space */
+       __u64   addr;
+       __u64   gp;
+ } Elf64_Fdesc;
+ /* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr.  */
+ #define PT_HP_TLS             (PT_LOOS + 0x0)
+ #define PT_HP_CORE_NONE               (PT_LOOS + 0x1)
+ #define PT_HP_CORE_VERSION    (PT_LOOS + 0x2)
+ #define PT_HP_CORE_KERNEL     (PT_LOOS + 0x3)
+ #define PT_HP_CORE_COMM               (PT_LOOS + 0x4)
+ #define PT_HP_CORE_PROC               (PT_LOOS + 0x5)
+ #define PT_HP_CORE_LOADABLE   (PT_LOOS + 0x6)
+ #define PT_HP_CORE_STACK      (PT_LOOS + 0x7)
+ #define PT_HP_CORE_SHM                (PT_LOOS + 0x8)
+ #define PT_HP_CORE_MMF                (PT_LOOS + 0x9)
+ #define PT_HP_PARALLEL                (PT_LOOS + 0x10)
+ #define PT_HP_FASTBIND                (PT_LOOS + 0x11)
+ #define PT_HP_OPT_ANNOT               (PT_LOOS + 0x12)
+ #define PT_HP_HSL_ANNOT               (PT_LOOS + 0x13)
+ #define PT_HP_STACK           (PT_LOOS + 0x14)
+ #define PT_PARISC_ARCHEXT     0x70000000
+ #define PT_PARISC_UNWIND      0x70000001
+ /* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr.  */
+ #define PF_PARISC_SBP         0x08000000
+ #define PF_HP_PAGE_SIZE               0x00100000
+ #define PF_HP_FAR_SHARED      0x00200000
+ #define PF_HP_NEAR_SHARED     0x00400000
+ #define PF_HP_CODE            0x01000000
+ #define PF_HP_MODIFY          0x02000000
+ #define PF_HP_LAZYSWAP                0x04000000
+ #define PF_HP_SBP             0x08000000
+ /*
+  * The following definitions are those for 32-bit ELF binaries on a 32-bit
+  * kernel and for 64-bit binaries on a 64-bit kernel.  To run 32-bit binaries
+  * on a 64-bit kernel, arch/parisc/kernel/binfmt_elf32.c defines these
+  * macros appropriately and then #includes binfmt_elf.c, which then includes
+  * this file.
+  */
+ #ifndef ELF_CLASS
+ /*
+  * This is used to ensure we don't load something for the wrong architecture.
+  *
+  * Note that this header file is used by default in fs/binfmt_elf.c. So
+  * the following macros are for the default case. However, for the 64
+  * bit kernel we also support 32 bit parisc binaries. To do that
+  * arch/parisc/kernel/binfmt_elf32.c defines its own set of these
+  * macros, and then it includes fs/binfmt_elf.c to provide an alternate
+  * elf binary handler for 32 bit binaries (on the 64 bit kernel).
+  */
+ #ifdef CONFIG_64BIT
+ #define ELF_CLASS   ELFCLASS64
+ #else
+ #define ELF_CLASS     ELFCLASS32
+ #endif
+ typedef unsigned long elf_greg_t;
+ /*
+  * This yields a string that ld.so will use to load implementation
+  * specific libraries for optimization.  This is more specific in
+  * intent than poking at uname or /proc/cpuinfo.
+  */
+ #define ELF_PLATFORM  ("PARISC\0")
++#define SET_PERSONALITY(ex) \
+       current->personality = PER_LINUX; \
+       current->thread.map_base = DEFAULT_MAP_BASE; \
+       current->thread.task_size = DEFAULT_TASK_SIZE \
+ /*
+  * Fill in general registers in a core dump.  This saves pretty
+  * much the same registers as hp-ux, although in a different order.
+  * Registers marked # below are not currently saved in pt_regs, so
+  * we use their current values here.
+  *
+  *    gr0..gr31
+  *    sr0..sr7
+  *    iaoq0..iaoq1
+  *    iasq0..iasq1
+  *    cr11 (sar)
+  *    cr19 (iir)
+  *    cr20 (isr)
+  *    cr21 (ior)
+  *  # cr22 (ipsw)
+  *  # cr0 (recovery counter)
+  *  # cr24..cr31 (temporary registers)
+  *  # cr8,9,12,13 (protection IDs)
+  *  # cr10 (scr/ccr)
+  *  # cr15 (ext int enable mask)
+  *
+  */
+ #define ELF_CORE_COPY_REGS(dst, pt)   \
+       memset(dst, 0, sizeof(dst));    /* don't leak any "random" bits */ \
+       memcpy(dst + 0, pt->gr, 32 * sizeof(elf_greg_t)); \
+       memcpy(dst + 32, pt->sr, 8 * sizeof(elf_greg_t)); \
+       memcpy(dst + 40, pt->iaoq, 2 * sizeof(elf_greg_t)); \
+       memcpy(dst + 42, pt->iasq, 2 * sizeof(elf_greg_t)); \
+       dst[44] = pt->sar;   dst[45] = pt->iir; \
+       dst[46] = pt->isr;   dst[47] = pt->ior; \
+       dst[48] = mfctl(22); dst[49] = mfctl(0); \
+       dst[50] = mfctl(24); dst[51] = mfctl(25); \
+       dst[52] = mfctl(26); dst[53] = mfctl(27); \
+       dst[54] = mfctl(28); dst[55] = mfctl(29); \
+       dst[56] = mfctl(30); dst[57] = mfctl(31); \
+       dst[58] = mfctl( 8); dst[59] = mfctl( 9); \
+       dst[60] = mfctl(12); dst[61] = mfctl(13); \
+       dst[62] = mfctl(10); dst[63] = mfctl(15);
+ #endif /* ! ELF_CLASS */
+ #define ELF_NGREG 80  /* We only need 64 at present, but leave space
+                          for expansion. */
+ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+ #define ELF_NFPREG 32
+ typedef double elf_fpreg_t;
+ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+ struct task_struct;
+ extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *);
+ #define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) dump_task_fpu(tsk, elf_fpregs)
+ struct pt_regs;       /* forward declaration... */
+ #define elf_check_arch(x) ((x)->e_machine == EM_PARISC && (x)->e_ident[EI_CLASS] == ELF_CLASS)
+ /*
+  * These are used to set parameters in the core dumps.
+  */
+ #define ELF_DATA      ELFDATA2MSB
+ #define ELF_ARCH      EM_PARISC
+ #define ELF_OSABI     ELFOSABI_LINUX
+ /* %r23 is set by ld.so to a pointer to a function which might be 
+    registered using atexit.  This provides a means for the dynamic
+    linker to call DT_FINI functions for shared libraries that have
+    been loaded before the code runs.
+    So that we can use the same startup file with static executables,
+    we start programs with a value of 0 to indicate that there is no
+    such function.  */
+ #define ELF_PLAT_INIT(_r, load_addr)       _r->gr[23] = 0
+ #define USE_ELF_CORE_DUMP
+ #define ELF_EXEC_PAGESIZE     4096
+ /* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
+    use of this is to invoke "./ld.so someprog" to test out a new version of
+    the loader.  We need to make sure that it is out of the way of the program
+    that it will "exec", and that there is sufficient room for the brk.
+    (2 * TASK_SIZE / 3) turns into something undefined when run through a
+    32 bit preprocessor and in some cases results in the kernel trying to map
+    ld.so to the kernel virtual base. Use a sane value instead. /Jes 
+   */
+ #define ELF_ET_DYN_BASE         (TASK_UNMAPPED_BASE + 0x01000000)
+ /* This yields a mask that user programs can use to figure out what
+    instruction set this CPU supports.  This could be done in user space,
+    but it's not easy, and we've already done it here.  */
+ #define ELF_HWCAP     0
+ #endif
index 0000000,c246ef7..81700a2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,61 +1,57 @@@
 -#define ide_request_irq(irq,hand,flg,dev,id)  request_irq((irq),(hand),(flg),(dev),(id))
 -#define ide_free_irq(irq,dev_id)              free_irq((irq), (dev_id))
 -#define ide_request_region(from,extent,name)  request_region((from), (extent), (name))
 -#define ide_release_region(from,extent)               release_region((from), (extent))
+ /*
+  *  linux/include/asm-parisc/ide.h
+  *
+  *  Copyright (C) 1994-1996  Linus Torvalds & authors
+  */
+ /*
+  *  This file contains the PARISC architecture specific IDE code.
+  */
+ #ifndef __ASM_PARISC_IDE_H
+ #define __ASM_PARISC_IDE_H
+ #ifdef __KERNEL__
+ /* Generic I/O and MEMIO string operations.  */
+ #define __ide_insw    insw
+ #define __ide_insl    insl
+ #define __ide_outsw   outsw
+ #define __ide_outsl   outsl
+ static __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count)
+ {
+       while (count--) {
+               *(u16 *)addr = __raw_readw(port);
+               addr += 2;
+       }
+ }
+ static __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count)
+ {
+       while (count--) {
+               *(u32 *)addr = __raw_readl(port);
+               addr += 4;
+       }
+ }
+ static __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count)
+ {
+       while (count--) {
+               __raw_writew(*(u16 *)addr, port);
+               addr += 2;
+       }
+ }
+ static __inline__ void __ide_mm_outsl(void __iomem *port, void *addr, u32 count)
+ {
+       while (count--) {
+               __raw_writel(*(u32 *)addr, port);
+               addr += 4;
+       }
+ }
+ #endif /* __KERNEL__ */
+ #endif /* __ASM_PARISC_IDE_H */
index 0000000,d4909f5..d703472
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,14 +1,9 @@@
 -/*
 - * SIGTRAP si_codes
 - */
 -#define TRAP_BRANCH   (__SI_FAULT|3)  /* process taken branch trap */
 -#define TRAP_HWBKPT   (__SI_FAULT|4)  /* hardware breakpoint or watchpoint */
+ #ifndef _PARISC_SIGINFO_H
+ #define _PARISC_SIGINFO_H
+ #include <asm-generic/siginfo.h>
+ #undef NSIGTRAP
+ #define NSIGTRAP      4
+ #endif
index 0000000,1d2b813..324bea9
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,58 +1,7 @@@
 -#ifndef __KERNEL_STRICT_NAMES
 -
 -#include <linux/types.h>
 -
 -typedef __kernel_fsid_t       fsid_t;
 -
 -#endif
 -
 -/*
 - * It appears that PARISC could be 64 _or_ 32 bit.
 - * 64-bit fields must be explicitly 64-bit in statfs64.
 - */
 -struct statfs {
 -      long f_type;
 -      long f_bsize;
 -      long f_blocks;
 -      long f_bfree;
 -      long f_bavail;
 -      long f_files;
 -      long f_ffree;
 -      __kernel_fsid_t f_fsid;
 -      long f_namelen;
 -      long f_frsize;
 -      long f_spare[5];
 -};
 -
 -struct statfs64 {
 -      long f_type;
 -      long f_bsize;
 -      __u64 f_blocks;
 -      __u64 f_bfree;
 -      __u64 f_bavail;
 -      __u64 f_files;
 -      __u64 f_ffree;
 -      __kernel_fsid_t f_fsid;
 -      long f_namelen;
 -      long f_frsize;
 -      long f_spare[5];
 -};
 -
 -struct compat_statfs64 {
 -      __u32 f_type;
 -      __u32 f_bsize;
 -      __u64 f_blocks;
 -      __u64 f_bfree;
 -      __u64 f_bavail;
 -      __u64 f_files;
 -      __u64 f_ffree;
 -      __kernel_fsid_t f_fsid;
 -      __u32 f_namelen;
 -      __u32 f_frsize;
 -      __u32 f_spare[5];
 -};
+ #ifndef _PARISC_STATFS_H
+ #define _PARISC_STATFS_H
++#define __statfs_word long
++#include <asm-generic/statfs.h>
+ #endif
index 0000000,9f81274..0407959
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,74 +1,76 @@@
+ #ifndef _ASM_PARISC_THREAD_INFO_H
+ #define _ASM_PARISC_THREAD_INFO_H
+ #ifdef __KERNEL__
+ #ifndef __ASSEMBLY__
+ #include <asm/processor.h>
+ struct thread_info {
+       struct task_struct *task;       /* main task structure */
+       struct exec_domain *exec_domain;/* execution domain */
+       unsigned long flags;            /* thread_info flags (see TIF_*) */
+       mm_segment_t addr_limit;        /* user-level address space limit */
+       __u32 cpu;                      /* current CPU */
+       int preempt_count;              /* 0=premptable, <0=BUG; will also serve as bh-counter */
+       struct restart_block restart_block;
+ };
+ #define INIT_THREAD_INFO(tsk)                 \
+ {                                             \
+       .task           = &tsk,                 \
+       .exec_domain    = &default_exec_domain, \
+       .flags          = 0,                    \
+       .cpu            = 0,                    \
+       .addr_limit     = KERNEL_DS,            \
+       .preempt_count  = 1,                    \
+       .restart_block  = {                     \
+               .fn = do_no_restart_syscall     \
+       }                                       \
+ }
+ #define init_thread_info        (init_thread_union.thread_info)
+ #define init_stack              (init_thread_union.stack)
+ /* thread information allocation */
+ #define THREAD_SIZE_ORDER            2
+ /* Be sure to hunt all references to this down when you change the size of
+  * the kernel stack */
+ #define THREAD_SIZE             (PAGE_SIZE << THREAD_SIZE_ORDER)
+ #define THREAD_SHIFT            (PAGE_SHIFT + THREAD_SIZE_ORDER)
+ /* how to get the thread information struct from C */
+ #define current_thread_info() ((struct thread_info *)mfctl(30))
+ #endif /* !__ASSEMBLY */
+ #define PREEMPT_ACTIVE_BIT    28
+ #define PREEMPT_ACTIVE                (1 << PREEMPT_ACTIVE_BIT)
+ /*
+  * thread information flags
+  */
+ #define TIF_SYSCALL_TRACE     0       /* syscall trace active */
+ #define TIF_SIGPENDING                1       /* signal pending */
+ #define TIF_NEED_RESCHED      2       /* rescheduling necessary */
+ #define TIF_POLLING_NRFLAG    3       /* true if poll_idle() is polling TIF_NEED_RESCHED */
+ #define TIF_32BIT               4       /* 32 bit binary */
+ #define TIF_MEMDIE            5
+ #define TIF_RESTORE_SIGMASK   6       /* restore saved signal mask */
++#define TIF_FREEZE            7       /* is freezing for suspend */
+ #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
+ #define _TIF_SIGPENDING               (1 << TIF_SIGPENDING)
+ #define _TIF_NEED_RESCHED     (1 << TIF_NEED_RESCHED)
+ #define _TIF_POLLING_NRFLAG   (1 << TIF_POLLING_NRFLAG)
+ #define _TIF_32BIT            (1 << TIF_32BIT)
+ #define _TIF_RESTORE_SIGMASK  (1 << TIF_RESTORE_SIGMASK)
++#define _TIF_FREEZE           (1 << TIF_FREEZE)
+ #define _TIF_USER_WORK_MASK     (_TIF_SIGPENDING | \
+                                  _TIF_NEED_RESCHED | _TIF_RESTORE_SIGMASK)
+ #endif /* __KERNEL__ */
+ #endif /* _ASM_PARISC_THREAD_INFO_H */
Simple merge
Simple merge
@@@ -610,9 -575,17 +610,17 @@@ config RTC_DRV_RS5C31
        help
          If you say yes here you get support for the Ricoh RS5C313 RTC chips.
  
+ config RTC_DRV_PARISC
+       tristate "PA-RISC firmware RTC support"
+       depends on PARISC
+       help
+         Say Y or M here to enable RTC support on PA-RISC systems using
+         firmware calls. If you do not know what you are doing, you should
+         just say Y.
  config RTC_DRV_PPC
         tristate "PowerPC machine dependent RTC support"
 -       depends on PPC_MERGE
 +       depends on PPC
         help
         The PowerPC kernel has machine-specific functions for accessing
         the RTC. This exposes that functionality through the generic RTC
Simple merge