Skip to content
  1. Dec 13, 2014
    • David S. Miller's avatar
      Merge branch 'gem' · eea3e8fd
      David S. Miller authored
      
      
      Cyrille Pitchen says:
      
      ====================
      net/macb: add TX multiqueue support for gem
      
      ChangeLog
      
      v3:
      - reduce the number of added #define in macb.h
      - simplify the queue initialization
      - add some more comments
      - use "hw_q" index when dealing with the hardware queue mask and "q" index for
        linux (software) queue index in "for" loops
      
      v2:
      fix compilation warnings for netdev_vdbg("%u...", queue - bp->queues, ...) calls
      
      v1:
      At the first look this patch may look quite big but it cannot be splitted.
      Each queue has its own dedicated IRQ, which should be handled.
      Also the Transmit Base Queue Pointer register of each available queue must be
      initialized before starting the transmission, otherwise the transmission will be
      halted immediately as HRESP errors are likely to occur.
      In addition, some fields had to be moved from struct macb into struct macb_queue
      so a common code could manage the queues.
      
      This patch was applied to net-next and tested on a sama5d36ek board, which embeds
      both macb and gem IPs, to check the backward compatibility.
      
      Also it was tested on a sama5dx FPGA platform with a gem designed to use 3 queues.
      Then we used the tc program to set a queue discipline policy as describe in the
      Documentation/networking/multiqueue.txt: we successfully used each queue.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eea3e8fd
    • Cyrille Pitchen's avatar
      net/macb: add TX multiqueue support for gem · 02c958dd
      Cyrille Pitchen authored
      
      
      gem devices designed with multiqueue CANNOT work without this patch.
      
      When probing a gem device, the driver must first prepare and enable the
      peripheral clock before accessing I/O registers. The second step is to read the
      MID register to find whether the device is a gem or an old macb IP.
      For gem devices, it reads the Design Configuration Register 6 (DCFG6) to
      compute to total number of queues, whereas macb devices always have a single
      queue.
      Only then it can call alloc_etherdev_mq() with the correct number of queues.
      This is the reason why the order of some initializations has been changed in
      macb_probe().
      Eventually, the dedicated IRQ and TX ring buffer descriptors are initialized
      for each queue.
      
      For backward compatibility reasons, queue0 uses the legacy registers ISR, IER,
      IDR, IMR, TBQP and RBQP. On the other hand, the other queues use new registers
      ISR[1..7], IER[1..7], IDR[1..7], IMR[1..7], TBQP[1..7] and RBQP[1..7].
      Except this hardware detail there is no real difference between queue0 and the
      others. The driver hides that thanks to the struct macb_queue.
      This structure allows us to share a common set of functions for all the queues.
      
      Besides when a TX error occurs, the gem MUST be halted before writing any of
      the TBQP registers to reset the relevant queue. An immediate side effect is
      that the other queues too aren't processed anymore by the gem.
      So macb_tx_error_task() calls netif_tx_stop_all_queues() to notify the Linux
      network engine that all transmissions are stopped.
      
      Also macb_tx_error_task() now calls spin_lock_irqsave() to prevent the
      interrupt handlers of the other queues from running as each of them may wake
      its associated queue up (please refer to macb_tx_interrupt()).
      
      Finally, as all queues have previously been stopped, they should be restarted
      calling netif_tx_start_all_queues() and setting the TSTART bit into the Network
      Control Register. Before this patch, when dealing with a single queue, the
      driver used to defer the reset of the faulting queue and the write of the
      TSTART bit until the next call of macb_start_xmit().
      As explained before, this bit is now set by macb_tx_error_task() too. That's
      why the faulting queue MUST be reset by setting the TX_USED bit in its first
      buffer descriptor before writing the TSTART bit.
      
      Queue 0 always exits and is the lowest priority when other queues are available.
      The higher the index of the queue is, the higher its priority is.
      
      When transmitting frames, the TX queue is selected by the skb->queue_mapping
      value. So queue discipline can be used to define the queue priority policy.
      
      Signed-off-by: default avatarCyrille Pitchen <cyrille.pitchen@atmel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02c958dd
    • David S. Miller's avatar
      Merge branch 'kill_tasklet_hi_enable' · d717e904
      David S. Miller authored
      
      
      Quentin Lambert says:
      
      ====================
      Remove redundant function
      
      tasklet_hi_enable and tasklet_enable are redundant. Since
      tasklet_hi_enable is used only 6 times in 1 file, the first
      patch changes calls to the function with calls to tasklet_enable.
      
      The second patch removes tasklet_hi_enable definition.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d717e904
    • Quentin Lambert's avatar
    • Quentin Lambert's avatar
      jme: replace calls to redundant function · 06f66529
      Quentin Lambert authored
      
      
      Calls to tasklet_hi_enable are replaced by calls to
      tasklet_enable since the 2 functions are redundant.
      
      Signed-off-by: default avatarQuentin Lambert <lambert.quentin@gmail.com>
      Signed-off-by: default avatarValentin Rothberg <valentinrothberg@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      06f66529
    • Tobias Klauser's avatar
      net: ethernet: davicom: Allow to select DM9000 for nios2 · a169758a
      Tobias Klauser authored
      
      
      This chip is present on older revisions of the DE2 development kit.
      
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a169758a
    • Tobias Klauser's avatar
      net: ethernet: smsc: Allow to select SMC91X for nios2 · 5499776b
      Tobias Klauser authored
      
      
      This chip is present on the Nios2 Development Kit 2C35.
      
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5499776b
    • Hariprasad Shenai's avatar
      cxgb4: Add support for QSA modules · 40e9de4b
      Hariprasad Shenai authored
      
      
      Firmware 1.12.25.0 added support for QSA module, adding the driver code for it.
      Also fixes some ethtool get settings for other module types.
      
      Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      40e9de4b
    • David S. Miller's avatar
      Merge branch 'cxgb4' · 3a923f5a
      David S. Miller authored
      
      
      Karen Xie says:
      
      ====================
      cxgb4/cxgbi: misc. fixes for cxgb4i
      
      This patch set fixes cxgb4i's tx credit calculation and adds handling of
      additional rx message and negative advice types. It also removes the duplicate
      code in cxgb4i to set the outgoing queues of a packet.
      
      Karen Xie (7):
      cxgb4i: fix tx immediate data credit check
      cxgb4i: fix credit check for tx_data_wr
      cxgb4/cxgb4i: set max. outgoing pdu length in the f/w
      cxgb4i: add more types of negative advice
      cxgb4i: handle non pdu-aligned rx data
      cxgb4i: use cxgb4's set_wr_txq() for setting outgoing queues
      libcxgbi: fix the debug print accessing skb after it is freed
      
      Sending to net as the fixes are mostly in the network area and it touches
      cxgb4's header file (t4fw_api.h).
      
      v2 corrects the "CHECK"s flagged by checkpatch.pl --strict.
      
      v3 splits the 3rd patch from v2 to two separate patches. Adds detailed commit
      messages and makes subject more concise. Patch 3/6 also changes the return
      value of is_neg_adv() from int to bool.
      
      v4 -- please ignore.
      
      v5 splits the 1st patch from v3 to two separate patches and reduces code
      duplication in make_tx_data_wr().
      
      v6 removed the code style cleanup in the 2nd patch. The style update will be
      addressed in a separate patch.
      
      v7 updates the 7th patch with more detailed commit message.
      
      v8 removes the duplicate subject lines from the message bodies.
      
      v9 reformatted the commit messages to be max. 80 characters per line.
      
      v10 rebased to net-next tree.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a923f5a
    • Karen Xie's avatar
      libcxgbi: fix freeing skb prematurely · ed481a33
      Karen Xie authored
      
      
      With debug turned on the debug print would access the skb after it is freed.
      Fix it to free the skb after the debug print.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ed481a33
    • Karen Xie's avatar
      cxgb4i: use set_wr_txq() to set tx queues · 2126bc5e
      Karen Xie authored
      
      
      use cxgb4's set_wr_txq() for setting of the tx queue for a outgoing packet.
      remove the similar function in cxgb4i.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2126bc5e
    • Karen Xie's avatar
      cxgb4i: handle non-pdu-aligned rx data · f7bcd2e1
      Karen Xie authored
      
      
      Abort the connection upon receiving of cpl_rx_data, which means the pdu cannot
      be recovered from the tcp stream. This generally is due to pdu header
      corruption.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7bcd2e1
    • Karen Xie's avatar
      cxgb4i: additional types of negative advice · 928567ad
      Karen Xie authored
      
      
      Treat both CPL_ERR_KEEPALV_NEG_ADVICE and CPL_ERR_PERSIST_NEG_ADVICE as
      negative advice.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      928567ad
    • Karen Xie's avatar
      cxgb4/cxgb4i: set the max. pdu length in firmware · 64bfead8
      Karen Xie authored
      
      
      Programs the firmware of the maximum outgoing iscsi pdu length per connection.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64bfead8
    • Karen Xie's avatar
      cxgb4i: fix credit check for tx_data_wr · 7857c62a
      Karen Xie authored
      
      
      make sure any tx credit related checking is done before adding the wr header.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7857c62a
    • Karen Xie's avatar
      cxgb4i: fix tx immediate data credit check · 84944d8c
      Karen Xie authored
      
      
      Only data skbs need the wr header added while control skbs do not. Make sure
      they are treated differently.
      
      Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      84944d8c
  2. Dec 12, 2014
    • Mark Salter's avatar
      net: phy: export fixed_phy_register() · 37e9a690
      Mark Salter authored
      
      
      When building the bcmgenet driver as module, I get:
      
      ERROR: "fixed_phy_register" [drivers/net/ethernet/broadcom/genet/genet.ko] undefined!
      
      commit b0ba512e225d72 ("net: bcmgenet: enable driver to work without device
      tree") which added a call to fixed_phy_register. But fixed_phy_register
      needs to be exported if used from a module.
      
      Signed-off-by: default avatarMark Salter <msalter@redhat.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      37e9a690
    • Alexander Duyck's avatar
      fib_trie: Fix trie balancing issue if new node pushes down existing node · e962f302
      Alexander Duyck authored
      
      
      This patch addresses an issue with the level compression of the fib_trie.
      Specifically in the case of adding a new leaf that triggers a new node to
      be added that takes the place of the old node.  The result is a trie where
      the 1 child tnode is on one side and one leaf is on the other which gives
      you a very deep trie.  Below is the script I used to generate a trie on
      dummy0 with a 10.X.X.X family of addresses.
      
        ip link add type dummy
        ipval=184549374
        bit=2
        for i in `seq 1 23`
        do
          ifconfig dummy0:$bit $ipval/8
          ipval=`expr $ipval - $bit`
          bit=`expr $bit \* 2`
        done
        cat /proc/net/fib_triestat
      
      Running the script before the patch:
      
      	Local:
      		Aver depth:     10.82
      		Max depth:      23
      		Leaves:         29
      		Prefixes:       30
      		Internal nodes: 27
      		  1: 26  2: 1
      		Pointers: 56
      	Null ptrs: 1
      	Total size: 5  kB
      
      After applying the patch and repeating:
      
      	Local:
      		Aver depth:     4.72
      		Max depth:      9
      		Leaves:         29
      		Prefixes:       30
      		Internal nodes: 12
      		  1: 3  2: 2  3: 7
      		Pointers: 70
      	Null ptrs: 30
      	Total size: 4  kB
      
      What this fix does is start the rebalance at the newly created tnode
      instead of at the parent tnode.  This way if there is a gap between the
      parent and the new node it doesn't prevent the new tnode from being
      coalesced with any pre-existing nodes that may have been pushed into one
      of the new nodes child branches.
      
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e962f302
    • Toshiaki Makita's avatar
      vlan: Add ability to always enable TSO/UFO · 53f6b708
      Toshiaki Makita authored
      
      
      Since the real device can segment packets by software, a vlan device
      can set TSO/UFO even when the real device doesn't have those features.
      Unlike GSO, this allows packets to be segmented after Qdisc.
      
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      53f6b708
    • Chun-Hao Lin's avatar
      r8169:update rtl8168g pcie ephy parameter · 5fbea337
      Chun-Hao Lin authored
      
      
      Add ephy parameter to rtl8168g.
      Also change the common function of rtl8168g from "rtl_hw_start_8168g_1" to
       "rtl_hw_start_8168g". And function "rtl_hw_start_8168g_1" is used for
      setting rtl8168g hardware parameters.
      
      Following is the explanation of what hardware parameter change for.
      rtl8168g may erroneous judge the PCIe signal quality and show the error bit
      on PCI configuration space when in PCIe low power mode.
      The following ephy parameters are for above issue.
      { 0x00, 0x0000,	0x0008 }
      { 0x0c, 0x37d0,	0x0820 }
      { 0x1e, 0x0000,	0x0001 }
      
      rtl8168g may return to PCIe L0 from PCIe L0s low power mode too slow.
      The following ephy parameter is for above issue.
      { 0x19, 0x8000,	0x0000 }
      
      Signed-off-by: default avatarChunhao Lin <hau@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5fbea337
    • Florian Fainelli's avatar
      net: dsa: bcm_sf2: force link for all fixed PHY devices · 7855f675
      Florian Fainelli authored
      For ports of the switch that we define as "fixed PHYs" such as MoCA, we
      would have our Port 7 special handling that would allow us to assert the
      link status indication.
      
      For other ports, such as e.g: RGMII_1 connected to a cable modem, we
      would rely on whatever the bootloader has left configured, which is a
      bad assumption to make, we really need to force the link status
      indication here.
      
      Fixes: 246d7f77
      
       ("net: dsa: add Broadcom SF2 switch driver")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7855f675
    • David S. Miller's avatar
      Merge branch 'dma_mb' · 697766df
      David S. Miller authored
      
      
      Alexander Duyck says:
      
      ====================
      arch: Add lightweight memory barriers for coherent memory access
      
      These patches introduce two new primitives for synchronizing cache coherent
      memory writes and reads.  These two new primitives are:
      
      	dma_rmb()
      	dma_wmb()
      
      The first patch cleans up some unnecessary overhead related to the
      definition of read_barrier_depends, smp_read_barrier_depends, and comments
      related to the barrier.
      
      The second patch adds the primitives for the applicable architectures and
      asm-generic.
      
      The third patch adds the barriers to r8169 which turns out to be a good
      example of where the new barriers might be useful as they have full
      rmb()/wmb() barriers ordering accesses to the descriptors and the DescOwn
      bit.
      
      The fourth patch adds support for coherent_rmb() to the Intel fm10k, igb,
      and ixgbe drivers.  Testing with the ixgbe driver has shown a processing
      time reduction of at least 7ns per 64B frame on a Core i7-4930K.
      
      This patch series is essentially the v7 for:
      v4-7:	Add lightweight memory barriers for coherent memory access
      v3:	Add lightweight memory barriers fast_rmb() and fast_wmb()
      v2:	Introduce load_acquire() and store_release()
      v1:	Introduce read_acquire()
      
      The key changes in this patch series versus the earlier patches are:
      v7 resubmit:
      	- Added Acked-by: Ben Herrenschmidt from v5 to dma_rmb/wmb patch
      	- No code changes from previous set, still applies cleanly and builds.
      v7:
      	- Dropped test/debug patch that was accidentally slipped in
      v6:
      	- Replaced "memory based device I/O" with "consistent memory" in
      	  docs
      	- Added reference to DMA-API.txt to explain consistent memory
      v5:
      	- Renamed barriers dma_rmb and dma_wmb
      	- Undid smp_wmb changes in x86 and PowerPC
      	- Defined smp_rmb as __lwsync for SMP case on PowerPC
      v4:
      	- Renamed barriers coherent_rmb and coherent_wmb
      	- Added smp_lwsync for use in smp_load_acquire/smp_store_release
      v3:
      	- Moved away from acquire()/store() and instead focused on barriers
      	- Added cleanup of read_barrier_depends
      	- Added change in r8169 to fix cur_tx/DescOwn ordering
      	- Simplified changes to just replacing/moving barriers in r8169
      	- Added update to documentation with code example
      v2:
      	- Renamed read_acquire() to be consistent with smp_load_acquire()
      	- Changed barrier used to be consistent with smp_load_acquire()
      	- Updated PowerPC code to use __lwsync based on IBM article
      	- Added store_release() as this is a viable use case for drivers
      	- Added r8169 patch which is able to fully use primitives
      	- Added fm10k/igb/ixgbe patch which is able to test performance
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      697766df
    • Alexander Duyck's avatar
      fm10k/igb/ixgbe: Use dma_rmb on Rx descriptor reads · 124b74c1
      Alexander Duyck authored
      
      
      This change makes it so that dma_rmb is used when reading the Rx
      descriptor.  The advantage of dma_rmb is that it allows for a much
      lower cost barrier on x86, powerpc, arm, and arm64 architectures than a
      traditional memory barrier when dealing with reads that only have to
      synchronize to coherent memory.
      
      In addition I have updated the code so that it just checks to see if any
      bits have been set instead of just the DD bit since the DD bit will always
      be set as a part of a descriptor write-back so we just need to check for a
      non-zero value being present at that memory location rather than just
      checking for any specific bit.  This allows the code itself to appear much
      cleaner and allows the compiler more room to optimize.
      
      Cc: Matthew Vick <matthew.vick@intel.com>
      Cc: Don Skidmore <donald.c.skidmore@intel.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      124b74c1
    • Alexander Duyck's avatar
      r8169: Use dma_rmb() and dma_wmb() for DescOwn checks · a0750138
      Alexander Duyck authored
      
      
      The r8169 use a pair of wmb() calls when setting up the descriptor rings.
      The first is to synchronize the descriptor data with the descriptor status,
      and the second is to synchronize the descriptor status with the use of the
      MMIO doorbell to notify the device that descriptors are ready.  This can
      come at a heavy price on some systems, and is not really necessary on
      systems such as x86 as a simple barrier() would suffice to order store/store
      accesses.  As such we can replace the first memory barrier with
      dma_wmb() to reduce the cost for these accesses.
      
      In addition the r8169 uses a rmb() to prevent compiler optimization in the
      cleanup paths, however by moving the barrier down a few lines and replacing
      it with a dma_rmb() we should be able to use it to guarantee
      descriptor accesses do not occur until the device has updated the DescOwn
      bit from its end.
      
      One last change I made is to move the update of cur_tx in the xmit path to
      after the wmb.  This way we can guarantee the device and all CPUs should
      see the DescOwn update before they see the cur_tx value update.
      
      Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>
      Cc: Francois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a0750138
    • Alexander Duyck's avatar
      arch: Add lightweight memory barriers dma_rmb() and dma_wmb() · 1077fa36
      Alexander Duyck authored
      
      
      There are a number of situations where the mandatory barriers rmb() and
      wmb() are used to order memory/memory operations in the device drivers
      and those barriers are much heavier than they actually need to be.  For
      example in the case of PowerPC wmb() calls the heavy-weight sync
      instruction when for coherent memory operations all that is really needed
      is an lsync or eieio instruction.
      
      This commit adds a coherent only version of the mandatory memory barriers
      rmb() and wmb().  In most cases this should result in the barrier being the
      same as the SMP barriers for the SMP case, however in some cases we use a
      barrier that is somewhere in between rmb() and smp_rmb().  For example on
      ARM the rmb barriers break down as follows:
      
        Barrier   Call     Explanation
        --------- -------- ----------------------------------
        rmb()     dsb()    Data synchronization barrier - system
        dma_rmb() dmb(osh) data memory barrier - outer sharable
        smp_rmb() dmb(ish) data memory barrier - inner sharable
      
      These new barriers are not as safe as the standard rmb() and wmb().
      Specifically they do not guarantee ordering between coherent and incoherent
      memories.  The primary use case for these would be to enforce ordering of
      reads and writes when accessing coherent memory that is shared between the
      CPU and a device.
      
      It may also be noted that there is no dma_mb().  Most architectures don't
      provide a good mechanism for performing a coherent only full barrier without
      resorting to the same mechanism used in mb().  As such there isn't much to
      be gained in trying to define such a function.
      
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Cc: Michael Neuling <mikey@neuling.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: David Miller <davem@davemloft.net>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1077fa36
    • Alexander Duyck's avatar
      arch: Cleanup read_barrier_depends() and comments · 8a449718
      Alexander Duyck authored
      
      
      This patch is meant to cleanup the handling of read_barrier_depends and
      smp_read_barrier_depends.  In multiple spots in the kernel headers
      read_barrier_depends is defined as "do {} while (0)", however we then go
      into the SMP vs non-SMP sections and have the SMP version reference
      read_barrier_depends, and the non-SMP define it as yet another empty
      do/while.
      
      With this commit I went through and cleaned out the duplicate definitions
      and reduced the number of definitions down to 2 per header.  In addition I
      moved the 50 line comments for the macro from the x86 and mips headers that
      defined it as an empty do/while to those that were actually defining the
      macro, alpha and blackfin.
      
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8a449718
    • David S. Miller's avatar
      Merge branch 'dsa' · c11a9009
      David S. Miller authored
      
      
      Florian Fainelli says:
      
      ====================
      net: dsa: two small bug fixes
      
      Here are two small fixes for the DSA slave interface creation code:
      
      - first patch fixes a null pointer de-reference with an invalid PHY
        device pointer while calling phy_connect_direct()
      
      - second path propagates the dsa_slave_phy_setup() error code down to
        its caller: dsa_slave_create
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c11a9009
    • Florian Fainelli's avatar
      net: dsa: propagate error code from dsa_slave_phy_setup · 9697f1cd
      Florian Fainelli authored
      In case we cannot attach to our slave netdevice PHY, error out and
      propagate that error up to the caller: dsa_slave_create().
      
      Fixes: 0d8bcdd3
      
       ("net: dsa: allow for more complex PHY setups")
      Signed-off-by: default avatarAndrey Volkov <andrey.volkov@nexvision.fr>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9697f1cd
    • Florian Fainelli's avatar
      net: dsa: handle non-existing PHYs on switch internal bus · 53013c77
      Florian Fainelli authored
      In case there is no PHY at the designated address on the internal
      switch, we would basically de-reference a null pointer here:
      
      dsa_slave_phy_setup(...)
      {
      	p->phy = ds->slave_mii_bus->phy_map[p->port];
      	phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link,
      				      ^------
      
      This can be triggered when the platform configuration (platform_data or
      Device Tree) indicates there should be a PHY device at this address, but
      the HW is non-responsive, such that we cannot attach a PHY device at
      this specific location.
      
      Fix this by checking the return value prior to calling
      phy_connect_direct().
      
      CC: Andrew Lunn <andrew@lunn.ch>
      Fixes: b31f65fb
      
       ("net: dsa: slave: Fix autoneg for phys on switch MDIO bus")
      Reported-by: default avatarBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: default avatarAndrey Volkov <andrey.volkov@nexvision.fr>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      53013c77
    • 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