1. 08 12月, 2013 2 次提交
  2. 26 11月, 2013 25 次提交
  3. 15 11月, 2013 1 次提交
  4. 14 11月, 2013 3 次提交
    • T
      preempt: Make PREEMPT_ACTIVE generic · 00d1a39e
      Thomas Gleixner 提交于
      No point in having this bit defined by architecture.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20130917183629.090698799@linutronix.de
      00d1a39e
    • T
      hardirq: Make hardirq bits generic · 54197e43
      Thomas Gleixner 提交于
      There is no reason for per arch hardirq bits. Make them all generic
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20130917183628.534494408@linutronix.de
      54197e43
    • T
      m68k: Simplify low level interrupt handling code · 09f90f66
      Thomas Gleixner 提交于
      The low level interrupt entry code of m68k contains the following:
      
          add_preempt_count(HARDIRQ_OFFSET);
      
          do_IRQ();
      	irq_enter();
      	    add_preempt_count(HARDIRQ_OFFSET);
      	handle_interrupt();    
      	irq_exit();    
      	    sub_preempt_count(HARDIRQ_OFFSET);
      	    if (in_interrupt())
             	       return; <---- On m68k always taken!
      	    if (local_softirq_pending())
             	       do_softirq();
      
          sub_preempt_count(HARDIRQ_OFFSET);
          if (in_hardirq())
             return;
          if (status_on_stack_has_interrupt_priority_mask > 0)
             return;
          if (local_softirq_pending())
             do_softirq();
      
          ret_from_exception:
      	if (interrupted_context_is_kernel)
      	   return:
      	....
      
      I tried to find a proper explanation for this, but the changelog is
      sparse and there are no mails explaining it further. But obviously
      this relates to the interrupt priority levels of the m68k and tries to
      be extra clever with nested interrupts. Though this cleverness just
      adds code bloat to the interrupt hotpath.
      
      For the common case of non nested interrupts the code runs through two
      extra conditionals to the only important one, which checks whether the
      return is to kernel or user space.
      
      For the nested case the checks for in_hardirq() and the priority mask
      value on stack catch only the case where the nested interrupt happens
      inside the hard irq context of the first interrupt. If the nested
      interrupt happens while the first interrupt handles soft interrupts,
      then these extra checks buy nothing. The nested interrupt will fall
      through to the final kernel/user space return check at
      ret_from_exception.
      
      Changing the code flow in the following way:
      
          do_IRQ();
      	irq_enter();
      	    add_preempt_count(HARDIRQ_OFFSET);
      	handle_interrupt();    
      	irq_exit();    
      	    sub_preempt_count(HARDIRQ_OFFSET);
      	    if (in_interrupt())
             	       return;
      	    if (local_softirq_pending())
             	       do_softirq();
      
          ret_from_exception:
      	if (interrupted_context_is_kernel)
      	   return:
      
      makes the region protected by the hardirq count slightly smaller and
      the softirq handling is invoked with a minimal deeper stack. But
      otherwise it's completely functional equivalent and saves 104 bytes of
      text in arch/m68k/kernel/entry.o.
      
      This modification allows us further to get rid of the limitations
      which m68k puts on the preempt_count layout, so we can make the
      preempt count bits completely generic.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Tested-by: NMichael Schmitz <schmitz@biophys.uni-duesseldorf.de>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Linux/m68k <linux-m68k@vger.kernel.org>
      Cc: Andreas Schwab <schwab@linux-m68k.org>
      Link: http://lkml.kernel.org/r/alpine.DEB.2.02.1311112052360.30673@ionos.tec.linutronix.de
      09f90f66
  5. 24 10月, 2013 1 次提交
  6. 26 9月, 2013 1 次提交
  7. 25 9月, 2013 1 次提交
  8. 13 9月, 2013 2 次提交
  9. 10 9月, 2013 1 次提交
  10. 26 8月, 2013 3 次提交
    • P
      m68k: remove 16 unused boards in Kconfig.machine · c065edde
      Paul Bolle 提交于
      The Kconfig entries for 16 boards are unused. Remove these, together
      with the 6 entries that these boards select, but are also unused.
      Signed-off-by: NPaul Bolle <pebolle@tiscali.nl>
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      c065edde
    • G
      m68k: define 'VM_DATA_DEFAULT_FLAGS' no matter whether has 'NOMMU' or not · 0c7e59c4
      Greg Ungerer 提交于
      Define 'VM_DATA_DEFAULT_FLAGS' when 'NOMMU' to pass compiling.
      
      So move it from "include/asm/page_mm.h to "include/asm/page.h"
      
      The related make:
      
        make ARCH=m68k randconfig
        make ARCH=m68k menuconfig
          choose cross compiler
          disable MMU support
        make ARCH=m68k V=1 EXTRA_CFLAGS=-W
      
      The related error:
      
        security/selinux/hooks.c: In function ‘selinux_init’:
        security/selinux/hooks.c:5821:21: error: ‘VM_DATA_DEFAULT_FLAGS’ undeclared (first use in this function)
      Signed-off-by: NChen Gang <gang.chen@asianux.com>
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      0c7e59c4
    • G
      m68knommu: user generic iomap to support ioread*/iowrite* · f79b8592
      Greg Ungerer 提交于
      There is no reason we cannot use the generic iomap support to give us
      the ioread* and iowrite* family of IO access functions. The m68k arch with
      MMU enabled does, so this makes us consistent for all m68k now.
      
      Some potentially valid drivers will fail to compile without these,
      for example:
      
      drivers/i2c/busses/i2c-ocores.c:81:2: error: implicit declaration of
      function ‘iowrite8’ [-Werror=implicit-function-declaration]
      drivers/i2c/busses/i2c-ocores.c:86:2: error: implicit declaration of
      function ‘iowrite16’ [-Werror=implicit-function-declaration]
      drivers/i2c/busses/i2c-ocores.c:91:2: error: implicit declaration of
      function ‘iowrite32’ [-Werror=implicit-function-declaration]
      drivers/i2c/busses/i2c-ocores.c:96:2: error: implicit declaration of
      function ‘ioread8’ [-Werror=implicit-function-declaration]
      drivers/i2c/busses/i2c-ocores.c:101:2: error: implicit declaration of
      function ‘ioread16’ [-Werror=implicit-function-declaration]
      drivers/i2c/busses/i2c-ocores.c:106:2: error: implicit declaration of
      function ‘ioread32’ [-Werror=implicit-function-declaration]
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      f79b8592