1. 26 5月, 2012 22 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · fa2af6e4
      Linus Torvalds 提交于
      Pull tile updates from Chris Metcalf:
       "These changes cover a range of new arch/tile features and
        optimizations.  They've been through LKML review and on linux-next for
        a month or so.  There's also one bug-fix that just missed 3.4, which
        I've marked for stable."
      
      Fixed up trivial conflict in arch/tile/Kconfig (new added tile Kconfig
      entries clashing with the generic timer/clockevents changes).
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        tile: default to tilegx_defconfig for ARCH=tile
        tile: fix bug where fls(0) was not returning 0
        arch/tile: mark TILEGX as not EXPERIMENTAL
        tile/mm/fault.c: Port OOM changes to handle_page_fault
        arch/tile: add descriptive text if the kernel reports a bad trap
        arch/tile: allow querying cpu module information from the hypervisor
        arch/tile: fix hardwall for tilegx and generalize for idn and ipi
        arch/tile: support multiple huge page sizes dynamically
        mm: add new arch_make_huge_pte() method for tile support
        arch/tile: support kexec() for tilegx
        arch/tile: support <asm/cachectl.h> header for cacheflush() syscall
        arch/tile: Allow tilegx to build with either 16K or 64K page size
        arch/tile: optimize get_user/put_user and friends
        arch/tile: support building big-endian kernel
        arch/tile: allow building Linux with transparent huge pages enabled
        arch/tile: use interrupt critical sections less
      fa2af6e4
    • D
      intel-iommu: Move duplicate list-mangling code into unlink_domain_info() helper · 109b9b04
      David Woodhouse 提交于
      Now we have four copies of this code, Linus "suggested" it was about time
      we stopped copying it and turned it into a helper.
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      109b9b04
    • D
      intel-iommu: Add device info into list before doing context mapping · e2ad23d0
      David Woodhouse 提交于
      Add device info into list before doing context mapping, because device
      info will be used by iommu_enable_dev_iotlb(). Without it, ATS won't get
      enabled as it should be.
      
      ATS, while a dubious decision from a security point of view, can be very
      important for performance.
      Signed-off-by: NXudong Hao <xudong.hao@intel.com>
      Signed-off-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Acked-by: NChris Wright <chrisw@sous-sol.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e2ad23d0
    • C
      tile: default to tilegx_defconfig for ARCH=tile · 1fcb78e9
      Chris Metcalf 提交于
      There is no "ARCH=tile" (just like there is no "ARCH=x86") so we need
      to pick a default configuration, either tilepro or tilegx, when users
      specify ARCH=tile.  We'll use tilegx, since that's our current chip.
      Reported-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      1fcb78e9
    • C
      tile: fix bug where fls(0) was not returning 0 · 9f1d62be
      Chris Metcalf 提交于
      This is because __builtin_clz(0) returns 64 for the "undefined" case
      of 0, since the builtin just does a right-shift 32 and "clz" instruction.
      So, use the alpha approach of casting to u32 and using __builtin_clzll().
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      9f1d62be
    • C
      arch/tile: mark TILEGX as not EXPERIMENTAL · acd1a19e
      Chris Metcalf 提交于
      Also create a TILEPRO config setting to use for #ifdefs where it
      is cleaner to do so, and make the 64BIT setting depend directly
      on the setting of TILEGX.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      acd1a19e
    • K
      tile/mm/fault.c: Port OOM changes to handle_page_fault · 4ce6bea2
      Kautuk Consul 提交于
      Commit d065bd81
      (mm: retry page fault when blocking on disk transfer) and
      commit 37b23e05
      (x86,mm: make pagefault killable)
      
      The above commits introduced changes into the x86 pagefault handler
      for making the page fault handler retryable as well as killable.
      
      These changes reduce the mmap_sem hold time, which is crucial
      during OOM killer invocation.
      
      Port these changes to tile.
      Signed-off-by: NKautuk Consul <consul.kautuk@gmail.com>
      [cmetcalf@tilera.com: initialize "flags" after "write" updated.]
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      4ce6bea2
    • C
      arch/tile: add descriptive text if the kernel reports a bad trap · c6f696f6
      Chris Metcalf 提交于
      If the kernel unexpectedly takes a bad trap, it's convenient to
      have it report the type of trap as part of the error.  This gives
      customers a bit more context before they call up customer support.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      c6f696f6
    • C
      arch/tile: allow querying cpu module information from the hypervisor · 8703d6e0
      Chris Metcalf 提交于
      This just adds a few more attributes to the information Linux
      can query from the hypervisor for the /sys/hypervisor/board/ directory,
      providing part, serial#, revision#, and description for cpu modules
      (as opposed to the board itself, or any mezzanine boards).
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      8703d6e0
    • C
      arch/tile: fix hardwall for tilegx and generalize for idn and ipi · b8ace083
      Chris Metcalf 提交于
      The hardwall drain code was not properly implemented for tilegx,
      just tilepro, so you couldn't reliably restart an application that
      made use of the udn.
      
      In addition, the code was only applicable to the udn (user dynamic
      network).  On tilegx there is a second user network that is available
      (the "idn"), and there is support for having I/O shims deliver
      user-level interrupts to applications ("ipi") which functions in a
      very similar way to the inter-core permissions used for udn/idn.
      So this change also generalizes the code from supporting just the udn
      to supports udn/idn/ipi on tilegx.
      
      By default we now use /dev/hardwall/{udn,idn,ipi} with separate
      minor numbers for the three devices.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      b8ace083
    • C
      arch/tile: support multiple huge page sizes dynamically · 621b1955
      Chris Metcalf 提交于
      This change adds support for a new "super" bit in the PTE, using the new
      arch_make_huge_pte() method.  The Tilera hypervisor sees the bit set at a
      given level of the page table and gangs together 4, 16, or 64 consecutive
      pages from that level of the hierarchy to create a larger TLB entry.
      
      One extra "super" page size can be specified at each of the three levels
      of the page table hierarchy on tilegx, using the "hugepagesz" argument
      on the boot command line.  A new hypervisor API is added to allow Linux
      to tell the hypervisor how many PTEs to gang together at each level of
      the page table.
      
      To allow pre-allocating huge pages larger than the buddy allocator can
      handle, this change modifies the Tilera bootmem support to put all of
      memory on tilegx platforms into bootmem.
      
      As part of this change I eliminate the vestigial CONFIG_HIGHPTE support,
      which never worked anyway, and eliminate the hv_page_size() API in favor
      of the standard vma_kernel_pagesize() API.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      621b1955
    • C
      mm: add new arch_make_huge_pte() method for tile support · d9ed9faa
      Chris Metcalf 提交于
      The tile support for multiple-size huge pages requires tagging
      the hugetlb PTE with a "super" bit for PTEs that are multiples of
      the basic size of a pagetable span.  To set that bit properly
      we need to tweak the PTe in make_huge_pte() based on the vma.
      
      This change provides the API for a subsequent tile-specific
      change to use.
      Reviewed-by: NHillf Danton <dhillf@gmail.com>
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      d9ed9faa
    • C
      arch/tile: support kexec() for tilegx · fc0c49f5
      Chris Metcalf 提交于
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      fc0c49f5
    • C
      arch/tile: support <asm/cachectl.h> header for cacheflush() syscall · cd6f32aa
      Chris Metcalf 提交于
      We already had a syscall that did some dcache flushing, but it was
      not used in practice.  Make it MIPS compatible instead so it can
      do both the DCACHE and ICACHE actions.  We have code that wants to
      be able to use the ICACHE flush mode from userspace so this change
      enables that.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      cd6f32aa
    • C
      arch/tile: Allow tilegx to build with either 16K or 64K page size · d5d14ed6
      Chris Metcalf 提交于
      This change introduces new flags for the hv_install_context()
      API that passes a page table pointer to the hypervisor.  Clients
      can explicitly request 4K, 16K, or 64K small pages when they
      install a new context.  In practice, the page size is fixed at
      kernel compile time and the same size is always requested every
      time a new page table is installed.
      
      The <hv/hypervisor.h> header changes so that it provides more abstract
      macros for managing "page" things like PFNs and page tables.  For
      example there is now a HV_DEFAULT_PAGE_SIZE_SMALL instead of the old
      HV_PAGE_SIZE_SMALL.  The various PFN routines have been eliminated and
      only PA- or PTFN-based ones remain (since PTFNs are always expressed
      in fixed 2KB "page" size).  The page-table management macros are
      renamed with a leading underscore and take page-size arguments with
      the presumption that clients will use those macros in some single
      place to provide the "real" macros they will use themselves.
      
      I happened to notice the old hv_set_caching() API was totally broken
      (it assumed 4KB pages) so I changed it so it would nominally work
      correctly with other page sizes.
      
      Tag modules with the page size so you can't load a module built with
      a conflicting page size.  (And add a test for SMP while we're at it.)
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      d5d14ed6
    • C
      arch/tile: optimize get_user/put_user and friends · 47d632f9
      Chris Metcalf 提交于
      Use direct load/store for the get_user/put_user.
      
      Previously, we would call out to a helper routine that would do the
      appropriate thing and then return, handling the possible exception
      internally.  Now we inline the load or store, along with a "we succeeded"
      indication in a register; if the load or store faults, we write a
      "we failed" indication into the same register and then return to the
      following instruction.  This is more efficient and gives us more compact
      code, as well as being more in line with what other architectures do.
      
      The special futex assembly source file for TILE-Gx also disappears in
      this change; we just use the same inlining idiom there as well, putting
      the appropriate atomic operations directly into futex_atomic_op_inuser()
      (and thus into the FUTEX_WAIT function).
      
      The underlying atomic copy_from_user, copy_to_user functions were
      renamed using the (cryptic) x86 convention as copy_from_user_ll and
      copy_to_user_ll.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      47d632f9
    • C
      arch/tile: support building big-endian kernel · 1efea40d
      Chris Metcalf 提交于
      The toolchain supports big-endian mode now, so add support for building
      the kernel to run big-endian as well.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      1efea40d
    • C
      arch/tile: allow building Linux with transparent huge pages enabled · 73636b1a
      Chris Metcalf 提交于
      The change adds some infrastructure for managing tile pmd's more generally,
      using pte_pmd() and pmd_pte() methods to translate pmd values to and
      from ptes, since on TILEPro a pmd is really just a nested structure
      holding a pgd (aka pte).  Several existing pmd methods are moved into
      this framework, and a whole raft of additional pmd accessors are defined
      that are used by the transparent hugepage framework.
      
      The tile PTE now has a "client2" bit.  The bit is used to indicate a
      transparent huge page is in the process of being split into subpages.
      
      This change also fixes a generic bug where the return value of the
      generic pmdp_splitting_flush() was incorrect.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      73636b1a
    • C
      arch/tile: use interrupt critical sections less · 51007004
      Chris Metcalf 提交于
      In general we want to avoid ever touching memory while within an
      interrupt critical section, since the page fault path goes through
      a different path from the hypervisor when in an interrupt critical
      section, and we carefully decided with tilegx that we didn't need
      to support this path in the kernel.  (On tilepro we did implement
      that path as part of supporting atomic instructions in software.)
      
      In practice we always need to touch the kernel stack, since that's
      where we store the interrupt state before releasing the critical
      section, but this change cleans up a few things.  The IRQ_ENABLE
      macro is split up so that when we want to enable interrupts in a
      deferred way (e.g. for cpu_idle or for interrupt return) we can
      read the per-cpu enable mask before entering the critical section.
      The cache-migration code is changed to use interrupt masking instead
      of interrupt critical sections.  And, the interrupt-entry code is
      changed so that we defer loading "tp" from per-cpu data until after
      we have released the interrupt critical section.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      51007004
    • 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
  2. 25 5月, 2012 18 次提交
    • 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