1. 06 3月, 2007 8 次提交
    • P
      [NETFILTER]: conntrack: fix {nf,ip}_ct_iterate_cleanup endless loops · ec68e97d
      Patrick McHardy 提交于
      Fix {nf,ip}_ct_iterate_cleanup unconfirmed list handling:
      
      - unconfirmed entries can not be killed manually, they are removed on
        confirmation or final destruction of the conntrack entry, which means
        we might iterate forever without making forward progress.
      
        This can happen in combination with the conntrack event cache, which
        holds a reference to the conntrack entry, which is only released when
        the packet makes it all the way through the stack or a different
        packet is handled.
      
      - taking references to an unconfirmed entry and using it outside the
        locked section doesn't work, the list entries are not refcounted and
        another CPU might already be waiting to destroy the entry
      
      What the code really wants to do is make sure the references of the hash
      table to the selected conntrack entries are released, so they will be
      destroyed once all references from skbs and the event cache are dropped.
      
      Since unconfirmed entries haven't even entered the hash yet, simply mark
      them as dying and skip confirmation based on that.
      
      Reported and tested by Chuck Ebbert <cebbert@redhat.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec68e97d
    • I
      [PATCH] paravirt: re-enable COMPAT_VDSO · c3442e29
      Ingo Molnar 提交于
      CONFIG_PARAVIRT broke old glibc bootup: it silently turned off the
      selectability of CONFIG_COMPAT_VDSO and thus rendered distro kernels
      unbootable on old-style VDSO glibc setups.
      
      the proper solution is to keep COMPAT_VDSO available - if a hypervisor
      needs any modification of that concept then we'll judge those changes in
      full context, once those changes are submitted.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c3442e29
    • L
      Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight · 227c5fe7
      Linus Torvalds 提交于
      * 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
        backlight: Allow enable/disable of fb backlights, fixing regressions
        backlight: Fix nvidia backlight initial brightness
      227c5fe7
    • I
      [PATCH] disable NMI watchdog by default · 6ebf622b
      Ingo Molnar 提交于
      there's a new NMI watchdog related problem: KVM crashes on certain
      bzImages because ... we enable the NMI watchdog by default (even if the
      user does not ask for it) , and no other OS on this planet does that so
      KVM doesnt have emulation for that yet. So KVM injects a #GP, which
      crashes the Linux guest:
      
       general protection fault: 0000 [#1]
       PREEMPT SMP
       Modules linked in:
       CPU:    0
       EIP:    0060:[<c011a8ae>]    Not tainted VLI
       EFLAGS: 00000246   (2.6.20-rc5-rt0 #3)
       EIP is at setup_apic_nmi_watchdog+0x26d/0x3d3
      
      and no, i did /not/ request an nmi_watchdog on the boot command line!
      
      Solution: turn off that darn thing! It's a debug tool, not a 'make life
      harder' tool!!
      
      with this patch the KVM guest boots up just fine.
      
      And with this my laptop (Lenovo T60) also stopped its sporadic hard
      hanging (sometimes in acpi_init(), sometimes later during bootup,
      sometimes much later during actual use) as well. It hung with both
      nmi_watchdog=1 and nmi_watchdog=2, so it's generally the fact of NMI
      injection that is causing problems, not the NMI watchdog variant, nor
      any particular bootup code.
      
      [ NMI breaks on some systems, esp in combination with SMM -Arjan ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6ebf622b
    • I
      [PATCH] paravirt: let users decide whether they want VMI · 0d05ad2c
      Ingo Molnar 提交于
      do not use default=y for CONFIG_VMI (we do not do that for any driver or
      special-hardware feature): the overwhelming majority of Linux users does
      not need it, and interested users and distributions can enable it
      as-needed.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0d05ad2c
    • I
      [PATCH] paravirt: clarify VMI description · e9417fb3
      Ingo Molnar 提交于
      Clarify the description of the CONFIG_VMI option: describe the reality
      that VMI is a VMWare-only interface for now. Once that changes and
      another hypervisor adopts the VMI ABI we can change the text.
      
      As can be seen from the Xen paravirtualization patches submitted to lkml
      the Xen project has chosen its own, non-VMI interface between Xen and
      the para-Linux - so remove Xen from the description.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e9417fb3
    • I
      [PATCH] paravirt: remove NO_IDLE_HZ on x86 · 3f1a73b6
      Ingo Molnar 提交于
      Temove the mistaken turning on of NO_IDLE_HZ on x86+PARAVIRT kernels.
      
      It's an obsolete, limited form of dynticks.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3f1a73b6
    • D
      [PATCH] video/aty/mach64_ct.c: fix bogus delay loop · 8690ba44
      David Miller 提交于
      CT based mach64 cards were reported to hang on sparc64 boxes when
      compiled with gcc-4.1.x and later.
      
      Looking at this piece of code, it's no surprise.  A critical
      delay was implemented as an empty for() loop, and gcc 4.0.x
      and previous did not optimize it away, so we did get a delay.
      
      But gcc-4.1.x and later can optimize it away, and we get crashes.
      
      Use a real udelay() to fix this.  Fix verified on SunBlade100.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8690ba44
  2. 05 3月, 2007 32 次提交