Skip to content
  1. May 27, 2009
    • Benjamin Herrenschmidt's avatar
      Revert "powerpc: Rework dma-noncoherent to use generic vmalloc layer" · 84532a0f
      Benjamin Herrenschmidt authored
      This reverts commit 33f00dce
      
      .
      
          While it was a good idea to try to use the mm/vmalloc.c allocator instead
          of our own (in fact, ours is itself a dup on an old variant of the vmalloc
          one), unfortunately, the approach is terminally busted since
          dma_alloc_coherent() can be called at interrupt time or in atomic contexts
          and there's little chances we'll make the code in mm/vmalloc.c cope with\       that :-(
      
          Until we can get the generic code to forbid that idiocy and fix all
          drivers abusing it, we pretty much have no choice but revert to
          our custom virtual space allocator.
      
          There's also a problem with SMP safety since freeing such mapping
          would require an IPI which cannot be done at interrupt time.
      
          However, right now, I don't think we support any platform that is
          both SMP and has non-coherent DMA (don't laugh, I know such things
          do exist !) so we can sort that out later.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      84532a0f
    • Linus Torvalds's avatar
      Merge branch 'x86-fixes-for-linus' of... · cd86a536
      Linus Torvalds authored
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: avoid back to back on_each_cpu in cpa_flush_array
        x86, relocs: ignore R_386_NONE in kernel relocation entries
      cd86a536
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel · ebd4c994
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
        drm/i915: Add support for VGA load detection (pre-945).
        drm/i915: Use an I2C algo to do the flip to SDVO DDC bus.
        drm/i915: Determine type before initialising connector
        drm/i915: Return SDVO LVDS VBT mode if no EDID modes are detected.
        drm/i915: Fetch SDVO LVDS mode lines from VBT, then reserve them
        i915: support 8xx desktop cursors
        drm/i915: allocate large pointer arrays with vmalloc
      ebd4c994
    • Linus Torvalds's avatar
      Merge branch 'core-fixes-for-linus' of... · 299297c6
      Linus Torvalds authored
      Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        oprofile: fix cpu buffer size
      299297c6
    • Pallipadi, Venkatesh's avatar
      x86: avoid back to back on_each_cpu in cpa_flush_array · 2171787b
      Pallipadi, Venkatesh authored
      Cleanup cpa_flush_array() to avoid back to back on_each_cpu() calls.
      
      [ Impact: optimizes fix 0af48f42
      
       ]
      
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      2171787b
    • Linus Torvalds's avatar
      Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · e2a1b9ee
      Linus Torvalds authored
      * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
        NFSv4: Fix the case where NFSv4 renewal fails
        nfs: fix build error in nfsroot with initconst
        XPRTRDMA: fix client rpcrdma FRMR registration on mlx4 devices
      e2a1b9ee
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · 878a4f52
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Add missing check of pin vref 50 and others in Realtek codecs
        ALSA: hda - Add 5stack-no-fp model for STAC927x
        ALSA: hda - Add forced codec-slots for ASUS W5Fm
      878a4f52
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq · 733be82e
      Linus Torvalds authored
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
        [CPUFREQ] powernow-k8: determine exact CPU frequency for HW Pstates
        [CPUFREQ] powernow-k8 cleanup msg if BIOS does not export ACPI _PSS cpufreq data
        [CPUFREQ] fix timer teardown in ondemand governor
        [CPUFREQ] fix timer teardown in conservative governor
        [CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call
        [CPUFREQ] powernow-k7 build fix when ACPI=n
        [CPUFREQ] add atom family to p4-clockmod
      733be82e
    • Rusty Russell's avatar
      lguest: fix on Intel when KVM loaded (unhandled trap 13) · 56434622
      Rusty Russell authored
      
      
      When KVM is loaded, and hence VT set up, the vmcall instruction in an
      lguest guest causes a #GP, not #UD.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56434622
    • Tetsuo Handa's avatar
      kmod: Release sub_info on cred allocation failure. · ab2b7eba
      Tetsuo Handa authored
      
      
      call_usermodehelper_setup() forgot to kfree(sub_info)
      when prepare_usermodehelper_creds() failed.
      
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ab2b7eba
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · d4a76f8a
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
        r8169: avoid losing MSI interrupts
        tcp: tcp_vegas ssthresh bugfix
        mac8390: fix regression caused during net_device_ops conversion
        gianfar: fix BUG under load after introduction of skb recycling
        wimax/i2400m: usb: fix device reset on autosuspend while not yet idle
        RxRPC: Error handling for rxrpc_alloc_connection()
        ipv4: Fix oops with FIB_TRIE
        pktgen: do not access flows[] beyond its length
        gigaset: beyond ARRAY_SIZE of iwb->data
        IPv6: set RTPROT_KERNEL to initial route
        net: fix rtable leak in net/ipv4/route.c
        net: fix length computation in rt_check_expire()
        wireless: beyond ARRAY_SIZE of intf->crypto_stats
        iwlwifi: update 5000 ucode support to version 2 of API
        cfg80211: fix race between core hint and driver's custom apply
        airo: fix airo_get_encode{,ext} buffer overflow like I mean it...
        ath5k: fix interpolation with equal power levels
        iwlwifi: do not cancel delayed work inside spin_lock_irqsave
        ath5k: fix exp off-by-one when computing OFDM delta slope
        wext: verify buffer size for SIOCSIWENCODEEXT
        ...
      d4a76f8a
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 60a0cd52
      Linus Torvalds authored
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/mm: Fix broken MMU PID stealing on !SMP
      60a0cd52
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://neil.brown.name/md · e25e0920
      Linus Torvalds authored
      * 'for-linus' of git://neil.brown.name/md:
        md: don't use locked_ioctl.
        md: don't update curr_resync_completed without also updating reshape_position.
        md: raid5: avoid sector values going negative when testing reshape progress.
        md: export 'frozen' resync state through sysfs
        md: bitmap: improve bitmap maintenance code.
        md: improve errno return when setting array_size
        md: always update level / chunk_size / layout when writing v1.x metadata.
      e25e0920
    • Trond Myklebust's avatar
      NFSv4: Fix the case where NFSv4 renewal fails · 95baa25c
      Trond Myklebust authored
      
      
      If the asynchronous lease renewal fails (usually due to a soft timeout),
      then we _must_ schedule state recovery in order to ensure that we don't
      lose the lease unnecessarily or, if the lease is already lost, that we
      recover the locking state promptly...
      
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      95baa25c
    • Sam Ravnborg's avatar
      nfs: fix build error in nfsroot with initconst · d0367a50
      Sam Ravnborg authored
      fix build error with latest kbuild adjustments to initconst.
      
      The commit a447c093
      
       ("vfs: Use
      const for kernel parser table") changed:
      
          static match_table_t __initdata tokens = {
      to
          static match_table_t __initconst tokens = {
      
      But the missing const causes popwerpc to fail with latest
      updates to __initconst like this:
      
      fs/nfs/nfsroot.c:400: error: __setup_str_nfs_root_setup causes a section type conflict
      fs/nfs/nfsroot.c:400: error: __setup_str_nfs_root_setup causes a section type conflict
      
      The bug is only present with kbuild-next.
      Following patch has been build tested.
      
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: default avatarJan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      d0367a50
    • Vu Pham's avatar
      XPRTRDMA: fix client rpcrdma FRMR registration on mlx4 devices · 68743082
      Vu Pham authored
      
      
      mlx4/connectX FRMR requires local write enable together with remote
      rdma write enable. This fixes NFS/RDMA operation over the ConnectX
      Infiniband HCA in the default memreg mode.
      
      Signed-off-by: default avatarVu Pham <vu@mellanox.com>
      Signed-off-by: default avatarTom Talpey <tmtalpey@gmail.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      68743082
    • Ma Ling's avatar
      drm/i915: Add support for VGA load detection (pre-945). · e4a5d54f
      Ma Ling authored
      
      
      Two approaches for VGA detections: hot plug detection for 945G onwards
      and load pipe detection for Pre-945G.  Load pipe detection will get one free
      pipe, set border color as red and blue, then check CRT status by
      swf register.  This is a sync-up with the 2D driver.
      
      Signed-off-by: default avatarMa Ling <ling.ma@intel.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      e4a5d54f
    • Andreas Herrmann's avatar
      [CPUFREQ] powernow-k8: determine exact CPU frequency for HW Pstates · ca446d06
      Andreas Herrmann authored
      
      
      Slightly modified by trenn@suse.de -> only do this on fam 10h and fam 11h.
      
      Currently powernow-k8 determines CPU frequency from ACPI PSS objects, but
      according to AMD family 11h BKDG this frequency is just a rounded value:
      
        "CoreFreq (MHz) = The CPU COF specified by MSRC001_00[6B:64][CpuFid]
        rounded to the nearest 100 Mhz."
      
      As a consequnce powernow-k8 reports wrong CPU frequency on some systems,
      e.g. on Turion X2 Ultra:
      
        powernow-k8: Found 1 AMD Turion(tm)X2 Ultra DualCore Mobile ZM-82
                     processors (2 cpu cores) (version 2.20.00)
        powernow-k8:    0 : pstate 0 (2200 MHz)
        powernow-k8:    1 : pstate 1 (1100 MHz)
        powernow-k8:    2 : pstate 2 (600 MHz)
      
      But this is wrong as frequency for Pstate2 is 550 MHz. x86info reports it
      correctly:
      
        #x86info -a |grep Pstate
        ...
        Pstate-0: fid=e, did=0, vid=24 (2200MHz)
        Pstate-1: fid=e, did=1, vid=30 (1100MHz)
        Pstate-2: fid=e, did=2, vid=3c (550MHz) (current)
      
      Solution is to determine the frequency directly from Pstate MSRs instead
      of using rounded values from ACPI table.
      
      Signed-off-by: default avatarAndreas Herrmann <andreas.herrmann3@amd.com>
      Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      ca446d06
    • Thomas Renninger's avatar
      [CPUFREQ] powernow-k8 cleanup msg if BIOS does not export ACPI _PSS cpufreq data · df182977
      Thomas Renninger authored
      
      
      - Make the message shorter and easier to grep for
      - Use printk_once instead of WARN_ONCE (functionality of these was mixed)
      
      Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
      Cc: Langsdorf, Mark <mark.langsdorf@amd.com>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      df182977
    • Mathieu Desnoyers's avatar
      [CPUFREQ] fix timer teardown in ondemand governor · b14893a6
      Mathieu Desnoyers authored
      
      
      * Rafael J. Wysocki (rjw@sisk.pl) wrote:
      > This message has been generated automatically as a part of a report
      > of regressions introduced between 2.6.28 and 2.6.29.
      >
      > The following bug entry is on the current list of known regressions
      > introduced between 2.6.28 and 2.6.29.  Please verify if it still should
      > be listed and let me know (either way).
      >
      >
      > Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13186
      > Subject		: cpufreq timer teardown problem
      > Submitter	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Date		: 2009-04-23 14:00 (24 days old)
      > References	: http://marc.info/?l=linux-kernel&m=124049523515036&w=4
      > Handled-By	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Patch		: http://patchwork.kernel.org/patch/19754/
      > 		  http://patchwork.kernel.org/patch/19753/
      >
      
      (updated changelog)
      
      cpufreq fix timer teardown in ondemand governor
      
      The problem is that dbs_timer_exit() uses cancel_delayed_work() when it should
      use cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the
      workqueue handler to exit.
      
      The ondemand governor does not seem to be affected because the
      "if (!dbs_info->enable)" check at the beginning of the workqueue handler returns
      immediately without rescheduling the work. The conservative governor in
      2.6.30-rc has the same check as the ondemand governor, which makes things
      usually run smoothly. However, if the governor is quickly stopped and then
      started, this could lead to the following race :
      
      dbs_enable could be reenabled and multiple do_dbs_timer handlers would run.
      This is why a synchronized teardown is required.
      
      The following patch applies to, at least, 2.6.28.x, 2.6.29.1, 2.6.30-rc2.
      
      Depends on patch
      cpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call
      
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: gregkh@suse.de
      CC: stable@kernel.org
      CC: cpufreq@vger.kernel.org
      CC: Ingo Molnar <mingo@elte.hu>
      CC: rjw@sisk.pl
      CC: Ben Slusky <sluskyb@paranoiacs.org>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      b14893a6
    • Mathieu Desnoyers's avatar
      [CPUFREQ] fix timer teardown in conservative governor · b253d2b2
      Mathieu Desnoyers authored
      
      
      * Rafael J. Wysocki (rjw@sisk.pl) wrote:
      > This message has been generated automatically as a part of a report
      > of regressions introduced between 2.6.28 and 2.6.29.
      >
      > The following bug entry is on the current list of known regressions
      > introduced between 2.6.28 and 2.6.29.  Please verify if it still should
      > be listed and let me know (either way).
      >
      >
      > Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13186
      > Subject		: cpufreq timer teardown problem
      > Submitter	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Date		: 2009-04-23 14:00 (24 days old)
      > References	: http://marc.info/?l=linux-kernel&m=124049523515036&w=4
      > Handled-By	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Patch		: http://patchwork.kernel.org/patch/19754/
      > 		  http://patchwork.kernel.org/patch/19753/
      >
      
      (re-send with updated changelog)
      
      cpufreq fix timer teardown in conservative governor
      
      The problem is that dbs_timer_exit() uses cancel_delayed_work() when it should
      use cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the
      workqueue handler to exit.
      
      The ondemand governor does not seem to be affected because the
      "if (!dbs_info->enable)" check at the beginning of the workqueue handler returns
      immediately without rescheduling the work. The conservative governor in
      2.6.30-rc has the same check as the ondemand governor, which makes things
      usually run smoothly. However, if the governor is quickly stopped and then
      started, this could lead to the following race :
      
      dbs_enable could be reenabled and multiple do_dbs_timer handlers would run.
      This is why a synchronized teardown is required.
      
      Depends on patch
      cpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call
      
      The following patch applies to 2.6.30-rc2. Stable kernels have a similar
      issue which should also be fixed, but the code changed between 2.6.29
      and 2.6.30, so this patch only applies to 2.6.30-rc.
      
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: gregkh@suse.de
      CC: stable@kernel.org
      CC: cpufreq@vger.kernel.org
      CC: Ingo Molnar <mingo@elte.hu>
      CC: rjw@sisk.pl
      CC: Ben Slusky <sluskyb@paranoiacs.org>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      b253d2b2
    • Mathieu Desnoyers's avatar
      [CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call · 42a06f21
      Mathieu Desnoyers authored
      
      
      * Rafael J. Wysocki (rjw@sisk.pl) wrote:
      > This message has been generated automatically as a part of a report
      > of regressions introduced between 2.6.28 and 2.6.29.
      >
      > The following bug entry is on the current list of known regressions
      > introduced between 2.6.28 and 2.6.29.  Please verify if it still should
      > be listed and let me know (either way).
      >
      >
      > Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13186
      > Subject		: cpufreq timer teardown problem
      > Submitter	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Date		: 2009-04-23 14:00 (24 days old)
      > References	: http://marc.info/?l=linux-kernel&m=124049523515036&w=4
      > Handled-By	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Patch		: http://patchwork.kernel.org/patch/19754/
      > 		  http://patchwork.kernel.org/patch/19753/
      
      The patches linked above depend on the following patch to remove
      circular locking dependency :
      
      cpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call
      
      (the following issue was faced when using cancel_delayed_work_sync() in the
      timer teardown (which fixes a race).
      
      * KOSAKI Motohiro (kosaki.motohiro@jp.fujitsu.com) wrote:
      > Hi
      >
      > my box output following warnings.
      > it seems regression by commit 7ccc7608b836e58fbacf65ee4f8eefa288e86fac.
      >
      > A: work -> do_dbs_timer()  -> cpu_policy_rwsem
      > B: store() -> cpu_policy_rwsem -> cpufreq_governor_dbs() -> work
      >
      >
      
      Hrm, I think it must be due to my attempt to fix the timer teardown race
      in ondemand governor mixed with new locking behavior in 2.6.30-rc.
      
      The rwlock seems to be taken around the whole call to
      cpufreq_governor_dbs(), when it should be only taken around accesses to
      the locked data, and especially *not* around the call to
      dbs_timer_exit().
      
      Reverting my fix attempt would put the teardown race back in place
      (replacing the cancel_delayed_work_sync by cancel_delayed_work).
      Instead, a proper fix would imply modifying this critical section :
      
      cpufreq.c: __cpufreq_remove_dev()
      ...
              if (cpufreq_driver->target)
                      __cpufreq_governor(data, CPUFREQ_GOV_STOP);
      
              unlock_policy_rwsem_write(cpu);
      
      To make sure the __cpufreq_governor() callback is not called with rwsem
      held. This would allow execution of cancel_delayed_work_sync() without
      being nested within the rwsem.
      
      Applies on top of the 2.6.30-rc5 tree.
      
      Required to remove circular dep in teardown of both conservative and
      ondemande governors so they can use cancel_delayed_work_sync().
      CPUFREQ_GOV_STOP does not modify the policy, therefore this locking seemed
      unneeded.
      
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Greg KH <greg@kroah.com>
      CC: Ingo Molnar <mingo@elte.hu>
      CC: "Rafael J. Wysocki" <rjw@sisk.pl>
      CC: Ben Slusky <sluskyb@paranoiacs.org>
      CC: Chris Wright <chrisw@sous-sol.org>
      CC: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      42a06f21
    • Dave Jones's avatar
      [CPUFREQ] powernow-k7 build fix when ACPI=n · d38e73e8
      Dave Jones authored
      
      
      arch/x86/kernel/cpu/cpufreq/powernow-k7.c:172: warning: 'invalidate_entry' defined but not used
      
      Reported-by: default avatarToralf Förster <toralf.foerster@gmx.de>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      d38e73e8
    • Jarod Wilson's avatar
      [CPUFREQ] add atom family to p4-clockmod · 43195037
      Jarod Wilson authored
      
      
      Some atom procs don't do freq scaling (such as the atom 330 on my own
      littlefalls2 board). By adding the atom family here, we at least get
      the benefit of passive cooling in a thermal emergency. Not sure how
      to see that its actually helping any, but the driver does bind and
      claim its functioning on my atom 330.
      
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      43195037
  2. May 26, 2009
    • David S. Miller's avatar
    • David Dillow's avatar
      r8169: avoid losing MSI interrupts · f11a377b
      David Dillow authored
      
      
      The 8169 chip only generates MSI interrupts when all enabled event
      sources are quiescent and one or more sources transition to active. If
      not all of the active events are acknowledged, or a new event becomes
      active while the existing ones are cleared in the handler, we will not
      see a new interrupt.
      
      The current interrupt handler masks off the Rx and Tx events once the
      NAPI handler has been scheduled, which opens a race window in which we
      can get another Rx or Tx event and never ACK'ing it, stopping all
      activity until the link is reset (ifconfig down/up). Fix this by always
      ACK'ing all event sources, and loop in the handler until we have all
      sources quiescent.
      
      Signed-off-by: default avatarDavid Dillow <dave@thedillows.org>
      Tested-by: default avatarMichael Buesch <mb@bu3sch.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f11a377b
    • Tejun Heo's avatar
      x86, relocs: ignore R_386_NONE in kernel relocation entries · 46176b4f
      Tejun Heo authored
      
      
      For relocatable 32bit kernels, boot/compressed/relocs.c processes
      relocation entries in the kernel image and appends it to the kernel
      image such that boot/compressed/head_32.S can relocate the kernel.
      The kernel image is one statically linked object and only uses two
      relocation types - R_386_PC32 and R_386_32, of the two only the latter
      needs massaging during kernel relocation and thus handled by relocs.
      R_386_PC32 is ignored and all other relocation types are considered
      error.
      
      When the target of a relocation resides in a discarded section,
      binutils doesn't throw away the relocation record but nullifies it by
      changing it to R_386_NONE, which unfortunately makes relocs fail.
      
      The problem was triggered by yet out-of-tree x86 stack unwind patches
      but given the binutils behavior, ignoring R_386_NONE is the right
      thing to do.
      
      The problem has been tracked down to binutils behavior by Jan Beulich.
      
      [ Impact: fix build with certain binutils by ignoring R_386_NONE ]
      
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Jan Beulich <JBeulich@novell.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      LKML-Reference: <4A1B8150.40702@kernel.org>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      46176b4f
    • Doug Leith's avatar
      tcp: tcp_vegas ssthresh bugfix · c80a5cdf
      Doug Leith authored
      
      
      This patch fixes ssthresh accounting issues in tcp_vegas when cwnd decreases
      
      Signed-off-by: default avatarDoug Leith <doug.leith@nuim.ie>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c80a5cdf
    • Finn Thain's avatar
      mac8390: fix regression caused during net_device_ops conversion · 217cbfa8
      Finn Thain authored
      Changeset ca17584b
      
       ("mac8390: update
      to net_device_ops") broke mac8390 by adding 8390.o to the link. That
      meant that lib8390.c was included twice, once in mac8390.c and once in
      8390.c, subject to different macros. This patch reverts that by
      avoiding the wrappers in 8390.c. They seem to be of no value since
      COMPAT_NET_DEV_OPS is going away soon.
      
      Tested with a Kinetics EtherPort card.
      
      Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      217cbfa8
    • Hideo Saito's avatar
      powerpc/mm: Fix broken MMU PID stealing on !SMP · 8e35961b
      Hideo Saito authored
      
      
      The recent rework of the MMU PID handling for non-hash CPUs has a
      subtle bug in the !SMP "optimized" variant of the PID stealing
      function.  It clears the PID in the mm context before it calls
      local_flush_tlb_mm(). However, the later will not flush anything
      if the PID in the context is clear...
      
      Signed-off-by: default avatarHideo Saito <hsaito.ppc@gmail.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8e35961b
    • NeilBrown's avatar
      md: don't use locked_ioctl. · b492b852
      NeilBrown authored
      
      
      md has no need for the BKL - it does its own locking.
      So md_ioctl doesn't need to be a locked_ioctl.
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      b492b852
    • NeilBrown's avatar
      md: don't update curr_resync_completed without also updating reshape_position. · 7a91ee1f
      NeilBrown authored
      In order for the metadata to always be consistent, we mustn't updated
      curr_resync_completed without also updating reshape_position.
      
      The reshape code updates both at the same time.  However since
      commit 97e4f42d
      
      
      the common md_do_sync will sometimes update curr_resync_completed
      but is not in a position to update reshape_position.
      So if MD_RECOVERY_RESHAPE is set (indicating that a reshape is
      happening, so reshape_position might change), don't update
      curr_resync_completed in md_do_sync, leave it to the per-personality
      reshape code.
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      7a91ee1f
    • NeilBrown's avatar
      md: raid5: avoid sector values going negative when testing reshape progress. · 848b3182
      NeilBrown authored
      
      
      As sector_t in unsigned, we cannot afford to let 'safepos' etc go
      negative.
      So replace
         a -= b;
      by
         a -= min(b,a);
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      848b3182
    • NeilBrown's avatar
      md: export 'frozen' resync state through sysfs · b6a9ce68
      NeilBrown authored
      
      
      The md resync engine has a 'frozen' state which ensures that
      no resync/recovery.  This is used to avoid races.
      
      Export this state through the 'sync_action' sysfs attribute
      so that user-space can benefit and also avoid some races.
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      b6a9ce68
    • NeilBrown's avatar
      md: bitmap: improve bitmap maintenance code. · be512691
      NeilBrown authored
      
      
      The code for checking which bits in the bitmap can be cleared
      has 2 problems:
       1/ it repeatedly takes and drops a spinlock, where it would make
          more sense to just hold on to it most of the time.
       2/ it doesn't make use of some opportunities to skip large sections
          of the bitmap
      
      This patch fixes those.  It will only affect CPU consumption, not
      correctness.
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      be512691
    • NeilBrown's avatar
      md: improve errno return when setting array_size · 2b69c839
      NeilBrown authored
      
      
      Instead of always returns EINVAL if anything goes wrong
      when setting the array size, add the option of
        E2BIG
      if the size requested is too large.  This makes it easier
      for user-space to be sure what went wrong.
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      2b69c839
    • NeilBrown's avatar
      md: always update level / chunk_size / layout when writing v1.x metadata. · 62e1e389
      NeilBrown authored
      
      
      We previously didn't update these fields when writing the metadata
      because they could never change.  They can now, so we better write
      them.
      v0.90 metadata always updated these fields.
      
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      62e1e389
    • Linus Torvalds's avatar
      Merge branch 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm · b18f1e21
      Linus Torvalds authored
      * 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: Fix PDPTR reloading on CR4 writes
        KVM: Make paravirt tlb flush also reload the PAE PDPTRs
      b18f1e21
    • Linus Torvalds's avatar
      Merge branch 'x86-fixes-for-linus' of... · a0c1af13
      Linus Torvalds authored
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Remove remap percpu allocator for the time being
        x86: cpa_flush_array wbinvd should be done on all CPUs
        x86: bugfix wbinvd() model check instead of family check
        x86: introduce noxsave boot parameter
        x86, setup: revert ACPI 3 E820 extended attributes support
        x86: DMI match for the Sony VGN-Z540N as it needs BIOS reboot
      a0c1af13
    • Avi Kivity's avatar
      KVM: Fix PDPTR reloading on CR4 writes · a2edf57f
      Avi Kivity authored
      
      
      The processor is documented to reload the PDPTRs while in PAE mode if any
      of the CR4 bits PSE, PGE, or PAE change.  Linux relies on this
      behaviour when zapping the low mappings of PAE kernels during boot.
      
      The code already handled changes to CR4.PAE; augment it to also notice changes
      to PSE and PGE.
      
      This triggered while booting an F11 PAE kernel; the futex initialization code
      runs before any CR3 reloads and writes to a NULL pointer; the futex subsystem
      ended up uninitialized, killing PI futexes and pulseaudio which uses them.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      a2edf57f