1. 14 12月, 2009 11 次提交
    • M
      microblaze: ftrace: Add dynamic trace support · 7d241ff0
      Michal Simek 提交于
      With dynamic function tracer, by default, _mcount is defined as an
      "empty" function, it returns directly without any more action. When
      enabling it in user-space, it will jump to a real tracing
      function(ftrace_caller), and do the real job for us.
      
      Differ from the static function tracer, dynamic function tracer provides
      two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the
      tracing of some indicated kernel functions(set_ftrace_filter).
      
      In the kernel version, there is only one "_mcount" string for every
      kernel function, so, we just need to match this one in mcount_regex of
      scripts/recordmcount.pl.
      
      For more information please look at code and Documentation/trace folder.
      
      Steven ACK that scripts/recordmcount.pl part.
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      7d241ff0
    • M
      microblaze: ftrace: enable HAVE_FUNCTION_TRACE_MCOUNT_TEST · 6d9e60ce
      Michal Simek 提交于
      Implement MCOUNT_TEST in asm code - it is faster than use
      generic code
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      6d9e60ce
    • M
      microblaze: ftrace: add static function tracer · 2fd7c761
      Michal Simek 提交于
      If -pg of gcc is enabled with CONFIG_FUNCTION_TRACER=y. a calling to
      _mcount will be inserted into each kernel function. so, there is a
      possibility to trace the kernel functions in _mcount.
      
      This patch add the specific _mcount support for static function
      tracing. by default, ftrace_trace_function is initialized as
      ftrace_stub(an empty function), so, the default _mcount will introduce
      very little overhead. after enabling ftrace in user-space, it will jump
      to a real tracing function and do static function tracing for us.
      
      Commit message from Wu Zhangjin <wuzhangjin@gmail.com>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      2fd7c761
    • M
      microblaze: Add TRACE_IRQFLAGS_SUPPORT · a3cd613b
      Michal Simek 提交于
      There are just two major changes
      Renamed local_irq functions to raw_local_irq in irq.c.
      Added TRACE_IRQFLAGS_SUPPORT to Kconfig.debug.
      
      Look at Documentation/irqflags-tracing.txt
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      a3cd613b
    • M
      fb5a32dc
    • M
      microblaze: Lockdep support · bf2d8096
      Michal Simek 提交于
      Microblaze needs to do lock_init very soon because MMU init calls lock functions.
      
      Here is the explanation from Peter Zijlstra why we have to enable
      __ARCH_WANTS_INTERRUPTS_ON_CTSW.
      
      "So we schedule while holding rq->lock (for obvious reasons), but since
      lockdep tracks held locks per tasks, we need to transfer the held state
      from the prev to the next task. We do this by explicity calling
      spin_release(&rq->lock) in context_switch() right before switch_to(),
      and calling spin_acquire(&rq->lock) in
      finish_task_switch()->finish_lock_switch().
      
      Now, for some reason lockdep thinks that interrupts got enabled over the
      context switch (git grep __ARCH_WANTS_INTERRUPTS_ON_CTSW arch/microblaze
      doesn't seem to turn up anything).
      
      Clearly trying to acquire the rq->lock with interrupts enabled is a bad
      idea and lockdep warns you about this."
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      bf2d8096
    • M
      microblaze: Register timecounter/cyclecounter · 519e9f41
      Michal Simek 提交于
      It is the same counter as we use as free running one.
      I would like to use it for ftrace.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      519e9f41
    • M
      microblaze: Stack trace support · 24b45a12
      Michal Simek 提交于
      This is working implemetation but the problem is that
      Microblaze misses frame pointer that's why is there
      big loop which trace and show all addresses which are in text.
      It shows addresses which are in registers, etc.
      
      This is problem and this is the reason why all Microblaze
      traces are wrong. There is an option to do hacks and trace
      the kernel code but this is too complicated.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      24b45a12
    • M
      microblaze: Add IRQENTRY_TEXT to lds · 7cf79d59
      Michal Simek 提交于
      It is important for ftrace irqsoff support
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      7cf79d59
    • M
      microblaze: __init_begin symbol must be aligned · 13cdee23
      Michal Simek 提交于
      The problem was that free_initmem pass to  free_initrd_mem got
      bad aligned __init_begin symbol and free_initrd_mem don't care
      about __init_end but take PAGE_SIZE instead.
      
      Here is behavior in kernel bootlog.
      ramdisk_execute_command from (init/main.c) was rewrite
      
      Freeing unused kernel memory: 6224k freed
      Failed to execute ��������������{���
      Failed to execute ��������������{����.  Attempting defaults...
      Mounting proc:
      Mounting var:
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      13cdee23
    • M
      microblaze: GPIO reset support · 42a2478b
      Michal Simek 提交于
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      42a2478b
  2. 13 12月, 2009 11 次提交
    • L
      Merge branch 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6 · f4054253
      Linus Torvalds 提交于
      * 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6:
        IXP4xx: GTWX5715 platform only has two PCI IRQ lines, not four.
        IXP4xx: Introduce IXP4XX_GPIO_IRQ(n) macro and convert IXP4xx platform files.
        IXP4xx: move Gemtek GTWX5715 platform macros to the platform code.
        IXP4xx: Remove unused Motorola PrPMC1100 platform macros.
        IXP4xx: move FSG platform macros to the platform code.
        IXP4xx: move DSM G600 platform macros to the platform code.
        IXP4xx: move NAS100D platform macros to the platform code.
        IXP4xx: move NSLU2 platform macros to the platform code.
        IXP4xx: move Coyote platform macros to the platform code.
        IXP4xx: move AVILA platform macros to the platform code.
        IXP4xx: move IXDP425 platform macros to the platform code.
        IXP4xx: Extend PCI MMIO indirect address space to 1 GB.
        IXP4xx: Fix compilation failure with CONFIG_IXP4XX_INDIRECT_PCI.
        IXP4xx: Drop "__ixp4xx_" prefix from in/out/ioread/iowrite functions for clarity.
        IXP4xx: Rename indirect MMIO primitives from __ixp4xx_* to __indirect_*.
        IXP4xx: Ensure index is positive in irq_to_gpio() and npe_request().
        ARM: fix insl() and outsl() endianness on IXP4xx architecture.
        IXP4xx: Fix normally-disabled debugging text in drivers/net/arm/ixp4xx_eth.c.
        IXP4xx: change the timer base frequency to 66.666000 MHz.
      f4054253
    • L
      [BKL] add 'might_sleep()' to the outermost lock taker · f01eb364
      Linus Torvalds 提交于
      As shown by the previous patch (6698e347: "tty: Fix BKL taken under a
      spinlock bug introduced in the BKL split") the BKL removal is prone to
      some subtle issues, where removing the BKL in one place may in fact make
      a previously nested BKL call the new outer call, and then prone to nasty
      deadlocks with other spinlocks.
      
      In general, we should never take the BKL while we're holding a spinlock,
      so let's just add a "might_sleep()" to it (even though the BKL doesn't
      technically sleep - at least not yet), and we'll get nice warnings the
      next time this kind of problem happens during BKL removal.
      Acked-and-Tested-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f01eb364
    • A
      tty: Fix BKL taken under a spinlock bug introduced in the BKL split · 6698e347
      Alan Cox 提交于
      The fasync path takes the BKL (it probably doesn't need to in fact)
      while holding the file_list spinlock.  You can't do that with the kernel
      lock: it causes lock inversions and deadlocks.
      
      Leave the BKL over that bit for the moment.
      
      Identified by AKPM.
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Acked-and-Tested-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6698e347
    • L
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 09cea96c
      Linus Torvalds 提交于
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (151 commits)
        powerpc: Fix usage of 64-bit instruction in 32-bit altivec code
        MAINTAINERS: Add PowerPC patterns
        powerpc/pseries: Track previous CPPR values to correctly EOI interrupts
        powerpc/pseries: Correct pseries/dlpar.c build break without CONFIG_SMP
        powerpc: Make "intspec" pointers in irq_host->xlate() const
        powerpc/8xx: DTLB Miss cleanup
        powerpc/8xx: Remove DIRTY pte handling in DTLB Error.
        powerpc/8xx: Start using dcbX instructions in various copy routines
        powerpc/8xx: Restore _PAGE_WRITETHRU
        powerpc/8xx: Add missing Guarded setting in DTLB Error.
        powerpc/8xx: Fixup DAR from buggy dcbX instructions.
        powerpc/8xx: Tag DAR with 0x00f0 to catch buggy instructions.
        powerpc/8xx: Update TLB asm so it behaves as linux mm expects.
        powerpc/8xx: Invalidate non present TLBs
        powerpc/pseries: Serialize cpu hotplug operations during deactivate Vs deallocate
        pseries/pseries: Add code to online/offline CPUs of a DLPAR node
        powerpc: stop_this_cpu: remove the cpu from the online map.
        powerpc/pseries: Add kernel based CPU DLPAR handling
        sysfs/cpu: Add probe/release files
        powerpc/pseries: Kernel DLPAR Infrastructure
        ...
      09cea96c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · 6eb7365d
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Overwrite pin config on intel DG45ID board.
        intelhdmi - dont power off HDA link
        ALSA: hrtimer - Fix lock-up
        ALSA: intelhdmi - add channel mapping for typical configurations
        ALSA: intelhdmi - channel mapping applies to Pin
        ALSA: intelhdmi - accept DisplayPort pin
        ALSA: hda - show HBR(High Bit Rate) pin cap in procfs
        ALSA: hda - Fix LED GPIO setup for HP laptops with IDT codecs
        ASoC: Fix build of OMAP sound drivers
        ALSA: opti93x: fix irq releasing if the irq cannot be allocated
      6eb7365d
    • L
      Merge branch 'omap-for-linus' of... · 9c3936cb
      Linus Torvalds 提交于
      Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
      
      * 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (75 commits)
        omap3: Fix OMAP35XX_REV macros
        omap: serial: fix non-empty uart fifo read abort
        omap3: Zoom2/3: Update hsmmc board config params
        omap3 : Enable TWL4030 Keypad for Zoom2 and Zoom3 boards
        omap3: id code detection 3525 vs 3515
        omap3: rx51: Use wl1251 in SPI mode 3
        omap3: zoom2/3: make MMC slot work again
        omap1: htcherald: Update defconfig to include mux support
        omap1: LCD_DMA: Use some define rather than a hexadecimal
        omap: header: remove unused data-type
        omap: arch/arm/plat-omap/devices.c - sort alphabetically
        omap: Correcting GPMC_CONFIG1_DEVICETYPE_NAND
        OMAP3: serial - allow platforms specify which UARTs to initialize
        omap3: cm-t35: add mux initialization
        OMAP4: Sync up omap4430 defconfig
        OMAP4: Remove the secondary wait loop
        OMAP4: AuxCoreBoot registers only accessible in secure mode
        OMAP4: Fix SRAM base and size
        OMAP4: Fix cpu detection
        omap3: pandora: board file updates for .33
        ...
      9c3936cb
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 5de76b18
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
        be2net: fix error in rx completion processing.
        igbvf: avoid reset storms due to mailbox issues
        igb: fix handling of mailbox collisions between PF/VF
        usb: remove rare pm primitive for conversion to new API
      5de76b18
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 · 8d0e7fb9
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
        slab, kmemleak: pass the correct pointer to kmemleak_erase()
        slab, kmemleak: stop calling kmemleak_erase() unconditionally
        SLAB: Fix unlikely() annotation in __cache_alloc_node()
        SLAB: Fix lockdep annotations for CPU hotplug
        SLUB: Fix __GFP_ZERO unlikely() annotation
        slub: allow stats to be cleared
      8d0e7fb9
    • L
      Merge branch 'sched-fixes-for-linus' of... · 702a7c76
      Linus Torvalds 提交于
      Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (21 commits)
        sched: Remove forced2_migrations stats
        sched: Fix memory leak in two error corner cases
        sched: Fix build warning in get_update_sysctl_factor()
        sched: Update normalized values on user updates via proc
        sched: Make tunable scaling style configurable
        sched: Fix missing sched tunable recalculation on cpu add/remove
        sched: Fix task priority bug
        sched: cgroup: Implement different treatment for idle shares
        sched: Remove unnecessary RCU exclusion
        sched: Discard some old bits
        sched: Clean up check_preempt_wakeup()
        sched: Move update_curr() in check_preempt_wakeup() to avoid redundant call
        sched: Sanitize fork() handling
        sched: Clean up ttwu() rq locking
        sched: Remove rq->clock coupling from set_task_cpu()
        sched: Consolidate select_task_rq() callers
        sched: Remove sysctl.sched_features
        sched: Protect sched_rr_get_param() access to task->sched_class
        sched: Protect task->cpus_allowed access in sched_getaffinity()
        sched: Fix balance vs hotplug race
        ...
      
      Fixed up conflicts in kernel/sysctl.c (due to sysctl cleanup)
      702a7c76
    • T
      Merge branch 'topic/hda' into for-linus · 84a3bd06
      Takashi Iwai 提交于
      84a3bd06
    • T
      Merge branch 'topic/asoc' into for-linus · f52d7a43
      Takashi Iwai 提交于
      f52d7a43
  3. 12 12月, 2009 18 次提交