1. 12 Dec, 2014 6 commits
    • Linus Torvalds's avatar
      Merge branch 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 0a27044c
      Linus Torvalds authored
      Pull workqueue update from Tejun Heo:
       "Work items which may be involved in memory reclaim path may be
        executed by the rescuer under memory pressure.  When a rescuer gets
        activated, it processes whatever are on the pending list and then goes
        back to sleep until the manager kicks it again which involves 100ms
        delay.
      
        This is problematic for self-requeueing work items or the ones running
        on ordered workqueues as there always is only one work item on the
        pending list when the rescuer kicks in.  The execution of that work
        item produces more to execute but the rescuer won't see them until
        after the said 100ms has passed, so such workqueues would only execute
        one work item every 100ms under prolonged memory pressure, which BTW
        may be being prolonged due to the slow execution.
      
        Neil wrote up a patch which fixes this issue by keeping the rescuer
        working as long as the target workqueue is busy but doesn't have
        enough workers"
      
      * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: allow rescuer thread to do more work.
        workqueue: invert the order between pool->lock and wq_mayday_lock
        workqueue: cosmetic update in rescuer_thread()
      0a27044c
    • Linus Torvalds's avatar
      Merge branch 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · eedb3d33
      Linus Torvalds authored
      Pull percpu updates from Tejun Heo:
       "Nothing interesting.  A patch to convert the remaining __get_cpu_var()
        users, another to fix non-critical off-by-one in an assertion and a
        cosmetic conversion to lockless_dereference() in percpu-ref.
      
        The back-merge from mainline is to receive lockless_dereference()"
      
      * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: Replace smp_read_barrier_depends() with lockless_dereference()
        percpu: Convert remaining __get_cpu_var uses in 3.18-rcX
        percpu: off by one in BUG_ON()
      eedb3d33
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 9d050966
      Linus Torvalds authored
      Pull xen features and fixes from David Vrabel:
      
       - Fully support non-coherent devices on ARM by introducing the
         mechanisms to request the hypervisor to perform the required cache
         maintainance operations.
      
       - A number of pciback bug fixes and cleanups.  Notably a deadlock fix
         if a PCI device was manually uunbound and a fix for incorrectly
         restoring state after a function reset.
      
       - In x86 PVHVM guests, use the APIC for interrupts if this has been
         virtualized by the hardware.  This reduces the number of interrupt-
         related VM exits on such hardware.
      
      * tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (26 commits)
        Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
        xen/pci: Use APIC directly when APIC virtualization hardware is available
        xen/pci: Defer initialization of MSI ops on HVM guests
        xen-pciback: drop SR-IOV VFs when PF driver unloads
        xen/pciback: Restore configuration space when detaching from a guest.
        PCI: Expose pci_load_saved_state for public consumption.
        xen/pciback: Remove tons of dereferences
        xen/pciback: Print out the domain owning the device.
        xen/pciback: Include the domain id if removing the device whilst still in use
        driver core: Provide an wrapper around the mutex to do lockdep warnings
        xen/pciback: Don't deadlock when unbinding.
        swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single
        swiotlb-xen: call xen_dma_sync_single_for_device when appropriate
        swiotlb-xen: remove BUG_ON in xen_bus_to_phys
        swiotlb-xen: pass dev_addr to xen_dma_unmap_page and xen_dma_sync_single_for_cpu
        xen/arm: introduce GNTTABOP_cache_flush
        xen/arm/arm64: introduce xen_arch_need_swiotlb
        xen/arm/arm64: merge xen/mm32.c into xen/mm.c
        xen/arm: use hypercall to flush caches in map_page
        xen: add a dma_addr_t dev_addr argument to xen_dma_map_page
        ...
      9d050966
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · c0222ac0
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is an unusually large pull request for MIPS - in parts because
        lots of patches missed the 3.18 deadline but primarily because some
        folks opened the flood gates.
      
         - Retire the MIPS-specific phys_t with the generic phys_addr_t.
         - Improvments for the backtrace code used by oprofile.
         - Better backtraces on SMP systems.
         - Cleanups for the Octeon platform code.
         - Cleanups and fixes for the Loongson platform code.
         - Cleanups and fixes to the firmware library.
         - Switch ATH79 platform to use the firmware library.
         - Grand overhault to the SEAD3 and Malta interrupt code.
         - Move the GIC interrupt code to drivers/irqchip
         - Lots of GIC cleanups and updates to the GIC code to use modern IRQ
           infrastructures and features of the kernel.
         - OF documentation updates for the GIC bindings
         - Move GIC clocksource driver to drivers/clocksource
         - Merge GIC clocksource driver with clockevent driver.
         - Further updates to bring the GIC clocksource driver up to date.
         - R3000 TLB code cleanups
         - Improvments to the Loongson 3 platform code.
         - Convert pr_warning to pr_warn.
         - Merge a bunch of small lantiq and ralink fixes that have been
           staged/lingering inside the openwrt tree for a while.
         - Update archhelp for IP22/IP32
         - Fix a number of issues for Loongson 1B.
         - New clocksource and clockevent driver for Loongson 1B.
         - Further work on clk handling for Loongson 1B.
         - Platform work for Broadcom BMIPS.
         - Error handling cleanups for TurboChannel.
         - Fixes and optimization to the microMIPS support.
         - Option to disable the FTLB.
         - Dump more relevant information on machine check exception
         - Change binfmt to allow arch to examine PT_*PROC headers
         - Support for new style FPU register model in O32
         - VDSO randomization.
         - BCM47xx cleanups
         - BCM47xx reimplement the way the kernel accesses NVRAM information.
         - Random cleanups
         - Add support for ATH25 platforms
         - Remove pointless locking code in some PCI platforms.
         - Some improvments to EVA support
         - Minor Alchemy cleanup"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (185 commits)
        MIPS: Add MFHC0 and MTHC0 instructions to uasm.
        MIPS: Cosmetic cleanups of page table headers.
        MIPS: Add CP0 macros for extended EntryLo registers
        MIPS: Remove now unused definition of phys_t.
        MIPS: Replace use of phys_t with phys_addr_t.
        MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT
        PCMCIA: Alchemy Don't select 64BIT_PHYS_ADDR in Kconfig.
        MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery
        MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO
        MIPS: <asm/types.h> fix indentation.
        MAINTAINERS: Add entry for BMIPS multiplatform kernel
        MIPS: Enable VDSO randomization
        MIPS: Remove a temporary hack for debugging cache flushes in SMTC configuration
        MIPS: Remove declaration of obsolete arch_init_clk_ops()
        MIPS: atomic.h: Reformat to fit in 79 columns
        MIPS: Apply `.insn' to fixup labels throughout
        MIPS: Fix microMIPS LL/SC immediate offsets
        MIPS: Kconfig: Only allow 32-bit microMIPS builds
        MIPS: signal.c: Fix an invalid cast in ISA mode bit handling
        MIPS: mm: Only build one microassembler that is suitable
        ...
      c0222ac0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux · 140cd7fb
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Some nice cleanups like removing bootmem, and removal of
        __get_cpu_var().
      
        There is one patch to mm/gup.c.  This is the generic GUP
        implementation, but is only used by us and arm(64).  We have an ack
        from Steve Capper, and although we didn't get an ack from Andrew he
        told us to take the patch through the powerpc tree.
      
        There's one cxl patch.  This is in drivers/misc, but Greg said he was
        happy for us to manage fixes for it.
      
        There is an infrastructure patch to support an IPMI driver for OPAL.
      
        There is also an RTC driver for OPAL.  We weren't able to get any
        response from the RTC maintainer, Alessandro Zummo, so in the end we
        just merged the driver.
      
        The usual batch of Freescale updates from Scott"
      
      * tag 'powerpc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (101 commits)
        powerpc/powernv: Return to cpu offline loop when finished in KVM guest
        powerpc/book3s: Fix partial invalidation of TLBs in MCE code.
        powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault
        powerpc/xmon: Cleanup the breakpoint flags
        powerpc/xmon: Enable HW instruction breakpoint on POWER8
        powerpc/mm/thp: Use tlbiel if possible
        powerpc/mm/thp: Remove code duplication
        powerpc/mm/hugetlb: Sanity check gigantic hugepage count
        powerpc/oprofile: Disable pagefaults during user stack read
        powerpc/mm: Check for matching hpte without taking hpte lock
        powerpc: Drop useless warning in eeh_init()
        powerpc/powernv: Cleanup unused MCE definitions/declarations.
        powerpc/eeh: Dump PHB diag-data early
        powerpc/eeh: Recover EEH error on ownership change for BCM5719
        powerpc/eeh: Set EEH_PE_RESET on PE reset
        powerpc/eeh: Refactor eeh_reset_pe()
        powerpc: Remove more traces of bootmem
        powerpc/pseries: Initialise nvram_pstore_info's buf_lock
        cxl: Name interrupts in /proc/interrupt
        cxl: Return error to PSL if IRQ demultiplexing fails & print clearer warning
        ...
      140cd7fb
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 27afc5db
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "The most notable change for this pull request is the ftrace rework
        from Heiko.  It brings a small performance improvement and the ground
        work to support a new gcc option to replace the mcount blocks with a
        single nop.
      
        Two new s390 specific system calls are added to emulate user space
        mmio for PCI, an artifact of the how PCI memory is accessed.
      
        Two patches for the memory management with changes to common code.
        For KVM mm_forbids_zeropage is added which disables the empty zero
        page for an mm that is used by a KVM process.  And an optimization,
        pmdp_get_and_clear_full is added analog to ptep_get_and_clear_full.
      
        Some micro optimization for the cmpxchg and the spinlock code.
      
        And as usual bug fixes and cleanups"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits)
        s390/cputime: fix 31-bit compile
        s390/scm_block: make the number of reqs per HW req configurable
        s390/scm_block: handle multiple requests in one HW request
        s390/scm_block: allocate aidaw pages only when necessary
        s390/scm_block: use mempool to manage aidaw requests
        s390/eadm: change timeout value
        s390/mm: fix memory leak of ptlock in pmd_free_tlb
        s390: use local symbol names in entry[64].S
        s390/ptrace: always include vector registers in core files
        s390/simd: clear vector register pointer on fork/clone
        s390: translate cputime magic constants to macros
        s390/idle: convert open coded idle time seqcount
        s390/idle: add missing irq off lockdep annotation
        s390/debug: avoid function call for debug_sprintf_*
        s390/kprobes: fix instruction copy for out of line execution
        s390: remove diag 44 calls from cpu_relax()
        s390/dasd: retry partition detection
        s390/dasd: fix list corruption for sleep_on requests
        s390/dasd: fix infinite term I/O loop
        s390/dasd: remove unused code
        ...
      27afc5db
  2. 11 Dec, 2014 34 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 70e71ca0
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) New offloading infrastructure and example 'rocker' driver for
          offloading of switching and routing to hardware.
      
          This work was done by a large group of dedicated individuals, not
          limited to: Scott Feldman, Jiri Pirko, Thomas Graf, John Fastabend,
          Jamal Hadi Salim, Andy Gospodarek, Florian Fainelli, Roopa Prabhu
      
       2) Start making the networking operate on IOV iterators instead of
          modifying iov objects in-situ during transfers.  Thanks to Al Viro
          and Herbert Xu.
      
       3) A set of new netlink interfaces for the TIPC stack, from Richard
          Alpe.
      
       4) Remove unnecessary looping during ipv6 routing lookups, from Martin
          KaFai Lau.
      
       5) Add PAUSE frame generation support to gianfar driver, from Matei
          Pavaluca.
      
       6) Allow for larger reordering levels in TCP, which are easily
          achievable in the real world right now, from Eric Dumazet.
      
       7) Add a variable of napi_schedule that doesn't need to disable cpu
          interrupts, from Eric Dumazet.
      
       8) Use a doubly linked list to optimize neigh_parms_release(), from
          Nicolas Dichtel.
      
       9) Various enhancements to the kernel BPF verifier, and allow eBPF
          programs to actually be attached to sockets.  From Alexei
          Starovoitov.
      
      10) Support TSO/LSO in sunvnet driver, from David L Stevens.
      
      11) Allow controlling ECN usage via routing metrics, from Florian
          Westphal.
      
      12) Remote checksum offload, from Tom Herbert.
      
      13) Add split-header receive, BQL, and xmit_more support to amd-xgbe
          driver, from Thomas Lendacky.
      
      14) Add MPLS support to openvswitch, from Simon Horman.
      
      15) Support wildcard tunnel endpoints in ipv6 tunnels, from Steffen
          Klassert.
      
      16) Do gro flushes on a per-device basis using a timer, from Eric
          Dumazet.  This tries to resolve the conflicting goals between the
          desired handling of bulk vs.  RPC-like traffic.
      
      17) Allow userspace to ask for the CPU upon what a packet was
          received/steered, via SO_INCOMING_CPU.  From Eric Dumazet.
      
      18) Limit GSO packets to half the current congestion window, from Eric
          Dumazet.
      
      19) Add a generic helper so that all drivers set their RSS keys in a
          consistent way, from Eric Dumazet.
      
      20) Add xmit_more support to enic driver, from Govindarajulu
          Varadarajan.
      
      21) Add VLAN packet scheduler action, from Jiri Pirko.
      
      22) Support configurable RSS hash functions via ethtool, from Eyal
          Perry.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1820 commits)
        Fix race condition between vxlan_sock_add and vxlan_sock_release
        net/macb: fix compilation warning for print_hex_dump() called with skb->mac_header
        net/mlx4: Add support for A0 steering
        net/mlx4: Refactor QUERY_PORT
        net/mlx4_core: Add explicit error message when rule doesn't meet configuration
        net/mlx4: Add A0 hybrid steering
        net/mlx4: Add mlx4_bitmap zone allocator
        net/mlx4: Add a check if there are too many reserved QPs
        net/mlx4: Change QP allocation scheme
        net/mlx4_core: Use tasklet for user-space CQ completion events
        net/mlx4_core: Mask out host side virtualization features for guests
        net/mlx4_en: Set csum level for encapsulated packets
        be2net: Export tunnel offloads only when a VxLAN tunnel is created
        gianfar: Fix dma check map error when DMA_API_DEBUG is enabled
        cxgb4/csiostor: Don't use MASTER_MUST for fw_hello call
        net: fec: only enable mdio interrupt before phy device link up
        net: fec: clear all interrupt events to support i.MX6SX
        net: fec: reset fep link status in suspend function
        net: sock: fix access via invalid file descriptor
        net: introduce helper macro for_each_cmsghdr
        ...
      70e71ca0
    • Linus Torvalds's avatar
      Merge tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · bae41e45
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "This became a fairly large pull request.  In addition to the usual
        driver updates / fixes, there have been a high amount of cleanups in
        ASoC area, as well as control API helpers and kernel documentations
        fixes touching through the whole tree.
      
        In the driver side, the biggest changes are the support for new Intel
        SoC found on new x86 machines, and the updates of FireWire dice and
        oxfw drivers.
      
        Some remarkable items are below:
      
        ALSA core:
         - PCM mmap code cleanup, removal of arch-dependent codes
         - PCM xrun injection support
         - PCM hwptr tracepoint support
         - Refactoring of snd_pcm_action(), simplification of PCM locking
         - Robustified sequecner auto-load functionality
         - New control API helpers and lots of cleanups along with them
         - Lots of kerneldoc fixes and cleanups
      
        USB-audio:
         - The mixer resume code was largely rewritten, and the devices with
           quirks are resumed properly.
         - New hardware support: Focusrite Scarlett, Digidesign Mbox1,
           Denon/Marantz DACs, Zoom R16/24
      
        FireWire:
         - DICE driver updates with better duplex and sync support, including
           MIDI support
         - New OXFW driver for Oxford Semiconductor FW970/971 chipset,
           including the previous LaCie Speakers device.  Fullduplex and MIDI
           support included as well as DICE driver.
      
        HD-audio:
         - Refactoring the driver-caps quirk handling in snd-hda-intel
         - More consistent control names representing the topology better
         - Fixups: HP mute LED with ALC268 codec, Ideapad S210 built-in mic
           fix, ASUS Z99He laptop EAPD
      
        ASoC:
         - Conversion of AC'97 drivers to use regmap, bringing us closer to
           the removal of the ASoC level I/O code
         - Clean up a lot of old drivers that were open coding things that
           have subsequently been implemented in the core
         - Some DAPM performance improvements
         - Removal of the now seldom used CODEC mutex
         - Lots of updates for the newer Intel SoC support, including support
           for the DSP and some Cherrytrail and Braswell machine drivers
         - Support for Samsung boards using rt5631 as the CODEC
         - Removal of the obsolete AFEB9260 machine driver
         - Driver support for the TI TS3A227E headset driver used in some
           Chrombeooks
      
        Others:
         - ASIHPI driver update and cleanups
         - Lots of dev_*() printk conversions
         - Lots of trivial cleanups for the codes spotted by Coccinelle"
      
      * tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (594 commits)
        ALSA: pcxhr: NULL dereference on probe failure
        ALSA: lola: NULL dereference on probe failure
        ALSA: hda - Add "eapd" model string for AD1986A codec
        ALSA: hda - Add EAPD fixup for ASUS Z99He laptop
        ALSA: oxfw: Add hwdep interface
        ALSA: oxfw: Add support for capture/playback MIDI messages
        ALSA: oxfw: add support for capturing PCM samples
        ALSA: oxfw: Add support AMDTP in-stream
        ALSA: oxfw: Add support for Behringer/Mackie devices
        ALSA: oxfw: Change the way to start stream
        ALSA: oxfw: Add proc interface for debugging purpose
        ALSA: oxfw: Change the way to make PCM rules/constraints
        ALSA: oxfw: Add support for AV/C stream format command to get/set supported stream formation
        ALSA: oxfw: Change the way to name card
        ALSA: dice: Add support for MIDI capture/playback
        ALSA: dice: Add support for capturing PCM samples
        ALSA: dice: Support for non SYT-Match sampling clock source mode
        ALSA: dice: Add support for duplex streams with synchronization
        ALSA: dice: Change the way to start stream
        ALSA: jack: Add dummy snd_jack_set_key() definition
        ...
      bae41e45
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · 7ef58b32
      Linus Torvalds authored
      Pull devicetree changes from Grant Likely:
       "Lots of activity in the devicetree code for v3.18.  Most of it is
        related to getting all of the overlay support code in place, but there
        are other important things in there.
      
        Highlights:
      
         - OF_RECONFIG notifiers for SPI, I2C and Platform devices.  Those
           subsystems can now respond to live changes to the device tree.
      
         - CONFIG_OF_OVERLAY method for applying live changes to the device
           tree
      
         - Removal of the of_allnodes list.  This used to be used to iterate
           over all the nodes in the device tree, but it is unnecessary
           because the same thing can be done by iterating over the list of
           child pointers.  Getting rid of of_allnodes saves some memory and
           avoids the possibility of of_allnodes being sorted differently from
           the child lists.
      
         - Support for retrieving original DTB blob via sysfs.  Needed by
           kexec.
      
         - More unittests
      
         - Documentation and minor bug fixes"
      
      * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux: (42 commits)
        of: Delete unnecessary check before calling "of_node_put()"
        of: Drop ->next pointer from struct device_node
        spi: Check for spi_of_notifier when CONFIG_OF_DYNAMIC=y
        of: support passing console options with stdout-path
        of: add optional options parameter to of_find_node_by_path()
        of: Add bindings for chosen node, stdout-path
        of: Remove unneeded and incorrect MODULE_DEVICE_TABLE
        ARM: dt: fix up PL011 device tree bindings
        of: base, fix of_property_read_string_helper kernel-doc
        of: remove select of non-existant OF_DEVICE config symbol
        spi/of: Add OF notifier handler
        spi/of: Create new device registration method and accessors
        i2c/of: Add OF_RECONFIG notifier handler
        i2c/of: Factor out Devicetree registration code
        of/overlay: Add overlay unittests
        of/overlay: Introduce DT overlay support
        of/reconfig: Add OF_DYNAMIC notifier for platform_bus_type
        of/reconfig: Always use the same structure for notifiers
        of/reconfig: Add debug output for OF_RECONFIG notifiers
        of/reconfig: Add empty stubs for the of_reconfig methods
        ...
      7ef58b32
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 413fd0e3
      Linus Torvalds authored
      Pull fbdev updates from Tomi Valkeinen:
       - support for mx6sl and mx6sx
       - OMAP HDMI audio rewrite to make it finally work
       - OMAP video PLL work to prepare for new DRA7xx SoCs
       - simplefb DT related improvements
      
      * tag 'fbdev-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (81 commits)
        video: uvesafb: Deletion of an unnecessary check before the function call "platform_device_put"
        video: fbdev-VIA: Deletion of an unnecessary check before the function call "framebuffer_release"
        video: fbdev-MMP: Deletion of an unnecessary check before the function call "mmp_unregister_path"
        video: mx3fb: Deletion of an unnecessary check before the function call "backlight_device_unregister"
        video: fbdev-OMAP2: Deletion of unnecessary checks before the function call "i2c_put_adapter"
        video: fbdev-SIS: Deletion of unnecessary checks before the function call "pci_dev_put"
        video: smscufx: Deletion of unnecessary checks before the function call "vfree"
        video: udlfb: Deletion of unnecessary checks before the function call "vfree"
        video: uvesafb: Deletion of an unnecessary check before the function call "uvesafb_free"
        video: fbdev-LCDC: Deletion of an unnecessary check before the function call "vfree"
        video: fbdev: arkfb: suppress build warning
        video: fbdev: s3fb: suppress build warning
        video: fbdev: vt8623fb: suppress build warning
        OMAPDSS: hdmi5: Fix bit field for IEC958_AES2_CON_SOURCE
        OMAPDSS: hdmi: Remove __exit qualifier from hdmi_uninit_output()
        OMAPDSS: hdmi5: Change hdmi_wp idlemode to to no_idle for audio playback
        OMAPDSS: Remove all references to obsolete HDMI audio callbacks
        ASoC: omap: Remove obsolete HDMI audio code and Kconfig options
        OMAPDSS: hdmi5: Register ASoC platform device for omap hdmi audio
        OMAPDSS: hdmi5: Remove callbacks for the old ASoC DAI driver
        ...
      413fd0e3
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 6b9e2cea
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
       "virtio: virtio 1.0 support, misc patches
      
        This adds a lot of infrastructure for virtio 1.0 support.  Notable
        missing pieces: virtio pci, virtio balloon (needs spec extension),
        vhost scsi.
      
        Plus, there are some minor fixes in a couple of places.
      
        Note: some net drivers are affected by these patches.  David said he's
        fine with merging these patches through my tree.
      
        Rusty's on vacation, he acked using my tree for these, too"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (70 commits)
        virtio_ccw: finalize_features error handling
        virtio_ccw: future-proof finalize_features
        virtio_pci: rename virtio_pci -> virtio_pci_common
        virtio_pci: update file descriptions and copyright
        virtio_pci: split out legacy device support
        virtio_pci: setup config vector indirectly
        virtio_pci: setup vqs indirectly
        virtio_pci: delete vqs indirectly
        virtio_pci: use priv for vq notification
        virtio_pci: free up vq->priv
        virtio_pci: fix coding style for structs
        virtio_pci: add isr field
        virtio: drop legacy_only driver flag
        virtio_balloon: drop legacy_only driver flag
        virtio_ccw: rev 1 devices set VIRTIO_F_VERSION_1
        virtio: allow finalize_features to fail
        virtio_ccw: legacy: don't negotiate rev 1/features
        virtio: add API to detect legacy devices
        virtio_console: fix sparse warnings
        vhost: remove unnecessary forward declarations in vhost.h
        ...
      6b9e2cea
    • Linus Torvalds's avatar
      Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 14ba9a2e
      Linus Torvalds authored
      Pull mailbox framework updates from Jassi Brar.
      
      * 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        Mailbox: Add support for Platform Communication Channel
        mailbox/omap: adapt to the new mailbox framework
        mailbox: add tx_prepare client callback
        mailbox: Don't unnecessarily re-arm the polling timer
      14ba9a2e
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · b859e7d1
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "Not a huge amount going on this release, mainly new drivers (there's a
        couple more waiting that didn't quite make the cut for this release
        too):
      
         - An interface for querying if the current transfer is the last in a
           message, allowing controllers that need special handling for the
           final transfer to use the core message parsing.
         - Support for Amlogic Meson SPIFC, Imagination Technologies SFPI,
           Intel Quark X1000 and Samsung Exynos 7 controllers"
      
      * tag 'spi-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (38 commits)
        spi/s3c64xx: Remove redundant runtime PM management
        spi: fsl-spi: remove unused variable assignment
        spi: spi-fsl-spi: Return an error code in fsl_spi_do_one_msg()
        spi: core: Do not mangle error code from kthread_run()
        spi: fsl-espi: add (un)prepare_transfer_hardware calls to save power if SPI is not in use
        spi: fsl-(e)spi: migrate to generic master queueing
        spi/txx9: Deletion of an unnecessary check before the function call "clk_disable"
        spi: cadence: Fix 3-to-8 mux mode
        spi: cadence: Init HW after reading devicetree attributes
        spi: meson: Select REGMAP_MMIO
        spi: s3c64xx: add support for exynos7 SPI controller
        spi: spi-pxa2xx: SPI support for Intel Quark X1000
        spi: meson: meson_spifc_setup_speed() can be static
        spi: spi-pxa2xx: Add helpers for regiseters' accessing
        spi: spi-mxs: Fix mapping from vmalloc-ed buffer to scatter list
        spi: atmel: introduce probe deferring
        spi: atmel: remove compat for non DT board when requesting dma chan
        spi: meson: Add support for Amlogic Meson SPIFC
        spi: meson: Add device tree bindings documentation for SPIFC
        spi: core: Add spi_transfer_is_last() helper
        ...
      b859e7d1
    • Linus Torvalds's avatar
      Merge tag 'edac/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac · 709d9f09
      Linus Torvalds authored
      Pull edac updates from Mauro Carvalho Chehab:
       - Broadwell-DE support on sb-edac driver
       - Some fixes at sb-edac driver
      
      * tag 'edac/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
        sb_edac: Fix typo computing number of banks
        sb_edac: Add support for Broadwell-DE processor
        sb_edac: Fix discovery of top-of-low-memory for Haswell
        sb_edac: Fix erroneous bytes->gigabytes conversion
        sb_edac: Fix off-by-one error in number of channels
      709d9f09
    • Marcelo Leitner's avatar
      Fix race condition between vxlan_sock_add and vxlan_sock_release · 00c83b01
      Marcelo Leitner authored
      Currently, when trying to reuse a socket, vxlan_sock_add will grab
      vn->sock_lock, locate a reusable socket, inc refcount and release
      vn->sock_lock.
      
      But vxlan_sock_release() will first decrement refcount, and then grab
      that lock. refcnt operations are atomic but as currently we have
      deferred works which hold vs->refcnt each, this might happen, leading to
      a use after free (specially after vxlan_igmp_leave):
      
        CPU 1                            CPU 2
      
      deferred work                    vxlan_sock_add
        ...                              ...
                                         spin_lock(&vn->sock_lock)
                                         vs = vxlan_find_sock();
        vxlan_sock_release
          dec vs->refcnt, reaches 0
          spin_lock(&vn->sock_lock)
                                         vxlan_sock_hold(vs), refcnt=1
                                         spin_unlock(&vn->sock_lock)
          hlist_del_rcu(&vs->hlist);
          vxlan_notify_del_rx_port(vs)
          spin_unlock(&vn->sock_lock)
      
      So when we look for a reusable socket, we check if it wasn't freed
      already before reusing it.
      Signed-off-by: default avatarMarcelo Ricardo Leitner <mleitner@redhat.com>
      Fixes: 7c47cedf ("vxlan: move IGMP join/leave to work queue")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00c83b01
    • Cyrille Pitchen's avatar
    • Linus Torvalds's avatar
      Merge tag 'media/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 2183a588
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       - Two new dvb frontend drivers: mn88472 and mn88473
       - A new driver for some PCIe DVBSky cards
       - A new remote controller driver: meson-ir
       - One LIRC staging driver got rewritten and promoted to mainstream:
         igorplugusb
       - A new tuner driver (m88rs6000t)
       - The old omap2 media driver got removed from staging.  This driver
         uses an old DMA API and it is likely broken on recent kernels.
         Nobody cared enough to fix it
       - Media bus format moved to a separate header, as DRM will also use the
         definitions there
       - mem2mem_testdev were renamed to vim2m, in order to use the same
         naming convention taken by the other virtual test driver (vivid)
       - Added a new driver for coda SoC (coda-jpeg)
       - The cx88 driver got converted to use videobuf2 core
       - Make DMABUF export buffer to work with DMA Scatter/Gather and Vmalloc
         cores
       - Lots of other fixes, improvements and cleanups on the drivers.
      
      * tag 'media/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (384 commits)
        [media] mn88473: One function call less in mn88473_init() after error
        [media] mn88473: Remove uneeded check before release_firmware()
        [media] lirc_zilog: Deletion of unnecessary checks before vfree()
        [media] MAINTAINERS: Add myself as img-ir maintainer
        [media] img-ir: Don't set driver's module owner
        [media] img-ir: Depend on METAG or MIPS or COMPILE_TEST
        [media] img-ir/hw: Drop [un]register_decoder declarations
        [media] img-ir/hw: Fix potential deadlock stopping timer
        [media] img-ir/hw: Always read data to clear buffer
        [media] redrat3: ensure dma is setup properly
        [media] ddbridge: remove unneeded check before dvb_unregister_device()
        [media] si2157: One function call less in si2157_init() after error
        [media] tuners: remove uneeded checks before release_firmware()
        [media] arm: omap2: rx51-peripherals: fix build warning
        [media] stv090x: add an extra protetion against buffer overflow
        [media] stv090x: Remove an unreachable code
        [media] stv090x: Some whitespace cleanups
        [media] em28xx: checkpatch cleanup: whitespaces/new lines cleanups
        [media] si2168: add support for firmware files in new format
        [media] si2168: debug printout for firmware version
        ...
      2183a588
    • David S. Miller's avatar
      Merge branch 'mlx4-next' · efef7939
      David S. Miller authored
      Or Gerlitz says:
      
      ====================
      mlx4 driver update
      
      This series from Matan, Jenny, Dotan and myself is mostly about adding
      support to a new performance optimized flow steering mode (patches 4-10).
      
      The 1st two patches are small fixes (one for VXLAN and one for SRIOV),
      and the third patch is a fix to avoid hard-lockup situation when many
      (hunderds) processes holding user-space QPs/CQs get events.
      
      Matan and Or.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      efef7939
    • Matan Barak's avatar
      net/mlx4: Add support for A0 steering · 7d077cd3
      Matan Barak authored
      Add the required firmware commands for A0 steering and a way to enable
      that. The firmware support focuses on INIT_HCA, QUERY_HCA, QUERY_PORT,
      QUERY_DEV_CAP and QUERY_FUNC_CAP commands. Those commands are used
      to configure and query the device.
      
      The different A0 DMFS (steering) modes are:
      
      Static - optimized performance, but flow steering rules are
      limited. This mode should be choosed explicitly by the user
      in order to be used.
      
      Dynamic - this mode should be explicitly choosed by the user.
      In this mode, the FW works in optimized steering mode as long as
      it can and afterwards automatically drops to classic (full) DMFS.
      
      Disable - this mode should be explicitly choosed by the user.
      The user instructs the system not to use optimized steering, even if
      the FW supports Dynamic A0 DMFS (and thus will be able to use optimized
      steering in Default A0 DMFS mode).
      
      Default - this mode is implicitly choosed. In this mode, if the FW
      supports Dynamic A0 DMFS, it'll work in this mode. Otherwise, it'll
      work at Disable A0 DMFS mode.
      
      Under SRIOV configuration, when the A0 steering mode is enabled,
      older guest VF drivers who aren't using the RX QP allocation flag
      (MLX4_RESERVE_A0_QP) will get a QP from the general range and
      fail when attempting to register a steering rule. To avoid that,
      the PF context behaviour is changed once on A0 static mode, to
      require support for the allocation flag in VF drivers too.
      
      In order to enable A0 steering, we use log_num_mgm_entry_size param.
      If the value of the parameter is not positive, we treat the absolute
      value of log_num_mgm_entry_size as a bit field. Setting bit 2 of this
      bit field enables static A0 steering.
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7d077cd3
    • Matan Barak's avatar
      net/mlx4: Refactor QUERY_PORT · 431df8c7
      Matan Barak authored
      Currently QUERY_PORT is done as a part of QUERY_DEV_CAP firmware command.
      
      Since we would like to use it without querying all device capabilities,
      extract this part to be a function of its own.
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      431df8c7
    • Matan Barak's avatar
      net/mlx4_core: Add explicit error message when rule doesn't meet configuration · 579d059b
      Matan Barak authored
      When a given flow steering rule is invalid in respect to the current
      steering configuration, print the correct error message to the system log.
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      579d059b
    • Matan Barak's avatar
      net/mlx4: Add A0 hybrid steering · d57febe1
      Matan Barak authored
      A0 hybrid steering is a form of high performance flow steering.
      By using this mode, mlx4 cards use a fast limited table based steering,
      in order to enable fast steering of unicast packets to a QP.
      
      In order to implement A0 hybrid steering we allocate resources
      from different zones:
      (1) General range
      (2) Special MAC-assigned QPs [RSS, Raw-Ethernet] each has its own region.
      
      When we create a rss QP or a raw ethernet (A0 steerable and BF ready) QP,
      we try hard to allocate the QP from range (2). Otherwise, we try hard not
      to allocate from this  range. However, when the system is pushed to its
      limits and one needs every resource, the allocator uses every region it can.
      
      Meaning, when we run out of raw-eth qps, the allocator allocates from the
      general range (and the special-A0 area is no longer active). If we run out
      of RSS qps, the mechanism tries to allocate from the raw-eth QP zone. If that
      is also exhausted, the allocator will allocate from the general range
      (and the A0 region is no longer active).
      
      Note that if a raw-eth qp is allocated from the general range, it attempts
      to allocate the range such that bits 6 and 7 (blueflame bits) in the
      QP number are not set.
      
      When the feature is used in SRIOV, the VF has to notify the PF what
      kind of QP attributes it needs. In order to do that, along with the
      "Eth QP blueflame" bit, we reserve a new "A0 steerable QP". According
      to the combination of these bits, the PF tries to allocate a suitable QP.
      
      In order to maintain backward compatibility (with older PFs), the PF
      notifies which QP attributes it supports via QUERY_FUNC_CAP command.
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d57febe1
    • Matan Barak's avatar
      net/mlx4: Add mlx4_bitmap zone allocator · 7a89399f
      Matan Barak authored
      The zone allocator is a mechanism which manages a few mlx4_bitmaps.
      
      When allocating a resource, the user indicates the desired zone of
      which this resource will be allocated from. If possible, the resource
      will be allocated from this zone. Otherwise, the resource will be
      allocated from a less-than, equal-to, higher-than priority zone,
      according to the desired zone's properties with that respective
      allocation order.
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7a89399f
    • Dotan Barak's avatar
      net/mlx4: Add a check if there are too many reserved QPs · ab256e5a
      Dotan Barak authored
      The number of reserved QPs is affected both from the firmware and
      from the driver's requirements. This patch adds a check that
      validates that this number is indeed feasable.
      Signed-off-by: default avatarDotan Barak <dotanb@dev.mellanox.co.il>
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ab256e5a
    • Eugenia Emantayev's avatar
      net/mlx4: Change QP allocation scheme · ddae0349
      Eugenia Emantayev authored
      When using BF (Blue-Flame), the QPN overrides the VLAN, CV, and SV fields
      in the WQE. Thus, BF may only be used for QPNs with bits 6,7 unset.
      
      The current Ethernet driver code reserves a Tx QP range with 256b alignment.
      
      This is wrong because if there are more than 64 Tx QPs in use,
      QPNs >= base + 65 will have bits 6/7 set.
      
      This problem is not specific for the Ethernet driver, any entity that
      tries to reserve more than 64 BF-enabled QPs should fail. Also, using
      ranges is not necessary here and is wasteful.
      
      The new mechanism introduced here will support reservation for
      "Eth QPs eligible for BF" for all drivers: bare-metal, multi-PF, and VFs
      (when hypervisors support WC in VMs). The flow we use is:
      
      1. In mlx4_en, allocate Tx QPs one by one instead of a range allocation,
         and request "BF enabled QPs" if BF is supported for the function
      
      2. In the ALLOC_RES FW command, change param1 to:
      a. param1[23:0]  - number of QPs
      b. param1[31-24] - flags controlling QPs reservation
      
      Bit 31 refers to Eth blueflame supported QPs. Those QPs must have
      bits 6 and 7 unset in order to be used in Ethernet.
      
      Bits 24-30 of the flags are currently reserved.
      
      When a function tries to allocate a QP, it states the required attributes
      for this QP. Those attributes are considered "best-effort". If an attribute,
      such as Ethernet BF enabled QP, is a must-have attribute, the function has
      to check that attribute is supported before trying to do the allocation.
      
      In a lower layer of the code, mlx4_qp_reserve_range masks out the bits
      which are unsupported. If SRIOV is used, the PF validates those attributes
      and masks out unsupported attributes as well. In order to notify VFs which
      attributes are supported, the VF uses QUERY_FUNC_CAP command. This command's
      mailbox is filled by the PF, which notifies which QP allocation attributes
      it supports.
      Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.co.il>
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ddae0349
    • Matan Barak's avatar
      net/mlx4_core: Use tasklet for user-space CQ completion events · 3dca0f42
      Matan Barak authored
      Previously, we've fired all our completion callbacks straight from our ISR.
      
      Some of those callbacks were lightweight (for example, mlx4_en's and
      IPoIB napi callbacks), but some of them did more work (for example,
      the user-space RDMA stack uverbs' completion handler). Besides that,
      doing more than the minimal work in ISR is generally considered wrong,
      it could even lead to a hard lockup of the system. Since when a lot
      of completion events are generated by the hardware, the loop over those
      events could be so long, that we'll get into a hard lockup by the system
      watchdog.
      
      In order to avoid that, add a new way of invoking completion events
      callbacks. In the interrupt itself, we add the CQs which receive completion
      event to a per-EQ list and schedule a tasklet. In the tasklet context
      we loop over all the CQs in the list and invoke the user callback.
      Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3dca0f42
    • Or Gerlitz's avatar
      net/mlx4_core: Mask out host side virtualization features for guests · 383677da
      Or Gerlitz authored
      When VFs (guests in this context) issue the QUERY_DEV_CAP command, they
      need not be told that host side virtualization features such as VST, FSM
      (MAC anti-spoofing) and running > 80 VFs are supported by the device.
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      383677da
    • Or Gerlitz's avatar
      net/mlx4_en: Set csum level for encapsulated packets · c58942f2
      Or Gerlitz authored
      This was dropped by mistake for the napi_gro_frags flow, fix that.
      
      Fixes: dd65beac ('net/mlx4_en: Extend usage of napi_gro_frags')
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c58942f2
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · e28870f9
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       - Clean-up leaky resources; pwm_bl
       - Simplify Device Tree initialisation; lp855x_bl
       - Add Regulator support; lp855x
       - Remove Bryan from the Maintainer list -- new baby, no time :)
      
      * tag 'backlight-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        MAINTAINERS: Remove my name from Backlight subsystem
        backlight: lp855x: Add supply regulator to lp855x
        backlight: lp855x: Refactor DT parsing code
        backlight: pwm: Clean-up pwm requested using legacy API
      e28870f9
    • Sriharsha Basavapatna's avatar
      be2net: Export tunnel offloads only when a VxLAN tunnel is created · 630f4b70
      Sriharsha Basavapatna authored
      The encapsulated offload flags shouldn't be unconditionally exported
      to the stack. The stack expects offloading to work across all tunnel
      types when those flags are set. This would break other tunnels (like
      GRE) since be2net currently supports tunnel offload for VxLAN only.
      
      Also, with VxLANs Skyhawk-R can offload only 1 UDP dport. If more
      than 1 UDP port is added, we should disable offloads in that case too.
      Signed-off-by: default avatarSriharsha Basavapatna <sriharsha.basavapatna@emulex.com>
      Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      630f4b70
    • Kevin Hao's avatar
      gianfar: Fix dma check map error when DMA_API_DEBUG is enabled · 0a4b5a24
      Kevin Hao authored
      We need to use dma_mapping_error() to check the dma address returned
      by dma_map_single/page(). Otherwise we would get warning like this:
        WARNING: at lib/dma-debug.c:1140
        Modules linked in:
        CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.18.0-rc2-next-20141029 #196
        task: c0834300 ti: effe6000 task.ti: c0874000
        NIP: c02b2c98 LR: c02b2c98 CTR: c030abc4
        REGS: effe7d70 TRAP: 0700   Not tainted  (3.18.0-rc2-next-20141029)
        MSR: 00021000 <CE,ME>  CR: 22044022  XER: 20000000
      
        GPR00: c02b2c98 effe7e20 c0834300 00000098 00021000 00000000 c030b898 00000003
        GPR08: 00000001 00000000 00000001 749eec9d 22044022 1001abe0 00000020 ef278678
        GPR16: ef278670 ef278668 ef278660 070a8040 c087f99c c08cdc60 00029000 c0840d44
        GPR24: c08be6e8 c0840000 effe7e78 ef041340 00000600 ef114e10 00000000 c08be6e0
        NIP [c02b2c98] check_unmap+0x51c/0x9e4
        LR [c02b2c98] check_unmap+0x51c/0x9e4
        Call Trace:
        [effe7e20] [c02b2c98] check_unmap+0x51c/0x9e4 (unreliable)
        [effe7e70] [c02b31d8] debug_dma_unmap_page+0x78/0x8c
        [effe7ed0] [c03d1640] gfar_clean_rx_ring+0x208/0x488
        [effe7f40] [c03d1a9c] gfar_poll_rx_sq+0x3c/0xa8
        [effe7f60] [c04f8714] net_rx_action+0xc0/0x178
        [effe7f90] [c00435a0] __do_softirq+0x100/0x1fc
        [effe7fe0] [c0043958] irq_exit+0xa4/0xc8
        [effe7ff0] [c000d14c] call_do_irq+0x24/0x3c
        [c0875e90] [c00048a0] do_IRQ+0x8c/0xf8
        [c0875eb0] [c000ed10] ret_from_except+0x0/0x18
      
      For TX, we need to unmap the pages which has already been mapped and
      free the skb before return.
      
      For RX, move the dma mapping and error check to gfar_new_skb(). We
      would reuse the original skb in the rx ring when either allocating
      skb failure or dma mapping error.
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Signed-off-by: default avatarClaudiu Manoil <claudiu.manoil@freescale.com>
      Reviewed-by: default avatarClaudiu Manoil <claudiu.manoil@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a4b5a24
    • Hariprasad Shenai's avatar
      cxgb4/csiostor: Don't use MASTER_MUST for fw_hello call · 666224d4
      Hariprasad Shenai authored
      Remove use of calls into t4_fw_hello() with MASTER_MUST, which results in
      FW_HELLO_CMD_MASTERFORCE being set. The firmware doesn't support this and of
      course any existing PF Drivers will totally go for a toss.
      Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      666224d4
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · c1b30e4d
      Linus Torvalds authored
      Pull pin control changes from Linus Walleij:
       "Here is a stash of pin control changes I have collected for the v3.19
        series.  Mainly new hardware support, with Intels new embedded SoC as
        the especially interesting thing standing out, fully using the
        subsystem.
      
         - Force conversion of the ux500 pin control device trees and parsers
           to use the generic pin control bindings.
         - New driver and device tree bindings for the Qualcomm PMIC MPP pin
           controller and GPIO.
         - Some ACPI infrastructure for pin controllers.
         - New driver for the Intel CherryView/Braswell pin controller, the
           first Intel pin controller to fully take advantage of the pin
           control subsystem.
         - Support the Freescale i.MX VF610 variant.
         - Support the sunxi A80 variant.
         - Support the Samsung Exynos 4415 and Exynos 7 variants.
         - Split out Intel pin controllers to their own subdirectory.
         - A large slew of rockchip pin control updates, including
           suspend/resume support.
         - A large slew of Samsung Exynos pin controller updates.
         - Various minor updates and fixes"
      
      * tag 'pinctrl-v3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (49 commits)
        pinctrl: at91: enhance (debugfs) at91_gpio_dbg_show
        pinctrl: meson: add device tree bindings documentation
        gpio: tz1090: Fix error handling of irq_of_parse_and_map
        pinctrl: tz1090-pinctrl.txt: Fix typo in binding
        pinctrl: pinconf-generic: Declare dt_params/conf_items const
        pinctrl: exynos: Add support for Exynos4415
        pinctrl: exynos: Add initial driver data for Exynos7
        pinctrl: exynos: Add irq_chip instance for Exynos7 wakeup interrupts
        pinctrl: exynos: Consolidate irq domain callbacks
        pinctrl: exynos: Generalize the eint16_31 demux code
        pinctrl: samsung: Separate per-bank init and runtime data
        pinctrl: samsung: Constify samsung_pin_ctrl struct
        pinctrl: samsung: Constify samsung_pin_bank_type struct
        pinctrl: samsung: Drop unused label field in samsung_pin_ctrl struct
        pinctrl: samsung: Make samsung_pinctrl_get_soc_data use ERR_PTR()
        pinctrl: Add Intel Cherryview/Braswell pin controller support
        gpio / ACPI: Add knowledge about pin controllers to acpi_get_gpiod()
        pinctrl: Fix path error in documentation
        pinctrl: rockchip: save and restore gpio6_c6 pinmux in suspend/resume
        pinctrl: rockchip: add suspend/resume functions
        ...
      c1b30e4d
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 92a578b0
      Linus Torvalds authored
      Pull ACPI and power management updates from Rafael Wysocki:
       "This time we have some more new material than we used to have during
        the last couple of development cycles.
      
        The most important part of it to me is the introduction of a unified
        interface for accessing device properties provided by platform
        firmware.  It works with Device Trees and ACPI in a uniform way and
        drivers using it need not worry about where the properties come from
        as long as the platform firmware (either DT or ACPI) makes them
        available.  It covers both devices and "bare" device node objects
        without struct device representation as that turns out to be necessary
        in some cases.  This has been in the works for quite a few months (and
        development cycles) and has been approved by all of the relevant
        maintainers.
      
        On top of that, some drivers are switched over to the new interface
        (at25, leds-gpio, gpio_keys_polled) and some additional changes are
        made to the core GPIO subsystem to allow device drivers to manipulate
        GPIOs in the "canonical" way on platforms that provide GPIO
        information in their ACPI tables, but don't assign names to GPIO lines
        (in which case the driver needs to do that on the basis of what it
        knows about the device in question).  That also has been approved by
        the GPIO core maintainers and the rfkill driver is now going to use
        it.
      
        Second is support for hardware P-states in the intel_pstate driver.
        It uses CPUID to detect whether or not the feature is supported by the
        processor in which case it will be enabled by default.  However, it
        can be disabled entirely from the kernel command line if necessary.
      
        Next is support for a platform firmware interface based on ACPI
        operation regions used by the PMIC (Power Management Integrated
        Circuit) chips on the Intel Baytrail-T and Baytrail-T-CR platforms.
        That interface is used for manipulating power resources and for
        thermal management: sensor temperature reporting, trip point setting
        and so on.
      
        Also the ACPI core is now going to support the _DEP configuration
        information in a limited way.  Basically, _DEP it supposed to reflect
        off-the-hierarchy dependencies between devices which may be very
        indirect, like when AML for one device accesses locations in an
        operation region handled by another device's driver (usually, the
        device depended on this way is a serial bus or GPIO controller).  The
        support added this time is sufficient to make the ACPI battery driver
        work on Asus T100A, but it is general enough to be able to cover some
        other use cases in the future.
      
        Finally, we have a new cpufreq driver for the Loongson1B processor.
      
        In addition to the above, there are fixes and cleanups all over the
        place as usual and a traditional ACPICA update to a recent upstream
        release.
      
        As far as the fixes go, the ACPI LPSS (Low-power Subsystem) driver for
        Intel platforms should be able to handle power management of the DMA
        engine correctly, the cpufreq-dt driver should interact with the
        thermal subsystem in a better way and the ACPI backlight driver should
        handle some more corner cases, among other things.
      
        On top of the ACPICA update there are fixes for race conditions in the
        ACPICA's interrupt handling code which might lead to some random and
        strange looking failures on some systems.
      
        In the cleanups department the most visible part is the series of
        commits targeted at getting rid of the CONFIG_PM_RUNTIME configuration
        option.  That was triggered by a discussion regarding the generic
        power domains code during which we realized that trying to support
        certain combinations of PM config options was painful and not really
        worth it, because nobody would use them in production anyway.  For
        this reason, we decided to make CONFIG_PM_SLEEP select
        CONFIG_PM_RUNTIME and that lead to the conclusion that the latter
        became redundant and CONFIG_PM could be used instead of it.  The
        material here makes that replacement in a major part of the tree, but
        there will be at least one more batch of that in the second part of
        the merge window.
      
        Specifics:
      
         - Support for retrieving device properties information from ACPI _DSD
           device configuration objects and a unified device properties
           interface for device drivers (and subsystems) on top of that.  As
           stated above, this works with Device Trees and ACPI and allows
           device drivers to be written in a platform firmware (DT or ACPI)
           agnostic way.  The at25, leds-gpio and gpio_keys_polled drivers are
           now going to use this new interface and the GPIO subsystem is
           additionally modified to allow device drivers to assign names to
           GPIO resources returned by ACPI _CRS objects (in case _DSD is not
           present or does not provide the expected data).  The changes in
           this set are mostly from Mika Westerberg, Rafael J Wysocki, Aaron
           Lu, and Darren Hart with some fixes from others (Fabio Estevam,
           Geert Uytterhoeven).
      
         - Support for Hardware Managed Performance States (HWP) as described
           in Volume 3, section 14.4, of the Intel SDM in the intel_pstate
           driver.  CPUID is used to detect whether or not the feature is
           supported by the processor.  If supported, it will be enabled
           automatically unless the intel_pstate=no_hwp switch is present in
           the kernel command line.  From Dirk Brandewie.
      
         - New Intel Broadwell-H ID for intel_pstate (Dirk Brandewie).
      
         - Support for firmware interface based on ACPI operation regions used
           by the PMIC chips on the Intel Baytrail-T and Baytrail-T-CR
           platforms for power resource control and thermal management (Aaron
           Lu).
      
         - Limited support for retrieving off-the-hierarchy dependencies
           between devices from ACPI _DEP device configuration objects and
           deferred probing support for the ACPI battery driver based on the
           _DEP information to make that driver work on Asus T100A (Lan
           Tianyu).
      
         - New cpufreq driver for the Loongson1B processor (Kelvin Cheung).
      
         - ACPICA update to upstream revision 20141107 which only affects
           tools (Bob Moore).
      
         - Fixes for race conditions in the ACPICA's interrupt handling code
           and in the ACPI code related to system suspend and resume (Lv Zheng
           and Rafael J Wysocki).
      
         - ACPI core fix for an RCU-related issue in the ioremap() regions
           management code that slowed down significantly after CPUs had been
           allowed to enter idle states even if they'd had RCU callbakcs
           queued and triggered some problems in certain proprietary graphics
           driver (and elsewhere).  The fix replaces synchronize_rcu() in that
           code with synchronize_rcu_expedited() which makes the issue go
           away.  From Konstantin Khlebnikov.
      
         - ACPI LPSS (Low-Power Subsystem) driver fix to handle power
           management of the DMA engine included into the LPSS correctly.  The
           problem is that the DMA engine doesn't have ACPI PM support of its
           own and it simply is turned off when the last LPSS device having
           ACPI PM support goes into D3cold.  To work around that, the PM
           domain used by the ACPI LPSS driver is redesigned so at least one
           device with ACPI PM support will be on as long as the DMA engine is
           in use.  From Andy Shevchenko.
      
         - ACPI backlight driver fix to avoid using it on "Win8-compatible"
           systems where it doesn't work and where it was used by default by
           mistake (Aaron Lu).
      
         - Assorted minor ACPI core fixes and cleanups from Tomasz Nowicki,
           Sudeep Holla, Huang Rui, Hanjun Guo, Fabian Frederick, and Ashwin
           Chaugule (mostly related to the upcoming ARM64 support).
      
         - Intel RAPL (Running Average Power Limit) power capping driver fixes
           and improvements including new processor IDs (Jacob Pan).
      
         - Generic power domains modification to power up domains after
           attaching devices to them to meet the expectations of device
           drivers and bus types assuming devices to be accessible at probe
           time (Ulf Hansson).
      
         - Preliminary support for controlling device clocks from the generic
           power domains core code and modifications of the ARM/shmobile
           platform to use that feature (Ulf Hansson).
      
         - Assorted minor fixes and cleanups of the generic power domains core
           code (Ulf Hansson, Geert Uytterhoeven).
      
         - Assorted minor fixes and cleanups of the device clocks control code
           in the PM core (Geert Uytterhoeven, Grygorii Strashko).
      
         - Consolidation of device power management Kconfig options by making
           CONFIG_PM_SLEEP select CONFIG_PM_RUNTIME and removing the latter
           which is now redundant (Rafael J Wysocki and Kevin Hilman).  That
           is the first batch of the changes needed for this purpose.
      
         - Core device runtime power management support code cleanup related
           to the execution of callbacks (Andrzej Hajda).
      
         - cpuidle ARM support improvements (Lorenzo Pieralisi).
      
         - cpuidle cleanup related to the CPUIDLE_FLAG_TIME_VALID flag and a
           new MAINTAINERS entry for ARM Exynos cpuidle (Daniel Lezcano and
           Bartlomiej Zolnierkiewicz).
      
         - New cpufreq driver callback (->ready) to be executed when the
           cpufreq core is ready to use a given policy object and cpufreq-dt
           driver modification to use that callback for cooling device
           registration (Viresh Kumar).
      
         - cpufreq core fixes and cleanups (Viresh Kumar, Vince Hsu, James
           Geboski, Tomeu Vizoso).
      
         - Assorted fixes and cleanups in the cpufreq-pcc, intel_pstate,
           cpufreq-dt, pxa2xx cpufreq drivers (Lenny Szubowicz, Ethan Zhao,
           Stefan Wahren, Petr Cvek).
      
         - OPP (Operating Performance Points) framework modification to allow
           OPPs to be removed too and update of a few cpufreq drivers
           (cpufreq-dt, exynos5440, imx6q, cpufreq) to remove OPPs (added
           during initialization) on driver removal (Viresh Kumar).
      
         - Hibernation core fixes and cleanups (Tina Ruchandani and Markus
           Elfring).
      
         - PM Kconfig fix related to CPU power management (Pankaj Dubey).
      
         - cpupower tool fix (Prarit Bhargava)"
      
      * tag 'pm+acpi-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (120 commits)
        i2c-omap / PM: Drop CONFIG_PM_RUNTIME from i2c-omap.c
        dmaengine / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        tools: cpupower: fix return checks for sysfs_get_idlestate_count()
        drivers: sh / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        e1000e / igb / PM: Eliminate CONFIG_PM_RUNTIME
        MMC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        MFD / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        media / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        input / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        leds: leds-gpio: Fix multiple instances registration without 'label' property
        iio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        i2c-hid / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        hwrandom / exynos / PM: Use CONFIG_PM in #ifdef
        block / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        USB / PM: Drop CONFIG_PM_RUNTIME from the USB core
        PM: Merge the SET*_RUNTIME_PM_OPS() macros
        ...
      92a578b0
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.19-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · c75059c4
      Linus Torvalds authored
      Pull PCI changes from Bjorn Helgaas:
       "Here are the PCI changes intended for v3.19.  I don't think there's
        anything very exciting here, but there was a lot of MSI-related stuff
        coming via Thomas.
      
        Details:
      
        NUMA
          - Allow numa_node override via sysfs (Prarit Bhargava)
      
        Resource management
          - Restore detection of read-only BARs (Myron Stowe)
          - Shrink decoding-disabled window while sizing BARs (Myron Stowe)
          - Add informational printk for invalid BARs (Myron Stowe)
          - Remove fixed parameter in pci_iov_resource_bar() (Myron Stowe)
      
        MSI
          - Add pci_msi_ignore_mask to prevent writes to MSI/MSI-X Mask Bits (Yijing Wang)
          - Revert "PCI: Add x86_msi.msi_mask_irq() and msix_mask_irq()" (Yijing Wang)
          - s390/MSI: Use __msi_mask_irq() instead of default_msi_mask_irq() (Yijing Wang)
      
        Virtualization
          - xen: Process failure for pcifront_(re)scan_root() (Chen Gang)
          - Make FLR and AF FLR reset warning messages different (Gavin Shan)
      
        Generic host bridge driver
          - Allocate config space windows after limiting bus number range (Lorenzo Pieralisi)
          - Convert to DT resource parsing API (Lorenzo Pieralisi)
      
        Freescale Layerscape
          - Add Freescale Layerscape PCIe driver (Minghuan Lian)
      
        NVIDIA Tegra
          - Do not build on 64-bit ARM (Thierry Reding)
          - Add Kconfig help text (Thierry Reding)
      
        Renesas R-Car
          - Make rcar_pci static (Jingoo Han)
      
        Samsung Exynos
          - Add exynos prefix to add_pcie_port(), pcie_init() (Jingoo Han)
      
        ST Microelectronics SPEAr13xx
          - Add spear prefix to add_pcie_port(), pcie_init() (Jingoo Han)
          - Make spear13xx_add_pcie_port() __init (Jingoo Han)
          - Remove unnecessary OOM message (Jingoo Han)
      
        TI DRA7xx
          - Add dra7xx prefix to add_pcie_port() (Jingoo Han)
          - Make dra7xx_add_pcie_port() __init (Jingoo Han)
      
        TI Keystone
          - Make ks_dw_pcie_msi_domain_ops static (Jingoo Han)
          - Remove unnecessary OOM message (Jingoo Han)
      
        Miscellaneous
          - Delete unnecessary NULL pointer checks (Markus Elfring)
          - Remove unused to_hotplug_slot() (Gavin Shan)
          - Whitespace cleanup (Jingoo Han)
          - Simplify if-return sequences (Quentin Lambert)"
      
      * tag 'pci-v3.19-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (28 commits)
        PCI: Remove fixed parameter in pci_iov_resource_bar()
        PCI: Add informational printk for invalid BARs
        PCI: tegra: Add Kconfig help text
        PCI: tegra: Do not build on 64-bit ARM
        PCI: spear: Remove unnecessary OOM message
        PCI: mvebu: Add a blank line after declarations
        PCI: designware: Add a blank line after declarations
        PCI: exynos: Remove unnecessary return statement
        PCI: imx6: Use tabs for indentation
        PCI: keystone: Remove unnecessary OOM message
        PCI: Remove unused and broken to_hotplug_slot()
        PCI: Make FLR and AF FLR reset warning messages different
        PCI: dra7xx: Add __init annotation to dra7xx_add_pcie_port()
        PCI: spear: Add __init annotation to spear13xx_add_pcie_port()
        PCI: spear: Rename add_pcie_port(), pcie_init() to spear13xx_add_pcie_port(), etc.
        PCI: dra7xx: Rename add_pcie_port() to dra7xx_add_pcie_port()
        PCI: layerscape: Add Freescale Layerscape PCIe driver
        PCI: Simplify if-return sequences
        PCI: Delete unnecessary NULL pointer checks
        PCI: Shrink decoding-disabled window while sizing BARs
        ...
      c75059c4
    • Linus Torvalds's avatar
      Merge tag 'ktest-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · f74ea368
      Linus Torvalds authored
      Pull ktest changes from Steven Rostedt:
       "The following ktest updates were done:
      
         - Fix handling the make kernelrelease change
         - Fix make_min_config that was broken by new bisect_config changes
         - Allow tests to undefine default options (not just being able to
           override them)
         - Print name of test (if defined) to start of test output"
      
      * tag 'ktest-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Add back "tail -1" to kernelrelease make
        ktest: Add name to running title
        ktest: Allow tests to undefine default options
        ktest: Fix make_min_config to handle new assign_configs call
        ktest: Use make -s kernelrelease
      f74ea368
    • David S. Miller's avatar
      Merge branch 'fec-next' · 52c9b12d
      David S. Miller authored
      Fugang Duan says:
      
      ====================
      net: fec: driver code clean and bug fix
      
      The patch serial include code clean and bug fix:
      Patch#1: avoid dummy operation during suspend/resume test.
      Patch#2: bug fix for i.MX6SX SOC that clean all interrupt events during MAC initial process.
      Patch#3: before phy device link status is up, only enable MDIO bus interrupt.
      
      V2:
      - Modify the comment form from David's suggestion.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52c9b12d
    • Nimrod Andy's avatar
      net: fec: only enable mdio interrupt before phy device link up · 0c5a3aef
      Nimrod Andy authored
      Before phy device link up, we only enable FEC mdio interrupt, which
      is more reasonable.
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0c5a3aef
    • Nimrod Andy's avatar
      net: fec: clear all interrupt events to support i.MX6SX · e17f7fec
      Nimrod Andy authored
      For i.MX6SX FEC controller, there have interrupt mask and event
      field extension. To support all SOCs FEC, we clear all interrupt
      events during MAVC initial process.
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e17f7fec
    • Nimrod Andy's avatar
      net: fec: reset fep link status in suspend function · 858eeb7d
      Nimrod Andy authored
      On some i.MX6 serial boards, phy power and refrence clock are supplied
      or controlled by SOC. When do suspend/resume test, the power and clock
      are disabled, so phy device link down.
      
      For current driver, fep->link is still up status, which cause extra operation
      like below code. To avoid the dumy operation, we set fep->link to down when
      phy device is real down.
      ...
      if (fep->link) {
      	napi_disable(&fep->napi);
      	netif_tx_lock_bh(ndev);
      	fec_stop(ndev);
      	netif_tx_unlock_bh(ndev);
      	napi_enable(&fep->napi);
      	fep->link = phy_dev->link;
      	status_change = 1;
      }
      ...
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      858eeb7d