Skip to content
Commits on Jul 18, 2010
  1. @torvalds

    Merge branch 'x86/kprobes' of git://…

    torvalds committed
    * 'x86/kprobes' of git://
      x86: kprobes: fix swapped segment registers in kretprobe
  2. x86: kprobes: fix swapped segment registers in kretprobe

    Roland McGrath committed
    In commit f007ea2, the order of the %es and %ds segment registers
    got accidentally swapped, so synthesized 'struct pt_regs' frames
    have the two values inverted.  It's almost sure that these values
    never matter, and that they also never differ.  But wrong is wrong.
    Signed-off-by: Roland McGrath <>
  3. @torvalds

    Merge branch 'for-linus' of git://…

    torvalds committed
    * 'for-linus' of git://
      PCI: fall back to original BIOS BAR addresses
  4. @torvalds

    Merge branch 'upstream-linus' of git://…

    torvalds committed
    * 'upstream-linus' of git://
      ocfs2: Silence gcc warning in ocfs2_write_zero_page().
      jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions
      ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node
      ocfs2: Don't duplicate pages past i_size during CoW.
      ocfs2: tighten up strlen() checking
      ocfs2: Make xattr reflink work with new local alloc reservation.
      ocfs2: make xattr extension work with new local alloc reservation.
      ocfs2: Remove the redundant cpu_to_le64.
      ocfs2/dlm: don't access beyond bitmap size
      ocfs2: No need to zero pages past i_size.
      ocfs2: Zero the tail cluster when extending past i_size.
      ocfs2: When zero extending, do it by page.
      ocfs2: Limit default local alloc size within bitmap range.
      ocfs2: Move orphan scan work to ocfs2_wq.
      fs/ocfs2/dlm: Add missing spin_unlock
  5. @torvalds

    drm/i915: add 'reclaimable' to i915 self-reclaimable page allocations

    torvalds committed
    The hibernate issues that got fixed in commit 985b823 ("drm/i915:
    fix hibernation since i915 self-reclaim fixes") turn out to have been
    incomplete.  Vefa Bicakci tested lots of hibernate cycles, and without
    the __GFP_RECLAIMABLE flag the system eventually fails to resume.
    With the flag added, Vefa can apparently hibernate forever (or until he
    gets bored running his automated scripts, whichever comes first).
    The reclaimable flag was there originally, and was one of the flags that
    were dropped (unintentionally) by commit 4bdadb9 ("drm/i915:
    Selectively enable self-reclaim") that introduced all these problems,
    but I didn't want to just blindly add back all the flags in commit
    985b823, and it looked like __GFP_RECLAIM wasn't necessary.  It
    clearly was.
    I still suspect that there is some subtle reason we're missing that
    causes the problems, but __GFP_RECLAIMABLE is certainly not wrong to use
    in this context, and is what the code historically used.  And we have no
    idea what the causes the corruption without it.
    Reported-and-tested-by: M. Vefa Bicakci <>
    Cc: Dave Airlie <>
    Cc: Chris Wilson <>
    Cc: KOSAKI Motohiro <>
    Cc: Hugh Dickins <>
    Signed-off-by: Linus Torvalds <>
Commits on Jul 16, 2010
  1. ocfs2: Silence gcc warning in ocfs2_write_zero_page().

    Joel Becker committed
    ocfs2_write_zero_page() has a loop that won't ever be skipped, but gcc
    doesn't know that.  Set ret=0 just to make gcc happy.
    Signed-off-by: Joel Becker <>
  2. @jbarnes993

    PCI: fall back to original BIOS BAR addresses

    Bjorn Helgaas committed with jbarnes993
    If we fail to assign resources to a PCI BAR, this patch makes us try the
    original address from BIOS rather than leaving it disabled.
    Linux tries to make sure all PCI device BARs are inside the upstream
    PCI host bridge or P2P bridge apertures, reassigning BARs if necessary.
    Windows does similar reassignment.
    Before this patch, if we could not move a BAR into an aperture, we left
    the resource unassigned, i.e., at address zero.  Windows leaves such BARs
    at the original BIOS addresses, and this patch makes Linux do the same.
    This is a bit ugly because we disable the resource long before we try to
    reassign it, so we have to keep track of the BIOS BAR address somewhere.
    For lack of a better place, I put it in the struct pci_dev.
    I think it would be cleaner to attempt the assignment immediately when the
    claim fails, so we could easily remember the original address.  But we
    currently claim motherboard resources in the middle, after attempting to
    claim PCI resources and before assigning new PCI resources, and changing
    that is a fairly big job.
    Reported-by: Andrew <>
    Tested-by: Andrew <>
    Signed-off-by: Bjorn Helgaas <>
    Signed-off-by: Jesse Barnes <>
  3. @torvalds

    Merge branch 'perf-fixes-for-linus' of git://…

    torvalds committed
    * 'perf-fixes-for-linus' of git://
      tracing: Add alignment to syscall metadata declarations
      perf: Sync callchains with period based hits
      perf: Resurrect flat callchains
      perf: Version String fix, for fallback if not from git
      perf: Version String fix, using kernel version
  4. @torvalds

    Merge git://

    torvalds committed
    * git://
      GFS2: rename causes kernel Oops
      GFS2: BUG in gfs2_adjust_quota
      GFS2: Fix kernel NULL pointer dereference by dlm_astd
      GFS2: recovery stuck on transaction lock
      GFS2: O_TRUNC not working on stuffed files across cluster
  5. @torvalds

    Merge branch 'for-linus' of git://…

    torvalds committed
    * 'for-linus' of git://
      Input: w90p910_ts - fix call to setup_timer()
      Input: synaptics - fix wrong dimensions check
      Input: i8042 - mark stubs in i8042.h "static inline"
  6. @WanZongShun @dtor

    Input: w90p910_ts - fix call to setup_timer()

    WanZongShun committed with dtor
    No need to take address, w90p910_ts is already a pointer.
    Signed-off-by: Wan ZongShun <>
    Signed-off-by: Dmitry Torokhov <>
  7. @torvalds

    Merge git://

    torvalds committed
    * git://
      crypto: skcipher - avoid NULL dereference
Commits on Jul 15, 2010
  1. @jankara

    jbd2/ocfs2: Fix block checksumming when a buffer is used in several t…

    jankara committed with Joel Becker
    OCFS2 uses t_commit trigger to compute and store checksum of the just
    committed blocks. When a buffer has b_frozen_data, checksum is computed
    for it instead of b_data but this can result in an old checksum being
    written to the filesystem in the following scenario:
    1) transaction1 is opened
    2) handle1 is opened
    3) journal_access(handle1, bh)
        - This sets jh->b_transaction to transaction1
    4) modify(bh)
    5) journal_dirty(handle1, bh)
    6) handle1 is closed
    7) start committing transaction1, opening transaction2
    8) handle2 is opened
    9) journal_access(handle2, bh)
        - This copies off b_frozen_data to make it safe for transaction1 to commit.
          jh->b_next_transaction is set to transaction2.
    10) jbd2_journal_write_metadata() checksums b_frozen_data
    11) the journal correctly writes b_frozen_data to the disk journal
    12) handle2 is closed
        - There was no dirty call for the bh on handle2, so it is never queued for
          any more journal operation
    13) Checkpointing finally happens, and it just spools the bh via normal buffer
    writeback.  This will write b_data, which was never triggered on and thus
    contains a wrong (old) checksum.
    This patch fixes the problem by calling the trigger at the moment data is
    frozen for journal commit - i.e., either when b_frozen_data is created by
    do_get_write_access or just before we write a buffer to the log if
    b_frozen_data does not exist. We also rename the trigger to t_frozen as
    that better describes when it is called.
    Signed-off-by: Jan Kara <>
    Signed-off-by: Mark Fasheh <>
    Signed-off-by: Joel Becker <>
  2. ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node

    Wengang Wang committed with Joel Becker
    For migration, we are waiting for DLM_LOCK_RES_MIGRATING flag to be set
    before sending DLM_MIG_LOCKRES_MSG message to the target. We are using
    dlm_migration_can_proceed() for that purpose.  However, if the node is
    down, dlm_migration_can_proceed() will also return "go ahead".  In this
    rare case, the DLM_LOCK_RES_MIGRATING flag might not be set yet. Remove
    the BUG_ON() that trips over this condition.
    Signed-off-by: Wengang Wang <>
    Signed-off-by: Joel Becker <>
  3. ocfs2: Don't duplicate pages past i_size during CoW.

    Tao Ma committed with Joel Becker
    During CoW, the pages after i_size don't contain valid data, so there's
    no need to read and duplicate them.
    Signed-off-by: Tao Ma <>
    Signed-off-by: Joel Becker <>
  4. @swhiteho

    GFS2: rename causes kernel Oops

    Bob Peterson committed with swhiteho
    This patch fixes a kernel Oops in the GFS2 rename code.
    The problem was in the way the gfs2 directory code was trying
    to re-use sentinel directory entries.
    In the failing case, gfs2's rename function was renaming a
    file to another name that had the same non-trivial length.
    The file being renamed happened to be the first directory
    entry on the leaf block.
    First, the rename code (gfs2_rename in ops_inode.c) found the
    original directory entry and decided it could do its job by
    simply replacing the directory entry with another.  Therefore
    it determined correctly that no block allocations were needed.
    Next, the rename code deleted the old directory entry prior to
    replacing it with the new name.  Therefore, the soon-to-be
    replaced directory entry was temporarily made into a directory
    entry "sentinel" or a place holder at the start of a leaf block.
    Lastly, it went to re-add the replacement directory entry in
    that leaf block.  However, when gfs2_dirent_find_space was
    looking for space in the leaf block, it used the wrong value
    for the sentinel.  That threw off its calculations so later
    it decides it can't really re-use the sentinel and therefore
    must allocate a new leaf block.  But because it previously decided
    to re-use the directory entry, it didn't waste the time to
    grab a new block allocation for the inode.  Therefore, the
    inode's i_alloc pointer was still NULL and it crashes trying to
    reference it.
    In the case of sentinel directory entries, the entire dirent is
    reused, not just the "free space" portion of it, and therefore
    the function gfs2_dirent_find_space should use the value 0
    rather than GFS2_DIRENT_SIZE(0) for the actual dirent size.
    Fixing this calculation enables the reproducer programs to work
    Signed-off-by: Bob Peterson <>
    Signed-off-by: Steven Whitehouse <>
  5. @swhiteho

    GFS2: BUG in gfs2_adjust_quota

    Abhijith Das committed with swhiteho
    HighMem pages on i686 do not get mapped to the buffer_heads and this was
    causing a NULL pointer dereference when we were trying to memset page buffers
    to zero.
    We now use zero_user() that kmaps the page and directly manipulates page data.
    This patch also fixes a boundary condition that was incorrect.
    Signed-off-by: Abhi Das <>
    Signed-off-by: Steven Whitehouse <>
  6. @swhiteho

    GFS2: Fix kernel NULL pointer dereference by dlm_astd

    Bob Peterson committed with swhiteho
    This patch fixes a problem in an error path when looking
    up dinodes.  There are two sister-functions, gfs2_inode_lookup
    and gfs2_process_unlinked_inode.  Both functions acquire and
    hold the i_iopen glock for the dinode being looked up. The last
    thing they try to do is hold the i_gl glock for the dinode.
    If that glock fails for some reason, the error path was
    incorrectly calling gfs2_glock_put for the i_iopen glock twice.
    This resulted in the glock being prematurely freed.  The
    "minimum hold time" usually kept the glock in memory, but the
    lock interface to dlm (aka lock_dlm) freed its memory for the
    glock.  In some circumstances, it would cause dlm's dlm_astd daemon
    to try to call the bast function for the freed lock_dlm memory,
    which resulted in a NULL pointer dereference.
    Signed-off-by: Bob Peterson <>
    Signed-off-by: Steven Whitehouse <>
  7. @swhiteho

    GFS2: recovery stuck on transaction lock

    Bob Peterson committed with swhiteho
    This patch fixes bugzilla bug #590878: GFS2: recovery stuck on
    transaction lock.  We set the frozen flag on the glock when we receive
    a completion that cannot be delivered due to blocked locks. At that
    point we check to see whether the first waiting holder has the noexp
    flag set. If the noexp lock is queued later, then we need to unfreeze
    the glock at that point in time, namely, in the glock work function.
    This patch was originally written by Steve Whitehouse, but since
    he's on holiday, I'm submitting it.  It's been well tested with a
    complex recovery test called revolver.
    Signed-off-by: Steve Whitehouse <>
    Signed-off-by: Bob Peterson <>
  8. @swhiteho

    GFS2: O_TRUNC not working on stuffed files across cluster

    Bob Peterson committed with swhiteho
    This patch replaces a statement that got dropped out by accident.
    Without the patch, truncates on stuffed (very small) files cause
    those files to have an unpredictable size.
    Signed-off-by: Bob Peterson <>
    Signed-off-by: Steven Whitehouse <>
  9. @torvalds


    torvalds committed
      ARM: 6226/1: fix kprobe bug in ldr instruction emulation
      ARM: Update mach-types
      ARM: lockdep: fix unannotated irqs-on
      ARM: 6184/2: ux500: use neutral PRCMU base
      ARM: 6212/1: atomic ops: add memory constraints to inline asm
      ARM: 6211/1: atomic ops: fix register constraints for atomic64_add_unless
      ARM: 6210/1: Do not rely on reset defaults of L2X0_AUX_CTRL
  10. @torvalds

    Merge branch 'lmb-to-memblock' of git://…

    torvalds committed
    * 'lmb-to-memblock' of git://
      lmb: rename to memblock
  11. @torvalds

    Merge branch 'merge' of git://…

    torvalds committed
    * 'merge' of git://
      powerpc/fsl-booke: Fix address issue when using relocatable kernels
      powerpc/cpm1: Mark micropatch code/data static and __init
      powerpc/cpm1: Fix build with various CONFIG_*_UCODE_PATCH combinations
      powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue)
