1. 06 Dec, 2010 4 commits
    • Will Deacon's avatar
      ARM: hw_breakpoint: disable preemption during debug exception handling · 7e202696
      Will Deacon authored
      On ARM, debug exceptions occur in the form of data or prefetch aborts.
      One difference is that debug exceptions require access to per-cpu banked
      registers and data structures which are not saved in the low-level exception
      code. For kernels built with CONFIG_PREEMPT, there is an unlikely scenario
      that the debug handler ends up running on a different CPU from the one
      that originally signalled the event, resulting in random data being read
      from the wrong registers.
      
      This patch adds a debug_entry macro to the low-level exception handling
      code which checks whether the taken exception is a debug exception. If
      it is, the preempt count for the faulting process is incremented. After
      the debug handler has finished, the count is decremented.
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      7e202696
    • Will Deacon's avatar
      ARM: hw_breakpoint: correct and simplify alignment fixup code · 6ee33c27
      Will Deacon authored
      The current hw_breakpoint code tries to fix up the alignment of
      breakpoints so that we can make use of sparse byte-address-select
      bits in the control register and give the illusion that we can
      set breakpoints on unaligned addresses.
      
      Although this works on v6 cores, v7 forbids this behaviour, instead
      requiring breakpoints to be set on aligned addresses and have contiguous
      byte-address-select ranges depending on the instruction set in use.
      For ARM the only supported size is 4 bytes, whilst Thumb-2 also permits
      2 byte breakpoints (watchpoints can be of 1, 2, 4 or 8 bytes long).
      
      This patch simplifies the alignment fixup code so that we require
      addresses to be aligned to the size of the corresponding breakpoint.
      This allows us to handle the common case of breaking on a half-word
      aligned Thumb-2 instruction and also allows us to set byte watchpoints
      on arbitrary addresses.
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      6ee33c27
    • Will Deacon's avatar
      ARM: hw_breakpoint: reset control registers in hotplug path · 7d99331e
      Will Deacon authored
      The ARMv7 debug architecture doesn't make any guarantees about the
      contents of debug control registers following a debug logic reset.
      
      This patch ensures that we reset the control registers when a cpu
      comes ONLINE (for example, with hotplug) so that when we enable
      monitor mode while inserting a breakpoint we won't exhibit random
      behaviour.
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      7d99331e
    • Will Deacon's avatar
      ARM: hw_breakpoint: ensure OS lock is clear before writing to debug registers · ac88e071
      Will Deacon authored
      ARMv7 architects a system for saving and restoring the debug registers
      across low-power modes. At the heart of this system is a lock register
      which, when set, forbids writes to the debug registers. While locked,
      writes to debug registers via the co-processor interface will result
      in undefined instruction traps. Linux currently doesn't make use of
      this feature because we update the debug registers on context switch
      anyway, however the status of the lock is IMPLEMENTATION DEFINED on
      reset.
      
      This patch ensures that the lock is cleared during boot so that we
      can write to the debug registers safely.
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      ac88e071
  2. 30 Nov, 2010 2 commits
  3. 29 Nov, 2010 18 commits
  4. 28 Nov, 2010 15 commits
  5. 27 Nov, 2010 1 commit
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · 0f639a3c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (30 commits)
        ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization
        ASoC: Fix resource reclaim for osk5912
        ASoC: tlv320aic3x - fix variable may be used uninitialized warning
        ASoC: davinci-vcif - fix a memory leak
        ASoC: phycore-ac97: fix resource leak
        ASoC: imx-ssi: fix resource leak
        ASoC: simone: fix resource leak in simone_init error path
        ASoC: sam9g20_wm8731: fix resource leak in at91sam9g20ek_init error path
        ASoC: snd-soc-afeb9260: remove unneeded platform_device_del in error path
        ASoC: pcm030-audio-fabric: fix resource leak in pcm030_fabric_init error path
        ASoC: efika-audio-fabric: fix resource leak in efika_fabric_init error path
        ASoC: Call snd_soc_unregister_dais instead of snd_soc_unregister_dai in sh4_soc_dai_remove
        ASoC: fix SND_PXA2XX_LIB Kconfig warning
        ALSA: hda - Fix ALC660-VD/ALC861-VD capture/playback mixers
        ALSA: HDA: Add an extra DAC for Realtek ALC887-VD
        ASoC: nuc900-ac97: fix a memory leak
        ASoC: Return proper error for omap3pandora_soc_init
        ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq <= 16500000
        ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal mode
        ALSA: hda - Fix Acer 7730G support
        ...
      0f639a3c