1. Feb 20, 2017
    • Colin Ian King's avatar
      fsl/fman: fix spelling mistake in variable name en_tsu_err_exeption · f74f92be
      Colin Ian King authored
      
      
      trivial fix to spelling mistake, en_tsu_err_exeption should
      be en_tsu_err_exception
      
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f74f92be
    • David S. Miller's avatar
      Merge branch 'sctp-MSG_MORE' · d4105267
      David S. Miller authored
      Xin Long says:
      
      ====================
      sctp: support MSG_MORE flag when sending msg
      
      This patch is to add support for MSG_MORE on sctp. Patch 1/2 is an
      improvement ahead of patch 2/2 to solve the close block problem
      mentioned in https://patchwork.ozlabs.org/patch/372404/
      
      .
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4105267
    • Xin Long's avatar
      sctp: add support for MSG_MORE · 4ea0c32f
      Xin Long authored
      This patch is to add support for MSG_MORE on sctp.
      
      It adds force_delay in sctp_datamsg to save MSG_MORE, and sets it after
      creating datamsg according to the send flag. sctp_packet_can_append_data
      then uses it to decide if the chunks of this msg will be sent at once or
      delay it.
      
      Note that unlike [1], this patch saves MSG_MORE in datamsg, instead of
      in assoc. As sctp enqueues the chunks first, then dequeue them one by
      one. If it's saved in assoc,the current msg's send flag (MSG_MORE) may
      affect other chunks' bundling.
      
      Since last patch, sctp flush out queue once assoc state falls into
      SHUTDOWN_PENDING, the close block problem mentioned in [1] has been
      solved as well.
      
      [1] https://patchwork.ozlabs.org/patch/372404/
      
      
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4ea0c32f
    • Xin Long's avatar
      sctp: flush out queue once assoc state falls into SHUTDOWN_PENDING · b7018d0b
      Xin Long authored
      
      
      This patch is to flush out queue when assoc state falls into
      SHUTDOWN_PENDING if there are still chunks in it, so that the
      data can be sent out as soon as possible before sending SHUTDOWN
      chunk.
      
      When sctp supports MSG_MORE flag in next patch, this improvement
      can also solve the problem that the chunks with MSG_MORE flag
      may be stuck in queue when closing an assoc.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b7018d0b
    • Harald Welte's avatar
      GTP: Add some basic documentation about drivers/net/gtp.c · 93a66e93
      Harald Welte authored
      
      
      In order to clarify what the module actually does, and how to use it,
      let's add some basic documentation to the kernel tree, together with
      pointers to related specs and projects.
      
      Signed-off-by: default avatarHarald Welte <laforge@gnumonks.org>
      Acked-by: default avatarAndreas Schultz <aschultz@tpip.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93a66e93
    • Lino Sanfilippo's avatar
      net: aquantia: remove function aq_ring_tx_deinit · eb36bedf
      Lino Sanfilippo authored
      
      
      Both functions aq_ring_rx_deinit() and aq_ring_tx_clean() are almost
      identical aside from an additional check in the latter.
      Move that check from the function into its caller and replace
      aq_ring_rx_deinit() with aq_ring_rx_deinit().
      
      By doing this also adjust the functions return value from int to void
      since it can never fail.
      
      Signed-off-by: default avatarLino Sanfilippo <LinoSanfilippo@gmx.de>
      Tested-by: default avatarPavel Belous <pavel.belous@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eb36bedf
    • Lino Sanfilippo's avatar
      net: ena: remove superfluous check in ena_remove() · 90a6c997
      Lino Sanfilippo authored
      
      
      The check in ena_remove() for the pci driver data not being NULL is not
      needed, since it is always set in the probe() function. Remove the
      superfluous check.
      
      Signed-off-by: default avatarLino Sanfilippo <LinoSanfilippo@gmx.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      90a6c997
    • Jarno Rajahalme's avatar
      openvswitch: Set event bit after initializing labels. · 2317c6b5
      Jarno Rajahalme authored
      Connlabels are included in conntrack netlink event messages only if
      the IPCT_LABEL bit is set in the event cache (see
      ctnetlink_conntrack_event()).  Set it after initializing labels for a
      new connection.
      
      Found upon further system testing, where it was noticed that labels
      were missing from the conntrack events.
      
      Fixes: 193e3096
      
       ("openvswitch: Do not trigger events for unconfirmed connections.")
      Signed-off-by: default avatarJarno Rajahalme <jarno@ovn.org>
      Acked-by: default avatarPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2317c6b5
    • David S. Miller's avatar
      Merge branch 'phy-unbind-crash' · 5ed3fea0
      David S. Miller authored
      
      
      Florian Fainelli says:
      
      ====================
      net: phy: Fix PHY unbind crash
      
      This fixes crashes when the PHY driver is no longer bound to the device.
      
      There is still a fair amount of work to be done to get the unbind -> bind
      sequent to result in a functional state, but that will be net-next material.
      
      These two problems existed for as long as PHYLIB as been around.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ed3fea0
    • Florian Fainelli's avatar
      net: phy: Check phydev->drv · 25149ef9
      Florian Fainelli authored
      
      
      There are number of function calls, originating from user-space,
      typically through the Ethernet driver that can make us crash by
      dereferencing phydev->drv which will be NULL once we unbind the driver
      from the PHY.
      
      There are still functional issues that prevent an unbind then rebind to
      work, but these will be addressed separately.
      
      Suggested-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      25149ef9
    • Florian Fainelli's avatar
      net: phy: Fix PHY unbind crash · 7b9a88a3
      Florian Fainelli authored
      
      
      The PHY library does not deal very well with bind and unbind events. The first
      thing we would see is that we were not properly canceling the PHY state machine
      workqueue, so we would be crashing while dereferencing phydev->drv since there
      is no driver attached anymore.
      
      Suggested-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7b9a88a3
    • Xin Long's avatar
      sctp: check duplicate node before inserting a new transport · cd2b7087
      Xin Long authored
      sctp has changed to use rhlist for transport rhashtable since commit
      7fda702f ("sctp: use new rhlist interface on sctp transport
      rhashtable").
      
      But rhltable_insert_key doesn't check the duplicate node when inserting
      a node, unlike rhashtable_lookup_insert_key. It may cause duplicate
      assoc/transport in rhashtable. like:
      
       client (addr A, B)                 server (addr X, Y)
          connect to X           INIT (1)
                              ------------>
          connect to Y           INIT (2)
                              ------------>
                               INIT_ACK (1)
                              <------------
                               INIT_ACK (2)
                              <------------
      
      After sending INIT (2), one transport will be created and hashed into
      rhashtable. But when receiving INIT_ACK (1) and processing the address
      params, another transport will be created and hashed into rhashtable
      with the same addr Y and EP as the last transport. This will confuse
      the assoc/transport's lookup.
      
      This patch is to fix it by returning err if any duplicate node exists
      before inserting it.
      
      Fixes: 7fda702f
      
       ("sctp: use new rhlist interface on sctp transport rhashtable")
      Reported-by: default avatarFabio M. Di Nitto <fdinitto@redhat.com>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd2b7087
    • David Daney's avatar
      of_mdio: Add "broadcom,bcm5241" to the whitelist. · 7e1392fb
      David Daney authored
      
      
      Some Cavium dev boards have firmware which doesn't supply a proper
      ethernet-phy-ieee802.3-c22" compatible property.  Restore these boards
      to working order by whitelisting this compatible value.
      
      Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7e1392fb
    • david.wu's avatar
      net: ethernet: stmmac: dwmac-rk: Add RK3328 gmac support · d4ff816e
      david.wu authored
      
      
      Add constants and callback functions for the dwmac on rk3328 socs.
      As can be seen, the base structure is the same, only registers and the
      bits in them moved slightly.
      
      Signed-off-by: default avatardavid.wu <david.wu@rock-chips.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4ff816e
    • Xin Long's avatar
      sctp: sctp_transport_dst_check should check if transport pmtu is dst mtu · a4d69a4c
      Xin Long authored
      
      
      Now when sending a packet, sctp_transport_dst_check will check if dst
      is obsolete by calling ipv4/ip6_dst_check. But they return obsolete
      only when adding a new cache, after that when the cache's pmtu is
      updated again, it will not trigger transport->dst/pmtu's update.
      
      It can be reproduced by reducing route's pmtu twice. At the 1st time
      client will add a new cache, and transport->pathmtu gets updated as
      sctp_transport_dst_check finds it's obsolete. But at the 2nd time,
      cache's mtu is updated, sctp client will never send out any packet,
      because transport->pmtu has no chance to update.
      
      This patch is to fix this by also checking if transport pmtu is dst
      mtu in sctp_transport_dst_check, so that transport->pmtu can be
      updated on time.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a4d69a4c
    • David S. Miller's avatar
      Merge branch 'sctp-rcv-side-stream-reconf-ssn-reset-req-chunk' · 585396bc
      David S. Miller authored
      
      
      Xin Long says:
      
      ====================
      sctp: add receiver-side procedures for stream reconf ssn reset request chunk
      
      Patch 3/7 and 4/7 are to implement receiver-side procedures for the
      Outgoing and Incoming SSN Reset Request Parameter described in rfc6525
      section 5.2.2 and 5.2.3
      
      Patch 1/7 and 2/7 are ahead of them to define some apis.
      
      Patch 5/7-7/7 are to add the process of reconf chunk event in rx path.
      
      Note that with this patchset, asoc->reconf_enable has no chance yet to
      be set, until the patch "sctp: add get and set sockopt for reconf_enable"
      is applied in the future. As we can not just enable it when sctp is not
      capable of processing reconf chunk yet.
      
      v1->v2:
        - re-split the patchset and make sure it has no dead codes for review.
        - rename the titles of the commits and improve some changelogs.
        - drop __packed from some structures in patch 1/7.
        - fix some kbuild warnings in patch 3/7 by initializing str_p = NULL.
        - sctp_chunk_lookup_strreset_param changes to return sctp_paramhdr_t *
          and uses sctp_strreset_tsnreq to access request_seq in patch 3/7.
        - use __u<size> in uapi sctp.h in patch 1/7.
        - do str_list endian conversion when generating stream_reset_event in patch
          2/7.
        - remove str_list endian conversion, pass resp_seq param with network endian
          to lookup_strreset_param in 3/7.
        - move str_list endian conversion out of sctp_make_strreset_req, so that
          sctp_make_strreset_req can be used more conveniently to process inreq in
          patch 4/7.
        - remove sctp_merge_reconf_chunk and not support response with multiparam
          in patch 6/7.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      585396bc
    • Xin Long's avatar
      sctp: add reconf chunk event · d884aa63
      Xin Long authored
      
      
      This patch is to add reconf chunk event based on the sctp event
      frame in rx path, it will call sctp_sf_do_reconf to process the
      reconf chunk.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d884aa63
    • Xin Long's avatar
      sctp: add reconf chunk process · 2040d3d7
      Xin Long authored
      
      
      This patch is to add a function to process the incoming reconf chunk,
      in which it verifies the chunk, and traverses the param and process
      it with the right function one by one.
      
      sctp_sf_do_reconf would be the process function of reconf chunk event.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2040d3d7
    • Xin Long's avatar
      sctp: add a function to verify the sctp reconf chunk · ea625043
      Xin Long authored
      
      
      This patch is to add a function sctp_verify_reconf to do some length
      check and multi-params check for sctp stream reconf according to rfc6525
      section 3.1.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ea625043
    • Xin Long's avatar
      sctp: implement receiver-side procedures for the Incoming SSN Reset Request Parameter · 16e1a919
      Xin Long authored
      
      
      This patch is to implement Receiver-Side Procedures for the Incoming
      SSN Reset Request Parameter described in rfc6525 section 5.2.3.
      
      It's also to move str_list endian conversion out of sctp_make_strreset_req,
      so that sctp_make_strreset_req can be used more conveniently to process
      inreq.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16e1a919
    • Xin Long's avatar
      sctp: implement receiver-side procedures for the Outgoing SSN Reset Request Parameter · 81054476
      Xin Long authored
      
      
      This patch is to implement Receiver-Side Procedures for the Outgoing
      SSN Reset Request Parameter described in rfc6525 section 5.2.2.
      
      Note that some checks must be after request_seq check, as even those
      checks fail, strreset_inseq still has to be increase by 1.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81054476
    • Xin Long's avatar
      sctp: add support for generating stream ssn reset event notification · 35ea82d6
      Xin Long authored
      
      
      This patch is to add Stream Reset Event described in rfc6525
      section 6.1.1.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      35ea82d6
    • Xin Long's avatar
      sctp: add support for generating stream reconf resp chunk · bd4b9f8b
      Xin Long authored
      
      
      This patch is to define Re-configuration Response Parameter described
      in rfc6525 section 4.4. As optional fields are only for SSN/TSN Reset
      Request Parameter, it uses another function to make that.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd4b9f8b
    • Jason Wang's avatar
      virtio-net: batch stats updating · 61845d20
      Jason Wang authored
      
      
      We already have counters for sent/recv packets and sent/recv bytes.
      Doing a batched update to reduce the number of
      u64_stats_update_begin/end().
      
      Take care not to bother with stats update when called
      speculatively.
      
      Cc: Willem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61845d20
    • Eric Dumazet's avatar
      mlx4: fix potential divide by 0 in mlx4_en_auto_moderation() · f5a57723
      Eric Dumazet authored
      
      
      1) In the case where rate == priv->pkt_rate_low == priv->pkt_rate_high,
      mlx4_en_auto_moderation() does a divide by zero.
      
      2) We want to properly change the moderation parameters if rx_frames
      was changed (like in ethtool -C eth0 rx-frames 16)
      
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f5a57723
    • Dmitry V. Levin's avatar
      uapi: fix linux/rds.h userspace compilation error · 1786dbf3
      Dmitry V. Levin authored
      
      
      On the kernel side, sockaddr_storage is #define'd to
      __kernel_sockaddr_storage.  Replacing struct sockaddr_storage with
      struct __kernel_sockaddr_storage defined by <linux/socket.h> fixes
      the following linux/rds.h userspace compilation error:
      
      /usr/include/linux/rds.h:226:26: error: field 'dest_addr' has incomplete type
        struct sockaddr_storage dest_addr;
      
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1786dbf3
    • Dmitry V. Levin's avatar
      uapi: fix linux/rds.h userspace compilation errors · feb0869d
      Dmitry V. Levin authored
      
      
      Consistently use types from linux/types.h to fix the following
      linux/rds.h userspace compilation errors:
      
      /usr/include/linux/rds.h:106:2: error: unknown type name 'uint8_t'
        uint8_t name[32];
      /usr/include/linux/rds.h:107:2: error: unknown type name 'uint64_t'
        uint64_t value;
      /usr/include/linux/rds.h:117:2: error: unknown type name 'uint64_t'
        uint64_t next_tx_seq;
      /usr/include/linux/rds.h:118:2: error: unknown type name 'uint64_t'
        uint64_t next_rx_seq;
      /usr/include/linux/rds.h:121:2: error: unknown type name 'uint8_t'
        uint8_t transport[TRANSNAMSIZ];  /* null term ascii */
      /usr/include/linux/rds.h:122:2: error: unknown type name 'uint8_t'
        uint8_t flags;
      /usr/include/linux/rds.h:129:2: error: unknown type name 'uint64_t'
        uint64_t seq;
      /usr/include/linux/rds.h:130:2: error: unknown type name 'uint32_t'
        uint32_t len;
      /usr/include/linux/rds.h:135:2: error: unknown type name 'uint8_t'
        uint8_t flags;
      /usr/include/linux/rds.h:139:2: error: unknown type name 'uint32_t'
        uint32_t sndbuf;
      /usr/include/linux/rds.h:144:2: error: unknown type name 'uint32_t'
        uint32_t rcvbuf;
      /usr/include/linux/rds.h:145:2: error: unknown type name 'uint64_t'
        uint64_t inum;
      /usr/include/linux/rds.h:153:2: error: unknown type name 'uint64_t'
        uint64_t       hdr_rem;
      /usr/include/linux/rds.h:154:2: error: unknown type name 'uint64_t'
        uint64_t       data_rem;
      /usr/include/linux/rds.h:155:2: error: unknown type name 'uint32_t'
        uint32_t       last_sent_nxt;
      /usr/include/linux/rds.h:156:2: error: unknown type name 'uint32_t'
        uint32_t       last_expected_una;
      /usr/include/linux/rds.h:157:2: error: unknown type name 'uint32_t'
        uint32_t       last_seen_una;
      /usr/include/linux/rds.h:164:2: error: unknown type name 'uint8_t'
        uint8_t  src_gid[RDS_IB_GID_LEN];
      /usr/include/linux/rds.h:165:2: error: unknown type name 'uint8_t'
        uint8_t  dst_gid[RDS_IB_GID_LEN];
      /usr/include/linux/rds.h:167:2: error: unknown type name 'uint32_t'
        uint32_t max_send_wr;
      /usr/include/linux/rds.h:168:2: error: unknown type name 'uint32_t'
        uint32_t max_recv_wr;
      /usr/include/linux/rds.h:169:2: error: unknown type name 'uint32_t'
        uint32_t max_send_sge;
      /usr/include/linux/rds.h:170:2: error: unknown type name 'uint32_t'
        uint32_t rdma_mr_max;
      /usr/include/linux/rds.h:171:2: error: unknown type name 'uint32_t'
        uint32_t rdma_mr_size;
      /usr/include/linux/rds.h:212:9: error: unknown type name 'uint64_t'
       typedef uint64_t rds_rdma_cookie_t;
      /usr/include/linux/rds.h:215:2: error: unknown type name 'uint64_t'
        uint64_t addr;
      /usr/include/linux/rds.h:216:2: error: unknown type name 'uint64_t'
        uint64_t bytes;
      /usr/include/linux/rds.h:221:2: error: unknown type name 'uint64_t'
        uint64_t cookie_addr;
      /usr/include/linux/rds.h:222:2: error: unknown type name 'uint64_t'
        uint64_t flags;
      /usr/include/linux/rds.h:228:2: error: unknown type name 'uint64_t'
        uint64_t  cookie_addr;
      /usr/include/linux/rds.h:229:2: error: unknown type name 'uint64_t'
        uint64_t  flags;
      /usr/include/linux/rds.h:234:2: error: unknown type name 'uint64_t'
        uint64_t flags;
      /usr/include/linux/rds.h:240:2: error: unknown type name 'uint64_t'
        uint64_t local_vec_addr;
      /usr/include/linux/rds.h:241:2: error: unknown type name 'uint64_t'
        uint64_t nr_local;
      /usr/include/linux/rds.h:242:2: error: unknown type name 'uint64_t'
        uint64_t flags;
      /usr/include/linux/rds.h:243:2: error: unknown type name 'uint64_t'
        uint64_t user_token;
      /usr/include/linux/rds.h:248:2: error: unknown type name 'uint64_t'
        uint64_t  local_addr;
      /usr/include/linux/rds.h:249:2: error: unknown type name 'uint64_t'
        uint64_t  remote_addr;
      /usr/include/linux/rds.h:252:4: error: unknown type name 'uint64_t'
          uint64_t compare;
      /usr/include/linux/rds.h:253:4: error: unknown type name 'uint64_t'
          uint64_t swap;
      /usr/include/linux/rds.h:256:4: error: unknown type name 'uint64_t'
          uint64_t add;
      /usr/include/linux/rds.h:259:4: error: unknown type name 'uint64_t'
          uint64_t compare;
      /usr/include/linux/rds.h:260:4: error: unknown type name 'uint64_t'
          uint64_t swap;
      /usr/include/linux/rds.h:261:4: error: unknown type name 'uint64_t'
          uint64_t compare_mask;
      /usr/include/linux/rds.h:262:4: error: unknown type name 'uint64_t'
          uint64_t swap_mask;
      /usr/include/linux/rds.h:265:4: error: unknown type name 'uint64_t'
          uint64_t add;
      /usr/include/linux/rds.h:266:4: error: unknown type name 'uint64_t'
          uint64_t nocarry_mask;
      /usr/include/linux/rds.h:269:2: error: unknown type name 'uint64_t'
        uint64_t flags;
      /usr/include/linux/rds.h:270:2: error: unknown type name 'uint64_t'
        uint64_t user_token;
      /usr/include/linux/rds.h:274:2: error: unknown type name 'uint64_t'
        uint64_t user_token;
      /usr/include/linux/rds.h:275:2: error: unknown type name 'int32_t'
        int32_t  status;
      
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      feb0869d
    • Dmitry V. Levin's avatar
      uapi: fix linux/mroute.h userspace compilation errors · bcb41c6b
      Dmitry V. Levin authored
      
      
      Include <linux/in.h> to fix the following linux/mroute.h userspace
      compilation errors:
      
      /usr/include/linux/mroute.h:58:18: error: field 'vifc_lcl_addr' has incomplete type
        struct in_addr vifc_lcl_addr;     /* Local interface address */
      /usr/include/linux/mroute.h:61:17: error: field 'vifc_rmt_addr' has incomplete type
        struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */
      /usr/include/linux/mroute.h:72:17: error: field 'mfcc_origin' has incomplete type
        struct in_addr mfcc_origin;  /* Origin of mcast */
      /usr/include/linux/mroute.h:73:17: error: field 'mfcc_mcastgrp' has incomplete type
        struct in_addr mfcc_mcastgrp;  /* Group in question */
      /usr/include/linux/mroute.h:84:17: error: field 'src' has incomplete type
        struct in_addr src;
      /usr/include/linux/mroute.h:85:17: error: field 'grp' has incomplete type
        struct in_addr grp;
      /usr/include/linux/mroute.h:109:17: error: field 'im_src' has incomplete type
        struct in_addr im_src,im_dst;
      /usr/include/linux/mroute.h:109:24: error: field 'im_dst' has incomplete type
        struct in_addr im_src,im_dst;
      
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bcb41c6b
    • Dmitry V. Levin's avatar
      uapi: fix linux/mroute6.h userspace compilation errors · 72aa107d
      Dmitry V. Levin authored
      
      
      Include <linux/in6.h> to fix the following linux/mroute6.h userspace
      compilation errors:
      
      /usr/include/linux/mroute6.h:80:22: error: field 'mf6cc_origin' has incomplete type
        struct sockaddr_in6 mf6cc_origin;  /* Origin of mcast */
      /usr/include/linux/mroute6.h:81:22: error: field 'mf6cc_mcastgrp' has incomplete type
        struct sockaddr_in6 mf6cc_mcastgrp;  /* Group in question */
      /usr/include/linux/mroute6.h:91:22: error: field 'src' has incomplete type
        struct sockaddr_in6 src;
      /usr/include/linux/mroute6.h:92:22: error: field 'grp' has incomplete type
        struct sockaddr_in6 grp;
      /usr/include/linux/mroute6.h:132:18: error: field 'im6_src' has incomplete type
        struct in6_addr im6_src, im6_dst;
      /usr/include/linux/mroute6.h:132:27: error: field 'im6_dst' has incomplete type
        struct in6_addr im6_src, im6_dst;
      
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      72aa107d
    • Dmitry V. Levin's avatar
      uapi: fix linux/ipv6_route.h userspace compilation errors · 6c07ec0f
      Dmitry V. Levin authored
      
      
      Include <linux/in6.h> to fix the following linux/ipv6_route.h userspace
      compilation errors:
      
      /usr/include/linux/ipv6_route.h:42:19: error: field 'rtmsg_dst' has incomplete type
        struct in6_addr  rtmsg_dst;
      /usr/include/linux/ipv6_route.h:43:19: error: field 'rtmsg_src' has incomplete type
        struct in6_addr  rtmsg_src;
      /ust/include/linux/ipv6_route.h:44:19: error: field 'rtmsg_gateway' has incomplete type
        struct in6_addr  rtmsg_gateway;
      
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c07ec0f
    • Thomas Falcon's avatar
      ibmvnic: Make CRQ interrupt tasklet wait for all capabilities crqs · 249168ad
      Thomas Falcon authored
      
      
      After sending device capability queries and requests to the vNIC Server,
      an interrupt is triggered and the responses are written to the driver's
      CRQ response buffer. Since the interrupt can be triggered before all
      responses are written and visible to the partition, there is a danger
      that the interrupt handler or tasklet can terminate before all responses
      are read, resulting in a failure to initialize the device.
      
      To avoid this scenario, when capability commands are sent, we set
      a flag that will be checked in the following interrupt tasklet that
      will handle the capability responses from the server. Once all
      responses have been handled, the flag is disabled; and the tasklet
      is allowed to terminate.
      
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      249168ad
    • Thomas Falcon's avatar
      ibmvnic: Use common counter for capabilities checks · 901e040a
      Thomas Falcon authored
      
      
      Two different counters were being used for capabilities
      requests and queries. These commands are not called
      at the same time so there is no reason a single counter
      cannot be used.
      
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      901e040a
    • Thomas Falcon's avatar
      ibmvnic: Handle processing of CRQ messages in a tasklet · 6c267b3d
      Thomas Falcon authored
      
      
      Create a tasklet to process queued commands or messages received from
      firmware instead of processing them in the interrupt handler. Note that
      this handler does not process network traffic, but communications related
      to resource allocation and device settings.
      
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c267b3d
    • Arun Easi's avatar
      qed: Add support for hardware offloaded FCoE. · 1e128c81
      Arun Easi authored
      
      
      This adds the backbone required for the various HW initalizations
      which are necessary for the FCoE driver (qedf) for QLogic FastLinQ
      4xxxx line of adapters - FW notification, resource initializations, etc.
      
      Signed-off-by: default avatarArun Easi <arun.easi@cavium.com>
      Signed-off-by: default avatarYuval Mintz <yuval.mintz@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e128c81
    • David S. Miller's avatar
  2. Feb 19, 2017