24 Jul, 2012

1 commit

  • Pull the big VFS changes from Al Viro:
    "This one is *big* and changes quite a few things around VFS. What's in there:

    - the first of two really major architecture changes - death to open
    intents.

    The former is finally there; it was very long in making, but with
    Miklos getting through really hard and messy final push in
    fs/namei.c, we finally have it. Unlike his variant, this one
    doesn't introduce struct opendata; what we have instead is
    ->atomic_open() taking preallocated struct file * and passing
    everything via its fields.

    Instead of returning struct file *, it returns -E... on error, 0
    on success and 1 in "deal with it yourself" case (e.g. symlink
    found on server, etc.).

    See comments before fs/namei.c:atomic_open(). That made a lot of
    goodies finally possible and quite a few are in that pile:
    ->lookup(), ->d_revalidate() and ->create() do not get struct
    nameidata * anymore; ->lookup() and ->d_revalidate() get lookup
    flags instead, ->create() gets "do we want it exclusive" flag.

    With the introduction of new helper (kern_path_locked()) we are rid
    of all struct nameidata instances outside of fs/namei.c; it's still
    visible in namei.h, but not for long. Come the next cycle,
    declaration will move either to fs/internal.h or to fs/namei.c
    itself. [me, miklos, hch]

    - The second major change: behaviour of final fput(). Now we have
    __fput() done without any locks held by caller *and* not from deep
    in call stack.

    That obviously lifts a lot of constraints on the locking in there.
    Moreover, it's legal now to call fput() from atomic contexts (which
    has immediately simplified life for aio.c). We also don't need
    anti-recursion logics in __scm_destroy() anymore.

    There is a price, though - the damn thing has become partially
    asynchronous. For fput() from normal process we are guaranteed
    that pending __fput() will be done before the caller returns to
    userland, exits or gets stopped for ptrace.

    For kernel threads and atomic contexts it's done via
    schedule_work(), so theoretically we might need a way to make sure
    it's finished; so far only one such place had been found, but there
    might be more.

    There's flush_delayed_fput() (do all pending __fput()) and there's
    __fput_sync() (fput() analog doing __fput() immediately). I hope
    we won't need them often; see warnings in fs/file_table.c for
    details. [me, based on task_work series from Oleg merged last
    cycle]

    - sync series from Jan

    - large part of "death to sync_supers()" work from Artem; the only
    bits missing here are exofs and ext4 ones. As far as I understand,
    those are going via the exofs and ext4 trees resp.; once they are
    in, we can put ->write_super() to the rest, along with the thread
    calling it.

    - preparatory bits from unionmount series (from dhowells).

    - assorted cleanups and fixes all over the place, as usual.

    This is not the last pile for this cycle; there's at least jlayton's
    ESTALE work and fsfreeze series (the latter - in dire need of fixes,
    so I'm not sure it'll make the cut this cycle). I'll probably throw
    symlink/hardlink restrictions stuff from Kees into the next pile, too.
    Plus there's a lot of misc patches I hadn't thrown into that one -
    it's large enough as it is..."

    * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (127 commits)
    ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()
    btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()
    switch dentry_open() to struct path, make it grab references itself
    spufs: shift dget/mntget towards dentry_open()
    zoran: don't bother with struct file * in zoran_map
    ecryptfs: don't reinvent the wheels, please - use struct completion
    don't expose I_NEW inodes via dentry->d_inode
    tidy up namei.c a bit
    unobfuscate follow_up() a bit
    ext3: pass custom EOF to generic_file_llseek_size()
    ext4: use core vfs llseek code for dir seeks
    vfs: allow custom EOF in generic_file_llseek code
    vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes
    vfs: Remove unnecessary flushing of block devices
    vfs: Make sys_sync writeout also block device inodes
    vfs: Create function for iterating over block devices
    vfs: Reorder operations during sys_sync
    quota: Move quota syncing to ->sync_fs method
    quota: Split dquot_quota_sync() to writeback and cache flushing part
    vfs: Move noop_backing_dev_info check from sync into writeback
    ...

    Linus Torvalds
     

23 Jul, 2012

