1. 27 5月, 2012 3 次提交
    • L
      lib: add generic strnlen_user() function · a08c5356
      Linus Torvalds 提交于
      This adds a new generic optimized strnlen_user() function that uses the
      <asm/word-at-a-time.h> infrastructure to portably do efficient string
      handling.
      
      In many ways, strnlen is much simpler than strncpy, and in particular we
      can always pre-align the words we load from memory.  That means that all
      the worries about alignment etc are a non-issue, so this one can easily
      be used on any architecture.  You obviously do have to do the
      appropriate word-at-a-time.h macros.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a08c5356
    • L
      word-at-a-time: make the interfaces truly generic · 36126f8f
      Linus Torvalds 提交于
      This changes the interfaces in <asm/word-at-a-time.h> to be a bit more
      complicated, but a lot more generic.
      
      In particular, it allows us to really do the operations efficiently on
      both little-endian and big-endian machines, pretty much regardless of
      machine details.  For example, if you can rely on a fast population
      count instruction on your architecture, this will allow you to make your
      optimized <asm/word-at-a-time.h> file with that.
      
      NOTE! The "generic" version in include/asm-generic/word-at-a-time.h is
      not truly generic, it actually only works on big-endian.  Why? Because
      on little-endian the generic algorithms are wasteful, since you can
      inevitably do better. The x86 implementation is an example of that.
      
      (The only truly non-generic part of the asm-generic implementation is
      the "find_zero()" function, and you could make a little-endian version
      of it.  And if the Kbuild infrastructure allowed us to pick a particular
      header file, that would be lovely)
      
      The <asm/word-at-a-time.h> functions are as follows:
      
       - WORD_AT_A_TIME_CONSTANTS: specific constants that the algorithm
         uses.
      
       - has_zero(): take a word, and determine if it has a zero byte in it.
         It gets the word, the pointer to the constant pool, and a pointer to
         an intermediate "data" field it can set.
      
         This is the "quick-and-dirty" zero tester: it's what is run inside
         the hot loops.
      
       - "prep_zero_mask()": take the word, the data that has_zero() produced,
         and the constant pool, and generate an *exact* mask of which byte had
         the first zero.  This is run directly *outside* the loop, and allows
         the "has_zero()" function to answer the "is there a zero byte"
         question without necessarily getting exactly *which* byte is the
         first one to contain a zero.
      
         If you do multiple byte lookups concurrently (eg "hash_name()", which
         looks for both NUL and '/' bytes), after you've done the prep_zero_mask()
         phase, the result of those can be or'ed together to get the "either
         or" case.
      
       - The result from "prep_zero_mask()" can then be fed into "find_zero()"
         (to find the byte offset of the first byte that was zero) or into
         "zero_bytemask()" (to find the bytemask of the bytes preceding the
         zero byte).
      
         The existence of zero_bytemask() is optional, and is not necessary
         for the normal string routines.  But dentry name hashing needs it, so
         if you enable DENTRY_WORD_AT_A_TIME you need to expose it.
      
      This changes the generic strncpy_from_user() function and the dentry
      hashing functions to use these modified word-at-a-time interfaces.  This
      gets us back to the optimized state of the x86 strncpy that we lost in
      the previous commit when moving over to the generic version.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      36126f8f
    • L
      x86: use generic strncpy_from_user routine · 4ae73f2d
      Linus Torvalds 提交于
      The generic strncpy_from_user() is not really optimal, since it is
      designed to work on both little-endian and big-endian.  And on
      little-endian you can simplify much of the logic to find the first zero
      byte, since little-endian arithmetic doesn't have to worry about the
      carry bit propagating into earlier bytes (only later bytes, which we
      don't care about).
      
      But I have patches to make the generic routines use the architecture-
      specific <asm/word-at-a-time.h> infrastructure, so that we can regain
      the little-endian optimizations.  But before we do that, switch over to
      the generic routines to make the patches each do just one well-defined
      thing.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4ae73f2d
  2. 26 5月, 2012 3 次提交
    • L
      Merge tag 'tag-for-linus-3.5' of git://git.linaro.org/people/sumitsemwal/linux-dma-buf · da89fb16
      Linus Torvalds 提交于
      Pull dma-buf updates from Sumit Semwal:
       "Here's the first signed-tag pull request for dma-buf framework.  It
        includes the following key items:
         - mmap support
         - vmap support
         - related documentation updates
      
        These are needed by various drivers to allow mmap/vmap of dma-buf
        shared buffers.  Dave Airlie has some prime patches dependent on the
        vmap pull as well."
      
      * tag 'tag-for-linus-3.5' of git://git.linaro.org/people/sumitsemwal/linux-dma-buf:
        dma-buf: add initial vmap documentation
        dma-buf: minor documentation fixes.
        dma-buf: add vmap interface
        dma-buf: mmap support
      da89fb16
    • L
      Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma · d5adf235
      Linus Torvalds 提交于
      Pull slave-dmaengine updates from Vinod Koul:
       "Nothing exciting this time, odd fixes in a bunch of drivers"
      
      * 'next' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: at_hdmac: take maxburst from slave configuration
        dmaengine: at_hdmac: remove ATC_DEFAULT_CTRLA constant
        dmaengine: at_hdmac: remove some at_dma_slave comments
        dma: imx-sdma: make channel0 operations atomic
        dmaengine: Fixup dmaengine_prep_slave_single() to be actually useful
        dmaengine: Use dma_sg_len(sg) instead of sg->length
        dmaengine: Use sg_dma_address instead of sg_phys
        DMA: PL330: Remove duplicate header file inclusion
        dma: imx-sdma: keep the callbacks invoked in the tasklet
        dmaengine: dw_dma: add Device Tree probing capability
        dmaengine: dw_dmac: Add clk_{un}prepare() support
        dma/amba-pl08x: add support for the Nomadik variant
        dma/amba-pl08x: check for terminal count status only
      d5adf235
    • L
      Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · d484864d
      Linus Torvalds 提交于
      Pull CMA and ARM DMA-mapping updates from Marek Szyprowski:
       "These patches contain two major updates for DMA mapping subsystem
        (mainly for ARM architecture).  First one is Contiguous Memory
        Allocator (CMA) which makes it possible for device drivers to allocate
        big contiguous chunks of memory after the system has booted.
      
        The main difference from the similar frameworks is the fact that CMA
        allows to transparently reuse the memory region reserved for the big
        chunk allocation as a system memory, so no memory is wasted when no
        big chunk is allocated.  Once the alloc request is issued, the
        framework migrates system pages to create space for the required big
        chunk of physically contiguous memory.
      
        For more information one can refer to nice LWN articles:
      
         - 'A reworked contiguous memory allocator':
      		http://lwn.net/Articles/447405/
      
         - 'CMA and ARM':
      		http://lwn.net/Articles/450286/
      
         - 'A deep dive into CMA':
      		http://lwn.net/Articles/486301/
      
         - and the following thread with the patches and links to all previous
           versions:
      		https://lkml.org/lkml/2012/4/3/204
      
        The main client for this new framework is ARM DMA-mapping subsystem.
      
        The second part provides a complete redesign in ARM DMA-mapping
        subsystem.  The core implementation has been changed to use common
        struct dma_map_ops based infrastructure with the recent updates for
        new dma attributes merged in v3.4-rc2.  This allows to use more than
        one implementation of dma-mapping calls and change/select them on the
        struct device basis.  The first client of this new infractructure is
        dmabounce implementation which has been completely cut out of the
        core, common code.
      
        The last patch of this redesign update introduces a new, experimental
        implementation of dma-mapping calls on top of generic IOMMU framework.
        This lets ARM sub-platform to transparently use IOMMU for DMA-mapping
        calls if one provides required IOMMU hardware.
      
        For more information please refer to the following thread:
      		http://www.spinics.net/lists/arm-kernel/msg175729.html
      
        The last patch merges changes from both updates and provides a
        resolution for the conflicts which cannot be avoided when patches have
        been applied on the same files (mainly arch/arm/mm/dma-mapping.c)."
      
      Acked by Andrew Morton <akpm@linux-foundation.org>:
       "Yup, this one please.  It's had much work, plenty of review and I
        think even Russell is happy with it."
      
      * 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping: (28 commits)
        ARM: dma-mapping: use PMD size for section unmap
        cma: fix migration mode
        ARM: integrate CMA with DMA-mapping subsystem
        X86: integrate CMA with DMA-mapping subsystem
        drivers: add Contiguous Memory Allocator
        mm: trigger page reclaim in alloc_contig_range() to stabilise watermarks
        mm: extract reclaim code from __alloc_pages_direct_reclaim()
        mm: Serialize access to min_free_kbytes
        mm: page_isolation: MIGRATE_CMA isolation functions added
        mm: mmzone: MIGRATE_CMA migration type added
        mm: page_alloc: change fallbacks array handling
        mm: page_alloc: introduce alloc_contig_range()
        mm: compaction: export some of the functions
        mm: compaction: introduce isolate_freepages_range()
        mm: compaction: introduce map_pages()
        mm: compaction: introduce isolate_migratepages_range()
        mm: page_alloc: remove trailing whitespace
        ARM: dma-mapping: add support for IOMMU mapper
        ARM: dma-mapping: use alloc, mmap, free from dma_ops
        ARM: dma-mapping: remove redundant code and do the cleanup
        ...
      
      Conflicts:
      	arch/x86/include/asm/dma-mapping.h
      d484864d
  3. 25 5月, 2012 34 次提交
    • L
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · be87cfb4
      Linus Torvalds 提交于
      Pull sound update from Takashi Iwai:
       "This is the second updates for 3.5-rc1.  It's mainly for OMAP4 HDMI
        updates and the device tree updates for OMAP, in addition to a couple
        of PCM accuray improvement and Realtek ALC269VD codec support."
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (21 commits)
        ALSA: hda/realtek - Add new codec support for ALC269VD
        ALSA: core: group read of pointer, tstamp and jiffies
        ASoC: OMAP: HDMI: Rename sound card source file
        ASoC: OMAP: HDMI: Make sound card naming more generic
        ASoC: OMAP: HDMI: Make build config options more generic
        ASoC: OMAP: HDMI: Expand capabilities of the HDMI DAI
        ASoC: OMAP: HDMI: Improve how the display state is verified
        ASoC: OMAP: HDMI: Expand configuration of hw_params
        ASoC: OMAP: HDMI: Use the DSS audio interface
        ASoC: OMAP: HDMI: Create a structure for private data of the CPU DAI
        ASoC: OMAP: HDMI: Change error values in HDMI CPU DAI
        ASoC: OMAP: HDMI: Update the platform device names
        ASoC: omap-abe-twl6040: Introduce driver data for runtime parameters
        ASoC: omap-abe-twl6040: Move Digital Mic widget into dapm table
        ASoC: omap-abe-twl6040: Keep only one snd_soc_dai_link structure
        ASoC: omap-dmic: Add device tree bindings
        ASoC: omap-mcpdm: Add device tree bindings
        ASoC: omap-mcbsp: buffer size constraint only applies to playback stream
        ASoC: omap-mcbsp: Use the common interrupt line if supported by the SoC
        ASoC: omap-mcbsp: Remove unused FRAME dma_op_mode
        ...
      be87cfb4
    • L
      Merge tag 'hda-switcheroo' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 58823de9
      Linus Torvalds 提交于
      Pull VGA-switcheroo audio client support for HD-audio from Takashi Iwai.
      
      This depended on the recent drm pull.
      
      * tag 'hda-switcheroo' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - unlock on error in azx_interrupt()
        ALSA: hda - Support VGA-switcheroo
        ALSA: hda - Export snd_hda_lock_devices()
        ALSA: hda - Check the dead HDMI audio controller by vga-switcheroo
      58823de9
    • L
      Merge tag 'cris-for-linus' of git://jni.nu/cris · 4b7eba49
      Linus Torvalds 提交于
      Pull CRIS changes from Jesper Nilsson:
       "No major changes here, but fixes some compile errors for CRIS, some
        small style issues, some documentation and as a bonus nukes a couple
        of obsolete rtc-files and related code."
      
      * tag 'cris-for-linus' of git://jni.nu/cris:
        cris: Remove old legacy "-traditional" flag from arch-v10/lib/Makefile
        CRIS: Remove legacy RTC drivers
        cris/mm/fault.c: Port OOM changes to do_page_fault
        cris:fix the wrong function declear
        CRIS: Add _sdata to vmlinux.lds.S
        cris: posix_types.h, include asm-generic/posix_types.h
        CRIS: Update documentation
        cris/arch-v32: cryptocop: Use kzalloc
        net:removed the unused variable
        cris:removed the unused variable
        CRISv32: Correct name of read_mostly section.
      4b7eba49
    • L
      Merge tag 'mmc-merge-for-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 92bf3d09
      Linus Torvalds 提交于
      Pull MMC changes from Chris Ball
       - at91-mci: This driver will be replaced by atmel-mci in 3.7.
       - atmel-mci: Add support for old at91-mci hardware.
       - dw_mmc: Allow multiple controllers; this previously caused
         corruption.
       - imxmmc: Remove this driver, replaced by mxcmmc.
       - mmci: Add device tree support.
       - omap: Allow multiple controllers.
       - omap_hsmmc: Auto CMD12, DDR support.
       - tegra: Support SD 3.0 spec.
      
      Fix up the usual trivial conflicts in feature-removal-schedule.txt
      
      * tag 'mmc-merge-for-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (38 commits)
        mmc: at91-mci: this driver is now deprecated
        mmc: omap_hsmmc: pass IRQF_ONESHOT to request_threaded_irq
        mmc: block: Allow disabling 512B sector size emulation
        mmc: atmel-mci: add debug logs
        mmc: atmel-mci: add support for version lower than v2xx
        mmc: atmel-mci: change the state machine for compatibility with old IP
        mmc: atmel-mci: the r/w proof capability lack was not well managed
        mmc: dw_mmc: Fixed sdio interrupt mask bit setting bug
        mmc: omap: convert to module_platform_driver
        mmc: omap: make it behave well as a module
        mmc: omap: convert to per instance workqueue
        mmc: core: Remove dead code
        mmc: card: Avoid null pointer dereference
        mmc: core: Prevent eMMC VCC supply to be cut from late init
        mmc: dw_mmc: make multiple instances of dw_mci_card_workqueue
        mmc: queue: remove redundant memsets
        mmc: queue: rename mmc_request function
        mmc: core: skip card initialization if power class selection fails
        mmc: core: fix the signaling 1.8V for HS200
        mmc: core: fix the decision of HS200/DDR card-type
        ...
      92bf3d09
    • J
      openrisc: use generic strncpy_from_user · 603d6637
      Jonas Bonn 提交于
      As per commits 2922585b ("lib: Sparc's strncpy_from_user is generic
      enough, move under lib/") and 92ae03f2 ("x86: merge 32/64-bit
      versions of 'strncpy_from_user()' and speed it up"), and corresponding
      discussion on linux-arch.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      603d6637
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · ece78b7d
      Linus Torvalds 提交于
      Pull ext2, ext3 and quota fixes from Jan Kara:
       "Interesting bits are:
         - removal of a special i_mutex locking subclass (I_MUTEX_QUOTA) since
           quota code does not need i_mutex anymore in any unusual way.
         - backport (from ext4) of a fix of a checkpointing bug (missing cache
           flush) that could lead to fs corruption on power failure
      
        The rest are just random small fixes & cleanups."
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: trivial fix to comment for ext2_free_blocks
        ext2: remove the redundant comment for ext2_export_ops
        ext3: return 32/64-bit dir name hash according to usage type
        quota: Get rid of nested I_MUTEX_QUOTA locking subclass
        quota: Use precomputed value of sb_dqopt in dquot_quota_sync
        ext2: Remove i_mutex use from ext2_quota_write()
        reiserfs: Remove i_mutex use from reiserfs_quota_write()
        ext4: Remove i_mutex use from ext4_quota_write()
        ext3: Remove i_mutex use from ext3_quota_write()
        quota: Fix double lock in add_dquot_ref() with CONFIG_QUOTA_DEBUG
        jbd: Write journal superblock with WRITE_FUA after checkpointing
        jbd: protect all log tail updates with j_checkpoint_mutex
        jbd: Split updating of journal superblock and marking journal empty
        ext2: do not register write_super within VFS
        ext2: Remove s_dirt handling
        ext2: write superblock only once on unmount
        ext3: update documentation with barrier=1 default
        ext3: remove max_debt in find_group_orlov()
        jbd: Refine commit writeout logic
      ece78b7d
    • D
      dma-buf: add initial vmap documentation · b25b086d
      Dave Airlie 提交于
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      b25b086d
    • S
      dma-buf: minor documentation fixes. · 12c4727e
      Sumit Semwal 提交于
      Some minor inline documentation fixes for gaps resulting from new patches.
      Signed-off-by: NSumit Semwal <sumit.semwal@ti.com>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      12c4727e
    • D
      dma-buf: add vmap interface · 98f86c9e
      Dave Airlie 提交于
      The main requirement I have for this interface is for scanning out
      using the USB gpu devices. Since these devices have to read the
      framebuffer on updates and linearly compress it, using kmaps
      is a major overhead for every update.
      
      v2: fix warn issues pointed out by Sylwester Nawrocki.
      
      v3: fix compile !CONFIG_DMA_SHARED_BUFFER and add _GPL for now
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Reviewed-by: NRob Clark <rob.clark@linaro.org>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      98f86c9e
    • D
      dma-buf: mmap support · 4c78513e
      Daniel Vetter 提交于
      Compared to Rob Clark's RFC I've ditched the prepare/finish hooks
      and corresponding ioctls on the dma_buf file. The major reason for
      that is that many people seem to be under the impression that this is
      also for synchronization with outstanding asynchronous processsing.
      I'm pretty massively opposed to this because:
      
      - It boils down reinventing a new rather general-purpose userspace
        synchronization interface. If we look at things like futexes, this
        is hard to get right.
      - Furthermore a lot of kernel code has to interact with this
        synchronization primitive. This smells a look like the dri1 hw_lock,
        a horror show I prefer not to reinvent.
      - Even more fun is that multiple different subsystems would interact
        here, so we have plenty of opportunities to create funny deadlock
        scenarios.
      
      I think synchronization is a wholesale different problem from data
      sharing and should be tackled as an orthogonal problem.
      
      Now we could demand that prepare/finish may only ensure cache
      coherency (as Rob intended), but that runs up into the next problem:
      We not only need mmap support to facilitate sw-only processing nodes
      in a pipeline (without jumping through hoops by importing the dma_buf
      into some sw-access only importer), which allows for a nicer
      ION->dma-buf upgrade path for existing Android userspace. We also need
      mmap support for existing importing subsystems to support existing
      userspace libraries. And a loot of these subsystems are expected to
      export coherent userspace mappings.
      
      So prepare/finish can only ever be optional and the exporter /needs/
      to support coherent mappings. Given that mmap access is always
      somewhat fallback-y in nature I've decided to drop this optimization,
      instead of just making it optional. If we demonstrate a clear need for
      this, supported by benchmark results, we can always add it in again
      later as an optional extension.
      
      Other differences compared to Rob's RFC is the above mentioned support
      for mapping a dma-buf through facilities provided by the importer.
      Which results in mmap support no longer being optional.
      
      Note that this dma-buf mmap patch does _not_ support every possible
      insanity an existing subsystem could pull of with mmap: Because it
      does not allow to intercept pagefaults and shoot down ptes importing
      subsystems can't add some magic of their own at these points (e.g. to
      automatically synchronize with outstanding rendering or set up some
      special resources). I've done a cursory read through a few mmap
      implementions of various subsytems and I'm hopeful that we can avoid
      this (and the complexity it'd bring with it).
      
      Additonally I've extended the documentation a bit to explain the hows
      and whys of this mmap extension.
      
      In case we ever want to add support for explicitly cache maneged
      userspace mmap with a prepare/finish ioctl pair, we could specify that
      userspace needs to mmap a different part of the dma_buf, e.g. the
      range starting at dma_buf->size up to dma_buf->size*2. This works
      because the size of a dma_buf is invariant over it's lifetime. The
      exporter would obviously need to fall back to coherent mappings for
      both ranges if a legacy clients maps the coherent range and the
      architecture cannot suppor conflicting caching policies. Also, this
      would obviously be optional and userspace needs to be able to fall
      back to coherent mappings.
      
      v2:
      - Spelling fixes from Rob Clark.
      - Compile fix for !DMA_BUF from Rob Clark.
      - Extend commit message to explain how explicitly cache managed mmap
        support could be added later.
      - Extend the documentation with implementations notes for exporters
        that need to manually fake coherency.
      
      v3:
      - dma_buf pointer initialization goof-up noticed by Rebecca Schultz
        Zavin.
      
      Cc: Rob Clark <rob.clark@linaro.org>
      Cc: Rebecca Schultz Zavin <rebecca@android.com>
      Acked-by: NRob Clark <rob.clark@linaro.org>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      4c78513e
    • K
      ALSA: hda/realtek - Add new codec support for ALC269VD · adcc70b2
      Kailang Yang 提交于
      Also fix some settings applied only for ALC269VB.
      Signed-off-by: NKailang Yang <kailang@realtek.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      adcc70b2
    • L
      Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 07acfc2a
      Linus Torvalds 提交于
      Pull KVM changes from Avi Kivity:
       "Changes include additional instruction emulation, page-crossing MMIO,
        faster dirty logging, preventing the watchdog from killing a stopped
        guest, module autoload, a new MSI ABI, and some minor optimizations
        and fixes.  Outside x86 we have a small s390 and a very large ppc
        update.
      
        Regarding the new (for kvm) rebaseless workflow, some of the patches
        that were merged before we switch trees had to be rebased, while
        others are true pulls.  In either case the signoffs should be correct
        now."
      
      Fix up trivial conflicts in Documentation/feature-removal-schedule.txt
      arch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.
      
      I suspect the kvm_para.h resolution ends up doing the "do I have cpuid"
      check effectively twice (it was done differently in two different
      commits), but better safe than sorry ;)
      
      * 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)
        KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block
        KVM: s390: onereg for timer related registers
        KVM: s390: epoch difference and TOD programmable field
        KVM: s390: KVM_GET/SET_ONEREG for s390
        KVM: s390: add capability indicating COW support
        KVM: Fix mmu_reload() clash with nested vmx event injection
        KVM: MMU: Don't use RCU for lockless shadow walking
        KVM: VMX: Optimize %ds, %es reload
        KVM: VMX: Fix %ds/%es clobber
        KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()
        KVM: VMX: unlike vmcs on fail path
        KVM: PPC: Emulator: clean up SPR reads and writes
        KVM: PPC: Emulator: clean up instruction parsing
        kvm/powerpc: Add new ioctl to retreive server MMU infos
        kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM
        KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler
        KVM: PPC: Book3S: Enable IRQs during exit handling
        KVM: PPC: Fix PR KVM on POWER7 bare metal
        KVM: PPC: Fix stbux emulation
        KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields
        ...
      07acfc2a
    • L
      Merge tag 'stable/for-linus-3.5-rc0-tag' of... · b5f4035a
      Linus Torvalds 提交于
      Merge tag 'stable/for-linus-3.5-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull Xen updates from Konrad Rzeszutek Wilk:
       "Features:
         * Extend the APIC ops implementation and add IRQ_WORKER vector
           support so that 'perf' can work properly.
         * Fix self-ballooning code, and balloon logic when booting as initial
           domain.
         * Move array printing code to generic debugfs
         * Support XenBus domains.
         * Lazily free grants when a domain is dead/non-existent.
         * In M2P code use batching calls
        Bug-fixes:
         * Fix NULL dereference in allocation failure path (hvc_xen)
         * Fix unbinding of IRQ_WORKER vector during vCPU hot-unplug
         * Fix HVM guest resume - we would leak an PIRQ value instead of
           reusing the existing one."
      
      Fix up add-add onflicts in arch/x86/xen/enlighten.c due to addition of
      apic ipi interface next to the new apic_id functions.
      
      * tag 'stable/for-linus-3.5-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen: do not map the same GSI twice in PVHVM guests.
        hvc_xen: NULL dereference on allocation failure
        xen: Add selfballoning memory reservation tunable.
        xenbus: Add support for xenbus backend in stub domain
        xen/smp: unbind irqworkX when unplugging vCPUs.
        xen: enter/exit lazy_mmu_mode around m2p_override calls
        xen/acpi/sleep: Enable ACPI sleep via the __acpi_os_prepare_sleep
        xen: implement IRQ_WORK_VECTOR handler
        xen: implement apic ipi interface
        xen/setup: update VA mapping when releasing memory during setup
        xen/setup: Combine the two hypercall functions - since they are quite similar.
        xen/setup: Populate freed MFNs from non-RAM E820 entries and gaps to E820 RAM
        xen/setup: Only print "Freeing XXX-YYY pfn range: Z pages freed" if Z > 0
        xen/gnttab: add deferred freeing logic
        debugfs: Add support to print u32 array in debugfs
        xen/p2m: An early bootup variant of set_phys_to_machine
        xen/p2m: Collapse early_alloc_p2m_middle redundant checks.
        xen/p2m: Allow alloc_p2m_middle to call reserve_brk depending on argument
        xen/p2m: Move code around to allow for better re-usage.
      b5f4035a
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · ce004178
      Linus Torvalds 提交于
      Pull sparc changes from David S. Miller:
       "This has the generic strncpy_from_user() implementation architectures
        can now use, which we've been developing on linux-arch over the past
        few days.
      
        For good measure I ran both a 32-bit and a 64-bit glibc testsuite run,
        and the latter of which pointed out an adjustment I needed to make to
        sparc's user_addr_max() definition.  Linus, you were right, STACK_TOP
        was not the right thing to use, even on sparc itself :-)
      
        From Sam Ravnborg, we have a conversion of sparc32 over to the common
        alloc_thread_info_node(), since the aspect which originally blocked
        our doing so (sun4c) has been removed."
      
      Fix up trivial arch/sparc/Kconfig and lib/Makefile conflicts.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: Fix user_addr_max() definition.
        lib: Sparc's strncpy_from_user is generic enough, move under lib/
        kernel: Move REPEAT_BYTE definition into linux/kernel.h
        sparc: Increase portability of strncpy_from_user() implementation.
        sparc: Optimize strncpy_from_user() zero byte search.
        sparc: Add full proper error handling to strncpy_from_user().
        sparc32: use the common implementation of alloc_thread_info_node()
      ce004178
    • L
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · 9978306e
      Linus Torvalds 提交于
      Pull XFS update from Ben Myers:
      
       - Removal of xfsbufd
       - Background CIL flushes have been moved to a workqueue.
       - Fix to xfs_check_page_type applicable to filesystems where
         blocksize < page size
       - Fix for stale data exposure when extsize hints are used.
       - A series of xfs_buf cache cleanups.
       - Fix for XFS_IOC_ALLOCSP
       - Cleanups for includes and removal of xfs_lrw.[ch].
       - Moved all busy extent handling to it's own file so that it is easier
         to merge with userspace.
       - Fix for log mount failure.
       - Fix to enable inode reclaim during quotacheck at mount time.
       - Fix for delalloc quota accounting.
       - Fix for memory reclaim deadlock on agi buffer.
       - Fixes for failed writes and to clean up stale delalloc blocks.
       - Fix to use GFP_NOFS in blkdev_issue_flush
       - SEEK_DATA/SEEK_HOLE support
      
      * 'for-linus' of git://oss.sgi.com/xfs/xfs: (57 commits)
        xfs: add trace points for log forces
        xfs: fix memory reclaim deadlock on agi buffer
        xfs: fix delalloc quota accounting on failure
        xfs: protect xfs_sync_worker with s_umount semaphore
        xfs: introduce SEEK_DATA/SEEK_HOLE support
        xfs: make xfs_extent_busy_trim not static
        xfs: make XBF_MAPPED the default behaviour
        xfs: flush outstanding buffers on log mount failure
        xfs: Properly exclude IO type flags from buffer flags
        xfs: clean up xfs_bit.h includes
        xfs: move xfs_do_force_shutdown() and kill xfs_rw.c
        xfs: move xfs_get_extsz_hint() and kill xfs_rw.h
        xfs: move xfs_fsb_to_db to xfs_bmap.h
        xfs: clean up busy extent naming
        xfs: move busy extent handling to it's own file
        xfs: move xfsagino_t to xfs_types.h
        xfs: use iolock on XFS_IOC_ALLOCSP calls
        xfs: kill XBF_DONTBLOCK
        xfs: kill xfs_read_buf()
        xfs: kill XBF_LOCK
        ...
      9978306e
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · abe81e25
      Linus Torvalds 提交于
      Pull more relocation fixes from Peter Anvin:
       "These are additional symbols that have been found to either be
        absolute or look like they might end up being absolute on one version
        of GNU ld or another.  Unfortunately we have since that a different
        GNU ld version, 2.21, can generate bogus absolute symbols; again, this
        would have caused a malfunctioning kernel on x86-32 if relocated.
      
        The relocs.c changes changed silent corruption to a build time error.
      
        It is worth noting that if the various barrier symbols we use were
        more consistent in the namespace used this probably could be reduced
        to a single regexp; if nothing else it looks like there is migration
        toward a common __(start|stop)___.* namespace."
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, relocs: Add jiffies and jiffies_64 to the relative whitelist
        x86-32, relocs: Whitelist more symbols for ld bug workaround
      abe81e25
    • L
      Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6 · b1bf7d4d
      Linus Torvalds 提交于
      Pull GPIO driver changes from Grant Likely:
       "Lots of gpio changes, both to core code and drivers.
      
        Changes do touch architecture code to remove the need for separate
        arm/gpio.h includes in most architectures.
      
        Some new drivers are added, and a number of gpio drivers are converted
        to use irq_domains for gpio inputs used as interrupts.  Device tree
        support has been amended to allow multiple gpio_chips to use the same
        device tree node.
      
        Remaining changes are primarily bug fixes."
      
      * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6: (33 commits)
        gpio/generic: initialize basic_mmio_gpio shadow variables properly
        gpiolib: Remove 'const' from data argument of gpiochip_find()
        gpio/rc5t583: add gpio driver for RICOH PMIC RC5T583
        gpiolib: quiet gpiochip_add boot message noise
        gpio: mpc8xxx: Prevent NULL pointer deref in demux handler
        gpio/lpc32xx: Add device tree support
        gpio: Adjust of_xlate API to support multiple GPIO chips
        gpiolib: Implement devm_gpio_request_one()
        gpio-mcp23s08: dbg_show: fix pullup configuration display
        Add support for TCA6424A
        gpio/omap: (re)fix wakeups on level-triggered GPIOs
        gpio/omap: fix broken context restore for non-OFF mode transitions
        gpio/omap: fix missing check in *_runtime_suspend()
        gpio/omap: remove cpu_is_omapxxxx() checks from *_runtime_resume()
        gpio/omap: remove suspend/resume callbacks
        gpio/omap: remove retrigger variable in gpio_irq_handler
        gpio/omap: remove saved_wakeup field from struct gpio_bank
        gpio/omap: remove suspend_wakeup field from struct gpio_bank
        gpio/omap: remove saved_fallingdetect, saved_risingdetect
        gpio/omap: remove virtual_irq_start variable
        ...
      
      Conflicts:
      	drivers/gpio/gpio-samsung.c
      b1bf7d4d
    • L
      Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 0708500d
      Linus Torvalds 提交于
      Pull device tree changes from Grant Likely:
       "Mostly documentation updates, but also includes an empty stub for
        non-CONFIG_OF builds."
      
      * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        dt/documentation: Fix value format description
        dt: add vendor prefix for EM Microelectronics
        ARM: DT: Add binding for GIC virtualization extentions (VGIC)
        of/irq: add empty irq_of_parse_and_map() for non-dt builds
      0708500d
    • L
      Merge tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6 · be122abe
      Linus Torvalds 提交于
      Pull SPI changes from Grant Likely:
       "Bug fixes and new features for SPI device drivers.  Also move device
        tree support code out of drivers/of and into drivers/spi/spi.c where
        it makes more sense."
      
      * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        spi: By default setup spi_masters with 1 chipselect and dynamics bus number
        SPI: PRIMA2: use the newest APIs of PINCTRL to fix compiling errors
        spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control
        spi: refactor spi-coldfire-qspi to use SPI queue framework.
        spi/omap2-mcspi: convert to the pump message infrastructure
        spi/rspi: add dmaengine support
        spi/topcliff: use correct __devexit_p annotation
        spi: Dont call prepare/unprepare transfer if not populated
        spi/ep93xx: clean probe/remove routines
        spi/devicetree: Move devicetree support code into spi directory
        spi: use module_pci_driver
        spi/omap2-mcspi: Trivial optimisation
        spi: omap2-mcspi: add support for pm_runtime autosuspend
        spi/omap: Remove bus_num usage for instance index
        OMAP : SPI : use devm_* functions
        spi: omap2-mcspi: convert to module_platform_driver
        spi: omap2-mcspi: make it behave as a module
      be122abe
    • L
      Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6 · b343c8be
      Linus Torvalds 提交于
      Pull irqdomain changes from Grant Likely:
       "Minor changes and fixups for irqdomain infrastructure.  The most
        important change adds the ability to remove a registered irqdomain."
      
      * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        irqdomain: Document size parameter of irq_domain_add_linear()
        irqdomain: trivial pr_fmt conversion.
        irqdomain: Kill off duplicate definitions.
        irqdomain: Make irq_domain_simple_map() static.
        irqdomain: Export remaining public API symbols.
        irqdomain: Support removal of IRQ domains.
      b343c8be
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · 745914df
      Linus Torvalds 提交于
      Pull alpha updates from Matt Turner:
       "This pull adds the implementations of some Tru64 syscalls which allow
        some proprietary software such as the C compiler to work on Linux.
      
        Also, it adds some big-endian ioread functions to help us get closer
        to building allyesconfig."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: add io{read,write}{16,32}be functions
        alpha: implement various OSF/1 stat syscalls
        alpha: implement setsysinfo(SSI_LMF) as a no-op
      745914df
    • D
      sparc: Fix user_addr_max() definition. · c5389831
      David S. Miller 提交于
      We need to use TASK_SIZE because for 64-bit tasks the value
      of STACK_TOP actually sits in the middle of the address space
      so we'll get false-negatives.
      
      Adjust the TASK_SIZE definition on sparc64 to accomodate this,
      in the context in which user_addr_max() is used we have the
      test_thread_flag() definition available but not the one for
      test_tsk_thread_flag().
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c5389831
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c7523a7c
      Linus Torvalds 提交于
      Pull timer updates from Thomas Gleixner.
      
      Various trivial conflict fixups in arch Kconfig due to addition of
      unrelated entries nearby.  And one slightly more subtle one for sparc32
      (new user of GENERIC_CLOCKEVENTS), fixed up as per Thomas.
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        timekeeping: Fix a few minor newline issues.
        time: remove obsolete declaration
        ntp: Fix a stale comment and a few stray newlines.
        ntp: Correct TAI offset during leap second
        timers: Fixup the Kconfig consolidation fallout
        x86: Use generic time config
        unicore32: Use generic time config
        um: Use generic time config
        tile: Use generic time config
        sparc: Use: generic time config
        sh: Use generic time config
        score: Use generic time config
        s390: Use generic time config
        openrisc: Use generic time config
        powerpc: Use generic time config
        mn10300: Use generic time config
        mips: Use generic time config
        microblaze: Use generic time config
        m68k: Use generic time config
        m32r: Use generic time config
        ...
      c7523a7c
    • D
      lib: Sparc's strncpy_from_user is generic enough, move under lib/ · 2922585b
      David S. Miller 提交于
      To use this, an architecture simply needs to:
      
      1) Provide a user_addr_max() implementation via asm/uaccess.h
      
      2) Add "select GENERIC_STRNCPY_FROM_USER" to their arch Kcnfig
      
      3) Remove the existing strncpy_from_user() implementation and symbol
         exports their architecture had.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      2922585b
    • D
      kernel: Move REPEAT_BYTE definition into linux/kernel.h · 44696908
      David S. Miller 提交于
      And make sure that everything using it explicitly includes
      that header file.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      44696908
    • D
      sparc: Increase portability of strncpy_from_user() implementation. · 35c96460
      David S. Miller 提交于
      Hide details of maximum user address calculation in a new
      asm/uaccess.h interface named user_addr_max().
      
      Provide little-endian implementation in find_zero(), which should work
      but can probably be improved.
      
      Abstrace alignment check behind IS_UNALIGNED() macro.
      
      Kill double-semicolon, noticed by David Howells.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      35c96460
    • L
      Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 2f78d8e2
      Linus Torvalds 提交于
      Pull IEEE 1394 (FireWire) subsystem updates from Stefan Richter:
      
       - Fix mismatch between DMA mapping direction (was wrong) and DMA
         synchronization direction (was correct) of isochronous reception
         buffers of userspace drivers if vma-mapped for R/W access.  For
         example, libdc1394 was affected.
      
       - more consistent retry stategy in device discovery/ rediscovery, and
         improved failure diagnostics
      
       - various small cleanups, e.g. use SCSI layer's DMA mapping API in
         firewire-sbp2
      
      * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: sbp2: document the absence of alignment requirements
        firewire: sbp2: remove superfluous blk_queue_max_segment_size() call
        firewire: sbp2: use scsi_dma_(un)map
        firewire: sbp2: give correct DMA device to scsi framework
        firewire: core: fw_device_refresh(): clean up error handling
        firewire: core: log config rom reading errors
        firewire: core: log error in case of failed bus manager lock
        firewire: move rcode_string() to core
        firewire: core: improve reread_config_rom() interface
        firewire: core: wait for inaccessible devices after bus reset
        firewire: ohci: omit spinlock IRQ flags where possible
        firewire: ohci: correct signedness of a local variable
        firewire: core: fix DMA mapping direction
        firewire: use module_pci_driver
      2f78d8e2
    • L
      Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux · f2fde3a6
      Linus Torvalds 提交于
      Pull main drm updates from Dave Airlie:
       "This is the main merge window request for the drm.
      
        It's big, but jam packed will lots of features and of course 0
        regressions.  (okay maybe there'll be one).
      
        Highlights:
      
         - new KMS drivers for server GPU chipsets: ast, mgag200 and cirrus
           (qemu only).  These drivers use the generic modesetting drivers.
      
         - initial prime/dma-buf support for i915, nouveau, radeon, udl and
           exynos
      
         - switcheroo audio support: so GPUs with HDMI can turn off the sound
           driver without crashing stuff.
      
         - There are some patches drifting outside drivers/gpu into x86 and
           EFI for better handling of multiple video adapters in Apple Macs,
           they've got correct acks except one trivial fixup.
      
         - Core:
      	edid parser has better DMT and reduced blanking support,
      	crtc properties,
      	plane properties,
      
         - Drivers:
      	exynos: add 2D core accel support, prime support, hdmi features
      	intel: more Haswell support, initial Valleyview support, more
      	    hdmi infoframe fixes, update MAINTAINERS for Daniel, lots of
      	    cleanups and fixes
      	radeon: more HDMI audio support, improved GPU lockup recovery
      	    support, remove nested mutexes, less memory copying on PCIE, fix
      	    bus master enable race (kexec), improved fence handling
      	gma500: cleanups, 1080p support, acpi fixes
      	nouveau: better nva3 memory reclocking, kepler accel (needs
      	    external firmware rip), async buffer moves on nv84+ hw.
      
        I've some more dma-buf patches that rely on the dma-buf merge for vmap
        stuff, and I've a few fixes building up, but I'd decided I'd better
        get rid of the main pull sooner rather than later, so the audio guys
        are also unblocked."
      
      Fix up trivial conflict due to some duplicated changes in
      drivers/gpu/drm/i915/intel_ringbuffer.c
      
      * 'drm-core-next' of git://people.freedesktop.org/~airlied/linux: (605 commits)
        drm/nouveau/nvd9: Fix GPIO initialisation sequence.
        drm/nouveau: Unregister switcheroo client on exit
        drm/nouveau: Check dsm on switcheroo unregister
        drm/nouveau: fix a minor annoyance in an output string
        drm/nouveau: turn a BUG into a WARN
        drm/nv50: decode PGRAPH DATA_ERROR = 0x24
        drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks
        drm/nvd9/copy: initialise copy engine, seems to work like nvc0
        drm/nvc0/ttm: use copy engines for async buffer moves
        drm/nva3/ttm: use copy engine for async buffer moves
        drm/nv98/ttm: add in a (disabled) crypto engine buffer copy method
        drm/nv84/ttm: use crypto engine for async buffer copies
        drm/nouveau/ttm: untangle code to support accelerated buffer moves
        drm/nouveau/fbcon: use fence for sync, rather than notifier
        drm/nv98/crypt: non-stub implementation of the engine hooks
        drm/nouveau/fifo: turn all fifo modules into engine modules
        drm/nv50/graph: remove ability to do interrupt-driven context switching
        drm/nv50: remove manual context unload on context destruction
        drm/nv50: remove execution engine context saves on suspend
        drm/nv50/fifo: use hardware channel kickoff functionality
        ...
      f2fde3a6
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 28f3d717
      Linus Torvalds 提交于
      Pull more networking updates from David Miller:
       "Ok, everything from here on out will be bug fixes."
      
      1) One final sync of wireless and bluetooth stuff from John Linville.
         These changes have all been in his tree for more than a week, and
         therefore have had the necessary -next exposure.  John was just away
         on a trip and didn't have a change to send the pull request until a
         day or two ago.
      
      2) Put back some defines in user exposed header file areas that were
         removed during the tokenring purge.  From Stephen Hemminger and Paul
         Gortmaker.
      
      3) A bug fix for UDP hash table allocation got lost in the pile due to
         one of those "you got it..  no I've got it.." situations.  :-)
      
         From Tim Bird.
      
      4) SKB coalescing in TCP needs to have stricter checks, otherwise we'll
         try to coalesce overlapping frags and crash.  Fix from Eric Dumazet.
      
      5) RCU routing table lookups can race with free_fib_info(), causing
         crashes when we deref the device pointers in the route.  Fix by
         releasing the net device in the RCU callback.  From Yanmin Zhang.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (293 commits)
        tcp: take care of overlaps in tcp_try_coalesce()
        ipv4: fix the rcu race between free_fib_info and ip_route_output_slow
        mm: add a low limit to alloc_large_system_hash
        ipx: restore token ring define to include/linux/ipx.h
        if: restore token ring ARP type to header
        xen: do not disable netfront in dom0
        phy/micrel: Fix ID of KSZ9021
        mISDN: Add X-Tensions USB ISDN TA XC-525
        gianfar:don't add FCB length to hard_header_len
        Bluetooth: Report proper error number in disconnection
        Bluetooth: Create flags for bt_sk()
        Bluetooth: report the right security level in getsockopt
        Bluetooth: Lock the L2CAP channel when sending
        Bluetooth: Restore locking semantics when looking up L2CAP channels
        Bluetooth: Fix a redundant and problematic incoming MTU check
        Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C
        Bluetooth: Fix EIR data generation for mgmt_device_found
        Bluetooth: Fix Inquiry with RSSI event mask
        Bluetooth: improve readability of l2cap_seq_list code
        Bluetooth: Fix skb length calculation
        ...
      28f3d717
    • L
      Merge branch 'perf-uprobes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 654443e2
      Linus Torvalds 提交于
      Pull user-space probe instrumentation from Ingo Molnar:
       "The uprobes code originates from SystemTap and has been used for years
        in Fedora and RHEL kernels.  This version is much rewritten, reviews
        from PeterZ, Oleg and myself shaped the end result.
      
        This tree includes uprobes support in 'perf probe' - but SystemTap
        (and other tools) can take advantage of user probe points as well.
      
        Sample usage of uprobes via perf, for example to profile malloc()
        calls without modifying user-space binaries.
      
        First boot a new kernel with CONFIG_UPROBE_EVENT=y enabled.
      
        If you don't know which function you want to probe you can pick one
        from 'perf top' or can get a list all functions that can be probed
        within libc (binaries can be specified as well):
      
      	$ perf probe -F -x /lib/libc.so.6
      
        To probe libc's malloc():
      
      	$ perf probe -x /lib64/libc.so.6 malloc
      	Added new event:
      	probe_libc:malloc    (on 0x7eac0)
      
        You can now use it in all perf tools, such as:
      
      	perf record -e probe_libc:malloc -aR sleep 1
      
        Make use of it to create a call graph (as the flat profile is going to
        look very boring):
      
      	$ perf record -e probe_libc:malloc -gR make
      	[ perf record: Woken up 173 times to write data ]
      	[ perf record: Captured and wrote 44.190 MB perf.data (~1930712
      
      	$ perf report | less
      
      	  32.03%            git  libc-2.15.so   [.] malloc
      	                    |
      	                    --- malloc
      
      	  29.49%            cc1  libc-2.15.so   [.] malloc
      	                    |
      	                    --- malloc
      	                       |
      	                       |--0.95%-- 0x208eb1000000000
      	                       |
      	                       |--0.63%-- htab_traverse_noresize
      
      	  11.04%             as  libc-2.15.so   [.] malloc
      	                     |
      	                     --- malloc
      	                        |
      
      	   7.15%             ld  libc-2.15.so   [.] malloc
      	                     |
      	                     --- malloc
      	                        |
      
      	   5.07%             sh  libc-2.15.so   [.] malloc
      	                     |
      	                     --- malloc
      	                        |
      	   4.99%  python-config  libc-2.15.so   [.] malloc
      	          |
      	          --- malloc
      	             |
      	   4.54%           make  libc-2.15.so   [.] malloc
      	                   |
      	                   --- malloc
      	                      |
      	                      |--7.34%-- glob
      	                      |          |
      	                      |          |--93.18%-- 0x41588f
      	                      |          |
      	                      |           --6.82%-- glob
      	                      |                     0x41588f
      
      	   ...
      
        Or:
      
      	$ perf report -g flat | less
      
      	# Overhead        Command  Shared Object      Symbol
      	# ........  .............  .............  ..........
      	#
      	  32.03%            git  libc-2.15.so   [.] malloc
      	          27.19%
      	              malloc
      
      	  29.49%            cc1  libc-2.15.so   [.] malloc
      	          24.77%
      	              malloc
      
      	  11.04%             as  libc-2.15.so   [.] malloc
      	          11.02%
      	              malloc
      
      	   7.15%             ld  libc-2.15.so   [.] malloc
      	           6.57%
      	              malloc
      
      	 ...
      
        The core uprobes design is fairly straightforward: uprobes probe
        points register themselves at (inode:offset) addresses of
        libraries/binaries, after which all existing (or new) vmas that map
        that address will have a software breakpoint injected at that address.
        vmas are COW-ed to preserve original content.  The probe points are
        kept in an rbtree.
      
        If user-space executes the probed inode:offset instruction address
        then an event is generated which can be recovered from the regular
        perf event channels and mmap-ed ring-buffer.
      
        Multiple probes at the same address are supported, they create a
        dynamic callback list of event consumers.
      
        The basic model is further complicated by the XOL speedup: the
        original instruction that is probed is copied (in an architecture
        specific fashion) and executed out of line when the probe triggers.
        The XOL area is a single vma per process, with a fixed number of
        entries (which limits probe execution parallelism).
      
        The API: uprobes are installed/removed via
        /sys/kernel/debug/tracing/uprobe_events, the API is integrated to
        align with the kprobes interface as much as possible, but is separate
        to it.
      
        Injecting a probe point is privileged operation, which can be relaxed
        by setting perf_paranoid to -1.
      
        You can use multiple probes as well and mix them with kprobes and
        regular PMU events or tracepoints, when instrumenting a task."
      
      Fix up trivial conflicts in mm/memory.c due to previous cleanup of
      unmap_single_vma().
      
      * 'perf-uprobes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        perf probe: Detect probe target when m/x options are absent
        perf probe: Provide perf interface for uprobes
        tracing: Fix kconfig warning due to a typo
        tracing: Provide trace events interface for uprobes
        tracing: Extract out common code for kprobes/uprobes trace events
        tracing: Modify is_delete, is_return from int to bool
        uprobes/core: Decrement uprobe count before the pages are unmapped
        uprobes/core: Make background page replacement logic account for rss_stat counters
        uprobes/core: Optimize probe hits with the help of a counter
        uprobes/core: Allocate XOL slots for uprobes use
        uprobes/core: Handle breakpoint and singlestep exceptions
        uprobes/core: Rename bkpt to swbp
        uprobes/core: Make order of function parameters consistent across functions
        uprobes/core: Make macro names consistent
        uprobes: Update copyright notices
        uprobes/core: Move insn to arch specific structure
        uprobes/core: Remove uprobe_opcode_sz
        uprobes/core: Make instruction tables volatile
        uprobes: Move to kernel/events/
        uprobes/core: Clean up, refactor and improve the code
        ...
      654443e2
    • M
      alpha: add io{read,write}{16,32}be functions · 25534eb7
      Michael Cree 提交于
      These functions are used in some PCI drivers with big-endian
      MMIO space.
      
      Admittedly it is almost certain that no one this side of the
      Moon would use such a card in an Alpha but it does get us
      closer to being able to build allyesconfig or allmodconfig,
      and it enables the Debian default generic config to build.
      Tested-by: NRaúl Porcel <armin76@gentoo.org>
      Signed-off-by: NMichael Cree <mcree@orcon.net.nz>
      Signed-off-by: NMatt Turner <mattst88@gmail.com>
      25534eb7
    • M
      alpha: implement various OSF/1 stat syscalls · 7a8bb98c
      Mans Rullgard 提交于
      This implements OSF/1 versions of stat, lstat, fstat, statfs64,
      and fstatfs64 syscalls.
      Signed-off-by: NMans Rullgard <mans@mansr.com>
      Signed-off-by: NMatt Turner <mattst88@gmail.com>
      7a8bb98c
    • M
      alpha: implement setsysinfo(SSI_LMF) as a no-op · 50744dee
      Mans Rullgard 提交于
      This allows running software using the Tru64 license manager.
      For simplicity, no check for a valid license is done.  This
      should not be seen as encouraging software piracy.
      Signed-off-by: NMans Rullgard <mans@mansr.com>
      Signed-off-by: NMatt Turner <mattst88@gmail.com>
      50744dee
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 2c01e7bc
      Linus Torvalds 提交于
      Pull input layer updates from Dmitry Torokhov:
       - a bunch of new drivers (DA9052/53 touchscreenn controller, Synaptics
         Navpoint, LM8333 keypads, Wacom I2C touhscreen);
       - updates to existing touchpad drivers (ALPS, Sntelic);
       - Wacom driver now supports Intuos5;
       - device-tree bindings in numerous drivers;
       - other cleanups and fixes.
      
      Fix annoying conflict in drivers/input/tablet/wacom_wac.c that I think
      implies that the input layer device naming is broken, but let's see.  I
      brough it up with Dmitry.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits)
        Input: matrix-keymap - fix building keymaps
        Input: spear-keyboard - document DT bindings
        Input: spear-keyboard - add device tree bindings
        Input: matrix-keymap - wire up device tree support
        Input: matrix-keymap - uninline and prepare for device tree support
        Input: adp5588 - add support for gpio names
        Input: omap-keypad - dynamically handle register offsets
        Input: synaptics - fix compile warning
        MAINTAINERS: adjust input-related patterns
        Input: ALPS - switch to using input_mt_report_finger_count
        Input: ALPS - add semi-MT support for v4 protocol
        Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver
        Input: atmel_mxt_ts - dump each message on just 1 line
        Input: atmel_mxt_ts - do not read extra (checksum) byte
        Input: atmel_mxt_ts - verify object size in mxt_write_object
        Input: atmel_mxt_ts - only allow root to update firmware
        Input: atmel_mxt_ts - use CONFIG_PM_SLEEP
        Input: sentelic - report device's production serial number
        Input: tl6040-vibra - Device Tree support
        Input: evdev - properly handle read/write with count 0
        ...
      2c01e7bc