Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 16 Jul 2007 17:32:02 +0000 (10:32 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 16 Jul 2007 17:32:02 +0000 (10:32 -0700)
* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: (68 commits)
  sh: sh-rtc support for SH7709.
  sh: Revert __xdiv64_32 size change.
  sh: Update r7785rp defconfig.
  sh: Export div symbols for GCC 4.2 and ST GCC.
  sh: fix race in parallel out-of-tree build
  sh: Kill off dead mach.c for hp6xx.
  sh: hd64461.h cleanup and added comments.
  sh: Update the alignment when 4K stacks are used.
  sh: Add a .bss.page_aligned section for 4K stacks.
  sh: Don't let SH-4A clobber SH-4 CFLAGS.
  sh: Add parport stub for SuperIO ports.
  sh: Drop -Wa,-dsp for DSP tuning.
  sh: Update dreamcast defconfig.
  fb: pvr2fb: A few more __devinit annotations for PCI.
  fb: pvr2fb: Fix up section mismatch warnings.
  sh: Select IPR-IRQ for SH7091.
  sh: Correct __xdiv64_32/div64_32 return value size.
  sh: Fix timer-tmu build for SH-3.
  sh: Add cpu and mach links to CLEAN_FILES.
  sh: Preliminary support for the SH-X3 CPU.
  ...

1  2 
arch/sh/kernel/signal.c
arch/sh/kernel/traps.c
fs/Kconfig
mm/Kconfig

diff --combined arch/sh/kernel/signal.c
index e323e299878b7a101087ae1d08d84bf6295776f1,2d9131fbc6901dad73c5804ed24dda8d79083743..706d81ccd10149e15e28ffbfeed70e69a656e009
@@@ -23,6 -23,7 +23,7 @@@
  #include <linux/personality.h>
  #include <linux/binfmts.h>
  #include <linux/freezer.h>
+ #include <linux/io.h>
  #include <asm/system.h>
  #include <asm/ucontext.h>
  #include <asm/uaccess.h>
@@@ -261,7 -262,7 +262,7 @@@ asmlinkage int sys_rt_sigreturn(unsigne
                goto badframe;
        /* It is more difficult to avoid calling this function than to
           call it and ignore errors.  */
-       do_sigaltstack(&st, NULL, regs->regs[15]);
+       do_sigaltstack((const stack_t __user *)&st, NULL, (unsigned long)frame);
  
        return r0;
  
@@@ -481,7 -482,7 +482,7 @@@ give_sigsegv
  
  static int
  handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
 -            sigset_t *oldset, struct pt_regs *regs)
 +            sigset_t *oldset, struct pt_regs *regs, unsigned int save_r0)
  {
        int ret;
  
        if (regs->tra >= 0) {
                /* If so, check system call restarting.. */
                switch (regs->regs[0]) {
 +                      case -ERESTART_RESTARTBLOCK:
                        case -ERESTARTNOHAND:
                                regs->regs[0] = -EINTR;
                                break;
                                }
                        /* fallthrough */
                        case -ERESTARTNOINTR:
 +                              regs->regs[0] = save_r0;
                                regs->pc -= instruction_size(
                                                ctrl_inw(regs->pc - 4));
                                break;
@@@ -585,8 -584,7 +586,8 @@@ static void do_signal(struct pt_regs *r
        signr = get_signal_to_deliver(&info, &ka, regs, NULL);
        if (signr > 0) {
                /* Whee!  Actually deliver the signal.  */
 -              if (handle_signal(signr, &ka, &info, oldset, regs) == 0) {
 +              if (handle_signal(signr, &ka, &info, oldset,
 +                                regs, save_r0) == 0) {
                        /* a signal was successfully delivered; the saved
                         * sigmask will have been stored in the signal frame,
                         * and will be restored by sigreturn, so we can simply
diff --combined arch/sh/kernel/traps.c
index 09480887076b9ff2f426b39acdf0e42a84687ac4,b97e71dae5795a759698968407d33bec03aa568f..05a40f3c30bf0c7848d02d77d77b4b8af5600ad1
@@@ -83,8 -83,6 +83,8 @@@ void die(const char * str, struct pt_re
  {
        static int die_counter;
  
 +      oops_enter();
 +
        console_verbose();
        spin_lock_irq(&die_lock);
        bust_spinlocks(1);
        if (panic_on_oops)
                panic("Fatal exception");
  
 +      oops_exit();
        do_exit(SIGSEGV);
  }
  
@@@ -584,7 -581,7 +584,7 @@@ uspace_segv
                info.si_signo = SIGBUS;
                info.si_errno = 0;
                info.si_code = si_code;
-               info.si_addr = (void *) address;
+               info.si_addr = (void __user *)address;
                force_sig_info(SIGBUS, &info, current);
        } else {
                if (regs->pc & 1)
   */
  int is_dsp_inst(struct pt_regs *regs)
  {
-       unsigned short inst;
+       unsigned short inst = 0;
  
        /*
         * Safe guard if DSP mode is already enabled or we're lacking
@@@ -645,7 -642,6 +645,6 @@@ asmlinkage void do_divide_error(unsigne
                                unsigned long r6, unsigned long r7,
                                struct pt_regs __regs)
  {
-       struct pt_regs *regs = RELOC_HIDE(&__regs, 0);
        siginfo_t info;
  
        switch (r4) {
@@@ -874,7 -870,7 +873,7 @@@ void __init trap_init(void
  void handle_BUG(struct pt_regs *regs)
  {
        enum bug_trap_type tt;
 -      tt = report_bug(regs->pc);
 +      tt = report_bug(regs->pc, regs);
        if (tt == BUG_TRAP_TYPE_WARN) {
                regs->pc += 2;
                return;
diff --combined fs/Kconfig
index 94b9d861bf9b6f75b6869085ef36e0f4068767d9,7f211613ae1b1ac3270ca9014dcac30aaf7a47e1..ee11f8d94085eae4ef65fe005f8cdba2d264b658
@@@ -991,7 -991,7 +991,7 @@@ config TMPFS_POSIX_AC
  
  config HUGETLBFS
        bool "HugeTLB file system support"
-       depends on X86 || IA64 || PPC64 || SPARC64 || SUPERH || BROKEN
+       depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || BROKEN
        help
          hugetlbfs is a filesystem backing for HugeTLB pages, based on
          ramfs. For architectures that support it, say Y here and read
@@@ -2048,7 -2048,7 +2048,7 @@@ config AFS_DEBU
  
  config 9P_FS
        tristate "Plan 9 Resource Sharing Support (9P2000) (Experimental)"
 -      depends on INET && EXPERIMENTAL
 +      depends on INET && NET_9P && EXPERIMENTAL
        help
          If you say Y here, you will get experimental support for
          Plan 9 resource sharing via the 9P2000 protocol.
diff --combined mm/Kconfig
index 40559cfd49f7afe99e8a34aeddd0e9f328c48744,62e5d0d0bd5a884cc93a6f5885a9de20d0dd47a5..086af703da43345ecf47d6168ca7b84f5616d050
@@@ -117,7 -117,7 +117,7 @@@ config MEMORY_HOTPLU
        bool "Allow for memory hot-add"
        depends on SPARSEMEM || X86_64_ACPI_NUMA
        depends on HOTPLUG && !SOFTWARE_SUSPEND && ARCH_ENABLE_MEMORY_HOTPLUG
-       depends on (IA64 || X86 || PPC64)
+       depends on (IA64 || X86 || PPC64 || SUPERH)
  
  comment "Memory hotplug is currently incompatible with Software Suspend"
        depends on SPARSEMEM && HOTPLUG && SOFTWARE_SUSPEND
@@@ -168,7 -168,3 +168,7 @@@ config NR_QUIC
        depends on QUICKLIST
        default "2" if (SUPERH && !SUPERH64)
        default "1"
 +
 +config VIRT_TO_BUS
 +      def_bool y
 +      depends on !ARCH_NO_VIRT_TO_BUS