1. 20 5月, 2014 1 次提交
  2. 11 3月, 2014 3 次提交
  3. 05 3月, 2014 1 次提交
    • T
      m68k: Do not rely on magic indirect includes · abcfc543
      Thomas Gleixner 提交于
      commit: 8f945a33 (genirq: Move kstat_incr_irqs_this_cpu() to core)
      unearthed the following:
      
      arch/m68k/kernel/ints.c:34:15: error: variable 'auto_irq_chip' has initializer but incomplete type
      arch/m68k/kernel/ints.c:35:2: error: unknown field 'name' specified in initializer
      arch/m68k/kernel/ints.c:35:2: warning: excess elements in struct initializer [enabled by default]
      
      The reason is that this file requires linux/irq.h and magically
      pulled that in via linux/kernel_stat.h
      
      The commit above got rid of the pointless include of linux/irq.h in
      linux/kernel_stat.h and therefor broke the build.
      
      Include linux/irq.h
      
      Reported-by: fengguang.wu@intel.com
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      abcfc543
  4. 11 2月, 2014 1 次提交
  5. 19 1月, 2014 1 次提交
  6. 31 12月, 2013 1 次提交
    • G
      m68k: Convert arch/m68k/kernel/traps.c to pr_*() · 245b815c
      Geert Uytterhoeven 提交于
      Also fix a few printf-style formats, to get rid of the following compiler
      warnings when DEBUG is enabled:
      
      arch/m68k/kernel/traps.c: In function ‘access_error060’:
      arch/m68k/kernel/traps.c:166: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’
      arch/m68k/kernel/traps.c: In function ‘bus_error030’:
      arch/m68k/kernel/traps.c:568: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 2 has type ‘void *’
      arch/m68k/kernel/traps.c:682: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 2 has type ‘void *’
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      245b815c
  7. 08 12月, 2013 2 次提交
  8. 26 11月, 2013 10 次提交
  9. 14 11月, 2013 1 次提交
    • 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
  10. 26 8月, 2013 2 次提交
  11. 15 7月, 2013 1 次提交
  12. 28 6月, 2013 1 次提交
    • G
      lib: Move fonts from drivers/video/console/ to lib/fonts/ · ee89bd6b
      Geert Uytterhoeven 提交于
      Several drivers need font support independent of CONFIG_VT, cfr. commit
      9cbce8d7e1dae0744ca4f68d62aa7de18196b6f4, "console/font: Refactor font
      support code selection logic").
      Hence move the fonts and their support logic from drivers/video/console/ to
      its own library directory lib/fonts/.
      This also allows to limit processing of drivers/video/console/Makefile to
      CONFIG_VT=y again.
      
      [Kevin Hilman <khilman@linaro.org>: Update arch/arm/boot/compressed/Makefile]
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      ee89bd6b
  13. 25 6月, 2013 1 次提交
  14. 31 5月, 2013 1 次提交
    • F
      m68k/mac: Fix unexpected interrupt with CONFIG_EARLY_PRINTK · df66834a
      Finn Thain 提交于
      The present code does not wait for the SCC to finish resetting itself
      before trying to initialise the device. The result is that the SCC
      interrupt sources become enabled (if they weren't already). This leads to
      an early boot crash (unexpected interrupt) given CONFIG_EARLY_PRINTK. Fix
      this by adding a delay. A successful reset disables the interrupt sources.
      
      Also, after the reset for channel A setup, the SCC then gets a second
      reset for channel B setup which leaves channel A uninitialised again. Fix
      this by performing the reset only once.
      Signed-off-by: NFinn Thain <fthain@telegraphics.com.au>
      Cc: stable@vger.kernel.org
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      df66834a
  15. 01 5月, 2013 1 次提交
    • T
      dump_stack: consolidate dump_stack() implementations and unify their behaviors · 196779b9
      Tejun Heo 提交于
      Both dump_stack() and show_stack() are currently implemented by each
      architecture.  show_stack(NULL, NULL) dumps the backtrace for the
      current task as does dump_stack().  On some archs, dump_stack() prints
      extra information - pid, utsname and so on - in addition to the
      backtrace while the two are identical on other archs.
      
      The usages in arch-independent code of the two functions indicate
      show_stack(NULL, NULL) should print out bare backtrace while
      dump_stack() is used for debugging purposes when something went wrong,
      so it does make sense to print additional information on the task which
      triggered dump_stack().
      
      There's no reason to require archs to implement two separate but mostly
      identical functions.  It leads to unnecessary subtle information.
      
      This patch expands the dummy fallback dump_stack() implementation in
      lib/dump_stack.c such that it prints out debug information (taken from
      x86) and invokes show_stack(NULL, NULL) and drops arch-specific
      dump_stack() implementations in all archs except blackfin.  Blackfin's
      dump_stack() does something wonky that I don't understand.
      
      Debug information can be printed separately by calling
      dump_stack_print_info() so that arch-specific dump_stack()
      implementation can still emit the same debug information.  This is used
      in blackfin.
      
      This patch brings the following behavior changes.
      
      * On some archs, an extra level in backtrace for show_stack() could be
        printed.  This is because the top frame was determined in
        dump_stack() on those archs while generic dump_stack() can't do that
        reliably.  It can be compensated by inlining dump_stack() but not
        sure whether that'd be necessary.
      
      * Most archs didn't use to print debug info on dump_stack().  They do
        now.
      
      An example WARN dump follows.
      
       WARNING: at kernel/workqueue.c:4841 init_workqueues+0x35/0x505()
       Hardware name: empty
       Modules linked in:
       CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0-rc1-work+ #9
        0000000000000009 ffff88007c861e08 ffffffff81c614dc ffff88007c861e48
        ffffffff8108f50f ffffffff82228240 0000000000000040 ffffffff8234a03c
        0000000000000000 0000000000000000 0000000000000000 ffff88007c861e58
       Call Trace:
        [<ffffffff81c614dc>] dump_stack+0x19/0x1b
        [<ffffffff8108f50f>] warn_slowpath_common+0x7f/0xc0
        [<ffffffff8108f56a>] warn_slowpath_null+0x1a/0x20
        [<ffffffff8234a071>] init_workqueues+0x35/0x505
        ...
      
      v2: CPU number added to the generic debug info as requested by s390
          folks and dropped the s390 specific dump_stack().  This loses %ksp
          from the debug message which the maintainers think isn't important
          enough to keep the s390-specific dump_stack() implementation.
      
          dump_stack_print_info() is moved to kernel/printk.c from
          lib/dump_stack.c.  Because linkage is per objecct file,
          dump_stack_print_info() living in the same lib file as generic
          dump_stack() means that archs which implement custom dump_stack()
          - at this point, only blackfin - can't use dump_stack_print_info()
          as that will bring in the generic version of dump_stack() too.  v1
          The v1 patch broke build on blackfin due to this issue.  The build
          breakage was reported by Fengguang Wu.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NJesper Nilsson <jesper.nilsson@axis.com>
      Acked-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>	[s390 bits]
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Fengguang Wu <fengguang.wu@intel.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Acked-by: Richard Kuo <rkuo@codeaurora.org>		[hexagon bits]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      196779b9
  16. 17 4月, 2013 1 次提交
  17. 08 4月, 2013 1 次提交
  18. 04 3月, 2013 1 次提交
  19. 09 2月, 2013 1 次提交
  20. 04 2月, 2013 3 次提交
  21. 21 1月, 2013 1 次提交
  22. 04 1月, 2013 1 次提交
    • G
      ARCH: drivers remove __dev* attributes. · b881bc46
      Greg Kroah-Hartman 提交于
      This fixes up all of the smaller arches that had __dev* markings for
      their platform-specific drivers.
      
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitdata,
      __devinitconst, and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: Bob Liu <lliubbo@gmail.com>
      Cc: Srinivas Kandagatla <srinivas.kandagatla@st.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Myron Stowe <myron.stowe@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Thierry Reding <thierry.reding@avionic-design.de>
      Cc: Greg Ungerer <gerg@uclinux.org>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Yong Zhang <yong.zhang0@gmail.com>
      Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Cc: Jan Glauber <jang@linux.vnet.ibm.com>
      Cc: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
      Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b881bc46
  23. 26 12月, 2012 1 次提交
  24. 25 12月, 2012 2 次提交
    • S
      m68k: set arch_gettimeoffset directly · c8d5ba18
      Stephen Warren 提交于
      remove m68k's mach_gettimeoffset function pointer, and instead directly
      set the arch_gettimeoffset function pointer. This requires multiplying
      all function results by 1000, since the removed m68k_gettimeoffset() did
      this. Also, s/unsigned long/u32/ just to make the function prototypes
      exactly match that of arch_gettimeoffset.
      
      Cc: Joshua Thompson <funaho@jurai.org>
      Cc: Sam Creasey <sammy@sammy.net>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: NPhil Blundell <philb@gnu.org>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      c8d5ba18
    • S
      time: convert arch_gettimeoffset to a pointer · 7b1f6207
      Stephen Warren 提交于
      Currently, whenever CONFIG_ARCH_USES_GETTIMEOFFSET is enabled, each
      arch core provides a single implementation of arch_gettimeoffset(). In
      many cases, different sub-architectures, different machines, or
      different timer providers exist, and so the arch ends up implementing
      arch_gettimeoffset() as a call-through-pointer anyway. Examples are
      ARM, Cris, M68K, and it's arguable that the remaining architectures,
      M32R and Blackfin, should be doing this anyway.
      
      Modify arch_gettimeoffset so that it itself is a function pointer, which
      the arch initializes. This will allow later changes to move the
      initialization of this function into individual machine support or timer
      drivers. This is particularly useful for code in drivers/clocksource
      which should rely on an arch-independant mechanism to register their
      implementation of arch_gettimeoffset().
      
      This patch also converts the Cris architecture to set arch_gettimeoffset
      directly to the final implementation in time_init(), because Cris already
      had separate time_init() functions per sub-architecture. M68K and ARM
      are converted to set arch_gettimeoffset to the final implementation in
      later patches, because they already have function pointers in place for
      this purpose.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: NJesper Nilsson <jesper.nilsson@axis.com>
      Acked-by: NJohn Stultz <johnstul@us.ibm.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      7b1f6207