02 Jun, 2012

40 commits

  • Pull fbdev updates from Florian Tobias Schandinat:
    - driver for AUO-K1900 and AUO-K1901 epaper controller
    - large updates for OMAP (e.g. decouple HDMI audio and video)
    - some updates for Exynos and SH Mobile
    - various other small fixes and cleanups

    * tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6: (130 commits)
    video: bfin_adv7393fb: Fix cleanup code
    video: exynos_dp: reduce delay time when configuring video setting
    video: exynos_dp: move sw reset prioir to enabling sw defined function
    video: exynos_dp: use devm_ functions
    fb: handle NULL pointers in framebuffer release
    OMAPDSS: HDMI: OMAP4: Update IRQ flags for the HPD IRQ request
    OMAPDSS: Apply VENC timings even if panel is disabled
    OMAPDSS: VENC/DISPC: Delay dividing Y resolution for managers connected to VENC
    OMAPDSS: DISPC: Support rotation through TILER
    OMAPDSS: VRFB: remove compiler warnings when CONFIG_BUG=n
    OMAPFB: remove compiler warnings when CONFIG_BUG=n
    OMAPDSS: remove compiler warnings when CONFIG_BUG=n
    OMAPDSS: DISPC: fix usage of dispc_ovl_set_accu_uv
    OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays
    OMAPDSS: DSI: Support command mode interleaving during video mode blanking periods
    OMAPDSS: DISPC: Update Accumulator configuration for chroma plane
    drivers/video: fsl-diu-fb: don't initialize the THRESHOLDS registers
    video: exynos mipi dsi: support reverse panel type
    video: exynos mipi dsi: Properly interpret the interrupt source flags
    video: exynos mipi dsi: Avoid races in probe()
    ...

    Linus Torvalds
     
  • Pull mtd update from David Woodhouse:
    - More robust parsing especially of xattr data in JFFS2
    - Updates to mxc_nand and gpmi drivers to support new boards and device tree
    - Improve consistency of information about ECC strength in NAND devices
    - Clean up partition handling of plat_nand
    - Support NAND drivers without dedicated access to OOB area
    - BCH hardware ECC support for OMAP
    - Other fixes and cleanups, and a few new device IDs

    Fixed trivial conflict in drivers/mtd/nand/gpmi-nand/gpmi-nand.c due to
    added include files next to each other.

    * tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd: (75 commits)
    mtd: mxc_nand: move ecc strengh setup before nand_scan_tail
    mtd: block2mtd: fix recursive call of mtd_writev
    mtd: gpmi-nand: define ecc.strength
    mtd: of_parts: fix breakage in Kconfig
    mtd: nand: fix scan_read_raw_oob
    mtd: docg3 fix in-middle of blocks reads
    mtd: cfi_cmdset_0002: Slight cleanup of fixup messages
    mtd: add fixup for S29NS512P NOR flash.
    jffs2: allow to complete xattr integrity check on first GC scan
    jffs2: allow to discriminate between recoverable and non-recoverable errors
    mtd: nand: omap: add support for hardware BCH ecc
    ARM: OMAP3: gpmc: add BCH ecc api and modes
    mtd: nand: check the return code of 'read_oob/read_oob_raw'
    mtd: nand: remove 'sndcmd' parameter of 'read_oob/read_oob_raw'
    mtd: m25p80: Add support for Winbond W25Q80BW
    jffs2: get rid of jffs2_sync_super
    jffs2: remove unnecessary GC pass on sync
    jffs2: remove unnecessary GC pass on umount
    jffs2: remove lock_super
    mtd: gpmi: add gpmi support for mx6q
    ...

    Linus Torvalds
     
  • Pull x86 platform driver updates from Matthew Garrett:
    "Some significant improvements for the Sony driver on newer machines,
    but other than that mostly just minor fixes and a patch to remove the
    broken rfkill code from the Dell driver."

    * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86: (35 commits)
    apple-gmux: Fix up the suspend/resume patch
    dell-laptop: Remove rfkill code
    toshiba_acpi: Fix mis-merge
    dell-laptop: Add touchpad led support for Dell V3450
    acer-wmi: add 3 laptops to video backlight vendor mode quirk table
    sony-laptop: add touchpad enable/disable function
    sony-laptop: add missing Fn key combos for 0x100 handlers
    sony-laptop: add support for more WWAN modems
    sony-laptop: new keyboard backlight handle
    sony-laptop: add high speed battery charging function
    sony-laptop: support automatic resume on lid open
    sony-laptop: adjust error handling in finding SNC handles
    sony-laptop: add thermal profiles support
    sony-laptop: support battery care functions
    sony-laptop: additional debug statements
    sony-laptop: improve SNC initialization and acpi notify callback code
    sony-laptop: use kstrtoul to parse sysfs values
    sony-laptop: generalise ACPI calls into SNC functions
    sony-laptop: fix return path when no ACPI buffer is allocated
    sony-laptop: use soft rfkill status stored in hw
    ...

    Linus Torvalds
     
  • Pull slab updates from Pekka Enberg:
    "Mainly a bunch of SLUB fixes from Joonsoo Kim"

    * 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
    slub: use __SetPageSlab function to set PG_slab flag
    slub: fix a memory leak in get_partial_node()
    slub: remove unused argument of init_kmem_cache_node()
    slub: fix a possible memory leak
    Documentations: Fix slabinfo.c directory in vm/slub.txt
    slub: fix incorrect return type of get_any_partial()

    Linus Torvalds
     
  • Pull arm fixes for ux500 mismerge mishap from Arnd Bergmann:
    "The device tree conversion for arm/ux500 in 3.5 turns out to be
    incomplete because of a mismerge done by Linus Walleij that I failed
    to notice early enough and that Lee Jones as the original author of
    those patches did not manage to fix during the -next cycle. While we
    originally to get a much larger set of ux500 device tree enablement
    patches merged, this did not happen in time.

    After some discussion at Linaro Connect conference this week, Lee has
    been able to do damage control and provide a series to put the broken
    platform back into usable shape for both DT and non-DT based booting.

    This series has not been part of linux-next and is based on top of the
    current state of the upstream kernel rather than an -rc, but this is
    the best we could manage given the earlier breakage."

    * 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: ux500: Enable probing of pinctrl through Device Tree
    ARM: ux500: Add support for ab8500 regulators into the Device Tree
    ARM: ux500: Provide regulator support for SMSC911x via Device Tree
    ARM: ux500: Allow PRCMU regulator to be probed during a DT enabled boot
    ARM: ux500: Apply db8500-prcmu regulator information to db8500 Device Tree
    ARM: ux500: Only initialise STE's UIBs on boards which support them
    ARM: ux500: Disable platform setup of the ab8500 when DT is enabled
    ARM: ux500: Use correct format for dynamic IRQ assignment
    ARM: ux500: Re-enable SMSC911x platform code registration during non-DT boots
    ARM: ux500: PRCMU related configuration and layout corrections for Device Tree
    ARM: ux500: Remove DB8500 PRCMU platform registration when DT is enabled
    ARM: ux500: Disable SMSC911x platform code registration when DT is enabled
    ARM: ux500: New DT:ed u8500_init_devices for one-by-one device enablement
    ARM: ux500: New DT:ed snowball_platform_devs for one-by-one device enablement
    pinctrl-nomadik: Allow Device Tree driver probing

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "A bunch of fixes:
    - vmware memory corruption
    - ttm spinlock balance
    - cirrus/mgag200 work in the presence of efifb
    and finally Alex and Jerome managed to track down a magic set of bits
    that on certain rv740 and evergreen cards allow the correct use of the
    complete set of render backends, this makes the cards operate
    correctly in a number of scenarios we had issues in before, it also
    manages to boost speed on benchmarks my large amounts on these
    specific gpus."

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/edid: Make the header fixup threshold tunable
    drm/radeon: fix regression in UMS CS ioctl
    drm/vmwgfx: Fix nasty write past alloced memory area
    drm/ttm: Fix spinlock imbalance
    drm/radeon: fixup tiling group size and backendmap on r6xx-r9xx (v4)
    drm/radeon: fix HD6790, HD6570 backend programming
    drm/radeon: properly program gart on rv740, juniper, cypress, barts, hemlock
    drm/radeon: fix bank information in tiling config
    drm/mgag200: kick off conflicting framebuffers earlier.
    drm/cirrus: kick out conflicting framebuffers earlier
    cirrus: avoid crash if driver fails to load

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Just a few trivial driver-specific fixes."

    * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hdspm - Work around broken DDS value on PCI RME MADI
    ALSA: usb-audio: fix rate_list memory leak
    ASoC: fsi: bugfix: ensure dma is terminated
    ASoC: fsi: bugfix: correct dma area
    ASoC: fsi: bugfix: enable master clock control on DMA stream
    ASoC: imx-ssi: Use clk_prepare_enable/clk_disable_unprepare

    Linus Torvalds
     
  • Since commit 6a918bade9dab40aaef80559bd1169c69e8d69cb, the mxc_nand driver
    fails with:

    Driver must set ecc.strength when using hardware ECC

    This is because nand_scan_tail checks for correct ecc strength
    settings, so we must set them up before nand_scan_tail.

    Signed-off-by: Sascha Hauer
    Cc: stable@vger.kernel.org [3.4+]
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Sascha Hauer
     
  • The 'mtd_writev' interface calls the function assigned
    to the '_write' field of a given mtd device if that is
    not NULL. The block2mtd driver sets the '_writev' field
    to the 'mtd_writev' function itself and thus causes a
    endless loop.

    This is caused by 1dbebd32562b3c2caeca35960e5cb00bfcc12900
    (mtd: harmonize mtd_writev usage).

    Remove the assignment from the block2mtd driver to fix the
    issue.

    Signed-off-by: Gabor Juhos
    Cc: stable@kernel.org [3.3+]
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Gabor Juhos
     
  • Fix an issue which was introduced by the recent addition of ecc.strength.

    The ecc.strength wasn't set in gpmi-nand, resulting in the following crash:
    [ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347!
    ...
    [ 2.550000] [] (nand_scan_tail+0x328/0x650) from [] (gpmi_nand_probe+0x43c/0x5a4)
    [ 2.550000] [] (gpmi_nand_probe+0x43c/0x5a4) from [] (platform_drv_probe+0x14/0x18)
    [ 2.550000] [] (platform_drv_probe+0x14/0x18) from [] (driver_probe_device+0x74/0x1fc)
    [ 2.550000] [] (driver_probe_device+0x74/0x1fc) from [] (__driver_attach+0x94/0x98)
    [ 2.550000] [] (__driver_attach+0x94/0x98) from [] (bus_for_each_dev+0x50/0x80)
    [ 2.550000] [] (bus_for_each_dev+0x50/0x80) from [] (bus_add_driver+0x188/0x25c)
    [ 2.550000] [] (bus_add_driver+0x188/0x25c) from [] (driver_register+0x78/0x138)
    [ 2.550000] [] (driver_register+0x78/0x138) from [] (gpmi_nand_init+0xc/0x30)
    [ 2.550000] [] (gpmi_nand_init+0xc/0x30) from [] (do_one_initcall+0x108/0x17c)
    [ 2.550000] [] (do_one_initcall+0x108/0x17c) from [] (kernel_init+0xfc/0x1bc)
    [ 2.550000] [] (kernel_init+0xfc/0x1bc) from [] (kernel_thread_exit+0x0/0x8)

    Signed-off-by: Marek Vasut
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Marek Vasut
     
  • I incorporated the wrong version of the suspend/resume patch for gmux,
    and so lost David Woodhouse's fix to leave the backlight level unchanged
    over suspend/resume. This fixes it up to v2.

    Signed-off-by: Matthew Garrett

    Matthew Garrett
     
  • MTD_OF_PARTS and the default setting is not working due to using 'Y'
    instead of 'y', introduced in commit
    d6137badeff1ef64b4e0092ec249ebdeaeb3ff37. This made our board, and
    possibly other boards using DTS defined partitions and not having
    CONFIG_MTD_OF_PARTS=y defined in the defconfig, fail to mount root.

    Signed-off-by: Frank Svendsboe
    Cc: stable@kernel.org [3.2+]
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Frank Svendsboe
     
  • Pull third pile of signal handling patches from Al Viro:
    "This time it's mostly helpers and conversions to them; there's a lot
    of stuff remaining in the tree, but that'll either go in -rc2
    (isolated bug fixes, ideally via arch maintainers' trees) or will sit
    there until the next cycle."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    x86: get rid of calling do_notify_resume() when returning to kernel mode
    blackfin: check __get_user() return value
    whack-a-mole with TIF_FREEZE
    FRV: Optimise the system call exit path in entry.S [ver #2]
    FRV: Shrink TIF_WORK_MASK [ver #2]
    FRV: Prevent syscall exit tracing and notify_resume at end of kernel exceptions
    new helper: signal_delivered()
    powerpc: get rid of restore_sigmask()
    most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set
    set_restore_sigmask() is never called without SIGPENDING (and never should be)
    TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set
    don't call try_to_freeze() from do_signal()
    pull clearing RESTORE_SIGMASK into block_sigmask()
    sh64: failure to build sigframe != signal without handler
    openrisc: tracehook_signal_handler() is supposed to be called on success
    new helper: sigmask_to_save()
    new helper: restore_saved_sigmask()
    new helpers: {clear,test,test_and_clear}_restore_sigmask()
    HAVE_RESTORE_SIGMASK is defined on all architectures now

    Linus Torvalds
     
  • Pull vfs changes from Al Viro.
    "A lot of misc stuff. The obvious groups:
    * Miklos' atomic_open series; kills the damn abuse of
    ->d_revalidate() by NFS, which was the major stumbling block for
    all work in that area.
    * ripping security_file_mmap() and dealing with deadlocks in the
    area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in
    general.
    * ->encode_fh() switched to saner API; insane fake dentry in
    mm/cleancache.c gone.
    * assorted annotations in fs (endianness, __user)
    * parts of Artem's ->s_dirty work (jff2 and reiserfs parts)
    * ->update_time() work from Josef.
    * other bits and pieces all over the place.

    Normally it would've been in two or three pull requests, but
    signal.git stuff had eaten a lot of time during this cycle ;-/"

    Fix up trivial conflicts in Documentation/filesystems/vfs.txt (the
    'truncate_range' inode method was removed by the VM changes, the VFS
    update adds an 'update_time()' method), and in fs/btrfs/ulist.[ch] (due
    to sparse fix added twice, with other changes nearby).

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)
    nfs: don't open in ->d_revalidate
    vfs: retry last component if opening stale dentry
    vfs: nameidata_to_filp(): don't throw away file on error
    vfs: nameidata_to_filp(): inline __dentry_open()
    vfs: do_dentry_open(): don't put filp
    vfs: split __dentry_open()
    vfs: do_last() common post lookup
    vfs: do_last(): add audit_inode before open
    vfs: do_last(): only return EISDIR for O_CREAT
    vfs: do_last(): check LOOKUP_DIRECTORY
    vfs: do_last(): make ENOENT exit RCU safe
    vfs: make follow_link check RCU safe
    vfs: do_last(): use inode variable
    vfs: do_last(): inline walk_component()
    vfs: do_last(): make exit RCU safe
    vfs: split do_lookup()
    Btrfs: move over to use ->update_time
    fs: introduce inode operation ->update_time
    reiserfs: get rid of resierfs_sync_super
    reiserfs: mark the superblock as dirty a bit later
    ...

    Linus Torvalds
     
  • Pull Ext4 updates from Theodore Ts'o:
    "The major new feature added in this update is Darrick J Wong's
    metadata checksum feature, which adds crc32 checksums to ext4's
    metadata fields.

    There is also the usual set of cleanups and bug fixes."

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (44 commits)
    ext4: hole-punch use truncate_pagecache_range
    jbd2: use kmem_cache_zalloc wrapper instead of flag
    ext4: remove mb_groups before tearing down the buddy_cache
    ext4: add ext4_mb_unload_buddy in the error path
    ext4: don't trash state flags in EXT4_IOC_SETFLAGS
    ext4: let getattr report the right blocks in delalloc+bigalloc
    ext4: add missing save_error_info() to ext4_error()
    ext4: add debugging trigger for ext4_error()
    ext4: protect group inode free counting with group lock
    ext4: use consistent ssize_t type in ext4_file_write()
    ext4: fix format flag in ext4_ext_binsearch_idx()
    ext4: cleanup in ext4_discard_allocated_blocks()
    ext4: return ENOMEM when mounts fail due to lack of memory
    ext4: remove redundundant "(char *) bh->b_data" casts
    ext4: disallow hard-linked directory in ext4_lookup
    ext4: fix potential integer overflow in alloc_flex_gd()
    ext4: remove needs_recovery in ext4_mb_init()
    ext4: force ro mount if ext4_setup_super() fails
    ext4: fix potential NULL dereference in ext4_free_inodes_counts()
    ext4/jbd2: add metadata checksumming to the list of supported features
    ...

    Linus Torvalds
     
  • If we end up calling do_notify_resume() with !user_mode(refs), it
    does nothing (do_signal() explicitly bails out and we can't get there
    with TIF_NOTIFY_RESUME in such situations). Then we jump to
    resume_userspace_sig, which rechecks the same thing and bails out
    to resume_kernel, thus breaking the loop.

    It's easier and cheaper to check *before* calling do_notify_resume()
    and bail out to resume_kernel immediately. And kill the check in
    do_signal()...

    Note that on amd64 we can't get there with !user_mode() at all - asm
    glue takes care of that.

    Acked-and-reviewed-by: Thomas Gleixner
    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • blackfin has reintroduced it, completely unused.

    Signed-off-by: Al Viro

    Al Viro
     
  • Optimise the system call exit path in entry.S by packing some instructions.

    Suggested-by: Al Viro
    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     
  • Shrink TIF_WORK_MASK so that it will fit in the 12-bit signed immediate
    operand field of an ANDI instruction.

    Suggested-by: Al Viro
    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     
  • Move the test for kernel mode processing from do_signal() into entry.S to also
    prevent system call exit tracing and userspace resumption notification handling
    happening when returning from kernel exceptions.

    Reported-by: Al Viro
    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     
  • Does block_sigmask() + tracehook_signal_handler(); called when
    sigframe has been successfully built. All architectures converted
    to it; block_sigmask() itself is gone now (merged into this one).

    I'm still not too happy with the signature, but that's a separate
    story (IMO we need a structure that would contain signal number +
    siginfo + k_sigaction, so that get_signal_to_deliver() would fill one,
    signal_delivered(), handle_signal() and probably setup...frame() -
    take one).

    Signed-off-by: Al Viro

    Al Viro
     
  • ... it's just a call of set_current_blocked() now

    Signed-off-by: Al Viro

    Al Viro
     
  • Only 3 out of 63 do not. Renamed the current variant to __set_current_blocked(),
    added set_current_blocked() that will exclude unblockable signals, switched
    open-coded instances to it.

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • get_signal_to_deliver() will handle it itself

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • it's actually "send me SIGSEGV"...

    Signed-off-by: Al Viro

    Al Viro
     
  • ... not if sigframe couldn't have been built.

    Signed-off-by: Al Viro

    Al Viro
     
  • replace boilerplate "should we use ->saved_sigmask or ->blocked?"
    with calls of obvious inlined helper...

    Signed-off-by: Al Viro

    Al Viro
     
  • first fruits of ..._restore_sigmask() helpers: now we can take
    boilerplate "signal didn't have a handler, clear RESTORE_SIGMASK
    and restore the blocked mask from ->saved_mask" into a common
    helper. Open-coded instances switched...

    Signed-off-by: Al Viro

    Al Viro
     
  • helpers parallel to set_restore_sigmask(), used in the next commits

    Signed-off-by: Al Viro

    Al Viro
     
  • Everyone either defines it in arch thread_info.h or has TIF_RESTORE_SIGMASK
    and picks default set_restore_sigmask() in linux/thread_info.h. Kill the
    ifdefs, slap #error in linux/thread_info.h to catch breakage when new ones
    get merged.

    Signed-off-by: Al Viro

    Al Viro
     
  • The interface just doesn't work on some machines, and Dell haven't been
    able to tell us either which machines those are or what we should be
    doing instead. This would be fine, except it results in userspace ending
    up confused and general sadness. So let's just rip it out for now.

    Signed-off-by: Matthew Garrett

    Matthew Garrett
     
  • NFSv4 can't do reliable opens in d_revalidate, since it cannot know whether a
    mount needs to be followed or not. It does check d_mountpoint() on the dentry,
    which can result in a weird error if the VFS found that the mount does not in
    fact need to be followed, e.g.:

    # mount --bind /mnt/nfs /mnt/nfs-clone
    # echo something > /mnt/nfs/tmp/bar
    # echo x > /tmp/file
    # mount --bind /tmp/file /mnt/nfs-clone/tmp/bar
    # cat /mnt/nfs/tmp/bar
    cat: /mnt/nfs/tmp/bar: Not a directory

    Which should, by any sane filesystem, result in "something" being printed.

    So instead do the open in f_op->open() and in the unlikely case that the cached
    dentry turned out to be invalid, drop the dentry and return EOPENSTALE to let
    the VFS retry.

    Signed-off-by: Miklos Szeredi
    CC: Trond Myklebust
    Signed-off-by: Al Viro

    Miklos Szeredi
     
  • NFS optimizes away d_revalidates for last component of open. This means that
    open itself can find the dentry stale.

    This patch allows the filesystem to return EOPENSTALE and the VFS will retry the
    lookup on just the last component if possible.

    If the lookup was done using RCU mode, including the last component, then this
    is not possible since the parent dentry is lost. In this case fall back to
    non-RCU lookup. Currently this is not used since NFS will always leave RCU
    mode.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Al Viro

    Miklos Szeredi
     
  • If open fails, don't put the file. This allows it to be reused if open needs to
    be retried.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Al Viro

    Miklos Szeredi
     
  • Copy __dentry_open() into nameidata_to_filp().

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Al Viro

    Miklos Szeredi
     
  • Move put_filp() out to __dentry_open(), the only caller now.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Al Viro

    Miklos Szeredi