1. 11 12月, 2006 29 次提交
  2. 10 12月, 2006 11 次提交
    • L
      Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 · af1713e0
      Linus Torvalds 提交于
      * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6:
        [PATCH] x86-64: no paravirt for X86_VOYAGER or X86_VISWS
        [PATCH] i386: Fix io_apic.c warning
        [PATCH] i386: export smp_num_siblings for oprofile
        [PATCH] x86: Work around gcc 4.2 over aggressive optimizer
        [PATCH] x86: Fix boot hang due to nmi watchdog init code
        [PATCH] x86: Fix verify_quirk_intel_irqbalance()
        [PATCH] i386: Update defconfig
        [PATCH] x86-64: Update defconfig
      af1713e0
    • R
      [PATCH] x86-64: no paravirt for X86_VOYAGER or X86_VISWS · f0f32fcc
      Randy Dunlap 提交于
      Since Voyager and Visual WS already define ARCH_SETUP,
      it looks like PARAVIRT shouldn't be offered for them.
      
      In file included from arch/i386/kernel/setup.c:63:
      include/asm-i386/mach-visws/setup_arch.h:8:1: warning: "ARCH_SETUP" redefin=
      ed
      In file included from include/asm/msr.h:5,
                       from include/asm/processor.h:17,
                       from include/asm/thread_info.h:16,
                       from include/linux/thread_info.h:21,
                       from include/linux/preempt.h:9,
                       from include/linux/spinlock.h:49,
                       from include/linux/capability.h:45,
                       from include/linux/sched.h:46,
                       from arch/i386/kernel/setup.c:26:
      include/asm/paravirt.h:163:1: warning: this is the location of the previous=
       definition
      In file included from arch/i386/kernel/setup.c:63:
      include/asm-i386/mach-visws/setup_arch.h:8:1: warning: "ARCH_SETUP" redefin=
      ed
      In file included from include/asm/msr.h:5,
                       from include/asm/processor.h:17,
                       from include/asm/thread_info.h:16,
                       from include/linux/thread_info.h:21,
                       from include/linux/preempt.h:9,
                       from include/linux/spinlock.h:49,
                       from include/linux/capability.h:45,
                       from include/linux/sched.h:46,
                       from arch/i386/kernel/setup.c:26:
      include/asm/paravirt.h:163:1: warning: this is the location of the previous=
       definition
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      f0f32fcc
    • A
      [PATCH] i386: Fix io_apic.c warning · 306a22c2
      Andi Kleen 提交于
      gcc 4.2 warns
      
      linux/arch/i386/kernel/io_apic.c: In function ‘create_irq’:
      linux/arch/i386/kernel/io_apic.c:2488: warning: ‘vector’ may be used uninitialized in this function
      
      The warning is false, but somewhat legitimate so work around it.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      306a22c2
    • R
      [PATCH] i386: export smp_num_siblings for oprofile · 7e74437c
      Randy Dunlap 提交于
      oprofile uses smp_num_siblings without testing for CONFIG_X86_HT.
      I looked at modifying oprofile, but this way is cleaner & simpler
      and I didn't see a good reason not to just export it when CONFIG_SMP.
      
      WARNING: "smp_num_siblings" [arch/i386/oprofile/oprofile.ko] undefined!
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      7e74437c
    • A
      [PATCH] x86: Work around gcc 4.2 over aggressive optimizer · 1bac3b38
      Andi Kleen 提交于
      The new PDA code uses a dummy _proxy_pda variable to describe
      memory references to the PDA. It is never referenced
      in inline assembly, but exists as input/output arguments.
      gcc 4.2 in some cases can CSE references to this which causes
      unresolved symbols.  Define it to zero to avoid this.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      1bac3b38
    • R
      [PATCH] x86: Fix boot hang due to nmi watchdog init code · 92715e28
      Ravikiran G Thirumalai 提交于
      2.6.19  stopped booting (or booted based on build/config) on our x86_64
      systems due to a bug introduced in 2.6.19.  check_nmi_watchdog schedules an
      IPI on all cpus to  busy wait on a flag, but fails to set the busywait
      flag if NMI functionality is disabled.  This causes the secondary cpus
      to spin in an endless loop, causing the kernel bootup to hang.
      Depending upon the build, the  busywait flag got overwritten (stack variable)
      and caused  the kernel to bootup on certain builds.  Following patch fixes
      the bug by setting the busywait flag before returning from check_nmi_watchdog.
      I guess using a stack variable is not good here as the calling function could
      potentially return while the busy wait loop is still spinning on the flag.
      
      AK: I redid the patch significantly to be cleaner
      Signed-off-by: NRavikiran Thirumalai <kiran@scalex86.org>
      Signed-off-by: NShai Fultheim <shai@scalex86.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      92715e28
    • A
      [PATCH] x86: Fix verify_quirk_intel_irqbalance() · 16d279d2
      Andi Kleen 提交于
      Fix verify_quirk_intel_irqbalance(). genapic checks should really
      happen only on affected versions of the E7520/E7320/E7525 based platforms.
      
      AK: This should akpm's Coyote SDV
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      16d279d2
    • A
      [PATCH] i386: Update defconfig · e0f27981
      Andi Kleen 提交于
      Signed-off-by: NAndi Kleen <ak@suse.de>
      e0f27981
    • A
      [PATCH] x86-64: Update defconfig · 9f25441f
      Andi Kleen 提交于
      Signed-off-by: NAndi Kleen <ak@suse.de>
      9f25441f
    • L
      Merge branch 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · 9b3a89f8
      Linus Torvalds 提交于
      * 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (21 commits)
        Fix http://bugzilla.kernel.org/show_bug.cgi?id=7606
        drm: add flag for mapping PCI DMA buffers read-only.
        drm: fix up irqflags in drm_lock.c
        drm: i915 updates
        drm: i915: fix up irqflags arg
        drm: i915: Only return EBUSY after we've established we need to schedule a new swap.
        drm: i915: Fix 'sequence has passed' condition in i915_vblank_swap().
        drm: i915: Add SAREA fileds for determining which pipe to sync window buffer swaps to.
        drm: Make handling of dev_priv->vblank_pipe more robust.
        drm: DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead
        drm: i915: Add ioctl for scheduling buffer swaps at vertical blanks.
        drm: Core vsync: Don't clobber target sequence number when scheduling signal.
        drm: Core vsync: Add flag DRM_VBLANK_NEXTONMISS.
        drm: Make locked tasklet handling more robust.
        drm: drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.
        drm: Change first valid DRM drawable ID to be 1 instead of 0.
        drm: drawable locking + memory management fixes + copyright
        drm: Add support for interrupt triggered driver callback with lock held to DRM core.
        drm: Add support for tracking drawable information to core
        drm: add support for secondary vertical blank interrupt to i915
        ...
      9b3a89f8
    • D
      [PATCH] WorkStruct: Use direct assignment rather than cmpxchg() · 4594bf15
      David Howells 提交于
      Use direct assignment rather than cmpxchg() as the latter is unavailable
      and unimplementable on some platforms and is actually unnecessary.
      
      The use of cmpxchg() was to guard against two possibilities, neither of
      which can actually occur:
      
       (1) The pending flag may have been unset or may be cleared.  However, given
           where it's called, the pending flag is _always_ set.  I don't think it
           can be unset whilst we're in set_wq_data().
      
           Once the work is enqueued to be actually run, the only way off the queue
           is for it to be actually run.
      
           If it's a delayed work item, then the bit can't be cleared by the timer
           because we haven't started the timer yet.  Also, the pending bit can't be
           cleared by cancelling the delayed work _until_ the work item has had its
           timer started.
      
       (2) The workqueue pointer might change.  This can only happen in two cases:
      
           (a) The work item has just been queued to actually run, and so we're
               protected by the appropriate workqueue spinlock.
      
           (b) A delayed work item is being queued, and so the timer hasn't been
           	 started yet, and so no one else knows about the work item or can
           	 access it (the pending bit protects us).
      
           Besides, set_wq_data() _sets_ the workqueue pointer unconditionally, so
           it can be assigned instead.
      
      So, replacing the set_wq_data() with a straight assignment would be okay
      in most cases.
      
      The problem is where we end up tangling with test_and_set_bit() emulated
      using spinlocks, and even then it's not a problem _provided_
      test_and_set_bit() doesn't attempt to modify the word if the bit was
      set.
      
      If that's a problem, then a bitops-proofed assignment will be required -
      equivalent to atomic_set() vs other atomic_xxx() ops.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4594bf15