1. 17 10月, 2017 9 次提交
    • C
      tun: call dev_get_valid_name() before register_netdevice() · 0ad646c8
      Cong Wang 提交于
      register_netdevice() could fail early when we have an invalid
      dev name, in which case ->ndo_uninit() is not called. For tun
      device, this is a problem because a timer etc. are already
      initialized and it expects ->ndo_uninit() to clean them up.
      
      We could move these initializations into a ->ndo_init() so
      that register_netdevice() knows better, however this is still
      complicated due to the logic in tun_detach().
      
      Therefore, I choose to just call dev_get_valid_name() before
      register_netdevice(), which is quicker and much easier to audit.
      And for this specific case, it is already enough.
      
      Fixes: 96442e42 ("tuntap: choose the txq based on rxq")
      Reported-by: NDmitry Alexeev <avekceeb@gmail.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Signed-off-by: NCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0ad646c8
    • N
      net: enable interface alias removal via rtnl · 2459b4c6
      Nicolas Dichtel 提交于
      IFLA_IFALIAS is defined as NLA_STRING. It means that the minimal length of
      the attribute is 1 ("\0"). However, to remove an alias, the attribute
      length must be 0 (see dev_set_alias()).
      
      Let's define the type to NLA_BINARY to allow 0-length string, so that the
      alias can be removed.
      
      Example:
      $ ip l s dummy0 alias foo
      $ ip l l dev dummy0
      5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
          link/ether ae:20:30:4f:a7:f3 brd ff:ff:ff:ff:ff:ff
          alias foo
      
      Before the patch:
      $ ip l s dummy0 alias ""
      RTNETLINK answers: Numerical result out of range
      
      After the patch:
      $ ip l s dummy0 alias ""
      $ ip l l dev dummy0
      5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
          link/ether ae:20:30:4f:a7:f3 brd ff:ff:ff:ff:ff:ff
      
      CC: Oliver Hartkopp <oliver@hartkopp.net>
      CC: Stephen Hemminger <stephen@networkplumber.org>
      Fixes: 96ca4a2c ("net: remove ifalias on empty given alias")
      Reported-by: NJulien FLoret <julien.floret@6wind.com>
      Signed-off-by: NNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2459b4c6
    • D
      Merge branch 'rtnetlink-dev-notification-fixes' · 2fd7c5ab
      David S. Miller 提交于
      Xin Long says:
      
      ====================
      rtnetlink: a bunch of fixes for userspace notifications in changing dev properties
      
      Whenever any property of a link, address, route, etc. changes by whatever way,
      kernel should notify the programs that listen for such events in userspace.
      
      The patchet "rtnetlink: Cleanup user notifications for netdev events" tried to
      fix a redundant notifications issue, but it also introduced a side effect.
      
      After that, user notifications could only be sent when changing dev properties
      via netlink api. As it removed some events process in rtnetlink_event where
      the notifications was sent to users.
      
      It resulted in no notification generated when dev properties are changed via
      other ways, like ioctl, sysfs, etc. It may cause some user programs doesn't
      work as expected because of the missing notifications.
      
      This patchset will fix it by bringing some of these netdev events back and
      also fix the old redundant notifications issue with a proper way.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2fd7c5ab
    • X
      rtnetlink: do not set notification for tx_queue_len in do_setlink · 2d7f669b
      Xin Long 提交于
      NETDEV_CHANGE_TX_QUEUE_LEN event process in rtnetlink_event would
      send a notification for userspace and tx_queue_len's setting in
      do_setlink would trigger NETDEV_CHANGE_TX_QUEUE_LEN.
      
      So it shouldn't set DO_SETLINK_NOTIFY status for this change to
      send a notification any more.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Acked-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2d7f669b
    • X
      rtnetlink: check DO_SETLINK_NOTIFY correctly in do_setlink · 64ff90cc
      Xin Long 提交于
      The check 'status & DO_SETLINK_NOTIFY' in do_setlink doesn't really
      work after status & DO_SETLINK_MODIFIED, as:
      
        DO_SETLINK_MODIFIED 0x1
        DO_SETLINK_NOTIFY 0x3
      
      Considering that notifications are suppposed to be sent only when
      status have the flag DO_SETLINK_NOTIFY, the right check would be:
      
        (status & DO_SETLINK_NOTIFY) == DO_SETLINK_NOTIFY
      
      This would avoid lots of duplicated notifications when setting some
      properties of a link.
      
      Fixes: ba998906 ("rtnl/do_setlink(): notify when a netdev is modified")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Acked-by: NDavid Ahern <dsahern@gmail.com>
      Acked-by: NNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64ff90cc
    • X
      rtnetlink: bring NETDEV_CHANGEUPPER event process back in rtnetlink_event · dc709f37
      Xin Long 提交于
      libteam needs this event notification in userspace when dev's master
      dev has been changed. After this, the redundant notifications issue
      would be fixed in the later patch 'rtnetlink: check DO_SETLINK_NOTIFY
      correctly in do_setlink'.
      
      Fixes: b6b36eb2 ("rtnetlink: Do not generate notifications for NETDEV_CHANGEUPPER event")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Acked-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc709f37
    • X
      rtnetlink: bring NETDEV_POST_TYPE_CHANGE event process back in rtnetlink_event · e6e66594
      Xin Long 提交于
      As I said in patch 'rtnetlink: bring NETDEV_CHANGEMTU event process back
      in rtnetlink_event', removing NETDEV_POST_TYPE_CHANGE event was not the
      right fix for the redundant notifications issue.
      
      So bring this event process back to rtnetlink_event and the old redundant
      notifications issue would be fixed in the later patch 'rtnetlink: check
      DO_SETLINK_NOTIFY correctly in do_setlink'.
      
      Fixes: aef091ae ("rtnetlink: Do not generate notifications for POST_TYPE_CHANGE event")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Acked-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e6e66594
    • X
      rtnetlink: bring NETDEV_CHANGE_TX_QUEUE_LEN event process back in rtnetlink_event · ebdcf045
      Xin Long 提交于
      The same fix for changing mtu in the patch 'rtnetlink: bring
      NETDEV_CHANGEMTU event process back in rtnetlink_event' is
      needed for changing tx_queue_len.
      
      Note that the redundant notifications issue for tx_queue_len
      will be fixed in the later patch 'rtnetlink: do not send
      notification for tx_queue_len in do_setlink'.
      
      Fixes: 27b3b551 ("rtnetlink: Do not generate notifications for NETDEV_CHANGE_TX_QUEUE_LEN event")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Acked-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ebdcf045
    • X
      rtnetlink: bring NETDEV_CHANGEMTU event process back in rtnetlink_event · 8a212589
      Xin Long 提交于
      Commit 085e1a65 ("rtnetlink: Do not generate notifications for MTU
      events") tried to fix the redundant notifications issue when ip link
      set mtu by removing NETDEV_CHANGEMTU event process in rtnetlink_event.
      
      But it also resulted in no notification generated when dev's mtu is
      changed via other methods, like:
        'ifconfig eth1 mtu 1400' or 'echo 1400 > /sys/class/net/eth1/mtu'
      It would cause users not to be notified by this change.
      
      This patch is to fix it by bringing NETDEV_CHANGEMTU event back into
      rtnetlink_event, and the redundant notifications issue will be fixed
      in the later patch 'rtnetlink: check DO_SETLINK_NOTIFY correctly in
      do_setlink'.
      
      Fixes: 085e1a65 ("rtnetlink: Do not generate notifications for MTU events")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8a212589
  2. 15 10月, 2017 10 次提交
  3. 14 10月, 2017 2 次提交
  4. 13 10月, 2017 2 次提交
    • D
      Merge tag 'wireless-drivers-for-davem-2017-10-13' of... · db5972c9
      David S. Miller 提交于
      Merge tag 'wireless-drivers-for-davem-2017-10-13' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
      
      Kalle Valo says:
      
      ====================
      wireless-drivers fixes for 4.14
      
      Nothing really special standing out, all of these are important fixes
      which should go to 4.14.
      
      iwlwifi
      
      * fix support for 3168 device series
      
      * fix a potential crash when using FW debugging recording;
      
      * improve channel flags parsing to avoid warnings on too long traces
      
      * return -ENODATA when the temperature is not available, since the
       -EIO we were returning was causing fatal errors in userspace
      
      * avoid printing too many messages in dmesg when using monitor mode,
        since this can become very noisy and completely flood the logs
      
      brcmsmac
      
      * reduce stack usage to avoid frame size warnings with KASAN
      
      brcmfmac
      
      * add a check to avoid copying uninitialised memory
      
      rtlwifi:
      
      * fix a regression with rtl8821ae starting from v4.11 where
        connections was frequently lost
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db5972c9
    • S
      ip: update policy routing config help · 12ed3772
      Stephen Hemminger 提交于
      The kernel config help for policy routing was still pointing at
      an ancient document from 2000 that refers to Linux 2.1. Update it
      to point to something that is at least occasionally updated.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      12ed3772
  5. 12 10月, 2017 3 次提交
    • S
      net/ncsi: Don't limit vids based on hot_channel · 6e9c0075
      Samuel Mendoza-Jonas 提交于
      Currently we drop any new VLAN ids if there are more than the current
      (or last used) channel can support. Most importantly this is a problem
      if no channel has been selected yet, resulting in a segfault.
      
      Secondly this does not necessarily reflect the capabilities of any other
      channels. Instead only drop a new VLAN id if we are already tracking the
      maximum allowed by the NCSI specification. Per-channel limits are
      already handled by ncsi_add_filter(), but add a message to set_one_vid()
      to make it obvious that the channel can not support any more VLAN ids.
      Signed-off-by: NSamuel Mendoza-Jonas <sam@mendozajonas.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6e9c0075
    • D
      r8169: only enable PCI wakeups when WOL is active · bde135a6
      Daniel Drake 提交于
      rtl_init_one() currently enables PCI wakeups if the ethernet device
      is found to be WOL-capable. There is no need to do this when
      rtl8169_set_wol() will correctly enable or disable the same wakeup flag
      when WOL is activated/deactivated.
      
      This works around an ACPI DSDT bug which prevents the Acer laptop models
      Aspire ES1-533, Aspire ES1-732, PackardBell ENTE69AP and Gateway NE533
      from entering S3 suspend - even when no ethernet cable is connected.
      
      On these platforms, the DSDT says that GPE08 is a wakeup source for
      ethernet, but this GPE fires as soon as the system goes into suspend,
      waking the system up immediately. Having the wakeup normally disabled
      avoids this issue in the default case.
      
      With this change, WOL will continue to be unusable on these platforms
      (it will instantly wake up if WOL is later enabled by the user) but we
      do not expect this to be a commonly used feature on these consumer
      laptops. We have separately determined that WOL works fine without any
      ACPI GPEs enabled during sleep, so a DSDT fix or override would be
      possible to make WOL work.
      Signed-off-by: NDaniel Drake <drake@endlessm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bde135a6
    • S
      macsec: fix memory leaks when skb_to_sgvec fails · 5aba2ba5
      Sabrina Dubroca 提交于
      Fixes: cda7ea69 ("macsec: check return value of skb_to_sgvec always")
      Signed-off-by: NSabrina Dubroca <sd@queasysnail.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5aba2ba5
  6. 11 10月, 2017 7 次提交
  7. 10 10月, 2017 7 次提交
    • A
      i40e: Fix memory leak related filter programming status · 2b9478ff
      Alexander Duyck 提交于
      It looks like we weren't correctly placing the pages from buffers that had
      been used to return a filter programming status back on the ring. As a
      result they were being overwritten and tracking of the pages was lost.
      
      This change works to correct that by incorporating part of
      i40e_put_rx_buffer into the programming status handler code. As a result we
      should now be correctly placing the pages for those buffers on the
      re-allocation list instead of letting them stay in place.
      
      Fixes: 0e626ff7 ("i40e: Fix support for flow director programming status")
      Reported-by: NAnders K. Pedersen <akp@cohaesio.com>
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: NAnders K Pedersen <akp@cohaesio.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      2b9478ff
    • S
      i40e: Fix comment about locking for __i40e_read_nvm_word() · e836e321
      Stefano Brivio 提交于
      Caller needs to acquire the lock. Called functions will not.
      
      Fixes: 09f79fd4 ("i40e: avoid NVM acquire deadlock during NVM update")
      Signed-off-by: NStefano Brivio <sbrivio@redhat.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e836e321
    • E
      net: defer call to cgroup_sk_alloc() · fbb1fb4a
      Eric Dumazet 提交于
      sk_clone_lock() might run while TCP/DCCP listener already vanished.
      
      In order to prevent use after free, it is better to defer cgroup_sk_alloc()
      to the point we know both parent and child exist, and from process context.
      
      Fixes: e994b2f0 ("tcp: do not lock listener to process SYN packets")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fbb1fb4a
    • E
      net: memcontrol: defer call to mem_cgroup_sk_alloc() · 9f1c2674
      Eric Dumazet 提交于
      Instead of calling mem_cgroup_sk_alloc() from BH context,
      it is better to call it from inet_csk_accept() in process context.
      
      Not only this removes code in mem_cgroup_sk_alloc(), but it also
      fixes a bug since listener might have been dismantled and css_get()
      might cause a use-after-free.
      
      Fixes: e994b2f0 ("tcp: do not lock listener to process SYN packets")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f1c2674
    • L
      Merge branch 'ppc-bundle' (bundle from Michael Ellerman) · 529a86e0
      Linus Torvalds 提交于
      Merge powerpc transactional memory fixes from Michael Ellerman:
       "I figured I'd still send you the commits using a bundle to make sure
        it works in case I need to do it again in future"
      
      This fixes transactional memory state restore for powerpc.
      
      * bundle'd patches from Michael Ellerman:
        powerpc/tm: Fix illegal TM state in signal handler
        powerpc/64s: Use emergency stack for kernel TM Bad Thing program checks
      529a86e0
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · ff33952e
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix object leak on IPSEC offload failure, from Steffen Klassert.
      
       2) Fix range checks in ipset address range addition operations, from
          Jozsef Kadlecsik.
      
       3) Fix pernet ops unregistration order in ipset, from Florian Westphal.
      
       4) Add missing netlink attribute policy for nl80211 packet pattern
          attrs, from Peng Xu.
      
       5) Fix PPP device destruction race, from Guillaume Nault.
      
       6) Write marks get lost when BPF verifier processes R1=R2 register
          assignments, causing incorrect liveness information and less state
          pruning. Fix from Alexei Starovoitov.
      
       7) Fix blockhole routes so that they are marked dead and therefore not
          cached in sockets, otherwise IPSEC stops working. From Steffen
          Klassert.
      
       8) Fix broadcast handling of UDP socket early demux, from Paolo Abeni.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (37 commits)
        cdc_ether: flag the u-blox TOBY-L2 and SARA-U2 as wwan
        net: thunderx: mark expected switch fall-throughs in nicvf_main()
        udp: fix bcast packet reception
        netlink: do not set cb_running if dump's start() errs
        ipv4: Fix traffic triggered IPsec connections.
        ipv6: Fix traffic triggered IPsec connections.
        ixgbe: incorrect XDP ring accounting in ethtool tx_frame param
        net: ixgbe: Use new PCI_DEV_FLAGS_NO_RELAXED_ORDERING flag
        Revert commit 1a8b6d76 ("net:add one common config...")
        ixgbe: fix masking of bits read from IXGBE_VXLANCTRL register
        ixgbe: Return error when getting PHY address if PHY access is not supported
        netfilter: xt_bpf: Fix XT_BPF_MODE_FD_PINNED mode of 'xt_bpf_info_v1'
        netfilter: SYNPROXY: skip non-tcp packet in {ipv4, ipv6}_synproxy_hook
        tipc: Unclone message at secondary destination lookup
        tipc: correct initialization of skb list
        gso: fix payload length when gso_size is zero
        mlxsw: spectrum_router: Avoid expensive lookup during route removal
        bpf: fix liveness marking
        doc: Fix typo "8023.ad" in bonding documentation
        ipv6: fix net.ipv6.conf.all.accept_dad behaviour for real
        ...
      ff33952e
    • A
      cdc_ether: flag the u-blox TOBY-L2 and SARA-U2 as wwan · fdfbad32
      Aleksander Morgado 提交于
      The u-blox TOBY-L2 is a LTE Cat 4 module with HSPA+ and 2G fallback.
      This module allows switching to different USB profiles with the
      'AT+UUSBCONF' command, and provides a ECM network interface when the
      'AT+UUSBCONF=2' profile is selected.
      
      The u-blox SARA-U2 is a HSPA module with 2G fallback. The default USB
      configuration includes a ECM network interface.
      
      Both these modules are controlled via AT commands through one of the
      TTYs exposed. Connecting these modules may be done just by activating
      the desired PDP context with 'AT+CGACT=1,<cid>' and then running DHCP
      on the ECM interface.
      Signed-off-by: NAleksander Morgado <aleksander@aleksander.es>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fdfbad32