1. 11 6月, 2016 3 次提交
    • Z
      bpf: fix missing header inclusion · 002245cc
      Zi Shen Lim 提交于
      Commit 0fc174de ("ebpf: make internal bpf API independent of
      CONFIG_BPF_SYSCALL ifdefs") introduced usage of ERR_PTR() in
      bpf_prog_get(), however did not include linux/err.h.
      
      Without this patch, when compiling arm64 BPF without CONFIG_BPF_SYSCALL:
      ...
      In file included from arch/arm64/net/bpf_jit_comp.c:21:0:
      include/linux/bpf.h: In function 'bpf_prog_get':
      include/linux/bpf.h:235:9: error: implicit declaration of function 'ERR_PTR' [-Werror=implicit-function-declaration]
        return ERR_PTR(-EOPNOTSUPP);
               ^
      include/linux/bpf.h:235:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
      In file included from include/linux/rwsem.h:17:0,
                       from include/linux/mm_types.h:10,
                       from include/linux/sched.h:27,
                       from arch/arm64/include/asm/compat.h:25,
                       from arch/arm64/include/asm/stat.h:23,
                       from include/linux/stat.h:5,
                       from include/linux/compat.h:12,
                       from include/linux/filter.h:10,
                       from arch/arm64/net/bpf_jit_comp.c:22:
      include/linux/err.h: At top level:
      include/linux/err.h:23:35: error: conflicting types for 'ERR_PTR'
       static inline void * __must_check ERR_PTR(long error)
                                         ^
      In file included from arch/arm64/net/bpf_jit_comp.c:21:0:
      include/linux/bpf.h:235:9: note: previous implicit declaration of 'ERR_PTR' was here
        return ERR_PTR(-EOPNOTSUPP);
               ^
      ...
      
      Fixes: 0fc174de ("ebpf: make internal bpf API independent of CONFIG_BPF_SYSCALL ifdefs")
      Suggested-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NZi Shen Lim <zlim.lnx@gmail.com>
      Acked-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      002245cc
    • M
      virtio_net: introduce virtio_net_hdr_{from,to}_skb · fd2a0437
      Mike Rapoport 提交于
      The code for conversion between virtio_net_hdr and skb GSO info is
      duplicated at several places. Let's put it to a common place to allow
      reuse.
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd2a0437
    • D
      bpf: enforce recursion limit on redirects · a70b506e
      Daniel Borkmann 提交于
      Respect the stack's xmit_recursion limit for calls into dev_queue_xmit().
      Currently, they are not handeled by the limiter when attached to clsact's
      egress parent, for example, and a buggy program redirecting it to the
      same device again could run into stack overflow eventually. It would be
      good if we could notify an admin to give him a chance to react. We reuse
      xmit_recursion instead of having one private to eBPF, so that the stack's
      current recursion depth will be taken into account as well. Follow-up to
      commit 3896d655 ("bpf: introduce bpf_clone_redirect() helper") and
      27b29f63 ("bpf: add bpf_redirect() helper").
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a70b506e
  2. 10 6月, 2016 8 次提交
    • D
      net: vrf: Fix crash when IPv6 is disabled at boot time · e4348637
      David Ahern 提交于
      Frank Kellermann reported a kernel crash with 4.5.0 when IPv6 is
      disabled at boot using the kernel option ipv6.disable=1. Using
      current net-next with the boot option:
      
      $ ip link add red type vrf table 1001
      
      Generates:
      [12210.919584] BUG: unable to handle kernel NULL pointer dereference at 0000000000000748
      [12210.921341] IP: [<ffffffff814b30e3>] fib6_get_table+0x2c/0x5a
      [12210.922537] PGD b79e3067 PUD bb32b067 PMD 0
      [12210.923479] Oops: 0000 [#1] SMP
      [12210.924001] Modules linked in: ipvlan 8021q garp mrp stp llc
      [12210.925130] CPU: 3 PID: 1177 Comm: ip Not tainted 4.7.0-rc1+ #235
      [12210.926168] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
      [12210.928065] task: ffff8800b9ac4640 ti: ffff8800bacac000 task.ti: ffff8800bacac000
      [12210.929328] RIP: 0010:[<ffffffff814b30e3>]  [<ffffffff814b30e3>] fib6_get_table+0x2c/0x5a
      [12210.930697] RSP: 0018:ffff8800bacaf888  EFLAGS: 00010202
      [12210.931563] RAX: 0000000000000748 RBX: ffffffff81a9e280 RCX: ffff8800b9ac4e28
      [12210.932688] RDX: 00000000000000e9 RSI: 0000000000000002 RDI: 0000000000000286
      [12210.933820] RBP: ffff8800bacaf898 R08: ffff8800b9ac4df0 R09: 000000000052001b
      [12210.934941] R10: 00000000657c0000 R11: 000000000000c649 R12: 00000000000003e9
      [12210.936032] R13: 00000000000003e9 R14: ffff8800bace7800 R15: ffff8800bb3ec000
      [12210.937103] FS:  00007faa1766c700(0000) GS:ffff88013ac00000(0000) knlGS:0000000000000000
      [12210.938321] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [12210.939166] CR2: 0000000000000748 CR3: 00000000b79d6000 CR4: 00000000000406e0
      [12210.940278] Stack:
      [12210.940603]  ffff8800bb3ec000 ffffffff81a9e280 ffff8800bacaf8c8 ffffffff814b3135
      [12210.941818]  ffff8800bb3ec000 ffffffff81a9e280 ffffffff81a9e280 ffff8800bace7800
      [12210.943040]  ffff8800bacaf8f0 ffffffff81397c88 ffff8800bb3ec000 ffffffff81a9e280
      [12210.944288] Call Trace:
      [12210.944688]  [<ffffffff814b3135>] fib6_new_table+0x24/0x8a
      [12210.945516]  [<ffffffff81397c88>] vrf_dev_init+0xd4/0x162
      [12210.946328]  [<ffffffff814091e1>] register_netdevice+0x100/0x396
      [12210.947209]  [<ffffffff8139823d>] vrf_newlink+0x40/0xb3
      [12210.948001]  [<ffffffff814187f0>] rtnl_newlink+0x5d3/0x6d5
      ...
      
      The problem above is due to the fact that the fib hash table is not
      allocated when IPv6 is disabled at boot.
      
      As for the VRF driver it should not do any IPv6 initializations if IPv6
      is disabled, so it needs to know if IPv6 is disabled at boot. The disable
      parameter is private to the IPv6 module, so provide an accessor for
      modules to determine if IPv6 was disabled at boot time.
      
      Fixes: 35402e31 ("net: Add IPv6 support to VRF device")
      Signed-off-by: NDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e4348637
    • D
      rxrpc: Simplify connect() implementation and simplify sendmsg() op · 2341e077
      David Howells 提交于
      Simplify the RxRPC connect() implementation.  It will just note the
      destination address it is given, and if a sendmsg() comes along with no
      address, this will be assigned as the address.  No transport struct will be
      held internally, which will allow us to remove this later.
      
      Simplify sendmsg() also.  Whilst a call is active, userspace refers to it
      by a private unique user ID specified in a control message.  When sendmsg()
      sees a user ID that doesn't map to an extant call, it creates a new call
      for that user ID and attempts to add it.  If, when we try to add it, the
      user ID is now registered, we now reject the message with -EEXIST.  We
      should never see this situation unless two threads are racing, trying to
      create a call with the same ID - which would be an error.
      
      It also isn't required to provide sendmsg() with an address - provided the
      control message data holds a user ID that maps to a currently active call.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2341e077
    • F
      net: dsa: b53: Add support for Broadcom RoboSwitch · 967dd82f
      Florian Fainelli 提交于
      This patch adds support for Broadcom's BCM53xx switch family, also known
      as RoboSwitch. Some of these switches are ubiquituous, found in home
      routers, Wi-Fi routers, DSL and cable modem gateways and other
      networking related products.
      
      This drivers adds the library driver (b53_common.c) as well as a few bus
      glue drivers for MDIO, SPI, Switch Register Access Block (SRAB) and
      memory-mapped I/O into a SoC's address space (Broadcom BCM63xx/33xx).
      
      Basic operations are supported to bring the Layer 1/2 up and running,
      but not much more at this point, subsequent patches add the remaining
      features.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      967dd82f
    • N
      net/mlx5: E-Switch, Modify node guid on vf set MAC · 23898c76
      Noa Osherovich 提交于
      In RoCE, the RDMA-CM needs the node guid to establish connection
      between nodes.
      Today, the node guid exposed to mlx5 Ethernet VFs is zero, therefore
      RDMA-CM on the VF is broken.
      
      Whenever the administrator sets a MAC for a VF, derive the node guid
      from it and set it as well in the following way:
      MAC: e4:1d:2d:b3:f4:01 -> node_guid: e4:1d:2d:ff:fe:b3:f4:01
      
      Fixes: 77256579 ('net/mlx5: E-Switch, Introduce Vport...')
      Signed-off-by: NNoa Osherovich <noaos@mellanox.com>
      Signed-off-by: NMajd Dibbiny <majd@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      23898c76
    • M
      net/mlx5: Fix flow steering NIC capabilities check · 876d634d
      Maor Gottlieb 提交于
      Flow steering infrastructure is currently used only on link layer
      ethernet, therefore the driver should initialize the flow steering
      when the device link layer is ethernet.
      
      In addition, add missing capability check before initializing the
      namespace of NIC RX flow tables.
      
      Fixes: 25302363 ('net/mlx5_core: Flow steering tree initialization')
      Signed-off-by: NMaor Gottlieb <maorg@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      876d634d
    • S
      net/mlx5: Fix MLX5_CMD_OP_MAX to be defined correctly · 86d56a1a
      Shahar Klein 提交于
      Having MLX5_CMD_OP_MAX on another file causes us to repeatedly miss
      accounting new commands added to the driver and hence there're no entries
      for them in debugfs. To solve that, we integrate it into the commands enum
      as the last entry.
      
      Fixes: 34a40e68 ('net/mlx5_core: Introduce modify flow table command')
      Signed-off-by: NShahar Klein <shahark@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      86d56a1a
    • M
      net/mlx5: Fix the size of modify QP mailbox · 418f8399
      Majd Dibbiny 提交于
      Add 16 reserved bytes at the end of mlx5_modify_qp_mbox_in to
      match the hardware spec definition.
      
      Fixes: e126ba97 ('mlx5: Add driver for Mellanox Connect-IB adapters')
      Signed-off-by: NMajd Dibbiny <majd@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      418f8399
    • E
      net: add netdev_lockdep_set_classes() helper · d3fff6c4
      Eric Dumazet 提交于
      It is time to add netdev_lockdep_set_classes() helper
      so that lockdep annotations per device type are easier to manage.
      
      This removes a lot of copies and missing annotations.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3fff6c4
  3. 09 6月, 2016 3 次提交
  4. 08 6月, 2016 2 次提交
  5. 07 6月, 2016 1 次提交
  6. 06 6月, 2016 1 次提交
    • E
      devpts: Make each mount of devpts an independent filesystem. · eedf265a
      Eric W. Biederman 提交于
      The /dev/ptmx device node is changed to lookup the directory entry "pts"
      in the same directory as the /dev/ptmx device node was opened in.  If
      there is a "pts" entry and that entry is a devpts filesystem /dev/ptmx
      uses that filesystem.  Otherwise the open of /dev/ptmx fails.
      
      The DEVPTS_MULTIPLE_INSTANCES configuration option is removed, so that
      userspace can now safely depend on each mount of devpts creating a new
      instance of the filesystem.
      
      Each mount of devpts is now a separate and equal filesystem.
      
      Reserved ttys are now available to all instances of devpts where the
      mounter is in the initial mount namespace.
      
      A new vfs helper path_pts is introduced that finds a directory entry
      named "pts" in the directory of the passed in path, and changes the
      passed in path to point to it.  The helper path_pts uses a function
      path_parent_directory that was factored out of follow_dotdot.
      
      In the implementation of devpts:
       - devpts_mnt is killed as it is no longer meaningful if all mounts of
         devpts are equal.
       - pts_sb_from_inode is replaced by just inode->i_sb as all cached
         inodes in the tty layer are now from the devpts filesystem.
       - devpts_add_ref is rolled into the new function devpts_ptmx.  And the
         unnecessary inode hold is removed.
       - devpts_del_ref is renamed devpts_release and reduced to just a
         deacrivate_super.
       - The newinstance mount option continues to be accepted but is now
         ignored.
      
      In devpts_fs.h definitions for when !CONFIG_UNIX98_PTYS are removed as
      they are never used.
      
      Documentation/filesystems/devices.txt is updated to describe the current
      situation.
      
      This has been verified to work properly on openwrt-15.05, centos5,
      centos6, centos7, debian-6.0.2, debian-7.9, debian-8.2, ubuntu-14.04.3,
      ubuntu-15.10, fedora23, magia-5, mint-17.3, opensuse-42.1,
      slackware-14.1, gentoo-20151225 (13.0?), archlinux-2015-12-01.  With the
      caveat that on centos6 and on slackware-14.1 that there wind up being
      two instances of the devpts filesystem mounted on /dev/pts, the lower
      copy does not end up getting used.
      Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Peter Hurley <peter@hurleysoftware.com>
      Cc: Peter Anvin <hpa@zytor.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
      Cc: Willy Tarreau <w@1wt.eu>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
      Cc: Jann Horn <jann@thejh.net>
      Cc: Jiri Slaby <jslaby@suse.com>
      Cc: Florian Weimer <fw@deneb.enyo.de>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      eedf265a
  7. 05 6月, 2016 2 次提交
  8. 04 6月, 2016 8 次提交
  9. 03 6月, 2016 4 次提交
  10. 02 6月, 2016 2 次提交
  11. 01 6月, 2016 5 次提交
  12. 31 5月, 2016 1 次提交