1. 18 May, 2009 6 commits
  2. 17 May, 2009 7 commits
  3. 16 May, 2009 15 commits
  4. 15 May, 2009 12 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · 72357d59
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI MSI: Fix MSI-X with NIU cards
        PCI: Fix pci-e port driver slot_reset bad default return value
      72357d59
    • Bjorn Helgaas's avatar
      PM: check sysdev_suspend(PMSG_FREEZE) return value · 4484079d
      Bjorn Helgaas authored
      Check the return value of sysdev_suspend().  I think this was a typo.
      Without this change, the following "if" check is always false.
      I also changed the error message so it's distinguishable from the
      similar message a few lines above.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      4484079d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6 · 7c7327d9
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6:
        Bluetooth: Don't trigger disconnect timeout for security mode 3 pairing
        Bluetooth: Don't use hci_acl_connect_cancel() for incoming connections
        Bluetooth: Fix wrong module refcount when connection setup fails
      
      Another case of me handling the fallout from Davem's unfortunate
      addiction to shuffleboard.
      
      Won't anybody think of the children? Join the anti-shuffleboard league
      today!
      7c7327d9
    • Linus Torvalds's avatar
      Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel · 40f293ff
      Linus Torvalds authored
      * 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
        drm/i915: Add new GET_PIPE_FROM_CRTC_ID ioctl.
        drm/i915: Set HDMI hot plug interrupt enable for only the output in question.
        drm/i915: Include 965GME pci ID in IS_I965GM(dev) to match UMS.
        drm/i915: Use the GM45 VGA hotplug workaround on G45 as well.
        drm/i915: ignore LVDS on intel graphics systems that lie about having it
        drm/i915: sanity check IER at wait_request time
        drm/i915: workaround IGD i2c bus issue in kernel side (v2)
        drm/i915: Don't allow binding objects into the last page of the aperture.
        drm/i915: save/restore fence registers across suspend/resume
        drm/i915: x86 always has writeq. Add I915_READ64 for symmetry.
      40f293ff
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 8c21f341
      Linus Torvalds authored
      * 'upstream-linus' of ssh://master.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        libata: Media rotation rate and form factor heuristics
        libata: Report disk alignment and physical block size
        sata_fsl: Fix the command description of FSL SATA controller
        sata_fsl: Fix compile warnings
        [libata] sata_sx4: fixup interrupt handling
        [libata] sata_sx4: convert to new exception handling methods
      8c21f341
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 · 3346857f
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6:
        iwlwifi: fix device id registration for 6000 series 2x2 devices
        ath5k: update channel in sw state after stopping RX and TX
        rtl8187: use DMA-aware buffers with usb_control_msg
        mac80211: avoid NULL ptr deref when finding max_rates in PID and minstrel
        airo: airo_get_encode{,ext} potential buffer overflow
      
      Pulled directly by Linus because Davem is off playing shuffle-board at
      some Alaskan cruise, and the NULL ptr deref issue hits people and should
      get merged sooner rather than later.
      
      David - make us proud on the shuffle-board tournament!
      3346857f
    • Martin K. Petersen's avatar
      libata: Media rotation rate and form factor heuristics · 4bca3286
      Martin K. Petersen authored
      This patch provides new heuristics for parsing both the form factor and
      media rotation rate ATA IDENFITY words.
      
      The reported ATA version must be 7 or greater and the device must return
      values defined as valid in the standard.  Only then are the
      characteristics reported to SCSI via the VPD B1 page.
      
      This seems like a reasonable compromise to me considering that we have
      been shipping several kernel releases that key off the rotation rate bit
      without any version checking whatsoever.  With no complaints so far.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      4bca3286
    • Martin K. Petersen's avatar
      libata: Report disk alignment and physical block size · 61d79a8e
      Martin K. Petersen authored
      For disks with 4KB sectors, report the correct block size and alignment
      when filling out the READ CAPACITY(16) response.
      
      This patch is based upon code from Matthew Wilcox' 4KB ATA tree.  I
      fixed the bug I reported a while back caused by ATA and SCSI using
      different approaches to describing the alignment.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      61d79a8e
    • Dave Liu's avatar
      sata_fsl: Fix the command description of FSL SATA controller · d3587243
      Dave Liu authored
      The bit 11 of command description is reserved bit in Freescale
      SATA controller and needs to be set to '1'.  This is needed to
      make sure the last write from the controller to the buffer
      descriptor is seen before an interrupt is raised.
      Signed-off-by: default avatarDave Liu <daveliu@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      d3587243
    • Kumar Gala's avatar
      sata_fsl: Fix compile warnings · f48c019f
      Kumar Gala authored
      We we build with dma_addr_t as a 64-bit quantity we get:
      
      drivers/ata/sata_fsl.c: In function 'sata_fsl_fill_sg':
      drivers/ata/sata_fsl.c:340: warning: format '%x' expects type 'unsigned int', but argument 4 has type 'dma_addr_t'
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      f48c019f
    • David Milburn's avatar
      [libata] sata_sx4: fixup interrupt handling · 19799bfc
      David Milburn authored
      Issuing ATA_CMD_SET_FEATURES (0xef) times out because
      pdc20621_interrupt ignores command completion since
      ATA_TFLAG_POLLING flag is set.
      
      This has already been fixed for sata_promise:
      
      commit 51b94d2a
      Author: Tejun Heo <htejun@gmail.com>
      Date:   Fri Jun 8 13:46:55 2007 -0700
      
          sata_promise: use TF interface for polling NODATA commands
      
      Also, this patch includes Mikael's original patches:
      
      http://marc.info/?l=linux-ide&m=121135828227724&w=2
      http://marc.info/?l=linux-ide&m=121144512109826&w=2Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
      Signed-off-by: default avatarDavid Milburn <dmilburn@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      19799bfc
    • Jeremy Fitzhardinge's avatar
      x86: Fix performance regression caused by paravirt_ops on native kernels · b4ecc126
      Jeremy Fitzhardinge authored
      Xiaohui Xin and some other folks at Intel have been looking into what's
      behind the performance hit of paravirt_ops when running native.
      
      It appears that the hit is entirely due to the paravirtualized
      spinlocks introduced by:
      
       | commit 8efcbab6
       | Date:   Mon Jul 7 12:07:51 2008 -0700
       |
       |     paravirt: introduce a "lock-byte" spinlock implementation
      
      The extra call/return in the spinlock path is somehow
      causing an increase in the cycles/instruction of somewhere around 2-7%
      (seems to vary quite a lot from test to test).  The working theory is
      that the CPU's pipeline is getting upset about the
      call->call->locked-op->return->return, and seems to be failing to
      speculate (though I haven't seen anything definitive about the precise
      reasons).  This doesn't entirely make sense, because the performance
      hit is also visible on unlock and other operations which don't involve
      locked instructions.  But spinlock operations clearly swamp all the
      other pvops operations, even though I can't imagine that they're
      nearly as common (there's only a .05% increase in instructions
      executed).
      
      If I disable just the pv-spinlock calls, my tests show that pvops is
      identical to non-pvops performance on native (my measurements show that
      it is actually about .1% faster, but Xiaohui shows a .05% slowdown).
      
      Summary of results, averaging 10 runs of the "mmperf" test, using a
      no-pvops build as baseline:
      
      		nopv		Pv-nospin	Pv-spin
      CPU cycles	100.00%		99.89%		102.18%
      instructions	100.00%		100.10%		100.15%
      CPI		100.00%		99.79%		102.03%
      cache ref	100.00%		100.84%		100.28%
      cache miss	100.00%		90.47%		88.56%
      cache miss rate	100.00%		89.72%		88.31%
      branches	100.00%		99.93%		100.04%
      branch miss	100.00%		103.66%		107.72%
      branch miss rt	100.00%		103.73%		107.67%
      wallclock	100.00%		99.90%		102.20%
      
      The clear effect here is that the 2% increase in CPI is
      directly reflected in the final wallclock time.
      
      (The other interesting effect is that the more ops are
      out of line calls via pvops, the lower the cache access
      and miss rates.  Not too surprising, but it suggests that
      the non-pvops kernel is over-inlined.  On the flipside,
      the branch misses go up correspondingly...)
      
      So, what's the fix?
      
      Paravirt patching turns all the pvops calls into direct calls, so
      _spin_lock etc do end up having direct calls.  For example, the compiler
      generated code for paravirtualized _spin_lock is:
      
      <_spin_lock+0>:		mov    %gs:0xb4c8,%rax
      <_spin_lock+9>:		incl   0xffffffffffffe044(%rax)
      <_spin_lock+15>:	callq  *0xffffffff805a5b30
      <_spin_lock+22>:	retq
      
      The indirect call will get patched to:
      <_spin_lock+0>:		mov    %gs:0xb4c8,%rax
      <_spin_lock+9>:		incl   0xffffffffffffe044(%rax)
      <_spin_lock+15>:	callq <__ticket_spin_lock>
      <_spin_lock+20>:	nop; nop		/* or whatever 2-byte nop */
      <_spin_lock+22>:	retq
      
      One possibility is to inline _spin_lock, etc, when building an
      optimised kernel (ie, when there's no spinlock/preempt
      instrumentation/debugging enabled).  That will remove the outer
      call/return pair, returning the instruction stream to a single
      call/return, which will presumably execute the same as the non-pvops
      case.  The downsides arel 1) it will replicate the
      preempt_disable/enable code at eack lock/unlock callsite; this code is
      fairly small, but not nothing; and 2) the spinlock definitions are
      already a very heavily tangled mass of #ifdefs and other preprocessor
      magic, and making any changes will be non-trivial.
      
      The other obvious answer is to disable pv-spinlocks.  Making them a
      separate config option is fairly easy, and it would be trivial to
      enable them only when Xen is enabled (as the only non-default user).
      But it doesn't really address the common case of a distro build which
      is going to have Xen support enabled, and leaves the open question of
      whether the native performance cost of pv-spinlocks is worth the
      performance improvement on a loaded Xen system (10% saving of overall
      system CPU when guests block rather than spin).  Still it is a
      reasonable short-term workaround.
      
      [ Impact: fix pvops performance regression when running native ]
      Analysed-by: default avatar"Xin Xiaohui" <xiaohui.xin@intel.com>
      Analysed-by: default avatar"Li Xin" <xin.li@intel.com>
      Analysed-by: default avatar"Nakajima Jun" <jun.nakajima@intel.com>
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: Xen-devel <xen-devel@lists.xensource.com>
      LKML-Reference: <4A0B62F7.5030802@goop.org>
      [ fixed the help text ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b4ecc126