1. 09 Sep, 2014 5 commits
    • Jiri Pirko's avatar
      bridge: switch order of rx_handler reg and upper dev link · 0f49579a
      Jiri Pirko authored
      The thing is that netdev_master_upper_dev_link calls
      call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev). That generates rtnl
      link message and during that, rtnl_link_ops->fill_slave_info is called.
      But with current ordering, rx_handler and IFF_BRIDGE_PORT are not set
      yet so there would have to be check for that in fill_slave_info callback.
      
      Resolve this by reordering to similar what bonding and team does to
      avoid the check.
      
      Also add removal of IFF_BRIDGE_PORT flag into error path.
      Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0f49579a
    • Vincent Bernat's avatar
      net/ipv4: bind ip_nonlocal_bind to current netns · 49a60158
      Vincent Bernat authored
      net.ipv4.ip_nonlocal_bind sysctl was global to all network
      namespaces. This patch allows to set a different value for each
      network namespace.
      Signed-off-by: default avatarVincent Bernat <vincent@bernat.im>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49a60158
    • David S. Miller's avatar
      Merge branch 'ebpf' · afddacc3
      David S. Miller authored
      Alexei Starovoitov says:
      
      ====================
      load imm64 insn and uapi/linux/bpf.h
      
      V9->V10
      - no changes, added Daniel's ack
      
      Note they're on top of Hannes's patch in the same area [1]
      
      V8 thread with 'why' reasoning and end goal [2]
      
      Original set [3] of ~28 patches I'm planning to present in 4 stages:
      
        I. this 2 patches to fork off llvm upstreaming
       II. bpf syscall with manpage and map implementation
      III. bpf program load/unload with verifier testsuite (1st user of
           instruction macros from bpf.h and 1st user of load imm64 insn)
       IV. tracing, etc
      
      [1] http://patchwork.ozlabs.org/patch/385266/
      [2] https://lkml.org/lkml/2014/8/27/628
      [3] https://lkml.org/lkml/2014/8/26/859
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      afddacc3
    • Alexei Starovoitov's avatar
      net: filter: split filter.h and expose eBPF to user space · daedfb22
      Alexei Starovoitov authored
      allow user space to generate eBPF programs
      
      uapi/linux/bpf.h: eBPF instruction set definition
      
      linux/filter.h: the rest
      
      This patch only moves macro definitions, but practically it freezes existing
      eBPF instruction set, though new instructions can still be added in the future.
      
      These eBPF definitions cannot go into uapi/linux/filter.h, since the names
      may conflict with existing applications.
      
      Full eBPF ISA description is in Documentation/networking/filter.txt
      Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Acked-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      daedfb22
    • Alexei Starovoitov's avatar
      net: filter: add "load 64-bit immediate" eBPF instruction · 02ab695b
      Alexei Starovoitov authored
      add BPF_LD_IMM64 instruction to load 64-bit immediate value into a register.
      All previous instructions were 8-byte. This is first 16-byte instruction.
      Two consecutive 'struct bpf_insn' blocks are interpreted as single instruction:
      insn[0].code = BPF_LD | BPF_DW | BPF_IMM
      insn[0].dst_reg = destination register
      insn[0].imm = lower 32-bit
      insn[1].code = 0
      insn[1].imm = upper 32-bit
      All unused fields must be zero.
      
      Classic BPF has similar instruction: BPF_LD | BPF_W | BPF_IMM
      which loads 32-bit immediate value into a register.
      
      x64 JITs it as single 'movabsq %rax, imm64'
      arm64 may JIT as sequence of four 'movk x0, #imm16, lsl #shift' insn
      
      Note that old eBPF programs are binary compatible with new interpreter.
      
      It helps eBPF programs load 64-bit constant into a register with one
      instruction instead of using two registers and 4 instructions:
      BPF_MOV32_IMM(R1, imm32)
      BPF_ALU64_IMM(BPF_LSH, R1, 32)
      BPF_MOV32_IMM(R2, imm32)
      BPF_ALU64_REG(BPF_OR, R1, R2)
      
      User space generated programs will use this instruction to load constants only.
      
      To tell kernel that user space needs a pointer the _pseudo_ variant of
      this instruction may be added later, which will use extra bits of encoding
      to indicate what type of pointer user space is asking kernel to provide.
      For example 'off' or 'src_reg' fields can be used for such purpose.
      src_reg = 1 could mean that user space is asking kernel to validate and
      load in-kernel map pointer.
      src_reg = 2 could mean that user space needs readonly data section pointer
      src_reg = 3 could mean that user space needs a pointer to per-cpu local data
      All such future pseudo instructions will not be carrying the actual pointer
      as part of the instruction, but rather will be treated as a request to kernel
      to provide one. The kernel will verify the request_for_a_pointer, then
      will drop _pseudo_ marking and will store actual internal pointer inside
      the instruction, so the end result is the interpreter and JITs never
      see pseudo BPF_LD_IMM64 insns and only operate on generic BPF_LD_IMM64 that
      loads 64-bit immediate into a register. User space never operates on direct
      pointers and verifier can easily recognize request_for_pointer vs other
      instructions.
      Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02ab695b
  2. 08 Sep, 2014 12 commits
    • David S. Miller's avatar
      Merge tag 'master-2014-09-08' of... · 5b4c3145
      David S. Miller authored
      Merge tag 'master-2014-09-08' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
      
      John W. Linville says:
      
      ====================
      pull request: wireless-next 2014-09-08
      
      Please pull this batch of updates intended for the 3.18 stream...
      
      For the mac80211 bits, Johannes says:
      
      "Not that much content this time. Some RCU cleanups, crypto
      performance improvements, and various patches all over,
      rather than listing them one might as well look into the
      git log instead."
      
      For the Bluetooth bits, Gustavo says:
      
      "The changes consists of:
      
              - Coding style fixes to HCI drivers
              - Corrupted ack value fix for the H5 HCI driver
              - A couple of Enhanced L2CAP fixes
              - Conversion of SMP code to use common L2CAP channel API
              - Page scan optimizations when using the kernel-side whitelist
              - Various mac802154 and and ieee802154 6lowpan cleanups
              - One new Atheros USB ID"
      
      For the iwlwifi bits, Emmanuel says:
      
      "We have a new big thing coming up which is called Dynamic Queue
      Allocation (or DQA).  This is a completely new way to work with the
      Tx queues and it requires major refactoring.  This is being done by
      Johannes and Avri.  Besides this, Johannes disables U-APSD by default
      because of APs that would disable A-MPDU if the association supports
      U-ASPD.  Luca contributed to the power area which he was cleaning
      up on the way while working on CSA.  A few more random things here
      and there."
      
      For the Atheros bits, Kalle says:
      
      "For ath6kl we had two small fixes and a new SDIO device id.
      
      For ath10k the bigger changes are:
      
       * support for new firmware version 10.2 (Michal)
      
       * spectral scan support (Simon, Sven & Mathias)
      
       * export a firmware crash dump file (Ben & me)
      
       * cleaning up of pci.c (Michal)
      
       * print pci id in all messages, which causes most of the churn (Michal)"
      
      Beyond that, we have the usual collection of various updates to ath9k,
      b43, mwifiex, and wil6210, as well as a few other bits here and there.
      
      Please let me know if there are problems!
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b4c3145
    • Willem de Bruijn's avatar
      inet: remove dead inetpeer sequence code · a7f26b7e
      Willem de Bruijn authored
      inetpeer sequence numbers are no longer incremented, so no need to
      check and flush the tree. The function that increments the sequence
      number was already dead code and removed in in "ipv4: remove unused
      function" (068a6e18). Remove the code that checks for a change, too.
      
      Verifying that v4_seq and v6_seq are never incremented and thus that
      flush_check compares bp->flush_seq to 0 is trivial.
      
      The second part of the change removes flush_check completely even
      though bp->flush_seq is exactly !0 once, at initialization. This
      change is correct because the time this branch is true is when
      bp->root == peer_avl_empty_rcu, in which the branch and
      inetpeer_invalidate_tree are a NOOP.
      Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7f26b7e
    • Mugunthan V N's avatar
      drivers: net: cpsw: Add support for pause frames · 1923d6e4
      Mugunthan V N authored
      CPSW supports both rx and tx pause frames for flow control.
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1923d6e4
    • Rick Jones's avatar
      hp100: Convert the normal skb free path to dev_consume_skb_any() · 119eccd5
      Rick Jones authored
      A bit of floor sweeping in a dusty old corner.  Convert the "normal"
      skb free calls to dev_consume_skb_any() so packet drop tracing will
      be more sane.
      Signed-off-by: default avatarRick Jones <rick.jones2@hp.com>
      Acked-by: default avatarJaroslav Kysela <perex@perex.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      119eccd5
    • Tom Herbert's avatar
      net: Fix GRE RX to use skb_transport_header for GRE header offset · 1e701f16
      Tom Herbert authored
      GRE assumes that the GRE header is at skb_network_header +
      ip_hrdlen(skb). It is more general to use skb_transport_header
      and this allows the possbility of inserting additional header
      between IP and GRE (which is what we will done in Generic UDP
      Encapsulation for GRE).
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e701f16
    • Alexander Duyck's avatar
      dp83640: Make use of skb_queue_purge instead of reimplementing the code · db91b724
      Alexander Duyck authored
      This change makes it so that dp83640_remove can use skb_queue_purge
      instead of looping through itself to flush any entries out of the queue.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db91b724
    • John W. Linville's avatar
    • David S. Miller's avatar
    • Linus Torvalds's avatar
      Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · d030671f
      Linus Torvalds authored
      Pull cgroup fixes from Tejun Heo:
       "This pull request includes Alban's patch to disallow '\n' in cgroup
        names.
      
        Two other patches from Li to fix a possible oops when cgroup
        destruction races against other file operations and one from Vivek to
        fix a unified hierarchy devel behavior"
      
      * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: check cgroup liveliness before unbreaking kernfs
        cgroup: delay the clearing of cgrp->kn->priv
        cgroup: Display legacy cgroup files on default hierarchy
        cgroup: reject cgroup names with '\n'
      d030671f
    • Linus Torvalds's avatar
      Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · 6a5c75ce
      Linus Torvalds authored
      Pull percpu fixes from Tejun Heo:
       "One patch to fix a failure path in the alloc path.  The bug is
        dangerous but probably not too likely to actually trigger in the wild
        given that there hasn't been any report yet.
      
        The other two are low impact fixes"
      
      * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: free percpu allocation info for uniprocessor system
        percpu: perform tlb flush after pcpu_map_pages() failure
        percpu: fix pcpu_alloc_pages() failure path
      6a5c75ce
    • Linus Torvalds's avatar
      Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · cfa7c641
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
       "Two patches are to add PCI IDs for ICH9 and all others are device
        specific fixes.  Nothing too interesting"
      
      * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci_xgene: Fix the link down in first attempt for the APM X-Gene SoC AHCI SATA host controller driver.
        ahci_xgene: Skip the PHY and clock initialization if already configured by the firmware.
        ahci: add pcid for Marvel 0x9182 controller
        ata: Disabling the async PM for JMicron chip 363/361
        ata_piix: Add Device IDs for Intel 9 Series PCH
        ahci: Add Device IDs for Intel 9 Series PCH
        ata: ahci_tegra: Read calibration fuse
      cfa7c641
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b531f5dd
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix skb leak in mac802154, from Martin Townsend
      
       2) Use select not depends on NF_NAT for NFT_NAT, from Pablo Neira
          Ayuso
      
       3) Fix union initializer bogosity in vxlan, from Gerhard Stenzel
      
       4) Fix RX checksum configuration in stmmac driver, from Giuseppe
          CAVALLARO
      
       5) Fix TSO with non-accelerated VLANs in e1000, e1000e, bna, ehea,
          i40e, i40evf, mvneta, and qlge, from Vlad Yasevich
      
       6) Fix capability checks in phy_init_eee(), from Giuseppe CAVALLARO
      
       7) Try high order allocations more sanely for SKBs, specifically if a
          high order allocation fails, fall back directly to zero order pages
          rather than iterating down one order at a time.  From Eric Dumazet
      
       8) Fix a memory leak in openvswitch, from Li RongQing
      
       9) amd-xgbe initializes wrong spinlock, from Thomas Lendacky
      
      10) RTNL locking was busted in setsockopt for anycast and multicast, fix
          from Sabrina Dubroca
      
      11) Fix peer address refcount leak in ipv6, from Nicolas Dichtel
      
      12) DocBook typo fixes, from Masanari Iida
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (101 commits)
        ipv6: restore the behavior of ipv6_sock_ac_drop()
        amd-xgbe: Enable interrupts for all management counters
        amd-xgbe: Treat certain counter registers as 64 bit
        greth: moved TX ring cleaning to NAPI rx poll func
        cnic : Cleanup CONFIG_IPV6 & VLAN check
        net: treewide: Fix typo found in DocBook/networking.xml
        bnx2x: Fix link problems for 1G SFP RJ45 module
        3c59x: avoid panic in boomerang_start_xmit when finding page address:
        netfilter: add explicit Kconfig for NETFILTER_XT_NAT
        ipv6: use addrconf_get_prefix_route() to remove peer addr
        ipv6: fix a refcnt leak with peer addr
        net-timestamp: only report sw timestamp if reporting bit is set
        drivers/net/fddi/skfp/h/skfbi.h: Remove useless PCI_BASE_2ND macros
        l2tp: fix race while getting PMTU on PPP pseudo-wire
        ipv6: fix rtnl locking in setsockopt for anycast and multicast
        VMXNET3: Check for map error in vmxnet3_set_mc
        openvswitch: distinguish between the dropped and consumed skb
        amd-xgbe: Fix initialization of the wrong spin lock
        openvswitch: fix a memory leak
        netfilter: fix missing dependencies in NETFILTER_XT_TARGET_LOG
        ...
      b531f5dd
  3. 07 Sep, 2014 16 commits
  4. 06 Sep, 2014 7 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 2b12164b
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "A smattering of bug fixes across most architectures"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        powerpc/kvm/cma: Fix panic introduces by signed shift operation
        KVM: s390/mm: Fix guest storage key corruption in ptep_set_access_flags
        KVM: s390/mm: Fix storage key corruption during swapping
        arm/arm64: KVM: Complete WFI/WFE instructions
        ARM/ARM64: KVM: Nuke Hyp-mode tlbs before enabling MMU
        KVM: s390/mm: try a cow on read only pages for key ops
        KVM: s390: Fix user triggerable bug in dead code
      2b12164b
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 56c22854
      Linus Torvalds authored
      Pull ARM SoC fixes from Kevin Hilman:
       "Another round of fixes from arm-soc land, which are mostly DT fixes
        for:
      
         - OMAP: handful of DT fixes devices on newly supported hardware
         - davinci: fix 2nd EDMA channel
         - ux500: extend previous pinctrl fix to another board
         - at91: clock registration fixes, compatibility string precision
      
        And one more fix for event cleanup in drivers/bus/arm-ccn"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        bus: arm-ccn: Move event cleanup routine
        ARM: at91/dt: rm9200: fix usb clock definition
        ARM: at91: rm9200: fix clock registration
        ARM: at91/dt: sam9g20: set at91sam9g20 pllb driver
        ARM: dts: dra7-evm: Add vtt regulator support
        ARM: dts: dra7-evm: Fix spi1 mux documentation
        ARM: dts: am43x-epos-evm: Disable QSPI to prevent conflict with GPMC-NAND
        ARM: OMAP2+: gpmc: Don't complain if wait pin is used without r/w monitoring
        ARM: dts: am43xx-epos-evm: Don't use read/write wait monitoring
        ARM: dts: am437x-gp-evm: Don't use read/write wait monitoring
        ARM: dts: am437x-gp-evm: Use BCH16 ECC scheme instead of BCH8
        ARM: dts: am43x-epos-evm: Use BCH16 ECC scheme instead of BCH8
        ARM: dts: am4372: fix USB regs size
        ARM: dts: am437x-gp: switch i2c0 to 100KHz
        ARM: dts: dra7-evm: Fix 8th NAND partition's name
        ARM: dts: dra7-evm: Fix i2c3 pinmux and frequency
        ARM: ux500: disable msp2 node on Snowball
        ARM: edma: Fix configuration parsing for SoCs with multiple eDMA3 CC
        ARM: dts: set 'ti,set-rate-parent' for dpll4_m5x2 clock
      56c22854
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · 8b3bfffc
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      Intel Wired LAN Driver Updates 2014-09-06
      
      This series contains updates to e1000 and igb.
      
      Krzysztof provides a patch to cleanup the coding style in e1000 to quiet
      checkpatch.pl warnings.
      
      Todd adds two boolean flags to igb to allow for changes in the
      advertised EEE speeds from ethtool.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8b3bfffc
    • Neal Cardwell's avatar
      tcp: remove obsolete comment about TCP_SKB_CB(skb)->when in tcp_fragment() · 87d94308
      Neal Cardwell authored
      The TCP_SKB_CB(skb)->when field no longer exists as of recent change
      7faee5c0 ("tcp: remove TCP_SKB_CB(skb)->when"). And in any case,
      tcp_fragment() is called on already-transmitted packets from the
      __tcp_retransmit_skb() call site, so copying timestamps of any kind
      in this spot is quite sensible.
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Reported-by: default avatarYuchung Cheng <ycheng@google.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      87d94308
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-3.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 11e97398
      Linus Torvalds authored
      Pull xfs fixes from Dave Chinner:
       "The fixes all address recently discovered data corruption issues.
      
        The original Direct IO issue was discovered by Chris Mason @ Facebook
        on a production workload which mixed buffered reads with direct reads
        and writes IO to the same file.  The fix for that exposed other issues
        with page invalidation (exposed by millions of fsx operations) failing
        due to dirty buffers beyond EOF.
      
        Finally, the collapse_range code could also cause problems due to
        racing writeback changing the extent map while it was being shifted
        around.  The commits for that problem are simple mitigation fixes that
        prevent the problem from occuring.  A more robust fix for 3.18 that
        addresses the underlying problem is currently being worked on by
        Brian.
      
        Summary of fixes:
         - a direct IO read/buffered read data corruption
         - the associated fallout from the DIO data corruption fix
         - collapse range bugs that are potential data corruption issues"
      
      * tag 'xfs-for-linus-3.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
        xfs: trim eofblocks before collapse range
        xfs: xfs_file_collapse_range is delalloc challenged
        xfs: don't log inode unless extent shift makes extent modifications
        xfs: use ranged writeback and invalidation for direct IO
        xfs: don't zero partial page cache pages during O_DIRECT writes
        xfs: don't zero partial page cache pages during O_DIRECT writes
        xfs: don't dirty buffers beyond EOF
      11e97398
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20140905' of git://git.infradead.org/linux-mtd · 925e0ea4
      Linus Torvalds authored
      Pull mtd fixes from Brian Norris:
       "Two trivial MTD updates for 3.17-rc4:
      
         - a tiny comment tweak, to kill a bunch of DocBook warnings added
           during the merge window
      
         - a small fixup to the OTP routines' error handling"
      
      * tag 'for-linus-20140905' of git://git.infradead.org/linux-mtd:
        mtd: nand: fix DocBook warnings on nand_sdr_timings doc
        mtd: cfi_cmdset_0002: check return code for get_chip()
      925e0ea4
    • Todd Fujinaka's avatar
      igb: add flags to set eee advertisement mode · c4c112f1
      Todd Fujinaka authored
      Change e1000_set_eee and e1000_set_eee_i35(0|4) to allow
      changes in the advertised EEE speeds from ethtool. Adds two boolean
      flags to e1000_set_eee_i35(0|4) to pass in advertised speed data.
      Signed-off-by: default avatarTodd Fujinaka <todd.fujinaka@intel.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c4c112f1