1. 11 Dec, 2009 10 commits
    • Jason Wessel's avatar
      kgdb,x86: do not set kgdb_single_step on x86 · 8097551d
      Jason Wessel authored
      
      
      On an SMP system the kgdb_single_step flag has the possibility to
      indefinitely hang the system in the case.  Consider the case where,
      CPU 1 has the schedule lock and CPU 0 is set to single step, there is
      no way for CPU 0 to run another task.
      
      The easy way to observe the problem is to make 2 cpus busy, and run
      the kgdb test suite.  You will see that it hangs the system very
      quickly.
      
      while [ 1 ] ; do find /proc > /dev/null 2>&1 ; done &
      while [ 1 ] ; do find /proc > /dev/null 2>&1 ; done &
      echo V1 > /sys/module/kgdbts/parameters/kgdbts
      
      The side effect of this patch is that there is the possibility
      to miss a breakpoint in the case that a single step operation
      was executed to step over a breakpoint in common code.
      
      The trade off of the missed breakpoint is preferred to
      hanging the kernel.  This can be fixed in the future by
      using kprobes or another strategy to step over planted
      breakpoints with out of line execution.
      
      CC: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      8097551d
    • Jason Wessel's avatar
      kgdb: allow for cpu switch when single stepping · 028e7b17
      Jason Wessel authored
      
      
      The kgdb core should not assume that a single step operation of a
      kernel thread will complete on the same CPU.  The single step flag is
      set at the "thread" level and it is possible in a multi cpu system
      that a kernel thread can get scheduled on another cpu the next time it
      is run.
      
      As a further safety net in case a slave cpu is hung, the debug master
      cpu will try 100 times before giving up and assuming control of the
      slave cpus is no longer possible.  It is more useful to be able to get
      some information out of kgdb instead of spinning forever.
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      028e7b17
    • Jason Wessel's avatar
      kgdb,i386: Fix corner case access to ss with NMI watch dog exception · cf6f196d
      Jason Wessel authored
      
      
      It is possible for the user_mode_vm(regs) check to return true on the
      i368 arch for a non master kgdb cpu or when the master kgdb cpu
      handles the NMI watch dog exception.
      
      The solution is simply to select the correct gdb_ss location
      based on the check to user_mode_vm(regs).
      
      CC: Ingo Molnar <mingo@elte.hu>
      Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      cf6f196d
    • Geert Uytterhoeven's avatar
      kgdb: Replace strstr() by strchr() for single-character needles · 59d309f9
      Geert Uytterhoeven authored
      
      
      Some versions of gcc replace calls to strstr() with single-character
      "needle" string parameters by calls to strchr() behind our back.
      This causes linking errors if strchr() is defined as an inline function
      in <asm/string.h> (e.g. on m68k, which BTW doesn't have kgdb support).
      
      Prevent this by explicitly calling strchr() instead.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      59d309f9
    • Roel Kluin's avatar
      kgdbts: Read buffer overflow · b4f1b67b
      Roel Kluin authored
      
      
      Prevent write to put_buf[BUFMAX] in kgdb test suite.
      
      If put_buf_cnt was BUFMAX - 1 at the earlier test,
      `\0' is written to put_buf[BUFMAX].
      Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      b4f1b67b
    • Jason Wessel's avatar
      kgdb: Read buffer overflow · 84667d48
      Jason Wessel authored
      
      
      Roel Kluin reported an error found with Parfait.  Where we want to
      ensure that that kgdb_info[-1] never gets accessed.
      
      Also check to ensure any negative tid does not exceed the size of the
      shadow CPU array, else report critical debug context because it is an
      internal kgdb failure.
      Reported-by: default avatarRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      84667d48
    • Roel Kluin's avatar
      kgdb,x86: remove redundant test · a5d09d68
      Roel Kluin authored
      
      
      The for loop starts with a breakno of 0, and ends when it's 4. so
      this test is always true.
      Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      a5d09d68
    • Linus Torvalds's avatar
      Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · 3ef884b4
      Linus Torvalds authored
      * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (189 commits)
        drm/radeon/kms: fix warning about cur_placement being uninitialised.
        drm/ttm: Print debug information on memory manager when eviction fails
        drm: Add memory manager debug function
        drm/radeon/kms: restore surface registers on resume.
        drm/radeon/kms/r600/r700: fallback gracefully on ucode failure
        drm/ttm: Initialize eviction placement in case the driver callback doesn't
        drm/radeon/kms: cleanup structure and module if initialization fails
        drm/radeon/kms: actualy set the eviction placements we choose
        drm/radeon/kms: Fix NULL ptr dereference
        drm/radeon/kms/avivo: add support for new pll selection algo
        drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup
        drm/radeon/kms: fix return value from fence function.
        drm/radeon: Remove tests for -ERESTART from the TTM code.
        drm/ttm: Have the TTM code return -ERESTARTSYS instead of -ERESTART.
        drm/radeon/kms: Convert radeon to new TTM validation API (V2)
        drm/ttm: Rework validation & memory space allocation (V3)
        drm: Add search/get functions to get a block in a specific range
        drm/radeon/kms: fix avivo tiling regression since radeon object rework
        drm/i915: Remove a debugging printk from hangcheck
        drm/radeon/kms: make sure i2c id matches
        ...
      3ef884b4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 4e5df806
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (21 commits)
        amd64_edac: bump driver version
        amd64_edac: fix use-uninitialised bug
        amd64_edac: correct sys address to chip select mapping
        amd64_edac: add a leaner syndrome decoding algorithm
        amd64_edac: remove early hw support check
        amd64_edac: detect DDR3 memory type
        edac: add memory types strings for debugging
        edac, mce: update AMD F10h revD check
        amd64_edac: remove unneeded extract_error_address wrapper
        amd64_edac: rename StinkyIdentifier
        amd64_edac: remove superfluous dbg printk
        amd64_edac: enhance address to DRAM bank mapping
        amd64_edac: cleanup f10_early_channel_count
        amd64_edac: dump DIMM sizes on K8 too
        amd64_edac: cleanup rest of amd64_dump_misc_regs
        amd64_edac: cleanup DRAM cfg low debug output
        amd64_edac: wrap-up pci config read error handling
        amd64_edac: unify MCGCTL ECC switching
        cpumask: use modern cpumask style in drivers/edac/amd64_edac.c
        amd64_edac: make DRAM regions output more human-readable
        ...
      4e5df806
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux · aa2cf420
      Linus Torvalds authored
      * 'for-linus' of git://gitorious.org/linux-omap-dss2/linux:
        MAINTAINERS: Add OMAP2/3 DSS and OMAPFB maintainer
        OMAP: SDP: Enable DSS2 for OMAP3 SDP board
        OMAP: DSS2: Taal DSI command mode panel driver
        OMAP: DSS2: Add generic and Sharp panel drivers
        OMAP: DSS2: omapfb driver
        OMAP: DSS2: DSI driver
        OMAP: DSS2: SDI driver
        OMAP: DSS2: RFBI driver
        OMAP: DSS2: Video encoder driver
        OMAP: DSS2: DPI driver
        OMAP: DSS2: DISPC
        OMAP: DSS2: Add more core files
        OMAP: DSS2: Display Subsystem Driver core
        OMAP: DSS2: Documentation for DSS2
        OMAP: Add support for VRFB rotation engine
        OMAP: Add VRAM manager
        OMAP: OMAPFB: add omapdss device
        OMAP: OMAPFB: split omapfb.h
        OMAP2: Add funcs for writing SMS_ROT_* registers
      aa2cf420
  2. 10 Dec, 2009 30 commits