1. 13 11月, 2013 7 次提交
    • D
      sparc64: Move from 4MB to 8MB huge pages. · 37b3a8ff
      David S. Miller 提交于
      The impetus for this is that we would like to move to 64-bit PMDs and
      PGDs, but that would result in only supporting a 42-bit address space
      with the current page table layout.  It'd be nice to support at least
      43-bits.
      
      The reason we'd end up with only 42-bits after making PMDs and PGDs
      64-bit is that we only use half-page sized PTE tables in order to make
      PMDs line up to 4MB, the hardware huge page size we use.
      
      So what we do here is we make huge pages 8MB, and fabricate them using
      4MB hw TLB entries.
      
      Facilitate this by providing a "REAL_HPAGE_SHIFT" which is used in
      places that really need to operate on hardware 4MB pages.
      
      Use full pages (512 entries) for PTE tables, and adjust PMD_SHIFT,
      PGD_SHIFT, and the build time CPP test as needed.  Use a CPP test to
      make sure REAL_HPAGE_SHIFT and the _PAGE_SZHUGE_* we use match up.
      
      This makes the pgtable cache completely unused, so remove the code
      managing it and the state used in mm_context_t.  Now we have less
      spinlocks taken in the page table allocation path.
      
      The technique we use to fabricate the 8MB pages is to transfer bit 22
      from the missing virtual address into the PTEs physical address field.
      That takes care of the transparent huge pages case.
      
      For hugetlb, we fill things in at the PTE level and that code already
      puts the sub huge page physical bits into the PTEs, based upon the
      offset, so there is nothing special we need to do.  It all just works
      out.
      
      So, a small amount of complexity in the THP case, but this code is
      about to get much simpler when we move the 64-bit PMDs as we can move
      away from the fancy 32-bit huge PMD encoding and just put a real PTE
      value in there.
      
      With bug fixes and help from Bob Picco.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37b3a8ff
    • D
      sparc64: Make PAGE_OFFSET variable. · b2d43834
      David S. Miller 提交于
      Choose PAGE_OFFSET dynamically based upon cpu type.
      
      Original UltraSPARC-I (spitfire) chips only supported a 44-bit
      virtual address space.
      
      Newer chips (T4 and later) support 52-bit virtual addresses
      and up to 47-bits of physical memory space.
      
      Therefore we have to adjust PAGE_SIZE dynamically based upon
      the capabilities of the chip.
      
      Note that this change alone does not allow us to support > 43-bit
      physical memory, to do that we need to re-arrange our page table
      support.  The current encodings of the pmd_t and pgd_t pointers
      restricts us to "32 + 11" == 43 bits.
      
      This change can waste quite a bit of memory for the various tables.
      In particular, a future change should work to size and allocate
      kern_linear_bitmap[] and sparc64_valid_addr_bitmap[] dynamically.
      This isn't easy as we really cannot take a TLB miss when accessing
      kern_linear_bitmap[].  We'd have to lock it into the TLB or similar.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      b2d43834
    • D
      sparc64: Fix inconsistent max-physical-address defines. · f998c9c0
      David S. Miller 提交于
      Some parts of the code use '41' others use '42', make them
      all use the same value.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      f998c9c0
    • D
      sparc64: Document the shift counts used to validate linear kernel addresses. · bb7b4353
      David S. Miller 提交于
      This way we can see exactly what they are derived from, and in particular
      how they would change if we were to use a different PAGE_OFFSET value.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      bb7b4353
    • D
      sparc64: Define PAGE_OFFSET in terms of physical address bits. · e0a45e35
      David S. Miller 提交于
      This makes clearer the implications for a given choosen
      value.
      
      Based upon patches by Bob Picco.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      e0a45e35
    • D
      sparc64: Use PAGE_OFFSET instead of a magic constant. · 922631b9
      David S. Miller 提交于
      This pertains to all of the computations of the kernel fast
      TLB miss xor values.
      
      Based upon a patch by Bob Picco.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      922631b9
    • D
      sparc64: Clean up 64-bit mmap exclusion defines. · c920745e
      David S. Miller 提交于
      Older UltraSPARC chips had an address space hole due to the MMU only
      supporting 44-bit virtual addresses.
      
      The top end of this hole also has the same value as the current
      definition of PAGE_OFFSET, so this can be confusing.
      
      Consolidate the defines for the userspace mmap exclusion range into
      page_64.h and use them in sys_sparc_64.c and hugetlbpage.c
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      c920745e
  2. 12 11月, 2013 33 次提交
    • L
      Merge tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 10d0c970
      Linus Torvalds 提交于
      Pull devicetree updates from Rob Herring:
       "DeviceTree updates for 3.13.  This is a bit larger pull request than
        usual for this cycle with lots of clean-up.
      
         - Cross arch clean-up and consolidation of early DT scanning code.
         - Clean-up and removal of arch prom.h headers.  Makes arch specific
           prom.h optional on all but Sparc.
         - Addition of interrupts-extended property for devices connected to
           multiple interrupt controllers.
         - Refactoring of DT interrupt parsing code in preparation for
           deferred probe of interrupts.
         - ARM cpu and cpu topology bindings documentation.
         - Various DT vendor binding documentation updates"
      
      * tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (82 commits)
        powerpc: add missing explicit OF includes for ppc
        dt/irq: add empty of_irq_count for !OF_IRQ
        dt: disable self-tests for !OF_IRQ
        of: irq: Fix interrupt-map entry matching
        MIPS: Netlogic: replace early_init_devtree() call
        of: Add Panasonic Corporation vendor prefix
        of: Add Chunghwa Picture Tubes Ltd. vendor prefix
        of: Add AU Optronics Corporation vendor prefix
        of/irq: Fix potential buffer overflow
        of/irq: Fix bug in interrupt parsing refactor.
        of: set dma_mask to point to coherent_dma_mask
        of: add vendor prefix for PHYTEC Messtechnik GmbH
        DT: sort vendor-prefixes.txt
        of: Add vendor prefix for Cadence
        of: Add empty for_each_available_child_of_node() macro definition
        arm/versatile: Fix versatile irq specifications.
        of/irq: create interrupts-extended property
        microblaze/pci: Drop PowerPC-ism from irq parsing
        of/irq: Create of_irq_parse_and_map_pci() to consolidate arch code.
        of/irq: Use irq_of_parse_and_map()
        ...
      10d0c970
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 85b656cf
      Linus Torvalds 提交于
      Pull LED subsystem changes from Bryan Wu:
       "LED subsystem updates for 3.13 are basically cleanup and also add a
        new driver for PCA9685"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: lp55xx: handle enable pin in driver
        leds-gpio: of: led should not be created if its status is disabled
        of: introduce of_get_available_child_count
        leds: Added driver for the NXP PCA9685 I2C chip
        leds: pwm: Remove redundant of_match_ptr
        leds: Include linux/of.h header
        leds: dac124s085: Remove redundant spi_set_drvdata
        leds: lp55xx: enable setting default trigger
        leds: blinkm: Remove redundant break
      85b656cf
    • L
      Merge tag 'clk-for-linus-3.13' of git://git.linaro.org/people/mturquette/linux · 2b684c07
      Linus Torvalds 提交于
      Pull clock framework changes from Mike Turquette:
       "The clock changes for 3.13 are an even mix of framework improvements &
        bug fixes along with updates to existing clock drivers and the
        additional of new clock drivers"
      
      * tag 'clk-for-linus-3.13' of git://git.linaro.org/people/mturquette/linux:
        clk: new driver for efm32 SoC
        clk: of: helper for determining number of parent clocks
        clk/zynq: Fix possible memory leak
        clk: keystone: Build Keystone clock drivers
        clk: keystone: Add gate control clock driver
        clk: keystone: add Keystone PLL clock driver
        Documentation: Add documentation for APM X-Gene clock binding
        clk: arm64: Add DTS clock entry for APM X-Gene Storm SoC
        clk: Add APM X-Gene SoC clock driver
        clk: wm831x: get rid of the implementation of remove function
        clk: Correct lookup logic in clk_fetch_parent_index()
        clk: Use kcalloc() to allocate arrays
        clk: Add error handling to clk_fetch_parent_index()
      2b684c07
    • L
      Merge tag 'gpio-v3.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · c2d33069
      Linus Torvalds 提交于
      Pull GPIO changes from Linus Walleij:
       "Here is the bulk of GPIO changes for the v3.13 development cycle.
      
        I've got ACKs for the things that affect other subsystems (or it's my
        own subsystem, like pinctrl).  Most of that pertain to an attempt from
        my side to consolidate and get rid of custom GPIO implementations in
        the ARM tree.  I will continue doing this.
      
        The main change this time is the new GPIO descriptor API, background
        for this can be found in Corbet's summary from this january in LWN:
      
          http://lwn.net/Articles/533632/
      
        Summary:
      
         - Merged the GPIO descriptor API from Alexandre Courbot.  This is a
           first step toward trying to get rid of the global GPIO numberspace
           for the future.
      
         - Add an API so that driver can flag that a certain GPIO line is
           being used by a irqchip backend for generating IRQs, so that we can
           enforce checks, like not allowing users to switch that line to an
           output at runtime, since this makes no sense.  Implemented
           corresponding calls in a few select drivers.
      
         - ACPI GPIO cleanups, refactorings and switch to using the
           descriptor-based interface.
      
         - Support for the TPS80036 Palmas GPIO variant.
      
         - A new driver for the Broadcom Kona GPIO SoC IP block.
      
         - Device tree support for the PCF857x driver.
      
         - A set of ARM GPIO refactorings with the goal of getting rid of a
           bunch of custom GPIO implementations from the arch/arm/* tree:
      
           * Move the IOP GPIO driver to the GPIO subsystem and fix all users
             to use the gpiolib API for accessing GPIOs.  Delete the old
             custom GPIO implementation.
      
           * Delete the unused custom PXA GPIO implemention.
      
           * Convert all users of the IXP4 custom GPIO implementation to use
             gpiolib and delete the custom implementation.
      
           * Delete the custom Gemini GPIO implementation, also completely
             unused.
      
         - Various cleanups and renamings"
      
      * tag 'gpio-v3.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (85 commits)
        gpio: gpio-mxs: Remove unneeded dt checks
        gpio: pl061: don't depend on CONFIG_ARM
        gpio: bcm-kona: add missing .owner to struct gpio_chip
        gpiolib: provide a declaration of seq_file in gpio/driver.h
        gpiolib: include gpio/consumer.h in of_gpio.h for desc_to_gpio()
        gpio: provide stubs for devres gpio functions
        gpiolib: devres: add missing headers
        gpiolib: make GPIO_DEVRES depend on GPIOLIB
        gpiolib: devres: fix devm_gpiod_get_index()
        gpiolib / ACPI: document the GPIO descriptor based interface
        gpiolib / ACPI: allow passing GPIOF_ACTIVE_LOW for GpioInt resources
        gpiolib / ACPI: add ACPI support for gpiod_get_index()
        gpiolib / ACPI: convert to gpiod interfaces
        gpiolib: add gpiod_get() and gpiod_put() functions
        gpiolib: port of_ functions to use gpiod
        gpiolib: export descriptor-based GPIO interface
        Fixup "MAINTAINERS: GPIO-INTEL-MID: add maintainer"
        gpio: bcm281xx: Don't print addresses of GPIO area in probe()
        gpio: tegra: use new gpio_lock_as_irq() API
        gpio: rcar: Include linux/of.h header
        ...
      c2d33069
    • L
      Merge tag 'pinctrl-for-v3.13-1' of... · 8a5dc585
      Linus Torvalds 提交于
      Merge tag 'pinctrl-for-v3.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
      
      Pull pin control updates from Linus Walleij:
       "Main pin control pull request for the v3.13 cycle.
      
        The changes hitting arch/blackfin are ACKed by the Blackfin
        maintainer, and the device tree bindings are ACKed to the extent
        possible by someone from the device tree maintainers group.
      
         - Blackfin ADI pin control driver, we move yet another architecture
           under this subsystem umbrella.
      
         - Incremental updates to the Renesas Super-H PFC pin control driver.
           New subdriver for the r8a7791 SoC.
      
         - Non-linear GPIO ranges from the gpiolib side of things, this
           enabled simplified device tree bindings by referring entire groups
           of pins on some pin controller to act as back-end for a certain
           GPIO-chip driver.
      
         - Add the Abilis TB10x pin control driver used on the ARC
           architecture.  Also the corresponding GPIO driver is merged through
           this tree, so the ARC has full support for pins and GPIOs after
           this.
      
         - Subdrivers for Freescale i.MX1, i.MX27 and i.MX50 pin controller
           instances.  The i.MX1 and i.MX27 is an entirely new family
           (silicon) of controllers whereas i.MX50 is a variant of the
           previous supported controller.
      
         - Then the usual slew of fixes, cleanups and incremental updates"
      
      The ARC DT changes are apparently still pending, that hopefully gets
      sorted out in a timely manner.
      
      * tag 'pinctrl-for-v3.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (48 commits)
        pinctrl: imx50: add pinctrl support code for the IMX50 SoC
        pinctrl: at91: copy define to driver
        pinctrl: remove minor dead code
        pinctrl: imx: fix using pin->input_val wrongly
        pinctrl: imx1: fix return value check in imx1_pinctrl_core_probe()
        gpio: tb10x: fix return value check in tb10x_gpio_probe()
        gpio: tb10x: use module_platform_driver to simplify the code
        pinctrl: imx27: imx27 pincontrol driver
        pinctrl: imx1 core driver
        pinctrl: sh-pfc: r8a7791 PFC support
        sh-pfc: r8a7778: Add CAN pin groups
        gpio: add TB10x GPIO driver
        pinctrl: at91: correct a few typos
        pinctrl: mvebu: remove redundant of_match_ptr
        pinctrl: tb10x: use module_platform_driver to simplify the code
        pinctrl: tb10x: fix the error handling in tb10x_pinctrl_probe()
        pinctrl: add documentation for pinctrl_get_group_pins()
        pinctrl: rockchip: emulate both edge triggered interrupts
        pinctrl: rockchip: add rk3188 specifics
        pinctrl: rockchip: remove redundant check
        ...
      8a5dc585
    • L
      Merge tag 'sound-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · eeab517b
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "There are no too intrusive changes in this update batch.  The biggest
        LOC is found in the new DICE driver, and other small changes are
        scattered over the whole sound subtree (which is a common pattern).
      
        Below are highlights:
      
         - ALSA core:
           * Memory allocation support with genpool
           * Fix blocking in drain ioctl of compress_offload
      
         - HD-audio:
           * Improved AMD HDMI supports
           * Intel HDMI detection improvements
           * thinkpad_acpi mute-key integration
           * New PCI ID, New ALC255,285,293 codecs, CX20952
      
         - USB-audio:
           * New buffer size management
           * Clean up endpoint handling codes
      
         - ASoC:
           * Further work on the dmaengine helpers, including support for
             configuring the parameters for DMA by reading the capabilities of
             the DMA controller which removes some guesswork and magic numbers
             from drivers.
           * A refresh of the documentation.
           * Conversions of many drivers to direct regmap API usage in order
             to allow the ASoC level register I/O code to be removed, this
             will hopefully be completed by v3.14.
           * Support for using async register I/O in DAPM, reducing the time
             taken to implement power transitions on systems that support it.
      
         - Firewire: DICE driver
      
         - Lots of small fixes for bugs reported by Coverity"
      
      * tag 'sound-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (382 commits)
        ALSA: hda/realtek - Add new codec ALC255/ALC3234 UAJ supported
        ALSA: hda - Apply MacBook fixups for CS4208 correctly
        ASoC: fsl: imx-wm8962: remove an unneeded check
        ASoC: fsl: imx-pcm-fiq: Remove unused 'runtime' variable
        ALSA: hda/realtek - Make fixup regs persist after resume
        ALSA: hda_intel: ratelimit "spurious response" message
        ASoC: generic-dmaengine-pcm: Use SNDRV_DMA_TYPE_DEV_IRAM as default
        ASoC: dapm: Use WARN_ON() instead of BUG_ON()
        ASoC: wm_adsp: Fix BUG_ON() and WARN_ON() usages
        ASoC: Replace BUG() with WARN()
        ASoC: wm_hubs: Replace BUG() with WARN()
        ASoC: wm8996: Replace BUG() with WARN()
        ASoC: wm8962: Replace BUG() with WARN()
        ASoC: wm8958: Replace BUG() with WARN()
        ASoC: wm8904: Replace BUG() with WARN()
        ASoC: wm8900: Replace BUG() with WARN()
        ASoC: wm8350: Replace BUG() with WARN()
        ASoC: txx9: Use WARN_ON() instead of BUG_ON()
        ASoC: sh: Use WARN_ON() instead of BUG_ON()
        ASoC: rcar: Use WARN_ON() instead of BUG_ON()
        ...
      eeab517b
    • L
      Merge tag 'spi-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · f095ca6b
      Linus Torvalds 提交于
      Pull spi updates from Mark Brown:
       "As well as the usual driver updates and cleanups there's a few
        improvements to the core here:
      
         - The start of some improvements to factor out more of the SPI
           message loop into the core.  Right now this is just simplifying the
           code a bit but hopefully next time around we'll also have managed
           to roll out some noticable performance improvements which drivers
           can take advantage of.
         - Support for loading modules for ACPI enumerated SPI devices.
         - Managed registration for SPI controllers.
         - Helper for another common I/O pattern"
      
      * tag 'spi-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (116 commits)
        spi/hspi: add device tree support
        spi: atmel: fix return value check in atmel_spi_probe()
        spi: spi-imx: only enable the clocks when we start to transfer a message
        spi/s3c64xx: Fix doubled clock disable on suspend
        spi/s3c64xx: Do not ignore return value of spi_master_resume/suspend
        spi: spi-mxs: Use u32 instead of uint32_t
        spi: spi-mxs: Don't set clock for each xfer
        spi: spi-mxs: Clean up setup_transfer function
        spi: spi-mxs: Remove check of spi mode bits
        spi: spi-mxs: Fix race in setup method
        spi: spi-mxs: Remove bogus setting of ssp clk rate field
        spi: spi-mxs: Remove full duplex check, spi core already does it
        spi: spi-mxs: Fix chip select control bits in DMA mode
        spi: spi-mxs: Fix extra CS pulses and read mode in multi-transfer messages
        spi: spi-mxs: Change flag arguments in txrx functions to bit flags
        spi: spi-mxs: Always clear INGORE_CRC, to keep CS asserted
        spi: spi-mxs: Remove mxs_spi_enable and mxs_spi_disable
        spi: spi-mxs: Always set LOCK_CS
        spi/s3c64xx: Add missing pm_runtime_put on setup fail
        spi/s3c64xx: Add missing pm_runtime_set_active() call in probe()
        ...
      f095ca6b
    • L
      Merge tag 'regulator-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · c6d65bf2
      Linus Torvalds 提交于
      Pull regulator updates from Mark Brown:
       "Lots of driver updates here plus some nice new core features, the main
        one being the first:
      
         - Enable support for providing a dummy regulator when we know that
           one must exist for the device to be functional.  This makes it much
           easier to add regulator support to drivers since we don't require
           that the machine integration for all systems using the device be
           updated to provide regulators.
         - Substantial reduction in the amount of busy waiting done while
           waiting for enables to complete.
         - Allow MFDs to distribute regulator supplies to child devices so we
           don't have to expose the internal structure of MFDs outside of the
           driver.
         - Managed registeration for regulators"
      
      * tag 'regulator-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (113 commits)
        regulator: s5m8767: Modify parsing method of the voltage table of buck2/3/4
        regulator: s5m8767: Modify parse_dt function to parse data related to ramp
        regulator: da9052: Revert se apply_[reg|bit] with regmap based voltage_sel operations
        mfd: arizona: Specify supply mappings for Arizona CODECs
        mfd: Allow mapping regulator supplies to MFD device from children
        regulator: core: Add ability to create a lookup alias for supply
        regulator: tps65910: Fix checkpatch issue
        regulator: tps65023: Fix checkpatch issue
        regulator: tps6105x: Fix checkpatch issue
        regulator: mc13783: Fix checkpatch issue
        regulator: max8997: Fix checkpatch issue
        regulator: lp3971: Fix checkpatch issue
        regulator: fixed: Fix checkpatch issue
        regulator: anatop: Fix checkpatch issue
        regulator: Add REGULATOR_LINEAR_RANGE macro
        regulator: Remove max_uV from struct regulator_linear_range
        regulator: ti-abb: Fix operator precedence typo
        regulator: tps65910: get regulators node from parent node only
        regulator: tps6586x: get regulators node from parent node only
        regulator: tps65090: get regulators node from parent node only
        ...
      c6d65bf2
    • L
      Merge tag 'regmap-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 4fc9ed33
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "The main thing this time around has been some improvments to async
        I/O.
      
         - Cleaned up the async I/O support and extended it to allow single
           register writes more easily.  This is now used where possible for
           internally generated I/O, providing performance improvements for
           devices that can do async I/O.
         - An API for issuing a sequence of register writes as a single
           operation.  Some devices and buses can take advantage of this to do
           the I/O faster.
         - Addition of regmap_field APIs which help drivers for devices with
           repeated IPs or which move registers around between revisions to
           share helpers.
         - Support for SPMI buses"
      
      * tag 'regmap-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: add SPMI support
        regmap: debugfs: Fix a boot time crash with early regmap init
        regmap: irq: clear status when disable irq
        regmap: Only send a single buffer for async I/O if writing one register
        regmap: spi: Handle async writes of only one buffer
        regmap: new API regmap_multi_reg_write() definition
        regmap: Use async I/O during cache sync
        regmap: Use async I/O for patch application
        regmap: Fix regmap_bulk_write single-rw mutex deadlock
        regmap: Provide asynchronous write and update bits operations
        regmap: Simplify the initiation of async I/O
        regmap: Don't generate gather writes for single register raw writes
        regmap: Cache async work structures
        regmap: add helper macro to set min/max range of register
        regmap: Add regmap_fields APIs
        regmap: add regmap_field_update_bits()
      4fc9ed33
    • L
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 7e238a2e
      Linus Torvalds 提交于
      Pull hwmon updates from Guenter Roeck:
       "Introduce new hwmon API functions hwmon_device_register_with_groups
        and devm_hwmon_device_register_with_groups, and convert several
        drivers to use the new API.
      
        Add support for EMC1404, EMC1424, LTC2977, LTC2978A, LM25063 to
        existing drivers
      
        Various cleanups in several drivers"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (49 commits)
        hwmon: (w83793) Clean up a signedness issue
        hwmon: (nct6775) Remove an unused variable
        hwmon: (emc1403) Add support for EMC1404 and EMC1424
        hwmon: (emc1403) Convert to use devm_hwmon_device_register_with_groups
        hwmon: (pmbus/ltc2978): Add support for LTC2978A
        hwmon: (pmbus/ltc2978): Add support for LTC2977
        hwmon: (pmbus/lm25066) Add support for LM25063
        hwmon: Correct some typos
        hwmon: (gpio-fan) Include linux/of.h header
        hwmon: (lm70) Remove redundant spi_set_drvdata
        hwmon: (adcxx) Remove redundant spi_set_drvdata
        hwmon: (jc42) fix coccinelle warnings
        hwmon: (ltc4261) fix coccinelle warnings
        hwmon: (lm95234) fix coccinelle warnings
        hwmon: (max6697) fix coccinelle warnings
        hwmon: (max6642 fix coccinelle warnings
        hwmon: (ds1621) fix coccinelle warnings
        hwmon: (nct6775) fix coccinelle warnings
        hwmon: (jc42) Convert to use devm_hwmon_device_register_with_groups
        hwmon: (ltc4261) Convert to use devm_hwmon_device_register_with_groups
        ...
      7e238a2e
    • L
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 66a173b9
      Linus Torvalds 提交于
      Pull powerpc updates from Benjamin Herrenschmidt:
       "The bulk of this is LE updates.  One should now be able to build an LE
        kernel and even run some things in it.
      
        I'm still sitting on a handful of patches to enable the new ABI that I
        *might* still send this merge window around, but due to the
        incertainty (they are pretty fresh) I want to keep them separate.
      
        Other notable changes are some infrastructure bits to better handle
        PCI pass-through under KVM, some bits and pieces added to the new
        PowerNV platform support such as access to the CPU SCOM bus via sysfs,
        and support for EEH error handling on PHB3 (Power8 PCIe).
      
        We also grew arch_get_random_long() for both pseries and powernv when
        running on P7+ and P8, exploiting the HW rng.
      
        And finally various embedded updates from freescale"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (154 commits)
        powerpc: Fix fatal SLB miss when restoring PPR
        powerpc/powernv: Reserve the correct PE number
        powerpc/powernv: Add PE to its own PELTV
        powerpc/powernv: Add support for indirect XSCOM via debugfs
        powerpc/scom: Improve debugfs interface
        powerpc/scom: Enable 64-bit addresses
        powerpc/boot: Properly handle the base "of" boot wrapper
        powerpc/bpf: Support MOD operation
        powerpc/bpf: Fix DIVWU instruction opcode
        of: Move definition of of_find_next_cache_node into common code.
        powerpc: Remove big endianness assumption in of_find_next_cache_node
        powerpc/tm: Remove interrupt disable in __switch_to()
        powerpc: word-at-a-time optimization for 64-bit Little Endian
        powerpc/bpf: BPF JIT compiler for 64-bit Little Endian
        powerpc: Only save/restore SDR1 if in hypervisor mode
        powerpc/pmu: Fix ADB_PMU_LED_IDE dependencies
        powerpc/nvram: Fix endian issue when using the partition length
        powerpc/nvram: Fix endian issue when reading the NVRAM size
        powerpc/nvram: Scan partitions only once
        powerpc/mpc512x: remove unnecessary #if
        ...
      66a173b9
    • L
      Merge tag 'microblaze-3.13-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 11db81a5
      Linus Torvalds 提交于
      Pull microblaze updates from Michal Simek:
       - Get rid of NO_MMU Kconfig
       - mmap2 fixups
       - Some minor cleanups
      
      * tag 'microblaze-3.13-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Remove incorrect file path
        microblaze: Fix bug with mmap2 syscall MB implementation
        microblaze: Use predefined SYSCALL_DEFINE macro
        microblaze: Remove deprecated IRQF_DISABLED
        microblaze: Calculate kernel pad automatically
        microblaze: Remove unused NO_MMU Kconfig parameter
      11db81a5
    • L
      Merge tag 'metag-for-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 0993537b
      Linus Torvalds 提交于
      Pull metag architecture changes from James Hogan:
       - A change to remove the last dependence on bootloader exception
         handlers so that QEMU can more easily boot an SMP Linux/Meta kernel
         image directly.
       - A fix for a minor off by one error in a BUG_ON condition found by Dan
         Carpenter.
      
      * tag 'metag-for-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
        metag: off by one in setup_bootmem_node()
        metag: handle low level kicks directly
      0993537b
    • L
      Merge tag 'h8300-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 4b4d2b46
      Linus Torvalds 提交于
      Pull h8300 platform removal from Guenter Roeck:
       "The patch series has been in -next for more than one relase cycle.  I
        did get a number of Acks, and no objections.
      
        H8/300 has been dead for several years, the kernel for it has not
        compiled for ages, and recent versions of gcc for it are broken.
        Remove support for it"
      
      * tag 'h8300-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        CREDITS: Add Yoshinori Sato for h8300
        fs/minix: Drop dependency on H8300
        Drop remaining references to H8/300 architecture
        Drop MAINTAINERS entry for H8/300
        watchdog: Drop references to H8300 architecture
        net/ethernet: Drop H8/300 Ethernet driver
        net/ethernet: smsc9194: Drop conditional code for H8/300
        ide: Drop H8/300 driver
        Drop support for Renesas H8/300 (h8300) architecture
      4b4d2b46
    • L
      Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9b66bfb2
      Linus Torvalds 提交于
      Pull x86 UV debug changes from Ingo Molnar:
       "Various SGI UV debuggability improvements, amongst them KDB support,
        with related core KDB enabling patches changing kernel/debug/kdb/"
      
      * 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "x86/UV: Add uvtrace support"
        x86/UV: Add call to KGDB/KDB from NMI handler
        kdb: Add support for external NMI handler to call KGDB/KDB
        x86/UV: Check for alloc_cpumask_var() failures properly in uv_nmi_setup()
        x86/UV: Add uvtrace support
        x86/UV: Add kdump to UV NMI handler
        x86/UV: Add summary of cpu activity to UV NMI handler
        x86/UV: Update UV support for external NMI signals
        x86/UV: Move NMI support
      9b66bfb2
    • L
      Merge branch 'x86-uaccess-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c2136301
      Linus Torvalds 提交于
      Pull x86 uaccess changes from Ingo Molnar:
       "A single change that micro-optimizes __copy_*_user_inatomic(), used by
        the futex code"
      
      * 'x86-uaccess-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Add 1/2/4/8 byte optimization to 64bit __copy_{from,to}_user_inatomic
      c2136301
    • L
      Merge branch 'x86-reboot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 986189f9
      Linus Torvalds 提交于
      Pull x86 reboot changes from Ingo Molnar:
       "Misc changes - the only one with functional impact should be commit
        16c21ae5 ("reboot: Allow specifying warm/cold reset for CF9 boot
        type") which extends cold/warm reboot handling to the 0xCF9 reboot
        method"
      
      * 'x86-reboot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/reboot: Correct pr_info() log message in the set_bios/pci/kbd_reboot()
        x86/reboot: Sort reboot DMI quirks by vendor
        x86/reboot: Remove the duplicate C6100 entry in the reboot quirks list
        reboot: Allow specifying warm/cold reset for CF9 boot type
      986189f9
    • L
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2934578e
      Linus Torvalds 提交于
      Pull x86 platform fixlet from Ingo Molnar:
       "A single __initdata fix"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/geode: Fix incorrect placement of __initdata tag
      2934578e
    • L
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2612c49d
      Linus Torvalds 提交于
      Pull x86 mm fixlet from Ingo Molnar:
       "One cleanup that documents a particular detail in init_mem_mapping()"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Add 'step_size' comments to init_mem_mapping()
      2612c49d
    • L
      Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 340286cd
      Linus Torvalds 提交于
      Pull x86 RAS changes from Ingo Molnar:
       "The biggest change adds support for Intel 'CPER' (UEFI Common Platform
        Error Record) error logging, which builds upon an enhanced error
        logging mechanism available on Xeon processors.
      
        Full description is here:
      
          http://www.intel.com/content/www/us/en/architecture-and-technology/enhanced-mca-logging-xeon-paper.html
      
        This change provides a module (and support code) to check for an
        extended error log and prints extra details about the error on the
        console"
      
      * 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        ACPI, x86: Fix extended error log driver to depend on CONFIG_X86_LOCAL_APIC
        dmi: Avoid unaligned memory access in save_mem_devices()
        Move cper.c from drivers/acpi/apei to drivers/firmware/efi
        EDAC, GHES: Update ghes error record info
        ACPI, APEI, CPER: Cleanup CPER memory error output format
        ACPI, APEI, CPER: Enhance memory reporting capability
        ACPI, APEI, CPER: Add UEFI 2.4 support for memory error
        DMI: Parse memory device (type 17) in SMBIOS
        ACPI, x86: Extended error log driver for x86 platform
        bitops: Introduce a more generic BITMASK macro
        ACPI, CPER: Update cper info
        ACPI, APEI, CPER: Fix status check during error printing
      340286cd
    • L
      Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 339a4b72
      Linus Torvalds 提交于
      Pull x86 iommu changes from Ingo Molnar:
       "Make it easier to turn off the old AMD GART code"
      
      * 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/iommu: Clean up the CONFIG_GART_IOMMU config option a bit
        x86/iommu: Don't make AMD_GART depend on EXPERT and default y
      339a4b72
    • L
      Merge branch 'x86-intel-mid-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dba538ff
      Linus Torvalds 提交于
      Pull x86/intel-mid changes from Ingo Molnar:
       "Update the 'intel mid' (mobile internet device) platform code as Intel
        is rolling out more SoC designs.
      
        This gets rid of most of the 'MRST' platform code in the process,
        mostly by renaming and shuffling code around into their respective
        'intel-mid' platform drivers"
      
      * 'x86-intel-mid-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, intel-mid: Do not re-introduce usage of obsolete __cpuinit
        intel_mid: Move platform device setups to their own platform_<device>.* files
        x86: intel-mid: Add section for sfi device table
        intel-mid: sfi: Allow struct devs_id.get_platform_data to be NULL
        intel_mid: Moved SFI related code to sfi.c
        intel_mid: Added custom handler for ipc devices
        intel_mid: Added custom device_handler support
        intel_mid: Refactored sfi_parse_devs() function
        intel_mid: Renamed *mrst* to *intel_mid*
        pci: intel_mid: Return true/false in function returning bool
        intel_mid: Renamed *mrst* to *intel_mid*
        mrst: Fixed indentation issues
        mrst: Fixed printk/pr_* related issues
      dba538ff
    • L
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2dc1733f
      Linus Torvalds 提交于
      Pull x86/hyperv changes from Ingo Molnar:
       "These changes enable Linux guests to boot as 'Modern VM' guest kernels
        on MS-Hyperv hosts"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, hyperv: Move a variable to avoid an unused variable warning
        x86, hyperv: Fix build error due to missing <asm/apic.h> include
        x86, hyperv: Correctly guard the local APIC calibration code
        x86, hyperv: Get the local APIC timer frequency from the hypervisor
      2dc1733f
    • L
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 69019d77
      Linus Torvalds 提交于
      Pull x86 EFI changes from Ingo Molnar:
       "Main changes:
      
         - Add support for earlyprintk=efi which uses the EFI framebuffer.
           Very useful for debugging boot problems.
      
         - EFI stub support for large memory maps (more than 128 entries)
      
         - EFI ARM support - this was mostly done by generalizing x86 <-> ARM
           platform differences, such as by moving x86 EFI code into
           drivers/firmware/efi/ and sharing it with ARM.
      
         - Documentation updates
      
         - misc fixes"
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
        x86/efi: Add EFI framebuffer earlyprintk support
        boot, efi: Remove redundant memset()
        x86/efi: Fix config_table_type array termination
        x86 efi: bugfix interrupt disabling sequence
        x86: EFI stub support for large memory maps
        efi: resolve warnings found on ARM compile
        efi: Fix types in EFI calls to match EFI function definitions.
        efi: Renames in handle_cmdline_files() to complete generalization.
        efi: Generalize handle_ramdisks() and rename to handle_cmdline_files().
        efi: Allow efi_free() to be called with size of 0
        efi: use efi_get_memory_map() to get final map for x86
        efi: generalize efi_get_memory_map()
        efi: Rename __get_map() to efi_get_memory_map()
        efi: Move unicode to ASCII conversion to shared function.
        efi: Generalize relocate_kernel() for use by other architectures.
        efi: Move relocate_kernel() to shared file.
        efi: Enforce minimum alignment of 1 page on allocations.
        efi: Rename memory allocation/free functions
        efi: Add system table pointer argument to shared functions.
        efi: Move common EFI stub code from x86 arch code to common location
        ...
      69019d77
    • L
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6df1e7f2
      Linus Torvalds 提交于
      Pull x86 cpu changes from Ingo Molnar:
       "The biggest change that stands out is the increase of the
        CONFIG_NR_CPUS range from 4096 to 8192 - as real hardware out there
        already went beyond 4k CPUs ...
      
        We only allow more than 512 CPUs if offstack cpumasks are enabled.
      
        CONFIG_MAXSMP=y remains to be the 'you are nuts!' extreme testcase,
        which now means a max of 8192 CPUs"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Increase max CPU count to 8192
        x86/cpu: Allow higher NR_CPUS values
        x86/cpu: Always print SMP information in /proc/cpuinfo
        x86/cpu: Track legacy CPU model data only on 32-bit kernels
      6df1e7f2
    • L
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d96d8aa2
      Linus Torvalds 提交于
      Pull x86 cleanups from Ingo Molnar:
       "Two small cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, msr: Use file_inode(), not f_mapping->host
        x86: mkpiggy.c: Explicitly close the output file
      d96d8aa2
    • L
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 54e11304
      Linus Torvalds 提交于
      Pull x86 build changes from Ingo Molnar:
       "Two small changes"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, defconfig: Add DEVTMPFS and DEVTMPFS_MOUNT to *86*_defconfig
        x86, build: move build output statistics away from stderr
      54e11304
    • L
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 014d595c
      Linus Torvalds 提交于
      Pull x86 boot changes from Ingo Molnar:
       "Two changes that prettify and compactify the SMP bootup output from:
      
           smpboot: Booting Node   0, Processors  #1 #2 #3 OK
           smpboot: Booting Node   1, Processors  #4 #5 #6 #7 OK
           smpboot: Booting Node   2, Processors  #8 #9 #10 #11 OK
           smpboot: Booting Node   3, Processors  #12 #13 #14 #15 OK
           Brought up 16 CPUs
      
        to something like:
      
           x86: Booting SMP configuration:
           .... node  #0, CPUs:        #1  #2  #3
           .... node  #1, CPUs:    #4  #5  #6  #7
           .... node  #2, CPUs:    #8  #9 #10 #11
           .... node  #3, CPUs:   #12 #13 #14 #15
           x86: Booted up 4 nodes, 16 CPUs"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Further compress CPUs bootup message
        x86: Improve the printout of the SMP bootup CPU table
      014d595c
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ae795fe7
      Linus Torvalds 提交于
      Pull x86 user access changes from Ingo Molnar:
       "This tree contains two copy_[from/to]_user() build time checking
        changes/enhancements from Jan Beulich.
      
        The desired outcome is to get better compiler warnings with
        CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y, to keep people from
        introducing bugs such as overflows and information leaks"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Unify copy_to_user() and add size checking to it
        x86: Unify copy_from_user() size checking
      ae795fe7
    • L
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b7ab6e3d
      Linus Torvalds 提交于
      Pull x86/apic fix from Ingo Molnar:
       "A single fix to the IO-APIC / local-APIC shutdown sequence"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Disable I/O APIC before shutdown of the local APIC
      b7ab6e3d
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 87093826
      Linus Torvalds 提交于
      Pull timer changes from Ingo Molnar:
       "Main changes in this cycle were:
      
         - Updated full dynticks support.
      
         - Event stream support for architected (ARM) timers.
      
         - ARM clocksource driver updates.
      
         - Move arm64 to using the generic sched_clock framework & resulting
           cleanup in the generic sched_clock code.
      
         - Misc fixes and cleanups"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)
        x86/time: Honor ACPI FADT flag indicating absence of a CMOS RTC
        clocksource: sun4i: remove IRQF_DISABLED
        clocksource: sun4i: Report the minimum tick that we can program
        clocksource: sun4i: Select CLKSRC_MMIO
        clocksource: Provide timekeeping for efm32 SoCs
        clocksource: em_sti: convert to clk_prepare/unprepare
        time: Fix signedness bug in sysfs_get_uname() and its callers
        timekeeping: Fix some trivial typos in comments
        alarmtimer: return EINVAL instead of ENOTSUPP if rtcdev doesn't exist
        clocksource: arch_timer: Do not register arch_sys_counter twice
        timer stats: Add a 'Collection: active/inactive' line to timer usage statistics
        sched_clock: Remove sched_clock_func() hook
        arch_timer: Move to generic sched_clock framework
        clocksource: tcb_clksrc: Remove IRQF_DISABLED
        clocksource: tcb_clksrc: Improve driver robustness
        clocksource: tcb_clksrc: Replace clk_enable/disable with clk_prepare_enable/disable_unprepare
        clocksource: arm_arch_timer: Use clocksource for suspend timekeeping
        clocksource: dw_apb_timer_of: Mark a few more functions as __init
        clocksource: Put nodes passed to CLOCKSOURCE_OF_DECLARE callbacks centrally
        arm: zynq: Enable arm_global_timer
        ...
      87093826
    • L
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 39cf275a
      Linus Torvalds 提交于
      Pull scheduler changes from Ingo Molnar:
       "The main changes in this cycle are:
      
         - (much) improved CONFIG_NUMA_BALANCING support from Mel Gorman, Rik
           van Riel, Peter Zijlstra et al.  Yay!
      
         - optimize preemption counter handling: merge the NEED_RESCHED flag
           into the preempt_count variable, by Peter Zijlstra.
      
         - wait.h fixes and code reorganization from Peter Zijlstra
      
         - cfs_bandwidth fixes from Ben Segall
      
         - SMP load-balancer cleanups from Peter Zijstra
      
         - idle balancer improvements from Jason Low
      
         - other fixes and cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
        ftrace, sched: Add TRACE_FLAG_PREEMPT_RESCHED
        stop_machine: Fix race between stop_two_cpus() and stop_cpus()
        sched: Remove unnecessary iteration over sched domains to update nr_busy_cpus
        sched: Fix asymmetric scheduling for POWER7
        sched: Move completion code from core.c to completion.c
        sched: Move wait code from core.c to wait.c
        sched: Move wait.c into kernel/sched/
        sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()
        sched: Avoid throttle_cfs_rq() racing with period_timer stopping
        sched: Guarantee new group-entities always have weight
        sched: Fix hrtimer_cancel()/rq->lock deadlock
        sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
        sched: Fix race on toggling cfs_bandwidth_used
        sched: Remove extra put_online_cpus() inside sched_setaffinity()
        sched/rt: Fix task_tick_rt() comment
        sched/wait: Fix build breakage
        sched/wait: Introduce prepare_to_wait_event()
        sched/wait: Add ___wait_cond_timeout() to wait_event*_timeout() too
        sched: Remove get_online_cpus() usage
        sched: Fix race in migrate_swap_stop()
        ...
      39cf275a
    • L
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ad5d6989
      Linus Torvalds 提交于
      Pull perf updates from Ingo Molnar:
       "As a first remark I'd like to note that the way to build perf tooling
        has been simplified and sped up, in the future it should be enough for
        you to build perf via:
      
              cd tools/perf/
              make install
      
        (ie without the -j option.) The build system will figure out the
        number of CPUs and will do a parallel build+install.
      
        The various build system inefficiencies and breakages Linus reported
        against the v3.12 pull request should now be resolved - please
        (re-)report any remaining annoyances or bugs.
      
        Main changes on the perf kernel side:
      
         * Performance optimizations:
            . perf ring-buffer code optimizations,          by Peter Zijlstra
            . perf ring-buffer code optimizations,          by Oleg Nesterov
            . x86 NMI call-stack processing optimizations,  by Peter Zijlstra
            . perf context-switch optimizations,            by Peter Zijlstra
            . perf sampling speedups,                       by Peter Zijlstra
            . x86 Intel PEBS processing speedups,           by Peter Zijlstra
      
         * Enhanced hardware support:
            . for Intel Ivy Bridge-EP uncore PMUs,          by Zheng Yan
            . for Haswell transactions,                     by Andi Kleen, Peter Zijlstra
      
         * Core perf events code enhancements and fixes by Oleg Nesterov:
            . for uprobes, if fork() is called with pending ret-probes
            . for uprobes platform support code
      
         * New ABI details by Andi Kleen:
            . Report x86 Haswell TSX transaction abort cost as weight
      
        Main changes on the perf tooling side (some of these tooling changes
        utilize the above kernel side changes):
      
         * 'perf report/top' enhancements:
      
            . Convert callchain children list to rbtree, greatly reducing the
              time taken for callchain processing, from Namhyung Kim.
      
            . Add new COMM infrastructure, further improving histogram
              processing, from Frédéric Weisbecker, one fix from Namhyung Kim.
      
            . Add /proc/kcore based live-annotation improvements, including
              build-id cache support, multi map 'call' instruction navigation
              fixes, kcore address validation, objdump workarounds.  From
              Adrian Hunter.
      
            . Show progress on histogram collapsing, that can take a long
              time, from Namhyung Kim.
      
            . Add --max-stack option to limit callchain stack scan in 'top'
              and 'report', improving callchain processing when reducing the
              stack depth is an option, from Waiman Long.
      
            . Add new option --ignore-vmlinux for perf top, from Willy
              Tarreau.
      
         * 'perf trace' enhancements:
      
            . 'perf trace' now can can use a 'perf probe' dynamic tracepoints
              to hook into the userspace -> kernel pathname copy so that it
              can map fds to pathnames without reading /proc/pid/fd/ symlinks.
              From Arnaldo Carvalho de Melo.
      
            . Show VFS path associated with fd in live sessions, using a
              'vfs_getname' 'perf probe' created dynamic tracepoint or by
              looking at /proc/pid/fd, from Arnaldo Carvalho de Melo.
      
            . Add 'trace' beautifiers for lots of syscall arguments, from
              Arnaldo Carvalho de Melo.
      
            . Implement more compact 'trace' output by suppressing zeroed
              args, from Arnaldo Carvalho de Melo.
      
            . Show thread COMM by default in 'trace', from Arnaldo Carvalho de
              Melo.
      
            . Add option to show full timestamp in 'trace', from David Ahern.
      
            . Add 'record' command in 'trace', to record raw_syscalls:*, from
              David Ahern.
      
            . Add summary option to dump syscall statistics in 'trace', from
              David Ahern.
      
            . Improve error messages in 'trace', providing hints about system
              configuration steps needed for using it, from Ramkumar
              Ramachandra.
      
            . 'perf trace' now emits hints as to why tracing is not possible,
              helping the user to setup the system to allow tracing in the
              desired permission granularity, telling if the problem is due to
              debugfs not being mounted or with not enough permission for
              !root, /proc/sys/kernel/perf_event_paranoit value, etc.  From
              Arnaldo Carvalho de Melo.
      
         * 'perf record' enhancements:
      
            . Check maximum frequency rate for record/top, emitting better
              error messages, from Jiri Olsa.
      
            . 'perf record' code cleanups, from David Ahern.
      
            . Improve write_output error message in 'perf record', from Adrian
              Hunter.
      
            . Allow specifying B/K/M/G unit to the --mmap-pages arguments,
              from Jiri Olsa.
      
            . Fix command line callchain attribute tests to handle the new
              -g/--call-chain semantics, from Arnaldo Carvalho de Melo.
      
         * 'perf kvm' enhancements:
      
            . Disable live kvm command if timerfd is not supported, from David
              Ahern.
      
            . Fix detection of non-core features, from David Ahern.
      
         * 'perf list' enhancements:
      
            . Add usage to 'perf list', from David Ahern.
      
            . Show error in 'perf list' if tracepoints not available, from
              Pekka Enberg.
      
         * 'perf probe' enhancements:
      
            . Support "$vars" meta argument syntax for local variables,
              allowing asking for all possible variables at a given probe
              point to be collected when it hits, from Masami Hiramatsu.
      
         * 'perf sched' enhancements:
      
            . Address the root cause of that 'perf sched' stack initialization
              build slowdown, by programmatically setting a big array after
              moving the global variable back to the stack.  Fix from Adrian
              Hunter.
      
         * 'perf script' enhancements:
      
            . Set up output options for in-stream attributes, from Adrian
              Hunter.
      
            . Print addr by default for BTS in 'perf script', from Adrian
              Juntmer
      
         * 'perf stat' enhancements:
      
            . Improved messages when doing profiling in all or a subset of
              CPUs using a workload as the session delimitator, as in:
      
               'perf stat --cpu 0,2 sleep 10s'
      
              from Arnaldo Carvalho de Melo.
      
            . Add units to nanosec-based counters in 'perf stat', from David
              Ahern.
      
            . Remove bogus info when using 'perf stat' -e cycles/instructions,
              from Ramkumar Ramachandra.
      
         * 'perf lock' enhancements:
      
            . 'perf lock' fixes and cleanups, from Davidlohr Bueso.
      
         * 'perf test' enhancements:
      
            . Fixup PERF_SAMPLE_TRANSACTION handling in sample synthesizing
              and 'perf test', from Adrian Hunter.
      
            . Clarify the "sample parsing" test entry, from Arnaldo Carvalho
              de Melo.
      
            . Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test,
              from Arnaldo Carvalho de Melo.
      
            . Memory leak fixes in 'perf test', from Felipe Pena.
      
         * 'perf bench' enhancements:
      
            . Change the procps visible command-name of invididual benchmark
              tests plus cleanups, from Ingo Molnar.
      
         * Generic perf tooling infrastructure/plumbing changes:
      
            . Separating data file properties from session, code
              reorganization from Jiri Olsa.
      
            . Fix version when building out of tree, as when using one of
              these:
      
              $ make help | grep perf
                perf-tar-src-pkg    - Build perf-3.12.0.tar source tarball
                perf-targz-src-pkg  - Build perf-3.12.0.tar.gz source tarball
                perf-tarbz2-src-pkg - Build perf-3.12.0.tar.bz2 source tarball
                perf-tarxz-src-pkg  - Build perf-3.12.0.tar.xz source tarball
              $
      
              from David Ahern.
      
            . Enhance option parse error message, showing just the help lines
              of the options affected, from Namhyung Kim.
      
            . libtraceevent updates from upstream trace-cmd repo, from Steven
              Rostedt.
      
            . Always use perf_evsel__set_sample_bit to set sample_type, from
              Adrian Hunter.
      
            . Memory and mmap leak fixes from Chenggang Qin.
      
            . Assorted build fixes for from David Ahern and Jiri Olsa.
      
            . Speed up and prettify the build system, from Ingo Molnar.
      
            . Implement addr2line directly using libbfd, from Roberto Vitillo.
      
            . Separate the GTK support in a separate libperf-gtk.so DSO, that
              is only loaded when --gtk is specified, from Namhyung Kim.
      
            . perf bash completion fixes and improvements from Ramkumar
              Ramachandra.
      
            . Support for Openembedded/Yocto -dbg packages, from Ricardo
              Ribalda Delgado.
      
        And lots and lots of other fixes and code reorganizations that did not
        make it into the list, see the shortlog, diffstat and the Git log for
        details!"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (300 commits)
        uprobes: Fix the memory out of bound overwrite in copy_insn()
        uprobes: Fix the wrong usage of current->utask in uprobe_copy_process()
        perf tools: Remove unneeded include
        perf record: Remove post_processing_offset variable
        perf record: Remove advance_output function
        perf record: Refactor feature handling into a separate function
        perf trace: Don't relookup fields by name in each sample
        perf tools: Fix version when building out of tree
        perf evsel: Ditch evsel->handler.data field
        uprobes: Export write_opcode() as uprobe_write_opcode()
        uprobes: Introduce arch_uprobe->ixol
        uprobes: Kill module_init() and module_exit()
        uprobes: Move function declarations out of arch
        perf/x86/intel: Add Ivy Bridge-EP uncore IRP box support
        perf/x86/intel/uncore: Add filter support for IvyBridge-EP QPI boxes
        perf: Factor out strncpy() in perf_event_mmap_event()
        tools/perf: Add required memory barriers
        perf: Fix arch_perf_out_copy_user default
        perf: Update a stale comment
        perf: Optimize perf_output_begin() -- address calculation
        ...
      ad5d6989