Skip to content
  1. Nov 17, 2015
    • Måns Rullgård's avatar
      net: phy: at803x: support interrupt on 8030 and 8035 · 0eae5982
      Måns Rullgård authored
      Commit 77a99394
      
       "phy/at8031: enable at8031 to work on interrupt mode"
      added interrupt support for the 8031 PHY but left out the other two
      chips supported by this driver.
      
      This patch sets the .ack_interrupt and .config_intr functions for the
      8030 and 8035 drivers as well.
      
      Signed-off-by: default avatarMans Rullgard <mans@mansr.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0eae5982
    • Jason A. Donenfeld's avatar
      ip_tunnel: disable preemption when updating per-cpu tstats · b4fe85f9
      Jason A. Donenfeld authored
      
      
      Drivers like vxlan use the recently introduced
      udp_tunnel_xmit_skb/udp_tunnel6_xmit_skb APIs. udp_tunnel6_xmit_skb
      makes use of ip6tunnel_xmit, and ip6tunnel_xmit, after sending the
      packet, updates the struct stats using the usual
      u64_stats_update_begin/end calls on this_cpu_ptr(dev->tstats).
      udp_tunnel_xmit_skb makes use of iptunnel_xmit, which doesn't touch
      tstats, so drivers like vxlan, immediately after, call
      iptunnel_xmit_stats, which does the same thing - calls
      u64_stats_update_begin/end on this_cpu_ptr(dev->tstats).
      
      While vxlan is probably fine (I don't know?), calling a similar function
      from, say, an unbound workqueue, on a fully preemptable kernel causes
      real issues:
      
      [  188.434537] BUG: using smp_processor_id() in preemptible [00000000] code: kworker/u8:0/6
      [  188.435579] caller is debug_smp_processor_id+0x17/0x20
      [  188.435583] CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.6 #2
      [  188.435607] Call Trace:
      [  188.435611]  [<ffffffff8234e936>] dump_stack+0x4f/0x7b
      [  188.435615]  [<ffffffff81915f3d>] check_preemption_disabled+0x19d/0x1c0
      [  188.435619]  [<ffffffff81915f77>] debug_smp_processor_id+0x17/0x20
      
      The solution would be to protect the whole
      this_cpu_ptr(dev->tstats)/u64_stats_update_begin/end blocks with
      disabling preemption and then reenabling it.
      
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b4fe85f9
  2. Nov 16, 2015
  3. Nov 13, 2015
    • Arnd Bergmann's avatar
      stmmac: avoid ipq806x constant overflow warning · 49e4a229
      Arnd Bergmann authored
      
      
      Building dwmac-ipq806x on a 64-bit architecture produces a harmless
      warning from gcc:
      
      stmmac/dwmac-ipq806x.c: In function 'ipq806x_gmac_probe':
      include/linux/bitops.h:6:19: warning: overflow in implicit constant conversion [-Woverflow]
        val = QSGMII_PHY_CDR_EN |
      stmmac/dwmac-ipq806x.c:333:8: note: in expansion of macro 'QSGMII_PHY_CDR_EN'
       #define QSGMII_PHY_CDR_EN   BIT(0)
       #define BIT(nr)   (1UL << (nr))
      
      This is a result of the type conversion rules in C, when we take the
      logical OR of multiple different types. In particular, we have
      and unsigned long
      
      	QSGMII_PHY_CDR_EN == BIT(0) == (1ul << 0) == 0x0000000000000001ul
      
      and a signed int
      
      	0xC << QSGMII_PHY_TX_DRV_AMP_OFFSET == 0xc0000000
      
      which together gives a signed long value
      
      	0xffffffffc0000001l
      
      and when this is passed into a function that takes an unsigned int type,
      gcc warns about the signed overflow and the loss of the upper 32-bits that
      are all ones.
      
      This patch adds 'ul' type modifiers to the literal numbers passed in
      here, so now the expression remains an 'unsigned long' with the upper
      bits all zero, and that avoids the signed overflow and the warning.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Fixes: b1c17215
      
       ("stmmac: add ipq806x glue layer")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49e4a229
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · 382a483e
      David S. Miller authored
      
      
      Pablo Neira Ayuso:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for your net tree. This
      large batch that includes fixes for ipset, netfilter ingress, nf_tables
      dynamic set instantiation and a longstanding Kconfig dependency problem.
      More specifically, they are:
      
      1) Add missing check for empty hook list at the ingress hook, from
         Florian Westphal.
      
      2) Input and output interface are swapped at the ingress hook,
         reported by Patrick McHardy.
      
      3) Resolve ipset extension alignment issues on ARM, patch from Jozsef
         Kadlecsik.
      
      4) Fix bit check on bitmap in ipset hash type, also from Jozsef.
      
      5) Release buckets when all entries have expired in ipset hash type,
         again from Jozsef.
      
      6) Oneliner to initialize conntrack tuple object in the PPTP helper,
         otherwise the conntrack lookup may fail due to random bits in the
         structure holes, patch from Anthony Lineham.
      
      7) Silence a bogus gcc warning in nfnetlink_log, from Arnd Bergmann.
      
      8) Fix Kconfig dependency problems with TPROXY, socket and dup, also
         from Arnd.
      
      9) Add __netdev_alloc_pcpu_stats() to allow creating percpu counters
         from atomic context, this is required by the follow up fix for
         nf_tables.
      
      10) Fix crash from the dynamic set expression, we have to add new clone
          operation that should be defined when a simple memcpy is not enough.
          This resolves a crash when using per-cpu counters with new Patrick
          McHardy's flow table nft support.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      382a483e
    • françois romieu's avatar
      r8169: fix kasan reported skb use-after-free. · 39174291
      françois romieu authored
      
      
      Signed-off-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
      Reported-by: default avatarDave Jones <davej@codemonkey.org.uk>
      Fixes: d7d2d89d
      
       ("r8169: Add software counter for multicast packages")
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarCorinna Vinschen <vinschen@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      39174291
  4. Nov 11, 2015
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · c5a37883
      Linus Torvalds authored
      Merge final patch-bomb from Andrew Morton:
       "Various leftovers, mainly Christoph's pci_dma_supported() removals"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        pci: remove pci_dma_supported
        usbnet: remove ifdefed out call to dma_supported
        kaweth: remove ifdefed out call to dma_supported
        sfc: don't call dma_supported
        nouveau: don't call pci_dma_supported
        netup_unidvb: use pci_set_dma_mask insted of pci_dma_supported
        cx23885: use pci_set_dma_mask insted of pci_dma_supported
        cx25821: use pci_set_dma_mask insted of pci_dma_supported
        cx88: use pci_set_dma_mask insted of pci_dma_supported
        saa7134: use pci_set_dma_mask insted of pci_dma_supported
        saa7164: use pci_set_dma_mask insted of pci_dma_supported
        tw68-core: use pci_set_dma_mask insted of pci_dma_supported
        pcnet32: use pci_set_dma_mask insted of pci_dma_supported
        lib/string.c: add ULL suffix to the constant definition
        hugetlb: trivial comment fix
        selftests/mlock2: add ULL suffix to 64-bit constants
        selftests/mlock2: add missing #define _GNU_SOURCE
      c5a37883
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 5dfe5b2c
      Linus Torvalds authored
      Pull misc kbuild updates from Michal Marek:
       "This is the non-critical part of kbuild:
      
         - several coccinelle updates
         - make deb-pkg creates an armhf package if CONFIG_VFP=y
         - make tags understands some more powerpc macros"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        coccinelle: Improve checking for missing NULL terminators
        coccinelle: ifnullfree: handle various destroy functions
        coccinelle: ifnullfree: various cleanups
        cocinelle: iterators: semantic patch to delete unneeded of_node_put
        deb-pkg: Add automatic support for armhf architecture
        scripts/coccinelle: fix typos
        coccinelle: misc: remove "complex return code" warnings
        Coccinelle: fix incorrect -include option transformation
        coccinelle: tests: improve odd_ptr_err.cocci
        coccinelle: misc: move constants to the right
        scripts/tags.sh: Teach tags about some powerpc macros
      5dfe5b2c
    • Linus Torvalds's avatar
      Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 152813e6
      Linus Torvalds authored
      Pull kconfig updates from Michal Marek:
      
       - 'make xconfig' ported to Qt5, dropping support for Qt3
      
       - merge_config.sh supports a single-input-file mode and also respects
         $KCONFIG_CONFIG
      
       - Fix for incorrect display of >= and > in dependency expressions
      
      * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (44 commits)
        Add current selection check.
        Use pkg-config to find Qt 4 and 5 instead of direct qmake
        kconfig: Fix copy&paste error
        kconfig/merge_config.sh: Accept a single file
        kconfig/merge_config.sh: Support KCONFIG_CONFIG
        Update the buildsystem for KConfig finding Qt
        Port xconfig to Qt5 - Update copyright.
        Port xconfig to Qt5 - Fix goParent issue.
        Port xconfig to Qt5 - on Back clicked, deselect old item.
        Port xconfig to Qt5 - Add(back) one click checkbox toggle.
        Port xconfig to Qt5 - Add(back) lineedit editing.
        Port xconfig to Qt5 - Remove some commented code.
        Port xconfig to Qt5 - Source format.
        Port xconfig to Qt5 - Add horizontal scrollbar, and scroll per pixel.
        Port xconfig to Qt5 - Change ConfigItem constructor parent type.
        Port xconfig to Qt5 - Disable ConfigList soring
        Port xconfig to Qt5 - Remove ConfigList::updateMenuList template.
        Port xconfig to Qt5 - Add ConfigList::mode to initializer list.
        Port xconfig to Qt5 - Add ConfigItem::nextItem to initializer list.
        Port xconfig to Qt5 - Tree widget set column titles.
        ...
      152813e6
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · c34e6e0b
      Linus Torvalds authored
      Pull kbuild update from Michal Marek:
       "The kbuild branch for v4.4-rc1 only has one commit: A new make
        kselftest-clean target cleans tools/testing/selftests"
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kselftest: add kselftest-clean rule
      c34e6e0b