1. 30 9月, 2016 4 次提交
  2. 29 9月, 2016 1 次提交
    • J
      cfg80211: wext: really don't store non-WEP keys · 8f7d99ba
      Johannes Berg 提交于
      Jouni reported that during (repeated) wext_pmf test runs (from the
      wpa_supplicant hwsim test suite) the kernel crashes. The reason is
      that after the key is set, the wext code still unnecessarily stores
      it into the key cache. Despite smatch pointing out an overflow, I
      failed to identify the possibility for this in the code and missed
      it during development of the earlier patch series.
      
      In order to fix this, simply check that we never store anything but
      WEP keys into the cache, adding a comment as to why that's enough.
      
      Also, since the cache is still allocated early even if it won't be
      used in many cases, add a comment explaining why - otherwise we'd
      have to roll back key settings to the driver in case of allocation
      failures, which is far more difficult.
      
      Fixes: 89b706fb ("cfg80211: reduce connect key caching struct size")
      Reported-by: NJouni Malinen <j@w1.fi>
      Bisected-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8f7d99ba
  3. 26 9月, 2016 2 次提交
  4. 19 9月, 2016 9 次提交
    • E
      pkt_sched: fq: use proper locking in fq_dump_stats() · 695b4ec0
      Eric Dumazet 提交于
      When fq is used on 32bit kernels, we need to lock the qdisc before
      copying 64bit fields.
      
      Otherwise "tc -s qdisc ..." might report bogus values.
      
      Fixes: afe4fd06 ("pkt_sched: fq: Fair Queue packet scheduler")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      695b4ec0
    • T
      openvswitch: use percpu flow stats · db74a333
      Thadeu Lima de Souza Cascardo 提交于
      Instead of using flow stats per NUMA node, use it per CPU. When using
      megaflows, the stats lock can be a bottleneck in scalability.
      
      On a E5-2690 12-core system, usual throughput went from ~4Mpps to
      ~15Mpps when forwarding between two 40GbE ports with a single flow
      configured on the datapath.
      
      This has been tested on a system with possible CPUs 0-7,16-23. After
      module removal, there were no corruption on the slab cache.
      Signed-off-by: NThadeu Lima de Souza Cascardo <cascardo@redhat.com>
      Cc: pravin shelar <pshelar@ovn.org>
      Acked-by: NPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db74a333
    • T
      openvswitch: fix flow stats accounting when node 0 is not possible · 40773966
      Thadeu Lima de Souza Cascardo 提交于
      On a system with only node 1 as possible, all statistics is going to be
      accounted on node 0 as it will have a single writer.
      
      However, when getting and clearing the statistics, node 0 is not going
      to be considered, as it's not a possible node.
      
      Tested that statistics are not zero on a system with only node 1
      possible. Also compile-tested with CONFIG_NUMA off.
      Signed-off-by: NThadeu Lima de Souza Cascardo <cascardo@redhat.com>
      Acked-by: NPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      40773966
    • X
      sctp: not return ENOMEM err back in sctp_packet_transmit · 41001faf
      Xin Long 提交于
      As David and Marcelo's suggestion, ENOMEM err shouldn't return back to
      user in transmit path. Instead, sctp's retransmit would take care of
      the chunks that fail to send because of ENOMEM.
      
      This patch is only to do some release job when alloc_skb fails, not to
      return ENOMEM back any more.
      
      Besides, it also cleans up sctp_packet_transmit's err path, and fixes
      some issues in err path:
      
       - It didn't free the head skb in nomem: path.
       - No need to check nskb in no_route: path.
       - It should goto err: path if alloc_skb fails for head.
       - Not all the NOMEMs should free nskb.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      41001faf
    • X
      sctp: make sctp_outq_flush/tail/uncork return void · 83dbc3d4
      Xin Long 提交于
      sctp_outq_flush return value is meaningless now, this patch is
      to make sctp_outq_flush return void, as well as sctp_outq_fail
      and sctp_outq_uncork.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      83dbc3d4
    • X
      sctp: save transmit error to sk_err in sctp_outq_flush · 64519440
      Xin Long 提交于
      Every time when sctp calls sctp_outq_flush, it sends out the chunks of
      control queue, retransmit queue and data queue. Even if some trunks are
      failed to transmit, it still has to flush all the transports, as it's
      the only chance to clean that transmit_list.
      
      So the latest transmit error here should be returned back. This transmit
      error is an internal error of sctp stack.
      
      I checked all the places where it uses the transmit error (the return
      value of sctp_outq_flush), most of them are actually just save it to
      sk_err.
      
      Except for sctp_assoc/endpoint_bh_rcv, they will drop the chunk if
      it's failed to send a REPLY, which is actually incorrect, as we can't
      be sure the error that sctp_outq_flush returns is from sending that
      REPLY.
      
      So it's meaningless for sctp_outq_flush to return error back.
      
      This patch is to save transmit error to sk_err in sctp_outq_flush, the
      new error can update the old value. Eventually, sctp_wait_for_* would
      check for it.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64519440
    • X
      sctp: free msg->chunks when sctp_primitive_SEND return err · b61c654f
      Xin Long 提交于
      Last patch "sctp: do not return the transmit err back to sctp_sendmsg"
      made sctp_primitive_SEND return err only when asoc state is unavailable.
      In this case, chunks are not enqueued, they have no chance to be freed if
      we don't take care of them later.
      
      This Patch is actually to revert commit 1cd4d5c4 ("sctp: remove the
      unused sctp_datamsg_free()"), commit 69b5777f ("sctp: hold the chunks
      only after the chunk is enqueued in outq") and commit 8b570dc9 ("sctp:
      only drop the reference on the datamsg after sending a msg"), to use
      sctp_datamsg_free to free the chunks of current msg.
      
      Fixes: 8b570dc9 ("sctp: only drop the reference on the datamsg after sending a msg")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b61c654f
    • X
      sctp: do not return the transmit err back to sctp_sendmsg · 66388f2c
      Xin Long 提交于
      Once a chunk is enqueued successfully, sctp queues can take care of it.
      Even if it is failed to transmit (like because of nomem), it should be
      put into retransmit queue.
      
      If sctp report this error to users, it confuses them, they may resend
      that msg, but actually in kernel sctp stack is in charge of retransmit
      it already.
      
      Besides, this error probably is not from the failure of transmitting
      current msg, but transmitting or retransmitting another msg's chunks,
      as sctp_outq_flush just tries to send out all transports' chunks.
      
      This patch is to make sctp_cmd_send_msg return avoid, and not return the
      transmit err back to sctp_sendmsg
      
      Fixes: 8b570dc9 ("sctp: only drop the reference on the datamsg after sending a msg")
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      66388f2c
    • X
      sctp: remove the unnecessary state check in sctp_outq_tail · 2c89791e
      Xin Long 提交于
      Data Chunks are only sent by sctp_primitive_SEND, in which sctp checks
      the asoc's state through statetable before calling sctp_outq_tail. So
      there's no need to check the asoc's state again in sctp_outq_tail.
      
      Besides, sctp_do_sm is protected by lock_sock, even if sending msg is
      interrupted by timer events, the event's processes still need to acquire
      lock_sock first. It means no others CMDs can be enqueue into side effect
      list before CMD_SEND_MSG to change asoc->state, so it's safe to remove it.
      
      This patch is to remove redundant asoc->state check from sctp_outq_tail.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c89791e
  5. 17 9月, 2016 6 次提交
  6. 16 9月, 2016 11 次提交
  7. 15 9月, 2016 7 次提交