Commits on Jul 14, 2010
  1. @npitre

    ARM: 6226/1: fix kprobe bug in ldr instruction emulation

    npitre committed with Russell King
    From: Bin Yang <>
    Signed-off-by: Bin Yang <>
    Signed-off-by: Nicolas Pitre <>
    Signed-off-by: Russell King <>
  2. @tiwai @dtor

    Input: synaptics - fix wrong dimensions check

    tiwai committed with dtor
    The commit 83ba9ea ommitted the return
    line for the old synaptics model accidentally.  This resulted in a wrong
    check, namely, the dimensions are checked for the old devices that don't
    support the query properly.
    This patch adds the return line back.
    Signed-off-by: Takashi Iwai <>
    Signed-off-by: Dmitry Torokhov <>
  3. @ozbenh

    lmb: rename to memblock

    Yinghai Lu committed with ozbenh
    via following scripts
          FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')
          sed -i \
            -e 's/lmb/memblock/g' \
            -e 's/LMB/MEMBLOCK/g' \
          for N in $(find . -name lmb.[ch]); do
            M=$(echo $N | sed 's/lmb/memblock/g')
            mv $N $M
    and remove some wrong change like lmbench and dlmb etc.
    also move memblock.c from lib/ to mm/
    Suggested-by: Ingo Molnar <>
    Acked-by: "H. Peter Anvin" <>
    Acked-by: Benjamin Herrenschmidt <>
    Acked-by: Linus Torvalds <>
    Signed-off-by: Yinghai Lu <>
    Signed-off-by: Benjamin Herrenschmidt <>
  4. @torvalds

    Merge branch 'x86-fixes-for-linus' of git://…

    torvalds committed
    * 'x86-fixes-for-linus' of git://
      input: i8042 - add runtime check in x86's i8042_platform_init
      Revert "Input: fixup X86_MRST selects"
      Revert "Input: do not force selecting i8042 on Moorestown"
      x86, mrst: Add i8042_detect API for Moorestwon platform
      x86: Add i8042 pre-detection hook to x86_platform_ops
      x86, platform: Export x86_platform to modules
  5. @torvalds

    Merge branch 'kvm-updates/2.6.35' of git://…

    torvalds committed
    * 'kvm-updates/2.6.35' of git://
      KVM: MMU: flush remote tlbs when overwriting spte with different pfn
      KVM: VMX: Fix host MSR_KERNEL_GS_BASE corruption
