]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
Merge tag 'cris-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 26 Apr 2015 20:31:05 +0000 (13:31 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 26 Apr 2015 20:31:05 +0000 (13:31 -0700)
Pull arch/cris updates from Jesper Nilsson:
 "Some much needed love for the CRIS-port.

  There's a bunch of changes this time, giving the CRISv32 port a bit of
  modern makeover with device-tree, irq domain and gpiolib support, and
  more switchover to generic frameworks.

  Some small fixes and removal of the theoretical SMP support brings up
  the rear"

* tag 'cris-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:
  cris: fix integer overflow in ELF_ET_DYN_BASE
  CRISv32: use GENERIC_SCHED_CLOCK
  CRISv32: use MMIO clocksource
  CRISv32: use generic clockevents
  CRIS: use generic headers via Kbuild
  CRIS: use generic cmpxchg.h
  CRIS: use generic atomic.h
  CRIS: use generic atomic bitops
  CRISv10: remove redundant macros from system.h
  CRIS: remove SMP code
  CRISv32: don't enable irqs in INIT_THREAD
  CRISv32: handle multiple signals
  CRISv32: prevent bogus restarts on sigreturn
  CRISv32: don't attempt syscall restart on irq exit
  Add binding documentation for CRIS
  CRIS: add Axis 88 board device tree
  CRISv32: add device tree support
  CRISv32: add irq domains support
  CRIS: enable GPIOLIB

1  2 
arch/cris/arch-v32/kernel/setup.c
arch/cris/arch-v32/kernel/signal.c

index 81715c683baf08a3339c15305a457cd760d5523b,231927bba7c2624a38ec49fd679627ad123b8c0c..cd1865d68b2e031d55149c6e29c68bc2041de5a4
@@@ -63,11 -63,6 +63,6 @@@ int show_cpuinfo(struct seq_file *m, vo
  
        info = &cpinfo[ARRAY_SIZE(cpinfo) - 1];
  
- #ifdef CONFIG_SMP
-       if (!cpu_online(cpu))
-               return 0;
- #endif
        revision = rdvr();
  
        for (i = 0; i < ARRAY_SIZE(cpinfo); i++) {
                }
        }
  
 -      return seq_printf(m,
 -              "processor\t: %d\n"
 -              "cpu\t\t: CRIS\n"
 -              "cpu revision\t: %lu\n"
 -              "cpu model\t: %s\n"
 -              "cache size\t: %d KB\n"
 -              "fpu\t\t: %s\n"
 -              "mmu\t\t: %s\n"
 -              "mmu DMA bug\t: %s\n"
 -              "ethernet\t: %s Mbps\n"
 -              "token ring\t: %s\n"
 -              "scsi\t\t: %s\n"
 -              "ata\t\t: %s\n"
 -              "usb\t\t: %s\n"
 -              "bogomips\t: %lu.%02lu\n\n",
 -
 -              cpu,
 -              revision,
 -              info->cpu_model,
 -              info->cache_size,
 -              info->flags & HAS_FPU ? "yes" : "no",
 -              info->flags & HAS_MMU ? "yes" : "no",
 -              info->flags & HAS_MMU_BUG ? "yes" : "no",
 -              info->flags & HAS_ETHERNET100 ? "10/100" : "10",
 -              info->flags & HAS_TOKENRING ? "4/16 Mbps" : "no",
 -              info->flags & HAS_SCSI ? "yes" : "no",
 -              info->flags & HAS_ATA ? "yes" : "no",
 -              info->flags & HAS_USB ? "yes" : "no",
 -              (loops_per_jiffy * HZ + 500) / 500000,
 -              ((loops_per_jiffy * HZ + 500) / 5000) % 100);
 +      seq_printf(m,
 +                 "processor\t: %d\n"
 +                 "cpu\t\t: CRIS\n"
 +                 "cpu revision\t: %lu\n"
 +                 "cpu model\t: %s\n"
 +                 "cache size\t: %d KB\n"
 +                 "fpu\t\t: %s\n"
 +                 "mmu\t\t: %s\n"
 +                 "mmu DMA bug\t: %s\n"
 +                 "ethernet\t: %s Mbps\n"
 +                 "token ring\t: %s\n"
 +                 "scsi\t\t: %s\n"
 +                 "ata\t\t: %s\n"
 +                 "usb\t\t: %s\n"
 +                 "bogomips\t: %lu.%02lu\n\n",
 +
 +                 cpu,
 +                 revision,
 +                 info->cpu_model,
 +                 info->cache_size,
 +                 info->flags & HAS_FPU ? "yes" : "no",
 +                 info->flags & HAS_MMU ? "yes" : "no",
 +                 info->flags & HAS_MMU_BUG ? "yes" : "no",
 +                 info->flags & HAS_ETHERNET100 ? "10/100" : "10",
 +                 info->flags & HAS_TOKENRING ? "4/16 Mbps" : "no",
 +                 info->flags & HAS_SCSI ? "yes" : "no",
 +                 info->flags & HAS_ATA ? "yes" : "no",
 +                 info->flags & HAS_USB ? "yes" : "no",
 +                 (loops_per_jiffy * HZ + 500) / 500000,
 +                 ((loops_per_jiffy * HZ + 500) / 5000) % 100);
 +
 +      return 0;
  }
  
  #endif /* CONFIG_PROC_FS */
index 0c9ce9eac6143dae6545e659b048ece37f5c8730,d8d13beafc02045303b7af6dfd859a17f57c5996..3a36ae6b79d5a30d2723eee234ef9e2063be0f78
@@@ -72,6 -72,9 +72,9 @@@ restore_sigcontext(struct pt_regs *regs
        /* Make that the user-mode flag is set. */
        regs->ccs |= (1 << (U_CCS_BITNR + CCS_SHIFT));
  
+       /* Don't perform syscall restarting */
+       regs->exs = -1;
        /* Restore the old USP. */
        err |= __get_user(old_usp, &sc->usp);
        wrusp(old_usp);
@@@ -287,6 -290,8 +290,6 @@@ setup_rt_frame(struct ksignal *ksig, si
        if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
                return -EFAULT;
  
 -      /* TODO: what is the current->exec_domain stuff and invmap ? */
 -
        err |= __put_user(&frame->info, &frame->pinfo);
        err |= __put_user(&frame->uc, &frame->puc);
        err |= copy_siginfo_to_user(&frame->info, &ksig->info);
@@@ -425,6 -430,8 +428,8 @@@ do_signal(int canrestart, struct pt_reg
  {
        struct ksignal ksig;
  
+       canrestart = canrestart && ((int)regs->exs >= 0);
        /*
         * The common case should go fast, which is why this point is
         * reached from kernel-mode. If that's the case, just return