1. 21 Apr, 2015 1 commit
  2. 20 Apr, 2015 3 commits
  3. 18 Apr, 2015 22 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 64fb1d0e
      Linus Torvalds authored
      Pull sparc fixes from David Miller
       "Unfortunately, I brown paper bagged the generic iommu pool allocator
        by applying the wrong revision of the patch series.
      
        This reverts the bad one, and puts the right one in"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        iommu-common: Fix PARISC compile-time warnings
        sparc: Make LDC use common iommu poll management functions
        sparc: Make sparc64 use scalable lib/iommu-common.c functions
        Break up monolithic iommu table/lock into finer graularity pools and lock
        sparc: Revert generic IOMMU allocator.
      64fb1d0e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · dba94f21
      Linus Torvalds authored
      Pull 9pfs updates from Eric Van Hensbergen:
       "Some accumulated cleanup patches for kerneldoc and unused variables as
        well as some lock bug fixes and adding privateport option for RDMA"
      
      * tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        net/9p: add a privport option for RDMA transport.
        fs/9p: Initialize status in v9fs_file_do_lock.
        net/9p: Initialize opts->privport as it should be.
        net/9p: use memcpy() instead of snprintf() in p9_mount_tag_show()
        9p: use unsigned integers for nwqid/count
        9p: do not crash on unknown lock status code
        9p: fix error handling in v9fs_file_do_lock
        9p: remove unused variable in p9_fd_create()
        9p: kerneldoc warning fixes
      dba94f21
    • David S. Miller's avatar
      Merge branch 'iommu-generic-allocator' · ccb30186
      David S. Miller authored
      Sowmini Varadhan says:
      
      ====================
      Generic IOMMU pooled allocator
      
      Investigation of network performance on Sparc shows a high
      degree of locking contention in the IOMMU allocator, and it
      was noticed that the PowerPC code has a better locking model.
      
      This patch series tries to extract the generic parts of the
      PowerPC code so that it can be shared across multiple PCI
      devices and architectures.
      
      v10: resend patchv9 without RFC tag, and a new mail Message-Id,
      (previous non-RFC attempt did not show up on the patchwork queue?)
      
      Full revision history below:
      v2 changes:
        - incorporate David Miller editorial comments: sparc specific
          fields moved from iommu-common into sparc's iommu_64.h
        - make the npools value an input parameter, for the case when
          the iommu map size is not very large
        - cookie_to_index mapping, and optimizations for span-boundary
          check, for use case such as LDC.
      
      v3: eliminate iommu_sparc, rearrange the ->demap indirection to
          be invoked under the pool lock.
      
      v4: David Miller review changes:
        - s/IOMMU_ERROR_CODE/DMA_ERROR_CODE
        - page_table_map_base and page_table_shift are unsigned long, not u32.
      
      v5: removed ->cookie_to_index and ->demap indirection from the
          iommu_tbl_ops The caller needs to call these functions as needed,
          before invoking the generic arena allocator functions.
          Added the "skip_span_boundary" argument to iommu_tbl_pool_init() for
          those callers like LDC which do no care about span boundary checks.
      
      v6: removed iommu_tbl_ops, and instead pass the ->flush_all as
          an indirection to iommu_tbl_pool_init(); only invoke ->flush_all
          when there is no large_pool, based on the assumption that large-pool
          usage is infrequently encountered
      
      v7: moved pool_hash initialization to lib/iommu-common.c and cleaned up
          code duplication from sun4v/sun4u/ldc.
      
      v8: Addresses BenH comments with one exception: I've left the
          IOMMU_POOL_HASH as is, so that powerpc can tailor it to their
          convenience.  Discard trylock for simple spin_lock to acquire pool
      
      v9: Addresses latest BenH comments: need_flush checks, add support
          for dma mask and align_order.
      
      v10: resend without RFC tag, and new mail Message-Id.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccb30186
    • Sowmini Varadhan's avatar
      iommu-common: Fix PARISC compile-time warnings · 2f0c0fdc
      Sowmini Varadhan authored
      Fixes warnings due to
      - no DMA_ERROR_CODE on PARISC,
      - sizeof (unsigned long) == 4 bytes on PARISC.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f0c0fdc
    • Sowmini Varadhan's avatar
      sparc: Make LDC use common iommu poll management functions · 0ae53ed1
      Sowmini Varadhan authored
      Note that this conversion is only being done to consolidate the
      code and ensure that the common code provides the sufficient
      abstraction. It is not expected to result in any noticeable
      performance improvement, as there is typically one ldc_iommu
      per vnet_port, and each one has 8k entries, with a typical
      request for 1-4 pages.  Thus LDC uses npools == 1.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0ae53ed1
    • Sowmini Varadhan's avatar
      sparc: Make sparc64 use scalable lib/iommu-common.c functions · bb620c3d
      Sowmini Varadhan authored
      In iperf experiments running linux as the Tx side (TCP client) with
      10 threads results in a severe performance drop when TSO is disabled,
      indicating a weakness in the software that can be avoided by using
      the scalable IOMMU arena DMA allocation.
      
      Baseline numbers before this patch:
         with default settings (TSO enabled) :    9-9.5 Gbps
         Disable TSO using ethtool- drops badly:  2-3 Gbps.
      
      After this patch, iperf client with 10 threads, can give a
      throughput of at least 8.5 Gbps, even when TSO is disabled.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bb620c3d
    • Sowmini Varadhan's avatar
      Break up monolithic iommu table/lock into finer graularity pools and lock · ff7d37a5
      Sowmini Varadhan authored
      Investigation of multithreaded iperf experiments on an ethernet
      interface show the iommu->lock as the hottest lock identified by
      lockstat, with something of the order of  21M contentions out of
      27M acquisitions, and an average wait time of 26 us for the lock.
      This is not efficient. A more scalable design is to follow the ppc
      model, where the iommu_map_table has multiple pools, each stretching
      over a segment of the map, and with a separate lock for each pool.
      This model allows for better parallelization of the iommu map search.
      
      This patch adds the iommu range alloc/free function infrastructure.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff7d37a5
    • David S. Miller's avatar
      sparc: Revert generic IOMMU allocator. · c12f048f
      David S. Miller authored
      I applied the wrong version of this patch series, V4 instead
      of V10, due to a patchwork bundling snafu.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c12f048f
    • Linus Torvalds's avatar
      Merge branch 'x86-pmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 34a984f7
      Linus Torvalds authored
      Pull PMEM driver from Ingo Molnar:
       "This is the initial support for the pmem block device driver:
        persistent non-volatile memory space mapped into the system's physical
        memory space as large physical memory regions.
      
        The driver is based on Intel code, written by Ross Zwisler, with fixes
        by Boaz Harrosh, integrated with x86 e820 memory resource management
        and tidied up by Christoph Hellwig.
      
        Note that there were two other separate pmem driver submissions to
        lkml: but apparently all parties (Ross Zwisler, Boaz Harrosh) are
        reasonably happy with this initial version.
      
        This version enables minimal support that enables persistent memory
        devices out in the wild to work as block devices, identified through a
        magic (non-standard) e820 flag and auto-discovered if
        CONFIG_X86_PMEM_LEGACY=y, or added explicitly through manipulating the
        memory maps via the "memmap=..." boot option with the new, special '!'
        modifier character.
      
        Limitations: this is a regular block device, and since the pmem areas
        are not struct page backed, they are invisible to the rest of the
        system (other than the block IO device), so direct IO to/from pmem
        areas, direct mmap() or XIP is not possible yet.  The page cache will
        also shadow and double buffer pmem contents, etc.
      
        Initial support is for x86"
      
      * 'x86-pmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        drivers/block/pmem: Fix 32-bit build warning in pmem_alloc()
        drivers/block/pmem: Add a driver for persistent memory
        x86/mm: Add support for the non-standard protected e820 type
      34a984f7
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 90d1c087
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "This tree includes:
      
         - an FPU related crash fix
      
         - a ptrace fix (with matching testcase in tools/testing/selftests/)
      
         - an x86 Kconfig DMA-config defaults tweak to better avoid
           non-working drivers"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
        x86/fpu: Load xsave pointer *after* initialization
        x86/ptrace: Fix the TIF_FORCED_TF logic in handle_signal()
        x86, selftests: Add single_step_syscall test
      90d1c087
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 96b90f27
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "This update has mostly fixes, but also other bits:
      
         - perf tooling fixes
      
         - PMU driver fixes
      
         - Intel Broadwell PMU driver HW-enablement for LBR callstacks
      
         - a late coming 'perf kmem' tool update that enables it to also
           analyze page allocation data.  Note, this comes with MM tracepoint
           changes that we believe to not break anything: because it changes
           the formerly opaque 'struct page *' field that uniquely identifies
           pages to 'pfn' which identifies pages uniquely too, but isn't as
           opaque and can be used for other purposes as well"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/pt: Fix and clean up error handling in pt_event_add()
        perf/x86/intel: Add Broadwell support for the LBR callstack
        perf/x86/intel/rapl: Fix energy counter measurements but supporing per domain energy units
        perf/x86/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
        perf/x86: Fix hw_perf_event::flags collision
        perf probe: Fix segfault when probe with lazy_line to file
        perf probe: Find compilation directory path for lazy matching
        perf probe: Set retprobe flag when probe in address-based alternative mode
        perf kmem: Analyze page allocator events also
        tracing, mm: Record pfn instead of pointer to struct page
      96b90f27
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 396c9df2
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
       "Two fixes: an smp-call fix and a lockdep fix"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smp: Fix smp_call_function_single_async() locking
        lockdep: Make print_lock() robust against concurrent release
      396c9df2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 8f502d5b
      Linus Torvalds authored
      Pull usernamespace mount fixes from Eric Biederman:
       "Way back in October Andrey Vagin reported that umount(MNT_DETACH)
        could be used to defeat MNT_LOCKED.  As I worked to fix this I
        discovered that combined with mount propagation and an appropriate
        selection of shared subtrees a reference to a directory on an
        unmounted filesystem is not necessary.
      
        That MNT_DETACH is allowed in user namespace in a form that can break
        MNT_LOCKED comes from my early misunderstanding what MNT_DETACH does.
      
        To avoid breaking existing userspace the conflict between MNT_DETACH
        and MNT_LOCKED is fixed by leaving mounts that are locked to their
        parents in the mount hash table until the last reference goes away.
      
        While investigating this issue I also found an issue with
        __detach_mounts.  The code was unnecessarily and incorrectly
        triggering mount propagation.  Resulting in too many mounts going away
        when a directory is deleted, and too many cpu cycles are burned while
        doing that.
      
        Looking some more I realized that __detach_mounts by only keeping
        mounts connected that were MNT_LOCKED it had the potential to still
        leak information so I tweaked the code to keep everything locked
        together that possibly could be.
      
        This code was almost ready last cycle but Al invented fs_pin which
        slightly simplifies this code but required rewrites and retesting, and
        I have not been in top form for a while so it took me a while to get
        all of that done.  Similiarly this pull request is late because I have
        been feeling absolutely miserable all week.
      
        The issue of being able to escape a bind mount has not yet been
        addressed, as the fixes are not yet mature"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        mnt: Update detach_mounts to leave mounts connected
        mnt: Fix the error check in __detach_mounts
        mnt: Honor MNT_LOCKED when detaching mounts
        fs_pin: Allow for the possibility that m_list or s_list go unused.
        mnt: Factor umount_mnt from umount_tree
        mnt: Factor out unhash_mnt from detach_mnt and umount_tree
        mnt: Fail collect_mounts when applied to unmounted mounts
        mnt: Don't propagate unmounts to locked mounts
        mnt: On an unmount propagate clearing of MNT_LOCKED
        mnt: Delay removal from the mount hash.
        mnt: Add MNT_UMOUNT flag
        mnt: In umount_tree reuse mnt_list instead of mnt_hash
        mnt: Don't propagate umounts in __detach_mounts
        mnt: Improve the umount_tree flags
        mnt: Use hlist_move_list in namespace_unlock
      8f502d5b
    • Linus Torvalds's avatar
      Merge tag 'for-f2fs-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 06a60dec
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "New features:
         - in-memory extent_cache
         - fs_shutdown to test power-off-recovery
         - use inline_data to store symlink path
         - show f2fs as a non-misc filesystem
      
        Major fixes:
         - avoid CPU stalls on sync_dirty_dir_inodes
         - fix some power-off-recovery procedure
         - fix handling of broken symlink correctly
         - fix missing dot and dotdot made by sudden power cuts
         - handle wrong data index during roll-forward recovery
         - preallocate data blocks for direct_io
      
        ... and a bunch of minor bug fixes and cleanups"
      
      * tag 'for-f2fs-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (71 commits)
        f2fs: pass checkpoint reason on roll-forward recovery
        f2fs: avoid abnormal behavior on broken symlink
        f2fs: flush symlink path to avoid broken symlink after POR
        f2fs: change 0 to false for bool type
        f2fs: do not recover wrong data index
        f2fs: do not increase link count during recovery
        f2fs: assign parent's i_mode for empty dir
        f2fs: add F2FS_INLINE_DOTS to recover missing dot dentries
        f2fs: fix mismatching lock and unlock pages for roll-forward recovery
        f2fs: fix sparse warnings
        f2fs: limit b_size of mapped bh in f2fs_map_bh
        f2fs: persist system.advise into on-disk inode
        f2fs: avoid NULL pointer dereference in f2fs_xattr_advise_get
        f2fs: preallocate fallocated blocks for direct IO
        f2fs: enable inline data by default
        f2fs: preserve extent info for extent cache
        f2fs: initialize extent tree with on-disk extent info of inode
        f2fs: introduce __{find,grab}_extent_tree
        f2fs: split set_data_blkaddr from f2fs_update_extent_cache
        f2fs: enable fast symlink by utilizing inline data
        ...
      06a60dec
    • Linus Torvalds's avatar
      Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6 · d6a24d06
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "Numerous fixes, the overdue removal of the i2o docs, some new Chinese
        translations, and, hopefully, the README fix that will end the flow of
        identical patches to that file"
      
      * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (34 commits)
        Documentation/memcg: update memcg/kmem status
        Documentation: blackfin: Makefile: Typo building issue
        Documentation/vm/pagemap.txt: correct location of page-types tool
        Documentation/memory-barriers.txt: typo fix
        doc: Add guest_nice column to example output of `cat /proc/stat'
        Documentation/kernel-parameters: Move "eagerfpu" to its right place
        Documentation: gpio: Update ACPI part of the document to mention _DSD
        docs/completion.txt: Various tweaks and corrections
        doc: completion: context, scope and language fixes
        Documentation:Update Documentation/zh_CN/arm64/memory.txt
        Documentation:Update Documentation/zh_CN/arm64/booting.txt
        Documentation: Chinese translation of arm64/legacy_instructions.txt
        DocBook media: fix broken EIA hyperlink
        Documentation: tweak the maintainers entry
        README: Change gzip/bzip2 to xz compression format
        README: Update version number reference
        doc:pci: Fix typo in Documentation/PCI
        Documentation: drm: Use '->' when describing access through pointers.
        Documentation: Remove mentioning of block barriers
        Documentation/email-clients.txt: Fix one grammar mistake, add extra info about TB
        ...
      d6a24d06
    • Marcel Holtmann's avatar
      Bluetooth: hidp: Fix regression with older userspace and flags validation · 1f5014d6
      Marcel Holtmann authored
      While it is not used by newer userspace anymore, the older userspace was
      utilizing HIDP_VIRTUAL_CABLE_UNPLUG and HIDP_BOOT_PROTOCOL_MODE flags
      when adding a new HIDP connection.
      
      The flags validation is important, but we can not break older userspace
      and with that allow providing these flags even if newer userspace does
      not use them anymore.
      Reported-and-tested-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1f5014d6
    • Konrad Rzeszutek Wilk's avatar
      config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected · a6dfa128
      Konrad Rzeszutek Wilk authored
      A huge amount of NIC drivers use the DMA API, however if
      compiled under 32-bit an very important part of the DMA API can
      be ommitted leading to the drivers not working at all
      (especially if used with 'swiotlb=force iommu=soft').
      
      As Prashant Sreedharan explains it: "the driver [tg3] uses
      DEFINE_DMA_UNMAP_ADDR(), dma_unmap_addr_set() to keep a copy of
      the dma "mapping" and dma_unmap_addr() to get the "mapping"
      value. On most of the platforms this is a no-op, but ... with
      "iommu=soft and swiotlb=force" this house keeping is required,
      ... otherwise we pass 0 while calling pci_unmap_/pci_dma_sync_
      instead of the DMA address."
      
      As such enable this even when using 32-bit kernels.
      Reported-by: default avatarIan Jackson <Ian.Jackson@eu.citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Acked-by: default avatarPrashant Sreedharan <prashant@broadcom.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: boris.ostrovsky@oracle.com
      Cc: cascardo@linux.vnet.ibm.com
      Cc: david.vrabel@citrix.com
      Cc: sanjeevb@broadcom.com
      Cc: siva.kallam@broadcom.com
      Cc: vyasevich@gmail.com
      Cc: xen-devel@lists.xensource.com
      Link: http://lkml.kernel.org/r/20150417190448.GA9462@l.oracle.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      a6dfa128
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · 75052566
      Linus Torvalds authored
      Pull devicetree changes from Grant Likely:
       "Here are the devicetree changes queued up for v4.1.  Nothing really
        exciting here.  Rob has another few commits for big-endian attached
        UARTs, but those will be sent in a separate merge request since they
        haven't been as thoroughly tested as this batch.
      
        Here are the highlights:
      
         - lots of unittest cleanup from Frank Rowand
      
         - bugfixes and updates to the of_graph code
      
         - tighten up of_get_mac_address() code
      
         - documentation updates"
      
      * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
        of/unittest: Fix of_platform_depopulate test case
        of/unittest: early return from test skips tests
        of/unittest: breadcrumbs to reduce pain of future maintainers
        of/unittest: reduce checkpatch noise - line after declarations
        of/unittest: typo in error string
        of/unittest: add const where needed
        of_net: factor out repetitive code from of_get_mac_address()
        drivers/of: Add empty ranges quirk for PA-Semi
        of: Allow selection of OF_DYNAMIC and OF_OVERLAY if OF_UNITTEST
        of: Empty node & property flag accessors when !OF
        of: Explicitly include linux/types.h in of_graph.h
        dt-bindings: brcm: rationalize Broadcom documentation naming
        of/unittest: replace 'selftest' with 'unittest'
        Documentation: rename of_selftest.txt to of_unittest.txt
        Documentation: update the of_selftest.txt
        dt: OF_UNITTEST make dependency broken
        MAINTAINERS: Pantelis Antoniou device tree overlay maintainer
        of: Add of_graph_get_port_by_id function
        of: Add for_each_endpoint_of_node helper macro
        of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint
      75052566
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 510965dd
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.1 development cycle:
      
         - A new GPIO hogging mechanism has been added.  This can be used on
           boards that want to drive some GPIO line high, low, or set it as
           input on boot and then never touch it again.  For some embedded
           systems this is bliss and simplifies things to a great extent.
      
         - Some API cleanup and closure: gpiod_get_array() and
           gpiod_put_array() has been added to get and put GPIOs in bulk as
           was possible with the non-descriptor API.
      
         - Encapsulate cross-calls to the pin control subsystem in
           <linux/gpio/driver.h>.  Now this should be the only header any GPIO
           driver needs to include or something is wrong.  Cleanups
           restricting drivers to this include are welcomed if tested.
      
         - Sort the GPIO Kconfig and split it into submenus, as it was
           becoming and unstructured, illogical and unnavigatable mess.  I
           hope this is easier to follow.  Menus that require a certain
           subsystem like I2C can now be hidden nicely for example, still
           working on others.
      
         - New drivers:
      
             - New driver for the Altera Soft GPIO.
      
             - The F7188x driver now handles the F71869 and F71869A variants.
      
             - The MIPS Loongson driver has been moved to drivers/gpio for
               consolidation and cleanup.
      
         - Cleanups:
      
             - The MAX732x is converted to use the GPIOLIB_IRQCHIP
               infrastructure.
      
             - The PCF857x is converted to use the GPIOLIB_IRQCHIP
               infrastructure.
      
             - Radical cleanup of the OMAP driver.
      
         - Misc:
      
             - Enable the DWAPB GPIO for all architectures.  This is a "hard
               IP" block from Synopsys which has started to turn up in so
               diverse architectures as X86 Quark, ARC and a slew of ARM
               systems.  So even though it's not an expander, it's generic
               enough to be available for all.
      
             - We add a mock GPIO on Crystalcove PMIC after a long discussion
               with Daniel Vetter et al, tracing back to the shootout at the
               kernel summit where DRM drivers and sub-componentization was
               discussed.  In this case a mock GPIO is assumed to be the best
               compromise gaining some reuse of infrastructure without making
               DRM drivers overly complex at the same time.  Let's see"
      
      * tag 'gpio-v4.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (62 commits)
        Revert "gpio: sch: use uapi/linux/pci_ids.h directly"
        gpio: dwapb: remove dependencies
        gpio: dwapb: enable for ARC
        gpio: removing kfree remove functionality
        gpio: mvebu: Fix mask/unmask managment per irq chip type
        gpio: split GPIO drivers in submenus
        gpio: move MFD GPIO drivers under their own comment
        gpio: move BCM Kona Kconfig option
        gpio: arrange SPI Kconfig symbols alphabetically
        gpio: arrange PCI GPIO controllers alphabetically
        gpio: arrange I2C Kconfig symbols alphabetically
        gpio: arrange Kconfig symbols alphabetically
        gpio: ich: Implement get_direction function
        gpio: use (!foo) instead of (foo == NULL)
        gpio: arizona: drop owner assignment from platform_drivers
        gpio: max7300: remove 'ret' variable
        gpio: use devm_kzalloc
        gpio: sch: use uapi/linux/pci_ids.h directly
        gpio: x-gene: fix devm_ioremap_resource() check
        gpio: loongson: Add Loongson-3A/3B GPIO driver support
        ...
      510965dd
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 40d78398
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "Two buildfixes for I2C based on your tree from the day before
        yesterday.  Sadly, these build errors never reached me while the
        patches were sitting in -next.  Need to fix that"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: core: Export bus recovery functions
        i2c: jz4780: Fix build for m68k and sparc64
      40d78398
    • Linus Torvalds's avatar
      Merge tag 'dm-4.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · afad97ee
      Linus Torvalds authored
      Pull device mapper updates from Mike Snitzer:
      
       - the most extensive changes this cycle are the DM core improvements to
         add full blk-mq support to request-based DM.
      
          - disabled by default but user can opt-in with CONFIG_DM_MQ_DEFAULT
          - depends on some blk-mq changes from Jens' for-4.1/core branch so
            that explains why this pull is built on linux-block.git
      
       - update DM to use name_to_dev_t() rather than open-coding a less
         capable device parser.
      
          - includes a couple small improvements to name_to_dev_t() that offer
            stricter constraints that DM's code provided.
      
       - improvements to the dm-cache "mq" cache replacement policy.
      
       - a DM crypt crypt_ctr() error path fix and an async crypto deadlock
         fix
      
       - a small efficiency improvement for DM crypt decryption by leveraging
         immutable biovecs
      
       - add error handling modes for corrupted blocks to DM verity
      
       - a new "log-writes" DM target from Josef Bacik that is meant for file
         system developers to test file system integrity at particular points
         in the life of a file system
      
       - a few DM log userspace cleanups and fixes
      
       - a few Documentation fixes (for thin, cache, crypt and switch)
      
      * tag 'dm-4.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (34 commits)
        dm crypt: fix missing error code return from crypt_ctr error path
        dm crypt: fix deadlock when async crypto algorithm returns -EBUSY
        dm crypt: leverage immutable biovecs when decrypting on read
        dm crypt: update URLs to new cryptsetup project page
        dm: add log writes target
        dm table: use bool function return values of true/false not 1/0
        dm verity: add error handling modes for corrupted blocks
        dm thin: remove stale 'trim' message documentation
        dm delay: use msecs_to_jiffies for time conversion
        dm log userspace base: fix compile warning
        dm log userspace transfer: match wait_for_completion_timeout return type
        dm table: fall back to getting device using name_to_dev_t()
        init: stricter checking of major:minor root= values
        init: export name_to_dev_t and mark name argument as const
        dm: add 'use_blk_mq' module param and expose in per-device ro sysfs attr
        dm: optimize dm_mq_queue_rq to _not_ use kthread if using pure blk-mq
        dm: add full blk-mq support to request-based DM
        dm: impose configurable deadline for dm_request_fn's merge heuristic
        dm sysfs: introduce ability to add writable attributes
        dm: don't start current request if it would've merged with the previous
        ...
      afad97ee
    • Ingo Molnar's avatar
      perf/x86/intel/pt: Fix and clean up error handling in pt_event_add() · 0c99241c
      Ingo Molnar authored
      Dan Carpenter reported that pt_event_add() has buggy
      error handling logic: it returns 0 instead of -EBUSY when
      it fails to start a newly added event.
      
      Furthermore, the control flow in this function is messy,
      with cleanup labels mixed with direct returns.
      
      Fix the bug and clean up the code by converting it to
      a straight fast path for the regular non-failing case,
      plus a clear sequence of cascading goto labels to do
      all cleanup.
      
      NOTE: I materially changed the existing clean up logic in the
      pt_event_start() failure case to use the direct
      perf_aux_output_end() path, not pt_event_del(), because
      perf_aux_output_end() is enough here.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Julia Lawall <julia.lawall@lip6.fr>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20150416103830.GB7847@gmail.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0c99241c
  4. 17 Apr, 2015 14 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide · 04b7fe6a
      Linus Torvalds authored
      Pull IDE update from David Miller:
       "Just one change, getting rid of usage of the deprecated PCI DMA
        interfaces in the IDE drivers"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
        ide: remove deprecated use of pci api
      04b7fe6a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 388f9976
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix verifier memory corruption and other bugs in BPF layer, from
          Alexei Starovoitov.
      
       2) Add a conservative fix for doing BPF properly in the BPF classifier
          of the packet scheduler on ingress.  Also from Alexei.
      
       3) The SKB scrubber should not clear out the packet MARK and security
          label, from Herbert Xu.
      
       4) Fix oops on rmmod in stmmac driver, from Bryan O'Donoghue.
      
       5) Pause handling is not correct in the stmmac driver because it
          doesn't take into consideration the RX and TX fifo sizes.  From
          Vince Bridgers.
      
       6) Failure path missing unlock in FOU driver, from Wang Cong.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (44 commits)
        net: dsa: use DEVICE_ATTR_RW to declare temp1_max
        netns: remove BUG_ONs from net_generic()
        IB/ipoib: Fix ndo_get_iflink
        sfc: Fix memcpy() with const destination compiler warning.
        altera tse: Fix network-delays and -retransmissions after high throughput.
        net: remove unused 'dev' argument from netif_needs_gso()
        act_mirred: Fix bogus header when redirecting from VLAN
        inet_diag: fix access to tcp cc information
        tcp: tcp_get_info() should fetch socket fields once
        net: dsa: mv88e6xxx: Add missing initialization in mv88e6xxx_set_port_state()
        skbuff: Do not scrub skb mark within the same name space
        Revert "net: Reset secmark when scrubbing packet"
        bpf: fix two bugs in verification logic when accessing 'ctx' pointer
        bpf: fix bpf helpers to use skb->mac_header relative offsets
        stmmac: Configure Flow Control to work correctly based on rxfifo size
        stmmac: Enable unicast pause frame detect in GMAC Register 6
        stmmac: Read tx-fifo-depth and rx-fifo-depth from the devicetree
        stmmac: Add defines and documentation for enabling flow control
        stmmac: Add properties for transmit and receive fifo sizes
        stmmac: fix oops on rmmod after assigning ip addr
        ...
      388f9976
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · e2fdae7e
      Linus Torvalds authored
      Pull sparc updates from David Miller:
       "The PowerPC folks have a really nice scalable IOMMU pool allocator
        that we wanted to make use of for sparc.  So here we have a series
        that abstracts out their code into a common layer that anyone can make
        use of.
      
        Sparc is converted, and the PowerPC folks have reviewed and ACK'd this
        series and plan to convert PowerPC over as well"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        iommu-common: Fix PARISC compile-time warnings
        sparc: Make LDC use common iommu poll management functions
        sparc: Make sparc64 use scalable lib/iommu-common.c functions
        sparc: Break up monolithic iommu table/lock into finer graularity pools and lock
      e2fdae7e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · 6b6e177d
      Linus Torvalds authored
      Pull arch/tile updates from Chris Metcalf:
       "These are mostly nohz_full changes, plus a smattering of minor fixes
        (notably a couple for ftrace)"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        tile: nohz: warn if nohz_full uses hypervisor shared cores
        tile: ftrace: fix function_graph tracer issues
        tile: map data region shadow of kernel as R/W
        tile: support CONTEXT_TRACKING and thus NOHZ_FULL
        tile: support arch_irq_work_raise
        arch: tile: fix null pointer dereference on pt_regs pointer
        tile/elf: reorganize notify_exec()
        tile: use si_int instead of si_ptr for compat_siginfo
      6b6e177d
    • Vivien Didelot's avatar
      net: dsa: use DEVICE_ATTR_RW to declare temp1_max · e3122b7f
      Vivien Didelot authored
      Since commit da4759c7 (sysfs: Use only return value from is_visible for
      the file mode), it is possible to reduce the permissions of a file.
      
      So declare temp1_max with the DEVICE_ATTR_RW macro and remove the write
      permission in dsa_hwmon_attrs_visible if set_temp_limit isn't provided.
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e3122b7f
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · bfaf2450
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is the main pull request for MIPS for Linux 4.1.  Most
        noteworthy:
      
         - Add more Octeon-optimized crypto functions
         - Octeon crypto preemption and locking fixes
         - Little endian support for Octeon
         - Use correct CSR to soft reset Octeons
         - Support LEDs on the Octeon-based DSR-1000N
         - Fix PCI interrupt mapping for the Octeon-based DSR-1000N
         - Mark prom_free_prom_memory() as __init for a number of systems
         - Support for Imagination's Pistachio SOC.  This includes arch and
           CLK bits.  I'd like to merge pinctrl bits later
         - Improve parallelism of csum_partial for certain pipelines
         - Organize DTB files in subdirs like other architectures
         - Implement read_sched_clock for all MIPS platforms other than
           Octeon
         - Massive series of 38 fixes and cleanups for the FPU emulator /
           kernel
         - Further FPU remulator work to support new features.  This sits on a
           separate branch which also has been pulled into the 4.1 KVM branch
         - Clean up and fixes for the SEAD3 eval board; remove unused file
         - Various updates for Netlogic platforms
         - A number of small updates for Loongson 3 platforms
         - Increase the memory limit for ATH79 platforms to 256MB
         - A fair number of fixes and updates for BCM47xx platforms
         - Finish the implementation of XPA support
         - MIPS FDC support.  No, not floppy controller but Fast Debug Channel :)
         - Detect the R16000 used in SGI legacy platforms
         - Fix Kconfig dependencies for the SSB bus support"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (265 commits)
        MIPS: Makefile: Fix MIPS ASE detection code
        MIPS: asm: elf: Set O32 default FPU flags
        MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G
        MIPS: Kconfig: Disable SMP/CPS for 64-bit
        MIPS: Hibernate: flush TLB entries earlier
        MIPS: smp-cps: cpu_set FPU mask if FPU present
        MIPS: lose_fpu(): Disable FPU when MSA enabled
        MIPS: ralink: add missing symbol for RALINK_ILL_ACC
        MIPS: ralink: Fix bad config symbol in PCI makefile.
        SSB: fix Kconfig dependencies
        MIPS: Malta: Detect and fix bad memsize values
        Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores."
        MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard.
        MIPS: Fix cpu_has_mips_r2_exec_hazard.
        MIPS: kernel: entry.S: Set correct ISA level for mips_ihb
        MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case
        MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes
        MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter
        MIPS: unaligned: Fix regular load/store instruction emulation for EVA
        MIPS: unaligned: Surround load/store macros in do {} while statements
        ...
      bfaf2450
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20150416' of git://github.com/czankel/xtensa-linux · 96d928ed
      Linus Torvalds authored
      Pull Xtensa updates from Chris Zankel:
      
       - fix linker script transformation for .text / .text.fixup
      
       - wire bpf and execveat syscalls
      
       - provide __NR_sync_file_range2 instead of __NR_sync_file_range, as
         that's what xtensa uses.
      
       - make xtfpgs LCD driver functional and configurable.  This fixes
         hardware lockup on KC705/ML605 boot
      
       - add audio subsystem bits to xtfpga DTS and provide sample KC705
         config with audio features enabled
      
       - add CY7C67300 USB controller support to XTFPGA
      
       - fix locking issues in ISS network driver
      
       - document PIC and MX interrupt distributor device tree bindings
      
      * tag 'xtensa-20150416' of git://github.com/czankel/xtensa-linux:
        xtensa: xtfpga: add CY7C67300 USB controller support
        irqchip: xtensa-pic: xtensa-mx: document DT bindings
        xtensa: ISS: fix locking in TAP network adapter
        xtensa: Fix fix linker script transformation for .text / .text.fixup
        xtensa: provide __NR_sync_file_range2 instead of __NR_sync_file_range
        xtensa: wire bpf and execveat syscalls
        xtensa: xtfpga: fix hardware lockup caused by LCD driver
        xtensa: xtfpga: provide defconfig with audio subsystem
        xtensa: xtfpga: add audio card to xtfpga DTS
      96d928ed
    • Quentin Lambert's avatar
      ide: remove deprecated use of pci api · d681f116
      Quentin Lambert authored
      Replace occurences of the pci api by appropriate call to the dma api.
      
      A simplified version of the semantic patch that finds this problem is as
      follows: (http://coccinelle.lip6.fr)
      
      @deprecated@
      idexpression id;
      position p;
      @@
      
      (
        pci_dma_supported@p ( id, ...)
      |
        pci_alloc_consistent@p ( id, ...)
      )
      
      @bad1@
      idexpression id;
      position deprecated.p;
      @@
      ...when != &id->dev
         when != pci_get_drvdata ( id )
         when != pci_enable_device ( id )
      (
        pci_dma_supported@p ( id, ...)
      |
        pci_alloc_consistent@p ( id, ...)
      )
      
      @depends on !bad1@
      idexpression id;
      expression direction;
      position deprecated.p;
      @@
      
      (
      - pci_dma_supported@p ( id,
      + dma_supported ( &id->dev,
      ...
      + , GFP_ATOMIC
        )
      |
      - pci_alloc_consistent@p ( id,
      + dma_alloc_coherent ( &id->dev,
      ...
      + , GFP_ATOMIC
        )
      )
      Signed-off-by: default avatarQuentin Lambert <lambert.quentin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d681f116
    • Sowmini Varadhan's avatar
      iommu-common: Fix PARISC compile-time warnings · cb97201c
      Sowmini Varadhan authored
      Fixes warnings due to
      - no DMA_ERROR_CODE on PARISC,
      - sizeof (unsigned long) == 4 bytes on PARISC.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cb97201c
    • Denys Vlasenko's avatar
      netns: remove BUG_ONs from net_generic() · 2591ffd3
      Denys Vlasenko authored
      This inline has ~500 callsites.
      
      On 04/14/2015 08:37 PM, David Miller wrote:
      > That BUG_ON() was added 7 years ago, and I don't remember it ever
      > triggering or helping us diagnose something, so just remove it and
      > keep the function inlined.
      
      On x86 allyesconfig build:
      
          text     data      bss       dec     hex filename
      82447071 22255384 20627456 125329911 77861f7 vmlinux4
      82441375 22255384 20627456 125324215 7784bb7 vmlinux5prime
      Signed-off-by: default avatarDenys Vlasenko <dvlasenk@redhat.com>
      CC: Eric W. Biederman <ebiederm@xmission.com>
      CC: David S. Miller <davem@davemloft.net>
      CC: Jan Engelhardt <jengelh@medozas.de>
      CC: Jiri Pirko <jpirko@redhat.com>
      CC: linux-kernel@vger.kernel.org
      CC: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2591ffd3
    • Erez Shitrit's avatar
      IB/ipoib: Fix ndo_get_iflink · 2c153959
      Erez Shitrit authored
      Currently, iflink of the parent interface was always accessed, even
      when interface didn't have a parent and hence we crashed there.
      
      Handle the interface types properly: for a child interface, return
      the ifindex of the parent, for parent interface, return its ifindex.
      
      For child devices, make sure to set the parent pointer prior to
      invoking register_netdevice(), this allows the new ndo to be called
      by the stack immediately after the child device is registered.
      
      Fixes: 5aa7add8 ('infiniband/ipoib: implement ndo_get_iflink')
      Reported-by: default avatarHonggang Li <honli@redhat.com>
      Signed-off-by: default avatarErez Shitrit <erezsh@mellanox.com>
      Signed-off-by: default avatarHonggang Li <honli@redhat.com>
      Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>+
      Acked-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2c153959
    • David S. Miller's avatar
      sfc: Fix memcpy() with const destination compiler warning. · 1d20a160
      David S. Miller authored
      drivers/net/ethernet/sfc/selftest.c: In function ‘efx_iterate_state’:
      drivers/net/ethernet/sfc/selftest.c:388:9: warning: passing argument 1 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-array-qualifiers]
      
      This is because the msg[] member of struct efx_loopback_payload
      is marked as 'const'.  Remove that.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1d20a160
    • Andreas Oetken's avatar
      altera tse: Fix network-delays and -retransmissions after high throughput. · 93ea3378
      Andreas Oetken authored
      Fix bug which occurs when more than <limit> packets are available during
      napi-poll, leading to "delays" and retransmissions on the network.
      
      Check for (count < limit) before checking the get_rx_status in tse_rx-function.
      Function get_rx_status is reading from the response-fifo.
      If there is currently a response in the fifo,
      reading the last byte of the response pops the value from the fifo.
      If the limit is checked as second condition
      and the limit is reached the fifo is popped but the packet is not processed.
      Signed-off-by: default avatarAndreas Oetken <ennoerlangen@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93ea3378
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · e076b7c1
      Linus Torvalds authored
      Pull block core fix from Jens Axboe:
       "A commit in the previous pull request introduce a regression.  So far
        only observed on qemu-sparc64, but it's a general bug.  Please pull
        this single fix to rectify that, thanks"
      
      [ And it turns out that it's been seen outside of that qemu-sparc64
        case, and is easy to trigger with small number of CPUs and blk-mq
        enabled by default - Linus ]
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq: fix iteration of busy bitmap
      e076b7c1