1. 20 2月, 2017 14 次提交
    • X
      sctp: add support for generating stream ssn reset event notification · 35ea82d6
      Xin Long 提交于
      This patch is to add Stream Reset Event described in rfc6525
      section 6.1.1.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      35ea82d6
    • X
      sctp: add support for generating stream reconf resp chunk · bd4b9f8b
      Xin Long 提交于
      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: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bd4b9f8b
    • J
      virtio-net: batch stats updating · 61845d20
      Jason Wang 提交于
      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: NJason Wang <jasowang@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      61845d20
    • E
      mlx4: fix potential divide by 0 in mlx4_en_auto_moderation() · f5a57723
      Eric Dumazet 提交于
      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: NEric Dumazet <edumazet@google.com>
      Reviewed-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f5a57723
    • D
      uapi: fix linux/rds.h userspace compilation error · 1786dbf3
      Dmitry V. Levin 提交于
      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: NDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1786dbf3
    • D
      uapi: fix linux/rds.h userspace compilation errors · feb0869d
      Dmitry V. Levin 提交于
      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: NDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      feb0869d
    • D
      uapi: fix linux/mroute.h userspace compilation errors · bcb41c6b
      Dmitry V. Levin 提交于
      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: NDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bcb41c6b
    • D
      uapi: fix linux/mroute6.h userspace compilation errors · 72aa107d
      Dmitry V. Levin 提交于
      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: NDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      72aa107d
    • D
      uapi: fix linux/ipv6_route.h userspace compilation errors · 6c07ec0f
      Dmitry V. Levin 提交于
      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: NDmitry V. Levin <ldv@altlinux.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6c07ec0f
    • T
      ibmvnic: Make CRQ interrupt tasklet wait for all capabilities crqs · 249168ad
      Thomas Falcon 提交于
      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: NThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      249168ad
    • T
      ibmvnic: Use common counter for capabilities checks · 901e040a
      Thomas Falcon 提交于
      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: NThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      901e040a
    • T
      ibmvnic: Handle processing of CRQ messages in a tasklet · 6c267b3d
      Thomas Falcon 提交于
      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: NThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6c267b3d
    • A
      qed: Add support for hardware offloaded FCoE. · 1e128c81
      Arun Easi 提交于
      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: NArun Easi <arun.easi@cavium.com>
      Signed-off-by: NYuval Mintz <yuval.mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1e128c81
    • D
      f787d1de
  2. 19 2月, 2017 9 次提交
  3. 18 2月, 2017 17 次提交