Commits on Jul 12, 2010
  1. @torvalds

    Linux 2.6.35-rc5

    torvalds committed
  2. @torvalds

    Merge branch 'arm/defconfig/reduced-v2.6.35-rc1' of git://git.pengutr…

    torvalds committed
    * 'arm/defconfig/reduced-v2.6.35-rc1' of git://
      ARM: reduce defconfigs
    This is a big change, but results in no loss of information, despite us
    losing almost 200k lines:
     177 files changed, 652 insertions(+), 194157 deletions(-)
    and Grant Likely thinks powerpc can also use the same reduction
    The python script that did the reduction looks like this:
        #! /usr/bin/env python
        # vim: set fileencoding=utf-8 :
        # Copyright (C) 2010 by Uwe Kleine-König <>
        import re
        import subprocess
        import os
        import sys
        # This prevents including a timestamp in the .config which makes comparing a
        # bit easier.
        os.environ['KCONFIG_NOTIMESTAMP'] = 'Yes, please'
        # XXX: get these using getopt
        kernel_tree = '' # os.path.join(os.environ['HOME'], 'gsrc', 'linux-2.6')
        arch = 'arm'
        target = sys.argv[1]
        defconfig_src = os.path.join(kernel_tree, 'arch/%s/configs/%s' % (arch, target))
        subprocess.check_call(['make', '-s', 'ARCH=%s' % arch, target])
        origconfig = list(open('.config'))
        config = list(origconfig)
        config_size = os.stat('.config').st_size
        i = 0
        while i < len(config):
            print 'test for %r' % config[i]
            defconfig = open(defconfig_src, 'w')
            defconfig.writelines(config[i + 1:])
            subprocess.check_call(['make', '-s', 'ARCH=%s' % arch, target])
            if os.stat('.config').st_size == config_size and list(open('.config')) == origconfig:
                del config[i]
                i += 1
        defconfig = open(defconfig_src, 'w')
    which is pretty self-explanatory.
    Acked-by: Nicolas Pitre <>
    Acked-by: Russell King <>
    Acked-by: Grant Likely <>
    Signed-off-by: Linus Torvalds <>
  3. @torvalds

    Merge branch 'fix/hda' of git://…

    torvalds committed
    * 'fix/hda' of git://
      ALSA: hda - Restore cleared pin controls on resume
  4. @torvalds

    Merge branch 'v4l_for_2.6.35' of git://…

    torvalds committed
    * 'v4l_for_2.6.35' of git://
      V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and host drivers
      V4L/DVB: v4l: mem2mem_testdev: fix g_fmt NULL pointer dereference
      V4L/DVB: uvcvideo: Power line frequency control doesn't support GET_MIN/MAX/RES
      V4L/DVB: ivtv: Add delay to ensure the decoder always restarts with a blank screen
      V4L/DVB: Documentation: Add the Philips FQ1236 MK5 to video4linux/CARDLIST.tuner
      V4L/DVB: tveeprom: Add an entry for tuner code 168: a TCL M30WTP-4N-E tuner
      V4L/DVB: tuner: Add a definition for the Philips FQ1236 MK5 NTSC tuner
      V4L/DVB: OMAP_VOUT: fix: Module params were not working through bootargs
      V4L/DVB: OMAP_VOUT: fix: Replaced dma-sg with dma-contig
      V4L/DVB: OMAP_VOUT:Build FIX: Rebased against latest DSS2 changes
  5. @torvalds

    Merge branch 'for-linus' of git://…

    torvalds committed
    * 'for-linus' of git://
      HID: Send Report ID when numbered reports are sent over the control endpoint.
      HID: Enable HID_QUIRK_MULTI_INPUT for Retro Adaptor
      HID: add support for CH Eclipse yoke
      HID: eliminate a double lock in debug code
      HID: ntrig: add support for new firwmare versions
      HID: check for HID_QUIRK_IGNORE during probing
      HID: roccat: fix modules interdependencies
  6. @JoePerches @torvalds

    MAINTAINERS: fix EDAC-I7CORE file patterns

    JoePerches committed with torvalds
    File patterns are one per line.
    Fixed include file location.
    Signed-off-by: Joe Perches <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Mauro Carvalho Chehab <>
    Signed-off-by: Linus Torvalds <>
  7. @error27

    ocfs2: tighten up strlen() checking

    error27 committed with Joel Becker
    This function is only called from one place and it's like this:
    	dlm_register_domain(conn->cc_name, dlm_key, &fs_version);
    The "conn->cc_name" is 64 characters long.  If strlen(conn->cc_name)
    were equal to O2NM_MAX_NAME_LEN (64) that would be a bug because
    strlen() doesn't count the NULL character.
    In fact, if you look how O2NM_MAX_NAME_LEN is used, it mostly describes
    64 character buffers.  The only exception is nd_name from struct
    Anyway I looked into it and in this case the domain string comes from
    osb->uuid_str in ocfs2_setup_osb_uuid().  That's 32 characters and NULL
    which easily fits into O2NM_MAX_NAME_LEN.  This patch doesn't change how
    the code works, but I think it makes the code a little cleaner.
    Signed-off-by: Dan Carpenter <>
    Signed-off-by: Joel Becker <>
Something went wrong with that request. Please try again.