1. 23 Dec, 2016 17 commits
  2. 22 Dec, 2016 2 commits
  3. 21 Dec, 2016 7 commits
    • Colin Ian King's avatar
      net: fddi: skfp: use %p format specifier for addresses rather than %x · 551cde19
      Colin Ian King authored
      Trivial fix: Addresses should be printed using the %p format specifier
      rather than using %x.
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      551cde19
    • Eric Dumazet's avatar
      tcp: add a missing barrier in tcp_tasklet_func() · 0a9648f1
      Eric Dumazet authored
      Madalin reported crashes happening in tcp_tasklet_func() on powerpc64
      
      Before TSQ_QUEUED bit is cleared, we must ensure the changes done
      by list_del(&tp->tsq_node); are committed to memory, otherwise
      corruption might happen, as an other cpu could catch TSQ_QUEUED
      clearance too soon.
      
      We can notice that old kernels were immune to this bug, because
      TSQ_QUEUED was cleared after a bh_lock_sock(sk)/bh_unlock_sock(sk)
      section, but they could have missed a kick to write additional bytes,
      when NIC interrupts for a given flow are spread to multiple cpus.
      
      Affected TCP flows would need an incoming ACK or RTO timer to add more
      packets to the pipe. So overall situation should be better now.
      
      Fixes: b223feb9 ("tcp: tsq: add shortcut in tcp_tasklet_func()")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarMadalin Bucur <madalin.bucur@nxp.com>
      Tested-by: default avatarMadalin Bucur <madalin.bucur@nxp.com>
      Tested-by: default avatarXing Lei <xing.lei@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a9648f1
    • Thomas Petazzoni's avatar
      net: mvpp2: fix dma unmapping of TX buffers for fragments · 8354491c
      Thomas Petazzoni authored
      Since commit 71ce391d ("net: mvpp2: enable proper per-CPU TX
      buffers unmapping"), we are not correctly DMA unmapping TX buffers for
      fragments.
      
      Indeed, the mvpp2_txq_inc_put() function only stores in the
      txq_cpu->tx_buffs[] array the physical address of the buffer to be
      DMA-unmapped when skb != NULL. In addition, when DMA-unmapping, we use
      skb_headlen(skb) to get the size to be unmapped. Both of this works fine
      for TX descriptors that are associated directly to a SKB, but not the
      ones that are used for fragments, with a NULL pointer as skb:
      
       - We have a NULL physical address when calling DMA unmap
       - skb_headlen(skb) crashes because skb is NULL
      
      This causes random crashes when fragments are used.
      
      To solve this problem, we need to:
      
       - Store the physical address of the buffer to be unmapped
         unconditionally, regardless of whether it is tied to a SKB or not.
      
       - Store the length of the buffer to be unmapped, which requires a new
         field.
      
      Instead of adding a third array to store the length of the buffer to be
      unmapped, and as suggested by David Miller, this commit refactors the
      tx_buffs[] and tx_skb[] arrays of 'struct mvpp2_txq_pcpu' into a
      separate structure 'mvpp2_txq_pcpu_buf', to which a 'size' field is
      added. Therefore, instead of having three arrays to allocate/free, we
      have a single one, which also improve data locality, reducing the
      impact on the CPU cache.
      
      Fixes: 71ce391d ("net: mvpp2: enable proper per-CPU TX buffers unmapping")
      Reported-by: default avatarRaphael G <raphael.glon@corp.ovh.com>
      Cc: Raphael G <raphael.glon@corp.ovh.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8354491c
    • Heiko Stübner's avatar
      net: ethernet: stmmac: dwmac-rk: make clk enablement first in powerup · f217bfde
      Heiko Stübner authored
      Right now the dwmac-rk tries to set up the GRF-specific speed and link
      options before enabling clocks, phys etc and on previous socs this works
      because the GRF is supplied on the whole by one clock.
      
      On the rk3399 however the GRF (General Register Files) clock-supply
      has been split into multiple clocks and while there is no specific
      grf-gmac clock like for other sub-blocks, it seems the mac-specific
      portions are actually supplied by the general mac clock.
      
      This results in hangs on rk3399 boards if the driver is build as module.
      When built in te problem of course doesn't surface, as the clocks
      are of course still on at the stage before clock_disable_unused.
      
      To solve this, simply move the clock enablement to the first position
      in the powerup callback. This is also a good idea in general to
      enable clocks before everything else.
      
      Tested on rk3288, rk3368 and rk3399 the dwmac still works on all of them.
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f217bfde
    • Kalesh A P's avatar
      be2net: Increase skb headroom size to 256 bytes · 76b15923
      Kalesh A P authored
      The driver currently allocates 128 bytes of skb headroom.
      This was found to be insufficient with some configurations
      like Geneve tunnels, which resulted in skb head reallocations.
      
      Increase the headroom to 256 bytes to fix this.
      Signed-off-by: default avatarKalesh A P <kalesh-anakkur.purayil@broadcom.com>
      Signed-off-by: default avatarSuresh Reddy <suresh.reddy@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      76b15923
    • Larry Finger's avatar
      rtlwifi: Fix kernel oops introduced with commit e4965614 · 22b68b93
      Larry Finger authored
      With commit e4965614 {"rtlwifi: Use dev_kfree_skb_irq instead of
      kfree_skb"), the method used to free an skb was changed because the
      kfree_skb() was inside a spinlock. What was forgotten is that kfree_skb()
      guards against a NULL value for the argument. Routine dev_kfree_skb_irq()
      does not, and a test is needed to prevent kernel panics.
      
      Fixes: e4965614 ("rtlwifi: Use dev_kfree_skb_irq instead of kfree_skb")
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org> # 4.9+
      Cc: Wei Yongjun <weiyongjun1@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      22b68b93
    • Tobias Klausmann's avatar
      ath9k: do not return early to fix rcu unlocking · d1f1c0e2
      Tobias Klausmann authored
      Starting with commit d94a461d ("ath9k: use ieee80211_tx_status_noskb
      where possible") the driver uses rcu_read_lock() && rcu_read_unlock(), yet on
      returning early in ath_tx_edma_tasklet() the unlock is missing leading to stalls
      and suspicious RCU usage:
      
       ===============================
       [ INFO: suspicious RCU usage. ]
       4.9.0-rc8 #11 Not tainted
       -------------------------------
       kernel/rcu/tree.c:705 Illegal idle entry in RCU read-side critical section.!
      
       other info that might help us debug this:
      
       RCU used illegally from idle CPU!
       rcu_scheduler_active = 1, debug_locks = 0
       RCU used illegally from extended quiescent state!
       1 lock held by swapper/7/0:
       #0:
        (
       rcu_read_lock
       ){......}
       , at:
       [<ffffffffa06ed110>] ath_tx_edma_tasklet+0x0/0x450 [ath9k]
      
       stack backtrace:
       CPU: 7 PID: 0 Comm: swapper/7 Not tainted 4.9.0-rc8 #11
       Hardware name: Acer Aspire V3-571G/VA50_HC_CR, BIOS V2.21 12/16/2013
        ffff88025efc3f38 ffffffff8132b1e5 ffff88017ede4540 0000000000000001
        ffff88025efc3f68 ffffffff810a25f7 ffff88025efcee60 ffff88017edebdd8
        ffff88025eeb5400 0000000000000091 ffff88025efc3f88 ffffffff810c3cd4
       Call Trace:
        <IRQ>
        [<ffffffff8132b1e5>] dump_stack+0x68/0x93
        [<ffffffff810a25f7>] lockdep_rcu_suspicious+0xd7/0x110
        [<ffffffff810c3cd4>] rcu_eqs_enter_common.constprop.85+0x154/0x200
        [<ffffffff810c5a54>] rcu_irq_exit+0x44/0xa0
        [<ffffffff81058631>] irq_exit+0x61/0xd0
        [<ffffffff81018d25>] do_IRQ+0x65/0x110
        [<ffffffff81672189>] common_interrupt+0x89/0x89
        <EOI>
        [<ffffffff814ffe11>] ? cpuidle_enter_state+0x151/0x200
        [<ffffffff814ffee2>] cpuidle_enter+0x12/0x20
        [<ffffffff8109a6ae>] call_cpuidle+0x1e/0x40
        [<ffffffff8109a8f6>] cpu_startup_entry+0x146/0x220
        [<ffffffff810336f8>] start_secondary+0x148/0x170
      Signed-off-by: default avatarTobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
      Fixes: d94a461d ("ath9k: use ieee80211_tx_status_noskb where possible")
      Cc: <stable@vger.kernel.org> # v4.9
      Acked-by: default avatarFelix Fietkau <nbd@nbd.name>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Tested-by: default avatarGabriel Craciunescu <nix.or.die@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      d1f1c0e2
  4. 20 Dec, 2016 14 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · ba6d973f
      Linus Torvalds authored
      Pull networking fixes and cleanups from David Miller:
      
       1) Use rb_entry() instead of hardcoded container_of(), from Geliang
          Tang.
      
       2) Use correct memory barriers in stammac driver, from Pavel Machek.
      
       3) Fix assoc bind address handling in SCTP, from Xin Long.
      
       4) Make the length check for UFO handling consistent between
          __ip_append_data() and ip_finish_output(), from Zheng Li.
      
       5) HSI driver compatible strings were busted fro hix5hd2, from Dongpo
          Li.
      
       6) Handle devm_ioremap() errors properly in cavium driver, from Arvind
          Yadav.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (22 commits)
        RDS: use rb_entry()
        net_sched: sch_netem: use rb_entry()
        net_sched: sch_fq: use rb_entry()
        net/mlx5: use rb_entry()
        ethernet: sfc: Add Kconfig entry for vendor Solarflare
        sctp: not copying duplicate addrs to the assoc's bind address list
        sctp: reduce indent level in sctp_copy_local_addr_list
        ARM: dts: hix5hd2: don't change the existing compatible string
        net: hix5hd2_gmac: fix compatible strings name
        openvswitch: Add a missing break statement.
        net: netcp: ethss: fix 10gbe host port tx pri map configuration
        net: netcp: ethss: fix errors in ethtool ops
        fsl/fman: enable compilation on ARM64
        fsl/fman: A007273 only applies to PPC SoCs
        powerpc: fsl/fman: remove fsl,fman from of_device_ids[]
        fsl/fman: fix 1G support for QSGMII interfaces
        dt: bindings: net: use boolean dt properties for eee broken modes
        net: phy: use boolean dt properties for eee broken modes
        net: phy: fix sign type error in genphy_config_eee_advert
        ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output
        ...
      ba6d973f
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 3eb86259
      Linus Torvalds authored
      Merge final set of updates from Andrew Morton:
      
       - a series to make IMA play better across kexec
      
       - a handful of random fixes
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        printk: fix typo in CONSOLE_LOGLEVEL_DEFAULT help text
        ratelimit: fix WARN_ON_RATELIMIT return value
        kcov: make kcov work properly with KASLR enabled
        arm64: setup: introduce kaslr_offset()
        mm: fadvise: avoid expensive remote LRU cache draining after FADV_DONTNEED
        ima: platform-independent hash value
        ima: define a canonical binary_runtime_measurements list format
        ima: support restoring multiple template formats
        ima: store the builtin/custom template definitions in a list
        ima: on soft reboot, save the measurement list
        powerpc: ima: send the kexec buffer to the next kernel
        ima: maintain memory size needed for serializing the measurement list
        ima: permit duplicate measurement list entries
        ima: on soft reboot, restore the measurement list
        powerpc: ima: get the kexec buffer passed by the previous kernel
      3eb86259
    • Linus Torvalds's avatar
      Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration · f95adbc1
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - new features (poll and SRAM usage) added to the mailbox-test driver
      
       - major update of Broadcom's PDC controller driver
      
       - minor fix for auto-loading test and STI driver modules
      
      * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: mailbox-test: allow reserved areas in SRAM
        mailbox: mailbox-test: add support for fasync/poll
        mailbox: bcm-pdc: Remove unnecessary void* casts
        mailbox: bcm-pdc: Simplify interrupt handler logic
        mailbox: bcm-pdc: Performance improvements
        mailbox: bcm-pdc: Don't use iowrite32 to write DMA descriptors
        mailbox: bcm-pdc: Convert from threaded IRQ to tasklet
        mailbox: bcm-pdc: Try to improve branch prediction
        mailbox: bcm-pdc: streamline rx code
        mailbox: bcm-pdc: Convert from interrupts to poll for tx done
        mailbox: bcm-pdc: PDC driver leaves debugfs files after removal
        mailbox: bcm-pdc: Changes so mbox client can be removed / re-inserted
        mailbox: bcm-pdc: Use octal permissions rather than symbolic
        mailbox: sti: Fix module autoload for OF registration
        mailbox: mailbox-test: Fix module autoload
      f95adbc1
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 74f65bbf
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang.
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: mux: mlxcpld: fix i2c mux selection caching
        i2c: designware: fix wrong Tx/Rx FIFO for ACPI
        i2c: xgene: Fix missing code of DTB support
        i2c: mux: pca954x: fix i2c mux selection caching
        i2c: octeon: thunderx: Limit register access retries
      74f65bbf
    • Linus Torvalds's avatar
      Merge tag 'doc-4.10-3' of git://git.lwn.net/linux · 1351522b
      Linus Torvalds authored
      Pull documentation fix from Jonathan Corbet:
       "A single fix for the build system.
      
        It would appear that the docutils developers, in their wisdom, broke
        the API in the 0.13 release. This fix detects the breakage and allows
        the docs to be built with both the old and new versions"
      
      * tag 'doc-4.10-3' of git://git.lwn.net/linux:
        docs: sphinx-extensions: make rstFlatTable work with docutils 0.13
      1351522b
    • Linus Torvalds's avatar
      Merge tag 'microblaze-4.10-rc1' of git://git.monstr.eu/linux-2.6-microblaze · d5379e5e
      Linus Torvalds authored
      Pull arch/microblaze updates from Michal Simek:
      
       - wire-up new syscalls
      
       - add new codes and fpga families
      
       - fix a return value
      
      * tag 'microblaze-4.10-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Add new fpga families
        microblaze: Add missing release version code v9.6 and v10
        microblaze: Add missing syscalls
        microblaze: Fix return value from xilinx_timer_init
      d5379e5e
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20161219' of git://github.com/jcmvbkbc/linux-xtensa · ec92b88c
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - enable HAVE_DMA_CONTIGUOUS, configure shared DMA pool reservation in
         kc705 DTS
      
       - update xtensa DMA-related Documentation/features entries
      
       - clean up arch/xtensa/kernel/setup.c: move S32C1I self-test out of it,
         remove unused declarations, fix screen_info definition
      
      * tag 'xtensa-20161219' of git://github.com/jcmvbkbc/linux-xtensa:
        xtensa: update DMA-related Documentation/features entries
        xtensa: configure shared DMA pool reservation in kc705 DTS
        xtensa: enable HAVE_DMA_CONTIGUOUS
        xtensa: move S32C1I self-test to a separate file
        xtensa: fix screen_info, clean up unused declarations in setup.c
      ec92b88c
    • Geliang Tang's avatar
      RDS: use rb_entry() · a763f78c
      Geliang Tang authored
      To make the code clearer, use rb_entry() instead of container_of() to
      deal with rbtree.
      Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a763f78c
    • Geliang Tang's avatar
      net_sched: sch_netem: use rb_entry() · 7f7cd56c
      Geliang Tang authored
      To make the code clearer, use rb_entry() instead of container_of() to
      deal with rbtree.
      Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f7cd56c
    • Geliang Tang's avatar
      net_sched: sch_fq: use rb_entry() · e124557d
      Geliang Tang authored
      To make the code clearer, use rb_entry() instead of container_of() to
      deal with rbtree.
      Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e124557d
    • Geliang Tang's avatar
      net/mlx5: use rb_entry() · f7fb1383
      Geliang Tang authored
      To make the code clearer, use rb_entry() instead of container_of() to
      deal with rbtree.
      Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
      Acked-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7fb1383
    • Tobias Klauser's avatar
      ethernet: sfc: Add Kconfig entry for vendor Solarflare · ae99b639
      Tobias Klauser authored
      Since commit
      
        5a6681e2 ("sfc: separate out SFC4000 ("Falcon") support into new sfc-falcon driver")
      
      there are two drivers for Solarflare devices, but both still show up
      directly beneath "Ethernet driver support" in the Kconfig. Follow the
      pattern of other vendors and group them beneath an own vendor Kconfig
      entry for Solarflare.
      
      Cc: Edward Cree <ecree@solarflare.com>
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Acked-by: default avatarEdward Cree <ecree@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae99b639
    • David S. Miller's avatar
      Merge branch 'sctp-fixes' · b794e252
      David S. Miller authored
      Xin Long says:
      
      ====================
      sctp: fix the issue that may copy duplicate addrs into assoc's bind address list
      
      Patch 1/2 is to fix some indent level.
      
      Given that we have kernels out there with this issue, patch 2/2 also
      fix sctp_raw_to_bind_addrs.
      
      v1 -> v2:
        Explain why we didn't filter the duplicate addresses when global
        address list gets updated in patch 2/2 changelog.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b794e252
    • Xin Long's avatar
      sctp: not copying duplicate addrs to the assoc's bind address list · b8607805
      Xin Long authored
      sctp.local_addr_list is a global address list that is supposed to include
      all the local addresses. sctp updates this list according to NETDEV_UP/
      NETDEV_DOWN notifications.
      
      However, if multiple NICs have the same address, the global list would
      have duplicate addresses. Even if for one NIC, promote secondaries in
      __inet_del_ifa can also lead to accumulating duplicate addresses.
      
      When sctp binds address 'ANY' and creates a connection, it copies all
      the addresses from global list into asoc's bind addr list, which makes
      sctp pack the duplicate addresses into INIT/INIT_ACK packets.
      
      This patch is to filter the duplicate addresses when copying the addrs
      from global list in sctp_copy_local_addr_list and unpacking addr_param
      from cookie in sctp_raw_to_bind_addrs to asoc's bind addr list.
      
      Note that we can't filter the duplicate addrs when global address list
      gets updated, As NETDEV_DOWN event may remove an addr that still exists
      in another NIC.
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b8607805