1. 11 Nov, 2018 1 commit
    • Jon Maloy's avatar
      tipc: fix link re-establish failure · 7ab412d3
      Jon Maloy authored
      When a link failure is detected locally, the link is reset, the flag
      link->in_session is set to false, and a RESET_MSG with the 'stopping'
      bit set is sent to the peer.
      
      The purpose of this bit is to inform the peer that this endpoint just
      is going down, and that the peer should handle the reception of this
      particular RESET message as a local failure. This forces the peer to
      accept another RESET or ACTIVATE message from this endpoint before it
      can re-establish the link. This again is necessary to ensure that
      link session numbers are properly exchanged before the link comes up
      again.
      
      If a failure is detected locally at the same time at the peer endpoint
      this will do the same, which is also a correct behavior.
      
      However, when receiving such messages, the endpoints will not
      distinguish between 'stopping' RESETs and ordinary ones when it comes
      to updating session numbers. Both endpoints will copy the received
      session number and set their 'in_session' flags to true at the
      reception, while they are still expecting another RESET from the
      peer before they can go ahead and re-establish. This is contradictory,
      since, after applying the validation check referred to below, the
      'in_session' flag will cause rejection of all such messages, and the
      link will never come up again.
      
      We now fix this by not only handling received RESET/STOPPING messages
      as a local failure, but also by omitting to set a new session number
      and the 'in_session' flag in such cases.
      
      Fixes: 7ea817f4 ("tipc: check session number before accepting link protocol messages")
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ab412d3
  2. 10 Nov, 2018 4 commits
    • Jakub Kicinski's avatar
      net: sched: cls_flower: validate nested enc_opts_policy to avoid warning · 63c82997
      Jakub Kicinski authored
      TCA_FLOWER_KEY_ENC_OPTS and TCA_FLOWER_KEY_ENC_OPTS_MASK can only
      currently contain further nested attributes, which are parsed by
      hand, so the policy is never actually used resulting in a W=1
      build warning:
      
      net/sched/cls_flower.c:492:1: warning: ‘enc_opts_policy’ defined but not used [-Wunused-const-variable=]
       enc_opts_policy[TCA_FLOWER_KEY_ENC_OPTS_MAX + 1] = {
      
      Add the validation anyway to avoid potential bugs when other
      attributes are added and to make the attribute structure slightly
      more clear.  Validation will also set extact to point to bad
      attribute on error.
      
      Fixes: 0a6e7778 ("net/sched: allow flower to match tunnel options")
      Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Acked-by: default avatarSimon Horman <simon.horman@netronome.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63c82997
    • Alexandre Belloni's avatar
      net: mvneta: correct typo · fbd1d524
      Alexandre Belloni authored
      The reserved variable should be named reserved1.
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fbd1d524
    • 배석진's avatar
      flow_dissector: do not dissect l4 ports for fragments · 62230715
      배석진 authored
      Only first fragment has the sport/dport information,
      not the following ones.
      
      If we want consistent hash for all fragments, we need to
      ignore ports even for first fragment.
      
      This bug is visible for IPv6 traffic, if incoming fragments
      do not have a flow label, since skb_get_hash() will give
      different results for first fragment and following ones.
      
      It is also visible if any routing rule wants dissection
      and sport or dport.
      
      See commit 5e5d6fed ("ipv6: route: dissect flow
      in input path if fib rules need it") for details.
      
      [edumazet] rewrote the changelog completely.
      
      Fixes: 06635a35 ("flow_dissect: use programable dissector in skb_flow_dissect and friends")
      Signed-off-by: default avatar배석진 <soukjin.bae@samsung.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      62230715
    • Subash Abhinov Kasiviswanathan's avatar
      net: qualcomm: rmnet: Fix incorrect assignment of real_dev · d02854dc
      Subash Abhinov Kasiviswanathan authored
      A null dereference was observed when a sysctl was being set
      from userspace and rmnet was stuck trying to complete some actions
      in the NETDEV_REGISTER callback. This is because the real_dev is set
      only after the device registration handler completes.
      
      sysctl call stack -
      
      <6> Unable to handle kernel NULL pointer dereference at
          virtual address 00000108
      <2> pc : rmnet_vnd_get_iflink+0x1c/0x28
      <2> lr : dev_get_iflink+0x2c/0x40
      <2>  rmnet_vnd_get_iflink+0x1c/0x28
      <2>  inet6_fill_ifinfo+0x15c/0x234
      <2>  inet6_ifinfo_notify+0x68/0xd4
      <2>  ndisc_ifinfo_sysctl_change+0x1b8/0x234
      <2>  proc_sys_call_handler+0xac/0x100
      <2>  proc_sys_write+0x3c/0x4c
      <2>  __vfs_write+0x54/0x14c
      <2>  vfs_write+0xcc/0x188
      <2>  SyS_write+0x60/0xc0
      <2>  el0_svc_naked+0x34/0x38
      
      device register call stack -
      
      <2>  notifier_call_chain+0x84/0xbc
      <2>  raw_notifier_call_chain+0x38/0x48
      <2>  call_netdevice_notifiers_info+0x40/0x70
      <2>  call_netdevice_notifiers+0x38/0x60
      <2>  register_netdevice+0x29c/0x3d8
      <2>  rmnet_vnd_newlink+0x68/0xe8
      <2>  rmnet_newlink+0xa0/0x160
      <2>  rtnl_newlink+0x57c/0x6c8
      <2>  rtnetlink_rcv_msg+0x1dc/0x328
      <2>  netlink_rcv_skb+0xac/0x118
      <2>  rtnetlink_rcv+0x24/0x30
      <2>  netlink_unicast+0x158/0x1f0
      <2>  netlink_sendmsg+0x32c/0x338
      <2>  sock_sendmsg+0x44/0x60
      <2>  SyS_sendto+0x150/0x1ac
      <2>  el0_svc_naked+0x34/0x38
      
      Fixes: b752eff5 ("net: qualcomm: rmnet: Implement ndo_get_iflink")
      Signed-off-by: default avatarSean Tranchetti <stranche@codeaurora.org>
      Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d02854dc
  3. 09 Nov, 2018 15 commits
  4. 08 Nov, 2018 8 commits
  5. 07 Nov, 2018 3 commits
  6. 06 Nov, 2018 9 commits