24 May, 2012

35 commits

  • Provide a simple mechanism that allows running code in the (nonatomic)
    context of the arbitrary task.

    The caller does task_work_add(task, task_work) and this task executes
    task_work->func() either from do_notify_resume() or from do_exit(). The
    callback can rely on PF_EXITING to detect the latter case.

    "struct task_work" can be embedded in another struct, still it has "void
    *data" to handle the most common/simple case.

    This allows us to kill the ->replacement_session_keyring hack, and
    potentially this can have more users.

    Performance-wise, this adds 2 "unlikely(!hlist_empty())" checks into
    tracehook_notify_resume() and do_exit(). But at the same time we can
    remove the "replacement_session_keyring != NULL" checks from
    arch/*/signal.c and exit_creds().

    Note: task_work_add/task_work_run abuses ->pi_lock. This is only because
    this lock is already used by lookup_pi_state() to synchronize with
    do_exit() setting PF_EXITING. Fortunately the scope of this lock in
    task_work.c is really tiny, and the code is unlikely anyway.

    Signed-off-by: Oleg Nesterov
    Acked-by: David Howells
    Cc: Thomas Gleixner
    Cc: Richard Kuo
    Cc: Linus Torvalds
    Cc: Alexander Gordeev
    Cc: Chris Zankel
    Cc: David Smith
    Cc: "Frank Ch. Eigler"
    Cc: Geert Uytterhoeven
    Cc: Larry Woodman
    Cc: Peter Zijlstra
    Cc: Tejun Heo
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Oleg Nesterov
     
  • we need that not just on syscall returns but on irq ones as well...

    Signed-off-by: Al Viro

    Al Viro
     
  • ... not just on return from interrupt

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Pull first series of signal handling cleanups from Al Viro:
    "This is just the first part of the queue (about a half of it);
    assorted fixes all over the place in signal handling.

    This one ends with all sigsuspend() implementations switched to
    generic one (->saved_sigmask-based).

    With this, a bunch of assorted old buglets are fixed and most of the
    missing bits of NOTIFY_RESUME hookup are in place. Two more fixes sit
    in arm and um trees respectively, and there's a couple of broken ones
    that need obvious fixes - parisc and avr32 check TIF_NOTIFY_RESUME
    only on one of two codepaths; fixes for that will happen in the next
    series"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (55 commits)
    unicore32: if there's no handler we need to restore sigmask, syscall or no syscall
    xtensa: add handling of TIF_NOTIFY_RESUME
    microblaze: drop 'oldset' argument of do_notify_resume()
    microblaze: handle TIF_NOTIFY_RESUME
    score: add handling of NOTIFY_RESUME to do_notify_resume()
    m68k: add TIF_NOTIFY_RESUME and handle it.
    sparc: kill ancient comment in sparc_sigaction()
    h8300: missing checks of __get_user()/__put_user() return values
    frv: missing checks of __get_user()/__put_user() return values
    cris: missing checks of __get_user()/__put_user() return values
    powerpc: missing checks of __get_user()/__put_user() return values
    sh: missing checks of __get_user()/__put_user() return values
    sparc: missing checks of __get_user()/__put_user() return values
    avr32: struct old_sigaction is never used
    m32r: struct old_sigaction is never used
    xtensa: xtensa_sigaction doesn't exist
    alpha: tidy signal delivery up
    score: don't open-code force_sigsegv()
    cris: don't open-code force_sigsegv()
    blackfin: don't open-code force_sigsegv()
    ...

    Linus Torvalds
     
  • Dave Jones' system call fuzz testing tool "trinity" triggered the
    following bug error with slab debugging enabled

    =============================================================================
    BUG numa_policy (Not tainted): Poison overwritten
    -----------------------------------------------------------------------------

    INFO: 0xffff880146498250-0xffff880146498250. First byte 0x6a instead of 0x6b
    INFO: Allocated in mpol_new+0xa3/0x140 age=46310 cpu=6 pid=32154
    __slab_alloc+0x3d3/0x445
    kmem_cache_alloc+0x29d/0x2b0
    mpol_new+0xa3/0x140
    sys_mbind+0x142/0x620
    system_call_fastpath+0x16/0x1b
    INFO: Freed in __mpol_put+0x27/0x30 age=46268 cpu=6 pid=32154
    __slab_free+0x2e/0x1de
    kmem_cache_free+0x25a/0x260
    __mpol_put+0x27/0x30
    remove_vma+0x68/0x90
    exit_mmap+0x118/0x140
    mmput+0x73/0x110
    exit_mm+0x108/0x130
    do_exit+0x162/0xb90
    do_group_exit+0x4f/0xc0
    sys_exit_group+0x17/0x20
    system_call_fastpath+0x16/0x1b
    INFO: Slab 0xffffea0005192600 objects=27 used=27 fp=0x (null) flags=0x20000000004080
    INFO: Object 0xffff880146498250 @offset=592 fp=0xffff88014649b9d0

    This implied a reference counting bug and the problem happened during
    mbind().

    mbind() applies a new memory policy to a range and uses mbind_range() to
    merge existing VMAs or split them as necessary. In the event of splits,
    mpol_dup() will allocate a new struct mempolicy and maintain existing
    reference counts whose rules are documented in
    Documentation/vm/numa_memory_policy.txt .

    The problem occurs with shared memory policies. The vm_op->set_policy
    increments the reference count if necessary and split_vma() and
    vma_merge() have already handled the existing reference counts.
    However, policy_vma() screws it up by replacing an existing
    vma->vm_policy with one that potentially has the wrong reference count
    leading to a premature free. This patch removes the damage caused by
    policy_vma().

    With this patch applied Dave's trinity tool runs an mbind test for 5
    minutes without error. /proc/slabinfo reported that there are no
    numa_policy or shared_policy_node objects allocated after the test
    completed and the shared memory region was deleted.

    Signed-off-by: Mel Gorman
    Cc: Dave Jones
    Cc: KOSAKI Motohiro
    Cc: Stephen Wilson
    Cc: Christoph Lameter
    Cc: Andrew Morton
    Cc:
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Pull user namespace enhancements from Eric Biederman:
    "This is a course correction for the user namespace, so that we can
    reach an inexpensive, maintainable, and reasonably complete
    implementation.

    Highlights:
    - Config guards make it impossible to enable the user namespace and
    code that has not been converted to be user namespace safe.

    - Use of the new kuid_t type ensures the if you somehow get past the
    config guards the kernel will encounter type errors if you enable
    user namespaces and attempt to compile in code whose permission
    checks have not been updated to be user namespace safe.

    - All uids from child user namespaces are mapped into the initial
    user namespace before they are processed. Removing the need to add
    an additional check to see if the user namespace of the compared
    uids remains the same.

    - With the user namespaces compiled out the performance is as good or
    better than it is today.

    - For most operations absolutely nothing changes performance or
    operationally with the user namespace enabled.

    - The worst case performance I could come up with was timing 1
    billion cache cold stat operations with the user namespace code
    enabled. This went from 156s to 164s on my laptop (or 156ns to
    164ns per stat operation).

    - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.
    Most uid/gid setting system calls treat these value specially
    anyway so attempting to use -1 as a uid would likely cause
    entertaining failures in userspace.

    - If setuid is called with a uid that can not be mapped setuid fails.
    I have looked at sendmail, login, ssh and every other program I
    could think of that would call setuid and they all check for and
    handle the case where setuid fails.

    - If stat or a similar system call is called from a context in which
    we can not map a uid we lie and return overflowuid. The LFS
    experience suggests not lying and returning an error code might be
    better, but the historical precedent with uids is different and I
    can not think of anything that would break by lying about a uid we
    can't map.

    - Capabilities are localized to the current user namespace making it
    safe to give the initial user in a user namespace all capabilities.

    My git tree covers all of the modifications needed to convert the core
    kernel and enough changes to make a system bootable to runlevel 1."

    Fix up trivial conflicts due to nearby independent changes in fs/stat.c

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)
    userns: Silence silly gcc warning.
    cred: use correct cred accessor with regards to rcu read lock
    userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq
    userns: Convert cgroup permission checks to use uid_eq
    userns: Convert tmpfs to use kuid and kgid where appropriate
    userns: Convert sysfs to use kgid/kuid where appropriate
    userns: Convert sysctl permission checks to use kuid and kgids.
    userns: Convert proc to use kuid/kgid where appropriate
    userns: Convert ext4 to user kuid/kgid where appropriate
    userns: Convert ext3 to use kuid/kgid where appropriate
    userns: Convert ext2 to use kuid/kgid where appropriate.
    userns: Convert devpts to use kuid/kgid where appropriate
    userns: Convert binary formats to use kuid/kgid where appropriate
    userns: Add negative depends on entries to avoid building code that is userns unsafe
    userns: signal remove unnecessary map_cred_ns
    userns: Teach inode_capable to understand inodes whose uids map to other namespaces.
    userns: Fail exec for suid and sgid binaries with ids outside our user namespace.
    userns: Convert stat to return values mapped from kuids and kgids
    userns: Convert user specfied uids and gids in chown into kuids and kgid
    userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs
    ...

    Linus Torvalds
     
  • …sty/linux-2.6-for-linus

    Pull module patches from Rusty Russell, who really sells them:
    "Three trivial patches of no real utility. Modules are boring."

    But to make things slightly more exciting, he adds:
    "Fortunately David Howells is looking to change this, with his module
    signing patchset. But that's for next merge window...

    Cheers,
    Rusty."

    * tag 'module-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    Guard check in module loader against integer overflow
    modpost: use proper kernel style for autogenerated files
    modpost: Stop grab_file() from leaking filedescriptors if fstat() fails

    Linus Torvalds
     
  • Pull the MCA deletion branch from Paul Gortmaker:
    "It was good that we could support MCA machines back in the day, but
    realistically, nobody is using them anymore. They were mostly limited
    to 386-sx 16MHz CPU and some 486 class machines and never more than
    64MB of RAM. Even the enthusiast hobbyist community seems to have
    dried up close to ten years ago, based on what you can find searching
    various websites dedicated to the relatively short lived hardware.

    So lets remove the support relating to CONFIG_MCA. There is no point
    carrying this forward, wasting cycles doing routine maintenance on it;
    wasting allyesconfig build time on validating it, wasting I/O on git
    grep'ping over it, and so on."

    Let's see if anybody screams. It generally has compiled, and James
    Bottomley pointed out that there was a MCA extension from NCR that
    allowed for up to 4GB of memory and PPro-class machines. So in *theory*
    there may be users out there.

    But even James (technically listed as a maintainer) doesn't actually
    have a system, and while Alan Cox claims to have a machine in his cellar
    that he offered to anybody who wants to take it off his hands, he didn't
    argue for keeping MCA support either.

    So we could bring it back. But somebody had better speak up and talk
    about how they have actually been using said MCA hardware with modern
    kernels for us to do that. And David already took the patch to delete
    all the networking driver code (commit a5e371f61ad3: "drivers/net:
    delete all code/drivers depending on CONFIG_MCA").

    * 'delete-mca' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    MCA: delete all remaining traces of microchannel bus support.
    scsi: delete the MCA specific drivers and driver code
    serial: delete the MCA specific 8250 support.
    arm: remove ability to select CONFIG_MCA

    Linus Torvalds
     
  • Pull md updates from NeilBrown:
    "It's been a busy cycle for md - lots of fun stuff here.. if you like
    this kind of thing :-)

    Main features:
    - RAID10 arrays can be reshaped - adding and removing devices and
    changing chunks (not 'far' array though)
    - allow RAID5 arrays to be reshaped with a backup file (not tested
    yet, but the priciple works fine for RAID10).
    - arrays can be reshaped while a bitmap is present - you no longer
    need to remove it first
    - SSSE3 support for RAID6 syndrome calculations

    and of course a number of minor fixes etc."

    * tag 'md-3.5' of git://neil.brown.name/md: (56 commits)
    md/bitmap: record the space available for the bitmap in the superblock.
    md/raid10: Remove extras after reshape to smaller number of devices.
    md/raid5: improve removal of extra devices after reshape.
    md: check the return of mddev_find()
    MD RAID1: Further conditionalize 'fullsync'
    DM RAID: Use md_error() in place of simply setting Faulty bit
    DM RAID: Record and handle missing devices
    DM RAID: Set recovery flags on resume
    md/raid5: Allow reshape while a bitmap is present.
    md/raid10: resize bitmap when required during reshape.
    md: allow array to be resized while bitmap is present.
    md/bitmap: make sure reshape request are reflected in superblock.
    md/bitmap: add bitmap_resize function to allow bitmap resizing.
    md/bitmap: use DIV_ROUND_UP instead of open-code
    md/bitmap: create a 'struct bitmap_counts' substructure of 'struct bitmap'
    md/bitmap: make bitmap bitops atomic.
    md/bitmap: make _page_attr bitops atomic.
    md/bitmap: merge bitmap_file_unmap and bitmap_file_put.
    md/bitmap: remove async freeing of bitmap file.
    md/bitmap: convert some spin_lock_irqsave to spin_lock_irq
    ...

    Linus Torvalds
     
  • Pull sbp-2 (firewire) target mode support from Nicholas Bellinger:
    "The FireWire SBP-2 Target is a driver for using an IEEE-1394
    connection as a SCSI transport. This module uses the SCSI Target
    framework to expose LUNs to other machines attached to a FireWire bus,
    in effect acting as a FireWire hard disk similar to FireWire Target
    Disk mode on many Apple computers.

    Also included are the two drivers/firewire/ patches required by
    sbp-target to access fw_request fabric speed needed for mgt_agent
    TCODE_WRITE_BLOCK_REQUEST ops, and exporting fw_card kref logic used
    when creating/destroying active session references to individual
    endpoints.

    A credit goes to Chris in being able to get this code up and running
    so quickly w/o any target core changes, and special thanks goes out to
    Stefan Richter + Clemens Ladisch + Andy Grover for their help in
    getting this driver ready for mainline. Also, one of Chris's goals
    was to be able to connect sbp-target to a PowerPC based MacOS-X based
    client, that he accomplished along the way in this obligatory
    screenshot:

    http://linux-iscsi.org/wiki/File:Linux-fireware-target-bootc-macosx.png

    Great work Chris + linux-1394 team !!"

    Acked-by: Stefan Richter

    * 'sbp-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    sbp-target: Initial merge of firewire/ieee-1394 target mode support
    firewire: Move fw_card kref functions into linux/firewire.h
    firewire: Add function to get speed from opaque struct fw_request

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    - New cipher/hash driver for ARM ux500.
    - Code clean-up for aesni-intel.
    - Misc fixes.

    Fixed up conflicts in arch/arm/mach-ux500/devices-common.h, where quite
    frankly some of it made no sense at all (the pull brought in a
    declaration for the dbx500_add_platform_device_noirq() function, which
    neither exists nor is used anywhere).

    Also some trivial add-add context conflicts in the Kconfig file in
    drivers/{char/hw_random,crypto}/

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: aesni-intel - move more common code to ablk_init_common
    crypto: aesni-intel - use crypto_[un]register_algs
    crypto: ux500 - Cleanup hardware identification
    crypto: ux500 - Update DMA handling for 3.4
    mach-ux500: crypto - core support for CRYP/HASH module.
    crypto: ux500 - Add driver for HASH hardware
    crypto: ux500 - Add driver for CRYP hardware
    hwrng: Kconfig - modify default state for atmel-rng driver
    hwrng: omap - use devm_request_and_ioremap
    crypto: crypto4xx - move up err_request_irq label
    crypto, xor: Sanitize checksumming function selection output
    crypto: caam - add backward compatible string sec4.0

    Linus Torvalds
     
  • Pull first set of watchdog updates from Wim Van Sebroeck:
    "This pull contains:

    - The removal of ixp2000_wdt
    - The addition of ie6xx_wdt
    - Some documentation fixes
    - Small fixes and improvements

    (Note: Part 2 will contain generic watchdog core changes + conversion
    of some more drivers)"

    * git://www.linux-watchdog.org/linux-watchdog:
    Documentation/watchdog: Fix the file descriptor leak when no cmdline arg given
    Documentation/watchdog: close the fd when cmdline arg given
    Documentation/watchdog: Fix a small typo
    watchdog: s3c2410_wdt: Set timeout to actually achieved timeout
    watchdog: wm831x: Convert to gpio_request_one()
    watchdog: via_wdt: depends on PCI
    watchdog: ie6xx_wdt needs io.h
    watchdog: ie6xx_wdt.c: fix printk format warning
    watchdog: Add watchdog driver for Intel Atom E6XX
    watchdog: it87_wdt: Add support for IT8728F watchdog.
    watchdog: i6300esb: don't depend on X86
    watchdog: Use module_pci_driver
    watchdog: sch311x_wdt.c: Remove RESGEN
    watchdog: s3c2410-wdt: Use of_match_ptr().
    watchdog: Device tree support for pnx4008-wdt
    watchdog: ar7_wdt.c: use devm_request_and_ioremap
    watchdog: remove ixp2000 driver
    watchdog: sp5100_tco.c: quiet sparse noise about using plain integer was NULL pointer

    Linus Torvalds
     
  • Pull libata update from Jeff Garzik:
    "Changes, all of them boring and minor:

    1) Ugly MSFT Hyper-V workaround in ata_piix

    2) Fix a longstanding error recovery delay caused by excessive
    re-re-retries, when media errors occur.

    3) Minor hw-specific workarounds and quirks

    4) New PATA driver for ep93xx"

    * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    PATA host controller driver for ep93xx
    [libata] Add " 2GB ATA Flash Disk"/"ADMA428M" to DMA blacklist
    ata_generic: Skip is_intel_ider() check when ata_generic=1 is set
    libata-eh don't waste time retrying media errors (v3)
    ata_piix: defer disks to the Hyper-V drivers by default
    libata: add a host flag to ignore detected ATA devices

    Linus Torvalds
     
  • Pull hwmon updates from Guenter Roeck:
    "New driver for INA219 and INA226, added support for IT8782F and
    IT8783E/F to it87 driver, plus cleanups in a couple of drivers."

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (it87) Make temp3 attribute conditional for IT8782F
    hwmon: (it87) Convert to use devm_kzalloc and devm_request_region
    hwmon: INA219 and INA226 support
    hwmon: (it87) Create voltage attributes only if voltage is enabled
    hwmon: (ntc_thermistor) Fix checkpatch warning
    hwmon: (ntc_thermistor) Optimize and fix build warning
    hwmon: (ntc_thermistor) Return error code from hwmon_device_register
    hwmon: (ntc_thermistor) Convert to devm_kzalloc
    hwmon: (ad7314) Remove unused defines, and rename OFFSET to SHIFT
    acpi_power_meter: clean up code around setup_attrs
    acpi_power_meter: drop meter_rw_attrs, use common meter_attrs
    acpi_power_meter: remove duplicate code between register_{ro,rw}_attrs
    acpi_power_meter: use a {RW,RO}_SENSOR_TEMPLATE macro to clean things up
    acpi_power_meter: use the same struct {rw,ro}_sensor_template for both
    hwmon: use module_pci_driver
    hwmon: (it87) Add support for IT8782F and IT8783E/F

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:

    - Implementation of opportunistic suspend (autosleep) and user space
    interface for manipulating wakeup sources.

    - Hibernate updates from Bojan Smojver and Minho Ban.

    - Updates of the runtime PM core and generic PM domains framework
    related to PM QoS.

    - Assorted fixes.

    * tag 'pm-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)
    epoll: Fix user space breakage related to EPOLLWAKEUP
    PM / Domains: Make it possible to add devices to inactive domains
    PM / Hibernate: Use get_gendisk to verify partition if resume_file is integer format
    PM / Domains: Fix computation of maximum domain off time
    PM / Domains: Fix link checking when add subdomain
    PM / Sleep: User space wakeup sources garbage collector Kconfig option
    PM / Sleep: Make the limit of user space wakeup sources configurable
    PM / Documentation: suspend-and-cpuhotplug.txt: Fix typo
    PM / Domains: Cache device stop and domain power off governor results, v3
    PM / Domains: Make device removal more straightforward
    PM / Sleep: Fix a mistake in a conditional in autosleep_store()
    epoll: Add a flag, EPOLLWAKEUP, to prevent suspend while epoll events are ready
    PM / QoS: Create device constraints objects on notifier registration
    PM / Runtime: Remove device fields related to suspend time, v2
    PM / Domains: Rework default domain power off governor function, v2
    PM / Domains: Rework default device stop governor function, v2
    PM / Sleep: Add user space interface for manipulating wakeup sources, v3
    PM / Sleep: Add "prevent autosleep time" statistics to wakeup sources
    PM / Sleep: Implement opportunistic sleep, v2
    PM / Sleep: Add wakeup_source_activate and wakeup_source_deactivate tracepoints
    ...

    Linus Torvalds
     
  • Pull a regmap kconfig dependency fix from Mark Brown:
    "Fix the dependency on IRQ_DOMAIN for REGMAP_IRQ in the core

    Fixes a missing select from the Palmas driver a bit more throoughly."

    * tag 'regmap-domain-deps' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: Use select .. if to get IRQ_DOMAIN enabled

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "This is the first big chunk for 3.5 merges of sound stuff.

    There are a few big changes in different areas. First off, the
    streaming logic of USB-audio endpoints has been largely rewritten for
    the better support of "implicit feedback". If anything about USB got
    broken, this change has to be checked.

    For HD-audio, the resume procedure was changed; instead of delaying
    the resume of the hardware until the first use, now waking up
    immediately at resume. This is for buggy BIOS.

    For ASoC, dynamic PCM support and the improved support for digital
    links between off-SoC devices are major framework changes.

    Some highlights are below:

    * HD-audio
    - Avoid accesses of invalid pin-control bits that may stall the codec
    - V-ref setup cleanups
    - Fix the races in power-saving code
    - Fix the races in codec cache hashes and connection lists
    - Split some common codes for BIOS auto-parser to hda_auto_parser.c
    - Changed the PM resume code to wake up immediately for buggy BIOS
    - Creative SoundCore3D support
    - Add Conexant CX20751/2/3/4 codec support

    * ASoC
    - Dynamic PCM support, allowing support for SoCs with internal
    routing through components with tight sequencing and formatting
    constraints within their internal paths or where there are multiple
    components connected with CPU managed DMA controllers inside the
    SoC.
    - Greatly improved support for direct digital links between off-SoC
    devices, providing a much simpler way of connecting things like
    digital basebands to CODECs.
    - Much more fine grained and robust locking, cleaning up some of the
    confusion that crept in with multi-component.
    - CPU support for nVidia Tegra 30 I2S and audio hub controllers and
    ST-Ericsson MSP I2S controolers
    - New CODEC drivers for Cirrus CS42L52, LAPIS Semiconductor ML26124,
    Texas Instruments LM49453.
    - Some regmap changes needed by the Tegra I2S driver.
    - mc13783 audio support.

    * Misc
    - Rewrite with module_pci_driver()
    - Xonar DGX support for snd-oxygen
    - Improvement of packet handling in snd-firewire driver
    - New USB-endpoint streaming logic
    - Enhanced M-audio FTU quirks and relevant cleanups
    - Increment the support of OSS devices to 256
    - snd-aloop accuracy improvement

    There are a few more pending changes for 3.5, but they will be sent
    slightly later as partly depending on the changes of DRM."

    Fix up conflicts in regmap (due to duplicate patches, with some further
    updates then having already come in from the regmap tree). Also some
    fairly trivial context conflicts in the imx and mcx soc drivers.

    * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (280 commits)
    ALSA: snd-usb: fix stream info output in /proc
    ALSA: pcm - Add proper state checks to snd_pcm_drain()
    ALSA: sh: Fix up namespace collision in sh_dac_audio.
    ALSA: hda/realtek - Fix unused variable compile warning
    ASoC: sh: fsi: enable chip specific data transfer mode
    ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger()
    ASoC: sh: fsi: use same format for IN/OUT
    ASoC: sh: fsi: add fsi_version() and removed meaningless version check
    ASoC: sh: fsi: use register field macro name on IN/OUT_DMAC
    ASoC: tegra: Add machine driver for WM8753 codec
    ALSA: hda - Fix possible races of accesses to connection list array
    ASoC: OMAP: HDMI: Introduce codec
    ARM: mx31_3ds: Add sound support
    ASoC: imx-mc13783 cleanup
    mx31moboard: Add sound support
    ASoC: mc13783 codec cleanups
    ASoC: add imx-mc13783 sound support
    ASoC: Add mc13783 codec
    mfd: mc13xxx: add codec platform data
    ASoC: don't flip master of DT-instantiated DAI links
    ...

    Linus Torvalds
     
  • Pull trivial ktest spelling fix from Steven Rostedt:
    "I promised Jesper that I would push this for 3.5, but forgot to add it
    to my queue. It's just a spelling fix, but it should go in regardless
    to hide my inability to get words in the English language correct."

    Becuse gud spealing is impurtunt.

    * tag 'ktest-v3.5-spelling' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
    ktest: Change singular "paranthesis" to plural "parentheses"

    Linus Torvalds
     
  • …rnel.org/pub/scm/linux/kernel/git/tip/tip

    Pull perf fixes from Ingo Molnar:

    - Leftover AMD PMU driver fix fix from the end of the v3.4
    stabilization cycle.

    - Late tools/perf/ changes that missed the first round:
    * endianness fixes
    * event parsing improvements
    * libtraceevent fixes factored out from trace-cmd
    * perl scripting engine fixes related to libtraceevent,
    * testcase improvements
    * perf inject / pipe mode fixes
    * plus a kernel side fix

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: Update event scheduling constraints for AMD family 15h models

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "sched, perf: Use a single callback into the scheduler"
    perf evlist: Show event attribute details
    perf tools: Bump default sample freq to 4 kHz
    perf buildid-list: Work better with pipe mode
    perf tools: Fix piped mode read code
    perf inject: Fix broken perf inject -b
    perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA
    perf tools: Add union u64_swap type for swapping u64 data
    perf tools: Carry perf_event_attr bitfield throught different endians
    perf record: Fix documentation for branch stack sampling
    perf target: Add cpu flag to sample_type if target has cpu
    perf tools: Always try to build libtraceevent
    perf tools: Rename libparsevent to libtraceevent in Makefile
    perf script: Rename struct event to struct event_format in perl engine
    perf script: Explicitly handle known default print arg type
    perf tools: Add hardcoded name term for pmu events
    perf tools: Separate 'mem:' event scanner bits
    perf tools: Use allocated list for each parsed event
    perf tools: Add support for displaying event parser debug info
    perf test: Move parse event automated tests to separated object

    Linus Torvalds
     
  • Pull Itanium fixes from Tony Luck.

    * tag 'ia64-3.5-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Liberate the signal layer from IA64 assembler
    [IA64] Add cmpxchg.h to exported userspace headers
    [IA64] Fix fast syscall version of getcpu()
    [IA64] Removed "task_size" element from thread_struct - it is now constant

    Linus Torvalds
     
  • Pull x86 reboot changes from Ingo Molnar:
    "The biggest change is a gentler method of rebooting/stopping via IRQs
    first and then via NMIs. There are several cleanups in the tree as
    well."

    * 'x86-reboot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/reboot: Update nonmi_ipi parameter
    x86/reboot: Use NMI to assist in shutting down if IRQ fails
    Revert "x86, reboot: Use NMI instead of REBOOT_VECTOR to stop cpus"
    x86/reboot: Clean up coding style
    x86/reboot: Reduce to a single DMI table for reboot quirks

    Linus Torvalds
     
  • Pull x86 platform changes from Ingo Molnar:
    "This tree includes assorted platform driver updates and a preparatory
    series for a platform with custom DMA remapping semantics (sta2x11 I/O
    hub)."

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/vsmp: Fix number of CPUs when vsmp is disabled
    keyboard: Use BIOS Keyboard variable to set Numlock
    x86/olpc/xo1/sci: Report RTC wakeup events
    x86/olpc/xo1/sci: Produce wakeup events for buttons and switches
    x86, platform: Initial support for sta2x11 I/O hub
    x86: Introduce CONFIG_X86_DMA_REMAP
    x86-32: Introduce CONFIG_X86_DEV_DMA_OPS

    Linus Torvalds
     
  • Pull x86 mm changes from Ingo Molnar:
    "This tree includes a micro-optimization that avoids cr3 switches
    during idling; it fixes corner cases and there's also small cleanups"

    Fix up trivial context conflict with the percpu_xx -> this_cpu_xx
    changes.

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86-64: Fix accounting in kernel_physical_mapping_init()
    x86/tlb: Clean up and unify TLB_FLUSH_ALL definition
    x86: Drop obsolete ARCH_BOOTMEM support
    x86, tlb: Switch cr3 in leave_mm() only when needed
    x86/mm: Fix the size calculation of mapping tables

    Linus Torvalds
     
  • Pull MCE updates from Ingo Molnar:
    "This tree updates/fixes MCE hardware support, it makes the APIC LVT
    thresholding interrupt optional because a subset of AMD F15h models
    don't support it."

    * 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, MCE, AMD: Disable error thresholding bank 4 on some models
    x86, MCE, AMD: Hide interrupt_enable sysfs node
    x86, MCE, AMD: Make APIC LVT thresholding interrupt optional

    Linus Torvalds
     
  • Pull fpu state cleanups from Ingo Molnar:
    "This tree streamlines further aspects of FPU handling by eliminating
    the prepare_to_copy() complication and moving that logic to
    arch_dup_task_struct().

    It also fixes the FPU dumps in threaded core dumps, removes and old
    (and now invalid) assumption plus micro-optimizes the exit path by
    avoiding an FPU save for dead tasks."

    Fixed up trivial add-add conflict in arch/sh/kernel/process.c that came
    in because we now do the FPU handling in arch_dup_task_struct() rather
    than the legacy (and now gone) prepare_to_copy().

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, fpu: drop the fpu state during thread exit
    x86, xsave: remove thread_has_fpu() bug check in __sanitize_i387_state()
    coredump: ensure the fpu state is flushed for proper multi-threaded core dump
    fork: move the real prepare_to_copy() users to arch_dup_task_struct()

    Linus Torvalds
     
  • Pull exception table generation updates from Ingo Molnar:
    "The biggest change here is to allow the build-time sorting of the
    exception table, to speed up booting. This is achieved by the
    architecture enabling BUILDTIME_EXTABLE_SORT. This option is enabled
    for x86 and MIPS currently.

    On x86 a number of fixes and changes were needed to allow build-time
    sorting of the exception table, in particular a relocation invariant
    exception table format was needed. This required the abstracting out
    of exception table protocol and the removal of 20 years of accumulated
    assumptions about the x86 exception table format.

    While at it, this tree also cleans up various other aspects of
    exception handling, such as early(er) exception handling for
    rdmsr_safe() et al.

    All in one, as the result of these changes the x86 exception code is
    now pretty nice and modern. As an added bonus any regressions in this
    code will be early and violent crashes, so if you see any of those,
    you'll know whom to blame!"

    Fix up trivial conflicts in arch/{mips,x86}/Kconfig files due to nearby
    modifications of other core architecture options.

    * 'x86-extable-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)
    Revert "x86, extable: Disable presorted exception table for now"
    scripts/sortextable: Handle relative entries, and other cleanups
    x86, extable: Switch to relative exception table entries
    x86, extable: Disable presorted exception table for now
    x86, extable: Add _ASM_EXTABLE_EX() macro
    x86, extable: Remove open-coded exception table entries in arch/x86/ia32/ia32entry.S
    x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/xsave.h
    x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/kvm_host.h
    x86, extable: Remove the now-unused __ASM_EX_SEC macros
    x86, extable: Remove open-coded exception table entries in arch/x86/xen/xen-asm_32.S
    x86, extable: Remove open-coded exception table entries in arch/x86/um/checksum_32.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/usercopy_32.c
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/putuser.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/getuser.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/csum-copy_64.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_nocache_64.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_64.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/checksum_32.S
    x86, extable: Remove open-coded exception table entries in arch/x86/kernel/test_rodata.c
    x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_64.S
    ...

    Linus Torvalds
     
  • Pull x86 EFI updates from Ingo Molnar:
    "This patchset makes changes to the bzImage EFI header, so that it can
    be signed with a secure boot signature tool. It should not affect
    anyone who is not using the EFI self-boot feature in any way."

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, efi: Fix NumberOfRvaAndSizes field in PE32 header for EFI_STUB
    x86, efi: Fix .text section overlapping image header for EFI_STUB
    x86, efi: Fix issue of overlapping .reloc section for EFI_STUB

    Linus Torvalds
     
  • Pull x86/urgent branch from Ingo Molnar:
    "These are the fixes left over from the very end of the v3.4
    stabilization cycle, plus one more fix."

    Ugh. Those KERN_CONT additions are just pointless. I think they came
    as a reaction to some of the early (broken) printk() work - but that was
    fixed before it was merged.

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, relocs: Build clean fix
    x86, printk: Add missing KERN_CONT to NMI selftest
    x86: Fix boot on Twinhead H12Y

    Linus Torvalds
     
  • …', 'x86-debug-for-linus' and 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull initial trivial x86 stuff from Ingo Molnar.

    Various random cleanups and trivial fixes.

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86-64: Eliminate dead ia32 syscall handlers

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/pci-calgary_64.c: Remove obsoleted simple_strtoul() usage
    x86: Don't continue booting if we can't load the specified initrd
    x86: kernel/dumpstack.c simple_strtoul cleanup
    x86: kernel/check.c simple_strtoul cleanup
    debug: Add CONFIG_READABLE_ASM
    x86: spinlock.h: Remove REG_PTR_MODE

    * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/cache_info: Fix setup of l2/l3 ids

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Avoid double stack traces with show_regs()

    * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, microcode: microcode_core.c simple_strtoul cleanup

    Linus Torvalds
     
  • Pull Hexagon architecture changes from Richard Kuo:
    "These are mostly cleanups and feedback remaining from the original
    upstreaming."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
    various Kconfig cleanup and old platform build code removal
    hexagon/mm/vm_fault.c: Port OOM changes to do_page_fault
    arch/hexagon/kernel/dma.c: make function static
    Remove unneeded include of version.h from arch/hexagon/include/asm/spinlock_types.h
    Hexagon: Use resource_size function

    Linus Torvalds
     
  • Pull powerpc updates from Benjamin Herrenschmidt:
    "Here are the powerpc goodies for 3.5. Main highlights are:

    - Support for the NX crypto engine in Power7+
    - A bunch of Anton goodness, including some micro optimization of our
    syscall entry on Power7
    - I converted a pile of our thermal control drivers to the new i2c
    APIs (essentially turning the old therm_pm72 into a proper set of
    windfarm drivers). That's one more step toward removing the
    deprecated i2c APIs, there's still a few drivers to fix, but we are
    getting close
    - kexec/kdump support for 47x embedded cores

    The big missing thing here is no updates from Freescale. Not sure
    what's up here, but with Kumar not working for them anymore things are
    a bit in a state of flux in that area."

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits)
    powerpc: Fix irq distribution
    Revert "powerpc/hw-breakpoint: Use generic hw-breakpoint interfaces for new PPC ptrace flags"
    powerpc: Fixing a cputhread code documentation
    powerpc/crypto: Enable the PFO-based encryption device
    powerpc/crypto: Build files for the nx device driver
    powerpc/crypto: debugfs routines and docs for the nx device driver
    powerpc/crypto: SHA512 hash routines for nx encryption
    powerpc/crypto: SHA256 hash routines for nx encryption
    powerpc/crypto: AES-XCBC mode routines for nx encryption
    powerpc/crypto: AES-GCM mode routines for nx encryption
    powerpc/crypto: AES-ECB mode routines for nx encryption
    powerpc/crypto: AES-CTR mode routines for nx encryption
    powerpc/crypto: AES-CCM mode routines for nx encryption
    powerpc/crypto: AES-CBC mode routines for nx encryption
    powerpc/crypto: nx driver code supporting nx encryption
    powerpc/pseries: Enable the PFO-based RNG accelerator
    powerpc/pseries/hwrng: PFO-based hwrng driver
    powerpc/pseries: Add PFO support to the VIO bus
    powerpc/pseries: Add pseries update notifier for OFDT prop changes
    powerpc/pseries: Add new hvcall constants to support PFO
    ...

    Linus Torvalds
     
  • Pull UML updates from Richard Weinberger:
    "Most changes are bug fixes and cleanups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
    um: missing checks of __put_user()/__get_user() return values
    um: stub_rt_sigsuspend isn't needed these days anymore
    um/x86: merge (and trim) 32- and 64-bit variants of ptrace.h
    irq: Remove irq_chip->release()
    um: Remove CONFIG_IRQ_RELEASE_METHOD
    um: Remove usage of irq_chip->release()
    um: Implement um_free_irq()
    um: Fix __swp_type()
    um: Implement a custom pte_same() function
    um: Add BUG() to do_ops()'s error path
    um: Remove unused variables
    um: bury unused _TIF_RESTORE_SIGMASK
    um: wrong sigmask saved in case of multiple sigframes
    um: add TIF_NOTIFY_RESUME
    um: ->restart_block.fn needs to be reset on sigreturn

    Linus Torvalds
     
  • Pull SuperH updates from Paul Mundt:
    - New CPUs: SH7734 (SH-4A), SH7264 and SH7269 (SH-2A)
    - New boards: RSK2+SH7264, RSK2+SH7269
    - Unbreaking kgdb for SMP
    - Consolidation of _32/_64 page fault handling.
    - watchdog and legacy DMA chainsawing, part 1
    - Conversion to evt2irq() hwirq lookup, to support relocation of
    vectored IRQs for irqdomains.

    * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (98 commits)
    sh: intc: Kill off special reservation interface.
    sh: Enable PIO API for hp6xx and se770x.
    sh: Kill off machvec IRQ hinting.
    sh: dma: More legacy cpu dma chainsawing.
    sh: Kill off MAX_DMA_ADDRESS leftovers.
    sh: Tidy up some of the cpu legacy dma header mess.
    sh: Move sh4a dma header from cpu-sh4 to cpu-sh4a.
    sh64: Fix up vmalloc fault range check.
    Revert "sh: Ensure fixmap and store queue space can co-exist."
    serial: sh-sci: Fix for port types without BRI interrupts.
    sh: legacy PCI evt2irq migration.
    sh: cpu dma evt2irq migration.
    sh: sh7763rdp evt2irq migration.
    sh: sdk7780 evt2irq migration.
    sh: migor evt2irq migration.
    sh: landisk evt2irq migration.
    sh: kfr2r09 evt2irq migration.
    sh: ecovec24 evt2irq migration.
    sh: ap325rxa evt2irq migration.
    sh: urquell evt2irq migration.
    ...

    Linus Torvalds
     

23 May, 2012

5 commits

  • This reverts commit cb04ff9ac424 ("sched, perf: Use a single
    callback into the scheduler").

    Before this change was introduced, the process switch worked
    like this (wrt. to perf event schedule):

    schedule (prev, next)
    - schedule out all perf events for prev
    - switch to next
    - schedule in all perf events for current (next)

    After the commit, the process switch looks like:

    schedule (prev, next)
    - schedule out all perf events for prev
    - schedule in all perf events for (next)
    - switch to next

    The problem is, that after we schedule perf events in, the pmu
    is enabled and we can receive events even before we make the
    switch to next - so "current" still being prev process (event
    SAMPLE data are filled based on the value of the "current"
    process).

    Thats exactly what we see for test__PERF_RECORD test. We receive
    SAMPLES with PID of the process that our tracee is scheduled
    from.

    Discussed with Peter Zijlstra:

    > Bah!, yeah I guess reverting is the right thing for now. Sad
    > though.
    >
    > So by having the two hooks we have a black-spot between them
    > where we receive no events at all, this black-spot covers the
    > hand-over of current and we thus don't receive the 'wrong'
    > events.
    >
    > I rather liked we could do away with both that black-spot and
    > clean up the code a little, but apparently people rely on it.

    Signed-off-by: Jiri Olsa
    Acked-by: Peter Zijlstra
    Cc: acme@redhat.com
    Cc: paulus@samba.org
    Cc: cjashfor@linux.vnet.ibm.com
    Cc: fweisbec@gmail.com
    Cc: eranian@google.com
    Link: http://lkml.kernel.org/r/20120523111302.GC1638@m.brq.redhat.com
    Signed-off-by: Ingo Molnar

    Jiri Olsa
     
  • we start a infinite loop when user gives ./watchdog-test, and when user
    ctrl + c's the program, we just exit immeadiately with out closing the
    filedescriptor of the watchdog device. a signal handler is used to
    do the job of closing the filedescriptor and exiting the program.

    Signed-off-by: Devendra Naga
    Signed-off-by: Wim Van Sebroeck

    Devendra Naga
     
  • in the watchdog test code, the ioctl is performed on the watchdog device
    and just doing exit(0) so we leak a filedescripor.

    Signed-off-by: Devendra Naga
    Signed-off-by: Wim Van Sebroeck

    Devendra Naga
     
  • Signed-off-by: Devendra Naga
    Signed-off-by: Wim Van Sebroeck

    Devendra Naga
     
  • While rebasing my "watchdog_dev: Let the driver update the timeout field on
    set_timeout success" patch (before I noticed it was already picked up by Wim),
    I noticed that the s3c2410_wdt driver may not always have a 1 second
    resolution, this patch changes s3c2410wdt_set_heartbeat to update the
    timeout to the actually achieved timeout.

    Signed-off-by: Hans de Goede
    Signed-off-by: Wim Van Sebroeck

    Hans de Goede