1. 18 Sep, 2009 25 commits
  2. 17 Sep, 2009 15 commits
    • H. Peter Anvin's avatar
      Merge branch 'x86/pat' into x86/urgent · 3bb045f1
      H. Peter Anvin authored
      Merge reason:
      
      Suresh Siddha (1):
            x86, pat: don't use rb-tree based lookup in reserve_memtype()
      
      ... requires previous x86/pat commits already pushed to Linus.
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      3bb045f1
    • Suresh Siddha's avatar
      x86, pat: don't use rb-tree based lookup in reserve_memtype() · dcb73bf4
      Suresh Siddha authored
      Recent enhancement of rb-tree based lookup exposed a  bug with the lookup
      mechanism in the reserve_memtype() which ensures that there are no conflicting
      memtype requests for the memory range.
      
      memtype_rb_search() returns an entry which has a start address <= new start
      address. And from here we traverse the linear linked list to check if there
      any conflicts with the existing mappings. As the rbtree is based on the
      start address of the memory range, it is quite possible that we have several
      overlapped mappings whose start address is much less than new requested start
      but the end is >= new requested end. This results in conflicting memtype
      mappings.
      
      Same bug exists with the old code which uses cached_entry from where
      we traverse the linear linked list. But the new rb-tree code exposes this
      bug fairly easily.
      
      For now, don't use the memtype_rb_search() and always start the search from
      the head of linear linked list in reserve_memtype(). Linear linked list
      for most of the systems grow's to few 10's of entries(as we track memory type
      of RAM pages using struct page). So we should be ok for now.
      
      We still retain the rbtree and use it to speed up free_memtype() which
      doesn't have the same bug(as we know what exactly we are searching for
      in free_memtype).
      
      Also use list_for_each_entry_from() in free_memtype() so that we start
      the search from rb-tree lookup result.
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      LKML-Reference: <1253136483.4119.12.camel@sbs-t61.sc.intel.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      dcb73bf4
    • John(Jung-Ik) Lee's avatar
      libata: Add pata_atp867x driver for Artop/Acard ATP867X controllers · d15d6e6c
      John(Jung-Ik) Lee authored
      This is a new pata driver for ARTOP 867X 64bit 4-channel UDMA133 ATA ctrls.
      Based on the Atp867 data sheet rev 1.2, Acard, and in part on early ide codes
      from Eric Uhrhane <ericu@google.com>.
      Signed-off-by: default avatarJohn(Jung-Ik) Lee <jilee@google.com>
      Reviewed-by: default avatarGrant Grundler <grundler@google.com>
      Reviewed-by: default avatarGwendal Gringo <gwendal@google.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      d15d6e6c
    • Robert Hancock's avatar
      pata_amd: do not filter out valid modes in nv_mode_filter · 90950a25
      Robert Hancock authored
      On a Compaq Presario V3000 laptop (NVIDIA MCP51 chipset), pata_amd selects
      PIO0 mode for the PATA DVD-RAM drive instead of MWDMA2 which it supports:
      
      ata4.00: ATAPI: HL-DT-ST DVDRAM GSA-4084N, KQ09, max MWDMA2
      ata4: nv_mode_filter: 0x39f&0x7001->0x1, BIOS=0x0 (0x0) ACPI=0x7001 (60:600:0x11)
      ata4.00: configured for PIO0
      
      For some reason, the BIOS-set UDMA configuration returns 0 and the ACPI _GTM
      reports that UDMA2 and PIO0 are enabled. This causes nv_mode_filter to end up
      allowing only PIO0 and UDMA0-2. Since the drive doesn't support UDMA we end up
      using PIO0.
      
      Since the controllers should always support PIO4, MWDMA2 and UDMA2 regardless
      of what cable type is used, let's make sure we don't filter out these modes
      regardless of what wacky settings the BIOS is using.
      Signed-off-by: default avatarRobert Hancock <hancockrwd@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      90950a25
    • Mikael Pettersson's avatar
      sata_promise: update reset code · ff7cddf5
      Mikael Pettersson authored
      sata_promise's reset code has deviated quite a bit from
      the Promise reference driver's, and it has been observed
      to fail to recover from errors in some cases.
      
      This patch thus updates the reset code to more closely
      match the reference driver:
      
      - soft reset (pdc_reset_port):
        * wait for ATA engine to not be in packet command mode
          (2nd gen only)
        * write reset bit in PDC_CTLSTAT before the first read
          in the loop
        * for 2nd gen SATA follow up with FPDMA reset and clearing
          error status registers
      - hard reset (pdc_sata_hardreset):
        * wait for ATA engine to not be in packet command mode
          (2nd gen only)
        * reset ATA engine via the PCI control register
        * Tejun's change to use non-waiting hardreset + follow-up SRST
      
      I'm not changing the hotplug mask bits since they are taken care
      of by sata_promise's ->freeze() and ->thaw() operations. And I'm
      not writing the PMP port # because that's always zero (for now).
      
      Tested here on various controllers. In particular, one disk
      which used to timeout and fail to recover from certain hdparm
      and smartmonctl commands now works nicely.
      Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      ff7cddf5
    • Mikael Pettersson's avatar
      sata_promise: disable hotplug on 1st gen chips · 0ae6654d
      Mikael Pettersson authored
      1st generation Promise SATA chips are prone to generating spurious
      hotplug events which can disrupt normal operation. This has been
      observed on 20376 and 20378 chips. This patch thus disables hotplug
      support on 1st gen chips while leaving it enabled for 2nd gen chips.
      
      The pdc_sata_hotplug_offset() function becomes redundant so it is
      removed.
      
      Tested on 1st gen 20376 and 20378 mainboard chips and on a 2nd gen
      SATA300 PCI card.
      Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
      Tested-by: default avatarKurt Roeckx <kurt@roeckx.be>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      0ae6654d
    • Tejun Heo's avatar
      libata: fix spurious WARN_ON_ONCE() on port freeze · 4dc738ed
      Tejun Heo authored
      Commit 54c38444 makes libata abort qcs
      after the port is frozen.  This is necessary to guarantee that TF
      registers are accessed after the DMA engine is shutdown after an
      error.  However, this triggers WARN_ON_ONCE() check in
      ata_qc_complete() spuriously.  Move WARN_ON_ONCE() downwards such that
      failing commands while frozen doesn't trigger it.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      4dc738ed
    • Tejun Heo's avatar
      ahci: restore pci_intx() handling · 31b239ad
      Tejun Heo authored
      Commit a5bfc471 dropped explicit
      pci_intx() manipulation from ahci because it seemed unnecessary and
      ahci doesn't seem to be the right place to be tweaking it if it were.
      This was largely okay but there are exceptions.  There was one on an
      embedded platform which was fixed via firmware and now bko#14124
      reports it on a HP DL320.
      
        http://bugzilla.kernel.org/show_bug.cgi?id=14124
      
      I still think this isn't something libata drivers should be caring
      about (the only ones which are calling pci_intx() explicitly are
      libata ones and one other driver) but for now reverting the change
      seems to be the right thing to do.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarThomas Jarosch <thomas.jarosch@intra2net.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      31b239ad
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · b938fb6f
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Fix MSI GX620 mixer
        ASoC: remove unused #include <linux/version.h>
        ASoC: S3C lrsync function made to work with IRQs disabled.
        ALSA: hda - Fix Dell S14 pin setup
        ALSA: hda - Fix IDT92HD83* codec setup
        ASoC: Fix display of stream name in DAPM debugfs
        ALSA: hda - Add support for HP dv6
        ALSA: hda - Fix HP/line-out initialization with IDT/STAC codecs
        ALSA: hda - Set default GPIO for IDT92HD71bxx
        ALSA: hda - Set default GPIO for STAC/IDT codecs
        ASoC: Clean up error handling in MPC5200 DMA setup
        ALSA: hda - Add missing model=auto entry for ALC269
      b938fb6f
    • Steven Rostedt's avatar
      vsnprintf: remove duplicate comment of vsnprintf · 0efb4d20
      Steven Rostedt authored
      Remove the duplicate comment of bstr_printf that is the same as the
      vsnprintf.
      
      Add the 's' option to the comment for the pointer function. This is
      more of an internal function so the little duplication of the comment
      here is OK.
      Reported-by: default avatarZhaolei <zhaolei@cn.fujitsu.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      0efb4d20
    • Li Zefan's avatar
      softirq: add BLOCK_IOPOLL to softirq_to_name · 5dd4de58
      Li Zefan authored
      With BLOCK_IOPOLL_SOFTIRQ added, softirq_to_name[] and
      show_softirq_name() needs to be updated.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      LKML-Reference: <4AB20398.8070209@cn.fujitsu.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      5dd4de58
    • Christian Borntraeger's avatar
      oprofile: fix oprofile regression: select RING_BUFFER_ALLOW_SWAP · 9a5963eb
      Christian Borntraeger authored
      commit 85bac32c
          ring-buffer: only enable ring_buffer_swap_cpu when needed
      broke oprofile (at least on s390, but likely on all platforms).
      
      this patch lets oprofile select RING_BUFER_ALLOW_SWAP to make
      ring_buffer_swap_cpu usable for oprofile.
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      LKML-Reference: <200909162156.49239.borntraeger@de.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Robert Richter <robert.richter@amd.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      9a5963eb
    • Steven Rostedt's avatar
      tracing: switch function prints from %pf to %ps · b375a11a
      Steven Rostedt authored
      For direct function pointers (like what mcount provides) PowerPC64
      requires the use of %ps, otherwise nothing is printed.
      
      This patch converts all prints of functions retrieved through mcount
      to use the %ps format from the %pf.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      b375a11a
    • Steven Rostedt's avatar
      vsprintf: add %ps that is the same as %pS but is like %pf · 91adcd2c
      Steven Rostedt authored
      On PowerPC64 function pointers do not point directly at the functions,
      but instead point to pointers to the functions. The output of %pF expects
      to point to a pointer to the function, whereas %pS will show the function
      itself.
      
      mcount returns the direct pointer to the function and not the pointer to
      the pointer. Thus %pS must be used to show this. The function tracer
      requires printing of the functions without offsets and uses the %pf
      instead.
      
       %pF produces run_local_timers+0x4/0x1f
       %pf produces just run_local_timers
      
      For PowerPC64, we need to use the direct pointer, and we only have
      %pS which will produce .run_local_timers+0x4/0x1f
      
      This patch creates a %ps that matches the %pf as %pS matches %pF.
      
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Zhao Lei <zhaolei@cn.fujitsu.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      91adcd2c
    • Takashi Iwai's avatar
      Merge branch 'fix/hda' into for-linus · 87bfa1db
      Takashi Iwai authored
      * fix/hda:
        ALSA: hda - Fix MSI GX620 mixer
        ALSA: hda - Fix Dell S14 pin setup
        ALSA: hda - Fix IDT92HD83* codec setup
        ALSA: hda - Add support for HP dv6
        ALSA: hda - Fix HP/line-out initialization with IDT/STAC codecs
        ALSA: hda - Set default GPIO for IDT92HD71bxx
        ALSA: hda - Set default GPIO for STAC/IDT codecs
        ALSA: hda - Add missing model=auto entry for ALC269
      87bfa1db