27 commits

  • Pull MMC updates from Chris Ball:
    "MMC highlights for 3.6:

    Core:
    - Rename cd-gpio to slot-gpio and extend it to support more slot GPIO
    functions, such as write-protect.
    - Add a function to get regulators (Vdd and Vccq) for a host.

    Drivers:
    - sdhci-pxav2, sdhci-pxav3: Add device tree support.
    - sdhi: Add device tree support.
    - sh_mmcif: Add support for regulators, device tree, slot-gpio.
    - tmio: Add regulator support, use slot-gpio."

    * tag 'mmc-merge-for-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (62 commits)
    mmc: sdhci-dove: Prepare for common clock framework
    mmc: sdhci-dove: Add SDHCI_QUIRK_NO_HISPD_BIT
    mmc: omap_hsmmc: ensure probe returns error upon resource failure
    mmc: mxs-mmc: Add wp-inverted property
    mmc: esdhc: Fix DMA_MASK to not break mx25 DMA access
    mmc: core: reset signal voltage on power up
    mmc: sd: Fix sd current limit setting
    mmc: omap_hsmmc: add clk_prepare and clk_unprepare
    mmc: sdhci: When a UHS switch fails, cycle power if regulator is used
    mmc: atmel-mci: modify CLKDIV displaying in debugfs
    mmc: atmel-mci: fix incorrect setting of host->data to NULL
    mmc: sdhci: poll for card even when card is logically unremovable
    mmc: sdhci: Introduce new flag SDHCI_USING_RETUNING_TIMER
    mmc: sdio: Change pr_warning to pr_warn_ratelimited
    mmc: core: Simplify and fix for SD switch processing
    mmc: sdhci: restore host settings when card is removed
    mmc: sdhci: fix incorrect command used in tuning
    mmc: sdhci-pci: CaFe has broken card detection
    mmc: sdhci: Report failure reasons for all cases in sdhci_add_host()
    mmc: s3cmci: Convert s3cmci driver to gpiolib API
    ...

    Linus Torvalds
     
  • Pull x86/mce changes from Ingo Molnar:
    "This tree improves the AMD thresholding bank code and includes a
    memory fault signal handling fixlet."

    * 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Fix siginfo_t->si_addr value for non-recoverable memory faults
    x86, MCE, AMD: Update copyrights and boilerplate
    x86, MCE, AMD: Give proper names to the thresholding banks
    x86, MCE, AMD: Make error_count read only
    x86, MCE, AMD: Cleanup reading of error_count
    x86, MCE, AMD: Print decimal thresholding values
    x86, MCE, AMD: Move shared bank to node descriptor
    x86, MCE, AMD: Remove local_allocate_... wrapper
    x86, MCE, AMD: Remove shared banks sysfs linking
    x86, amd_nb: Export model 0x10 and later PCI id

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:

    - ACPI conversion to PM handling based on struct dev_pm_ops.
    - Conversion of a number of platform drivers to PM handling based on
    struct dev_pm_ops and removal of empty legacy PM callbacks from a
    couple of PCI drivers.
    - Suspend-to-both for in-kernel hibernation from Bojan Smojver.
    - cpuidle fixes and cleanups from ShuoX Liu, Daniel Lezcano and Preeti
    Murthy.
    - cpufreq bug fixes from Jonghwa Lee and Stephen Boyd.
    - Suspend and hibernate fixes from Srivatsa Bhat and Colin Cross.
    - Generic PM domains framework updates.
    - RTC CMOS wakeup signaling update from Paul Fox.
    - sparse warnings fixes from Sachin Kamat.
    - Build warnings fixes for the generic PM domains framework and PM
    sysfs code.
    - sysfs switch for printing device suspend times from Sameer Nanda.
    - Documentation fix from Oskar Schirmer.

    * tag 'pm-for-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (70 commits)
    cpufreq: Fix sysfs deadlock with concurrent hotplug/frequency switch
    EXYNOS: bugfix on retrieving old_index from freqs.old
    PM / Sleep: call early resume handlers when suspend_noirq fails
    PM / QoS: Use NULL pointer instead of plain integer in qos.c
    PM / QoS: Use NULL pointer instead of plain integer in pm_qos.h
    PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock
    PM / Sleep: Add missing static storage class specifiers in main.c
    cpuilde / ACPI: remove time from acpi_processor_cx structure
    cpuidle / ACPI: remove usage from acpi_processor_cx structure
    cpuidle / ACPI : remove latency_ticks from acpi_processor_cx structure
    rtc-cmos: report wakeups from interrupt handler
    PM / Sleep: Fix build warning in sysfs.c for CONFIG_PM_SLEEP unset
    PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unset
    olpc-xo15-sci: Use struct dev_pm_ops for power management
    PM / Domains: Replace plain integer with NULL pointer in domain.c file
    PM / Domains: Add missing static storage class specifier in domain.c file
    PM / crypto / ux500: Use struct dev_pm_ops for power management
    PM / IPMI: Remove empty legacy PCI PM callbacks
    tpm_nsc: Use struct dev_pm_ops for power management
    tpm_tis: Use struct dev_pm_ops for power management
    ...

    Linus Torvalds
     
  • Pull target updates from Nicholas Bellinger:
    "There have been lots of work in a number of areas this past round.
    The highlights include:

    - Break out target_core_cdb.c emulation into SPC/SBC ops (hch)
    - Add a parse_cdb method to target backend drivers (hch)
    - Move sync_cache + write_same + unmap into spc_ops (hch)
    - Use target_execute_cmd for WRITEs in iscsi_target + srpt (hch)
    - Offload WRITE I/O backend submission in tcm_qla2xxx + tcm_fc (hch +
    nab)
    - Refactor core_update_device_list_for_node() into enable/disable
    funcs (agrover)
    - Replace the TCM processing thread with a TMR work queue (hch)
    - Fix regression in transport_add_device_to_core_hba from TMR
    conversion (DanC)
    - Remove racy, now-redundant check of sess_tearing_down with qla2xxx
    (roland)
    - Add range checking, fix reading of data len + possible underflow in
    UNMAP (roland)
    - Allow for target_submit_cmd() returning errors + convert fabrics
    (roland + nab)
    - Drop bogus struct file usage for iSCSI/SCTP (viro)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (54 commits)
    iscsi-target: Drop bogus struct file usage for iSCSI/SCTP
    target: NULL dereference on error path
    target: Allow for target_submit_cmd() returning errors
    target: Check number of unmap descriptors against our limit
    target: Fix possible integer underflow in UNMAP emulation
    target: Fix reading of data length fields for UNMAP commands
    target: Add range checking to UNMAP emulation
    target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE
    target: Make unnecessarily global se_dev_align_max_sectors() static
    target: Remove se_session.sess_wait_list
    qla2xxx: Remove racy, now-redundant check of sess_tearing_down
    target: Check sess_tearing_down in target_get_sess_cmd()
    sbp-target: Consolidate duplicated error path code in sbp_handle_command()
    target: Un-export target_get_sess_cmd()
    qla2xxx: Get rid of redundant qla_tgt_sess.tearing_down
    target: Make core_disable_device_list_for_node use pre-refactoring lock ordering
    target: refactor core_update_device_list_for_node()
    target: Eliminate else using boolean logic
    target: Misc retval cleanups
    target: Remove hba param from core_dev_add_lun
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "Lots and lots of fixes from Axel and some others here, plus some
    framework enhancements which continue the theme of factoring code out
    of the drivers and into the core.

    - Initial framework support for GPIO controlled enable signals,
    saving a bunch of code in drivers.
    - Move fixed regulator enable time and voltage mapping table
    specifications to data.
    - Used some of the recent framework enhancements to make voltage
    change notifications more useful, passing the voltage in as an
    argument to the notification.
    - Fixed the pattern used for finding individual regulators on a
    device to not rely on the node name, supporting the use of multiple
    PMICs of the same type in the system.
    - New drivers for Maxim MAX77686, TI LP872x and LP8788, Samsung
    S2MPS11, and Wolfson Arizona microphone supplies and LDOs."

    * tag 'regulator-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (176 commits)
    regulator: add new lp8788 regulator driver
    regulator: mc13xxx: Remove extern function declaration for mc13xxx_sw_regulator
    regulator: tps65910: set input_supply on desc unconditionally
    regulator: palmas: Fix calcuating selector in palmas_map_voltage_smps
    regulator: lp872x: Simplify implementation of lp872x_find_regulator_init_data()
    regulator: twl: Fix list_voltate for twl6030ldo_ops
    regulator: twl: Convert twl6030ldo_ops to [get|set]_voltage_sel
    regulator: twl: Fix the formula to calculate vsel and voltage for twl6030ldo
    regulator: s5m8767: Properly handle gpio_request failure
    regulator: max8997: Properly handle gpio_request failure
    regulator: tps62360: use devm_* for gpio request
    regulator: tps6586x: add support for input supply
    regulator: tps65217: Add device tree support
    regulator: aat2870: Remove unused min_uV and max_uV from struct aat2870_regulator
    regulator: aat2870: Convert to regulator_list_voltage_table
    regulator: da9052: initialize of_node param for regulator register
    regulator: Add REGULATOR_STATUS_UNDEFINED.
    regulator: Fix a typo in regulator_mode_to_status() core function.
    regulator: s2mps11: Use sec_reg_write rather than sec_reg_update when mask is 0xff
    regulator: s2mps11: Fix wrong setting for config.dev
    ...

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "A few fixes plus a few features, the most generally useful thing being
    the register paging support which can be used by quite a few devices:

    - Support for wake IRQs in regmap-irq
    - Support for register paging
    - Support for explicitly specified endianness, mostly for MMIO."

    * tag 'regmap-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: Fix incorrect arguments to kzalloc() call
    regmap: Add hook for printk logging for debugging during early init
    regmap: Fix work_buf switching for page update during virtual range access.
    regmap: Add support for register indirect addressing.
    regmap: Move lock out from internal function _regmap_update_bits().
    regmap: mmio: Staticize regmap_mmio_gen_context()
    regmap: Remove warning on stubbed dev_get_regmap()
    regmap: Implement support for wake IRQs
    regmap: Don't try to map non-existant IRQs
    regmap: Constify regmap_irq_chip
    regmap: mmio: request native endian formatting
    regmap: allow busses to request formatting with specific endianness

    Linus Torvalds
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • For ext3/4 htree directories, using the vfs llseek function with
    SEEK_END goes to i_size like for any other file, but in reality
    we want the maximum possible hash value. Recent changes
    in ext4 have cut & pasted generic_file_llseek() back into fs/ext4/dir.c,
    but replicating this core code seems like a bad idea, especially
    since the copy has already diverged from the vfs.

    This patch updates generic_file_llseek_size to accept
    both a custom maximum offset, and a custom EOF position. With this
    in place, ext4_dir_llseek can pass in the appropriate maximum hash
    position for both maxsize and eof, and get what it wants.

    As far as I know, this does not fix any bugs - nfs in the kernel
    doesn't use SEEK_END, and I don't know of any user who does. But
    some ext4 folks seem keen on doing the right thing here, and I can't
    really argue.

    (Patch also fixes up some comments slightly)

    Signed-off-by: Eric Sandeen
    Signed-off-by: Al Viro

    Eric Sandeen
     
  • Signed-off-by: Jan Kara
    Signed-off-by: Al Viro

    Jan Kara
     
  • Split off part of dquot_quota_sync() which writes dquots into a quota file
    to a separate function. In the next patch we will use the function from
    filesystems and we do not want to abuse ->quota_sync quotactl callback more
    than necessary.

    Acked-by: Steven Whitehouse
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jan Kara
    Signed-off-by: Al Viro

    Jan Kara
     
  • recursion in __scm_destroy() will be cut by delaying final fput()

    Signed-off-by: Al Viro

    Al Viro
     
  • ... and schedule_work() for interrupt/kernel_thread callers
    (and yes, now it *is* OK to call from interrupt).

    We are guaranteed that __fput() will be done before we return
    to userland (or exit). Note that for fput() from a kernel
    thread we get an async behaviour; it's almost always OK, but
    sometimes you might need to have __fput() completed before
    you do anything else. There are two mechanisms for that -
    a general barrier (flush_delayed_fput()) and explicit
    __fput_sync(). Both should be used with care (as was the
    case for fput() from kernel threads all along). See comments
    in fs/file_table.c for details.

    Signed-off-by: Al Viro

    Al Viro
     
  • task_work and rcu_head are identical now; merge them (calling the result
    struct callback_head, rcu_head #define'd to it), kill separate allocation
    in security/keys since we can just use cred->rcu now.

    Signed-off-by: Al Viro

    Al Viro
     
  • layout based on Oleg's suggestion; single-linked list,
    task->task_works points to the last element, forward pointer
    from said last element points to head. I'd still prefer
    much more regular scheme with two pointers in task_work,
    but...

    Signed-off-by: Al Viro

    Al Viro
     
  • get rid of the only user of ->data; this is _not_ the final variant - in the
    end we'll have task_work and rcu_head identical and just use cred->rcu,
    at which point the separate allocation will be gone completely.

    Signed-off-by: Al Viro

    Al Viro
     
  • Host has different current capabilities at different voltages, we need
    to record these settings seperately. The defined voltages are 1.8/3.0/3.3.
    For other voltages, we do not touch current limit setting.

    Before we set the current limit for the sd card, find out the host's
    operating voltage first and then find out the current capabilities of
    the host at that voltage to set the current limit.

    Signed-off-by: Aaron Lu
    Reviewed-by: Philip Rakity
    Signed-off-by: Chris Ball

    Aaron Lu
     
  • Add a new flag of SDHCI_USING_RETUNING_TIMER to represent if the host
    is using a retuning timer for the card inserted.

    This flag is set when the host does tuning the first time for the card
    and the host's retuning mode is 1. This flag is used afterwards whenever
    needs to decide if the host is currently using a retuning timer.

    This flag is cleared when the card is removed in sdhci_reinit.

    The set/clear of the flag and the start/stop of the retuning timer is
    associated with the card's init/remove time, so there is no need to
    touch it when the host is to be removed as at that time the card should
    have already been removed.

    Signed-off-by: Aaron Lu
    Reviewed-by: Girish K S
    Reviewed-by: Philip Rakity
    Signed-off-by: Chris Ball

    Aaron Lu
     
  • Currently only the capability_0 register can be set if
    SDHCI_QUIRK_MISSING_CAPS is defined. This is a problem when
    the capability_1 register also needs changing. Use the quirk
    SDHCI_QUIRK_MISSING_CAPS to allow both registers to be set.

    Redefining caps[1] is useful when the board design does not
    support 1.8v vccq so UHS modes are not available. The code that
    calls sdhci_add_host can then detect this condition and adjust
    the caps so the UHS mode will not be attempted on UHS cards.

    Signed-off-by: Philip Rakity
    Signed-off-by: Chris Ball

    Philip Rakity
     
  • Pull x86 platform changes from Ingo Molnar:
    "This tree mostly involves various APIC driver cleanups/robustization,
    and vSMP motivated platform callback improvements/cleanups"

    Fix up trivial conflict due to printk cleanup right next to return value
    change.

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits)
    Revert "x86/early_printk: Replace obsolete simple_strtoul() usage with kstrtoint()"
    x86/apic/x2apic: Use multiple cluster members for the irq destination only with the explicit affinity
    x86/apic/x2apic: Limit the vector reservation to the user specified mask
    x86/apic: Optimize cpu traversal in __assign_irq_vector() using domain membership
    x86/vsmp: Fix vector_allocation_domain's return value
    irq/apic: Use config_enabled(CONFIG_SMP) checks to clean up irq_set_affinity() for UP
    x86/vsmp: Fix linker error when CONFIG_PROC_FS is not set
    x86/apic/es7000: Make apicid of a cluster (not CPU) from a cpumask
    x86/apic/es7000+summit: Always make valid apicid from a cpumask
    x86/apic/es7000+summit: Fix compile warning in cpu_mask_to_apicid()
    x86/apic: Fix ugly casting and branching in cpu_mask_to_apicid_and()
    x86/apic: Eliminate cpu_mask_to_apicid() operation
    x86/x2apic/cluster: Vector_allocation_domain() should return a value
    x86/apic/irq_remap: Silence a bogus pr_err()
    x86/vsmp: Ignore IOAPIC IRQ affinity if possible
    x86/apic: Make cpu_mask_to_apicid() operations check cpu_online_mask
    x86/apic: Make cpu_mask_to_apicid() operations return error code
    x86/apic: Avoid useless scanning thru a cpumask in assign_irq_vector()
    x86/apic: Try to spread IRQ vectors to different priority levels
    x86/apic: Factor out default vector_allocation_domain() operation
    ...

    Linus Torvalds
     
  • Pull timer core changes from Ingo Molnar:
    "Continued cleanups of the core time and NTP code, plus more nohz work
    preparing for tick-less userspace execution."

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    time: Rework timekeeping functions to take timekeeper ptr as argument
    time: Move xtime_nsec adjustment underflow handling timekeeping_adjust
    time: Move arch_gettimeoffset() usage into timekeeping_get_ns()
    time: Refactor accumulation of nsecs to secs
    time: Condense timekeeper.xtime into xtime_sec
    time: Explicitly use u32 instead of int for shift values
    time: Whitespace cleanups per Ingo%27s requests
    nohz: Move next idle expiry time record into idle logic area
    nohz: Move ts->idle_calls incrementation into strict idle logic
    nohz: Rename ts->idle_tick to ts->last_tick
    nohz: Make nohz API agnostic against idle ticks cputime accounting
    nohz: Separate idle sleeping time accounting from nohz logic
    timers: Improve get_next_timer_interrupt()
    timers: Add accounting of non deferrable timers
    timers: Consolidate base->next_timer update
    timers: Create detach_if_pending() and use it

    Linus Torvalds
     
  • Mark Brown
     
  • Mark Brown
     
  • Conflicts (trivial context stuff):
    drivers/base/regmap/regmap.c
    include/linux/regmap.h

    Mark Brown
     
  • Pull smp/hotplug changes from Ingo Molnar:
    "Various cleanups to the SMP hotplug code - a continuing effort of
    Thomas et al"

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    smpboot: Remove leftover declaration
    smp: Remove num_booting_cpus()
    smp: Remove ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()
    POWERPC: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
    SPARC: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
    ia64: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
    x86-smp-remove-call-to-ipi_call_lock-ipi_call_unlock
    tile: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
    S390: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
    parisc: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
    mn10300: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
    hexagon: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()

    Linus Torvalds
     
  • Pull perf events changes from Ingo Molnar:

    "- kernel side:

    - Intel uncore PMU support for Nehalem and Sandy Bridge CPUs, we
    support both the events available via the MSR and via the PCI
    access space.

    - various uprobes cleanups and restructurings

    - PMU driver quirks by microcode version and required x86 microcode
    loader cleanups/robustization

    - various tracing robustness updates

    - static keys: remove obsolete static_branch()

    - tooling side:

    - GTK browser improvements

    - perf report browser: support screenshots to file

    - more automated tests

    - perf kvm improvements

    - perf bench refinements

    - build environment improvements

    - pipe mode improvements

    - libtraceevent updates, we have now hopefully merged most bits with
    the out of tree forked code base

    ... and many other goodies."

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (138 commits)
    tracing: Check for allocation failure in __tracing_open()
    perf/x86: Fix intel_perfmon_event_mapformatting
    jump label: Remove static_branch()
    tracepoint: Use static_key_false(), since static_branch() is deprecated
    perf/x86: Uncore filter support for SandyBridge-EP
    perf/x86: Detect number of instances of uncore CBox
    perf/x86: Fix event constraint for SandyBridge-EP C-Box
    perf/x86: Use 0xff as pseudo code for fixed uncore event
    perf/x86: Save a few bytes in 'struct x86_pmu'
    perf/x86: Add a microcode revision check for SNB-PEBS
    perf/x86: Improve debug output in check_hw_exists()
    perf/x86/amd: Unify AMD's generic and family 15h pmus
    perf/x86: Move Intel specific code to intel_pmu_init()
    perf/x86: Rename Intel specific macros
    perf/x86: Fix USER/KERNEL tagging of samples
    perf tools: Split event symbols arrays to hw and sw parts
    perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens
    perf tools: Add empty rule for new line in event syntax parsing
    perf test: Use ARRAY_SIZE in parse events tests
    tools lib traceevent: Cleanup realloc use
    ...

    Linus Torvalds
     
  • Pull RCU changes from Ingo Molnar:
    "Quoting from Paul, the major features of this series are:

    1. Preventing latency spikes of more than 200 microseconds for
    kernels built with NR_CPUS=4096, which is reportedly becoming the
    default for some distros. This is a first step, as it does not
    help with systems that actually -have- 4096 CPUs (work on this case
    is in progress, but is not yet ready for mainline).

    This category also includes improving concurrency of rcu_barrier(),
    placed here due to conflicts. Posted to LKML at:

    https://lkml.org/lkml/2012/6/22/381

    Note that patches 18-22 of that series have been defered to 3.7, as
    they have not yet proven themselves to be mainline-ready (and yes,
    these are the ones intended to get rid of RCU's latency spikes for
    systems that actually have 4096 CPUs).

    2. Updates to documentation and rcutorture fixes, the latter category
    including improvements to rcu_barrier() testing. Posted to LKML at

    http://lkml.indiana.edu/hypermail/linux/kernel/1206.1/04094.html.

    3. Miscellaneous fixes posted to LKML at:

    https://lkml.org/lkml/2012/6/22/500

    with the exception of the last commit, which was posted here:

    http://www.gossamer-threads.com/lists/linux/kernel/1561830

    4. RCU_FAST_NO_HZ fixes and improvements. Posted to LKML at:

    http://lkml.indiana.edu/hypermail/linux/kernel/1206.1/00006.html
    http://www.gossamer-threads.com/lists/linux/kernel/1561833

    The first four patches of the first series went into 3.5 to fix a
    regression.

    5. Code-style fixes. These were posted to LKML at

    http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/01180.html
    http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/01181.html"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
    rcu: Fix broken strings in RCU's source code.
    rcu: Fix code-style issues involving "else"
    rcu: Introduce check for callback list/count mismatch
    rcu: Make RCU_FAST_NO_HZ respect nohz= boot parameter
    rcu: Fix qlen_lazy breakage
    rcu: Round FAST_NO_HZ lazy timeout to nearest second
    rcu: The rcu_needs_cpu() function is not a quiescent state
    rcu: Dump only the current CPU's buffers for idle-entry/exit warnings
    rcu: Add check for CPUs going offline with callbacks queued
    rcu: Disable preemption in rcu_blocking_is_gp()
    rcu: Prevent uninitialized string in RCU CPU stall info
    rcu: Fix rcu_is_cpu_idle() #ifdef in TINY_RCU
    rcu: Split RCU core processing out of __call_rcu()
    rcu: Prevent __call_rcu() from invoking RCU core on offline CPUs
    rcu: Make __call_rcu() handle invocation from idle
    rcu: Remove function versions of __kfree_rcu and __is_kfree_rcu_offset
    rcu: Consolidate tree/tiny __rcu_read_{,un}lock() implementations
    rcu: Remove return value from rcu_assign_pointer()
    key: Remove extraneous parentheses from rcu_assign_keypointer()
    rcu: Remove return value from RCU_INIT_POINTER()
    ...

    Linus Torvalds
     
  • Pull core/iommu changes from Ingo Molnar.

    * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    iommu/dmar: Use pr_format() instead of PREFIX to tidy up pr_*() calls
    iommu/dmar: Reserve mmio space used by the IOMMU, if the BIOS forgets to
    iommu/dmar: Replace printks with appropriate pr_*()

    Linus Torvalds
     

22 Jul, 2012

3 commits

  • The SYSTEM_SUSPEND_DISK system state is never used, so drop it.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Merge emailed kgdb dmesg fixups patches from Anton Vorontsov:
    "The dmesg command appears to be broken after the printk rework. The
    old logic in the kdb code makes no sense in terms of current
    printk/logging storage format, and KDB simply hangs forever upon
    entering 'dmesg' command.

    The first patch revives the command by switching to kmsg_dumper
    iterator. As a side-effect, the code is now much more simpler.

    A few changes were needed in the printk.c: we needed unlocked variant
    of the kmsg_dumper iterator, but these can surely wait for 3.6.

    It's probably too late even for the first patch to go to 3.5, but I'll
    try to convince otherwise. :-) Here we go:

    - The current code is broken for sure, and has no hope to work at
    all. It is a regression
    - The new code works for me, and probably works for everyone else;
    - If it compiles (and I urge everyone to compile-test it on your
    setup), it hardly can make things worse."

    * Merge emailed patches from Anton Vorontsov: (4 commits)
    kdb: Switch to nolock variants of kmsg_dump functions
    printk: Implement some unlocked kmsg_dump functions
    printk: Remove kdb_syslog_data
    kdb: Revive dmesg command

    Linus Torvalds
     
  • If used from KDB, the locked variants are prone to deadlocks (suppose we
    got to the debugger w/ the logbuf lock held).

    So, we have to implement a few routines that grab no logbuf lock.

    Yet we don't need these functions in modules, so we don't export them.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     

21 Jul, 2012

9 commits