1. 02 4月, 2015 3 次提交
  2. 01 4月, 2015 13 次提交
    • T
      mac80211: enhance readability of Minstrel-HTs rc_stats output · 9c00bb72
      Thomas Huehn 提交于
      This patch restructures the rc_stats debugfs table of Minstrel-HT in
      order to achieve better human readability. A new layout of the
      statistics and a new header is added. In addition to the old layout
      there are two new columns of information added:
      idx	- representing the rate index of each rate in mac80211 which
      	  can be used to set specific rates as fixed rate via debugfs
      airtime	- the tx-time in micro seconds that a 1200 Byte packet
      	  takes to be transmitted over the air at the given rate
      
      The old layout of rc_stats:
      
      type           rate      tpt eprob *prob ret  *ok(*cum)        ok(      cum)
      HT20/LGI       MCS0      5.6 100.0 100.0   1    0(   0)         1(        1)
      HT20/LGI   B   MCS1     10.5 100.0 100.0   0    0(   0)         1(        1)
      HT20/LGI  A    MCS2     14.8 100.0 100.0   0    0(   0)         1(        1)
      ...
      
      is changed into this new layout:
      
                  best   ________rate______    __statistics__    ________last_______    ______sum-of________
      mode guard #  rate  [name   idx airtime]  [ ø(tp) ø(prob)]  [prob.|retry|suc|att]  [#success | #attempts]
      HT20  LGI  1         MCS0     0    1480      0.0      0.0      0.0   1     0 0             0   0
      HT20  LGI  1     B   MCS1     1     740     10.5    100.0    100.0   0     0 0             1   1
      HT20  LGI  1    A    MCS2     2     496     14.8    100.0    100.0   0     0 0             1   1
      ...
      Signed-off-by: NThomas Huehn <thomas@net.t-labs.tu-berlin.de>
      Signed-off-by: NStefan Venz <ikstream86@gmail.com>
      Acked-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9c00bb72
    • T
      mac80211: enhance readability of Minstrels rc_stats output · e161f7f6
      Thomas Huehn 提交于
      This patch restructures the rc_stats debugfs table of Minstrel in
      order to achieve better human readability. A new layout of the
      statistics and a new header is added. In addition to the old layout
      there are two new columns of information added:
      idx	- representing the rate index of each rate in mac80211 which
      	  can be used to set specific rates as fixed rate via debugfs
      airtime - the tx-time in micro seconds that a 1200 Byte packet
      	  takes to be transmitted over the air at the given rate
      
      The old layout of rc_stats:
      
          rate      tpt  eprob *prob ret  *ok(*cum)        ok(      cum)
       DP 1          0.9  93.5 100.0   1    0(   0)         2(        2)
          2          0.4  40.0 100.0   0    0(   0)         4(        10)
          5.5        0.0   0.0   0.0   0    0(   0)         0(        0)
      ...
      
      is changed into this new layout:
      
      best   _______rate_____    __statistics__    ________last_______    ______sum-of________
      rate  [name idx tx-time]  [ ø(tp) ø(prob)]  [prob.|retry|suc|att]  [#success | #attempts]
       DP   1     0     9738      0.9    93.5     100.0   1     1 1             2   2
            2     1     4922      0.4    40.0     100.0   1     0 0             4   10
            5.5   2     1858      0.0     0.0       0.0   2     0 0             0   0
      ...
      Signed-off-by: NThomas Huehn <thomas@net.t-labs.tu-berlin.de>
      Signed-off-by: NStefan Venz <ikstream86@gmail.com>
      Acked-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e161f7f6
    • I
      cfg80211: Stop calling crda if it is not responsive · c37722bd
      Ilan peer 提交于
      Patch eeca9fce (cfg80211: Schedule
      timeout for all CRDA call) introduced a regression, where in case
      that crda is not installed (or not configured properly etc.), the
      regulatory core will needlessly continue to call it, polluting the
      log with the following log:
      
      "cfg80211: Calling CRDA to update world regulatory domain"
      
      Fix this by limiting the number of continuous CRDA request failures.
      Signed-off-by: NIlan Peer <ilan.peer@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c37722bd
    • J
      mac80211: use rhashtable for station table · 7bedd0cf
      Johannes Berg 提交于
      We currently have a hand-rolled table with 256 entries and are
      using the last byte of the MAC address as the hash. This hash
      is obviously very fast, but collisions are easily created and
      we waste a lot of space in the common case of just connecting
      as a client to an AP where we just have a single station. The
      other common case of an AP is also suboptimal due to the size
      of the hash table and the ease of causing collisions.
      
      Convert all of this to use rhashtable with jhash, which gives
      us the advantage of a far better hash function (with random
      perturbation to avoid hash collision attacks) and of course
      that the hash table grows and shrinks dynamically with chain
      length, improving both cases above.
      
      Use a specialised hash function (using jhash, but with fixed
      length) to achieve better compiler optimisation as suggested
      by Sergey Ryazanov.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      7bedd0cf
    • J
      net: rename dev to orig_dev in deliver_ptype_list_skb · fbcb2170
      Jiri Pirko 提交于
      Unlike other places, this function uses name "dev" for what should be
      "orig_dev", which might be a bit confusing. So fix this.
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fbcb2170
    • J
      netlink: implement nla_get_in_addr and nla_get_in6_addr · 67b61f6c
      Jiri Benc 提交于
      Those are counterparts to nla_put_in_addr and nla_put_in6_addr.
      Signed-off-by: NJiri Benc <jbenc@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      67b61f6c
    • J
      netlink: implement nla_put_in_addr and nla_put_in6_addr · 930345ea
      Jiri Benc 提交于
      IP addresses are often stored in netlink attributes. Add generic functions
      to do that.
      
      For nla_put_in_addr, it would be nicer to pass struct in_addr but this is
      not used universally throughout the kernel, in way too many places __be32 is
      used to store IPv4 address.
      Signed-off-by: NJiri Benc <jbenc@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      930345ea
    • J
      xfrm: simplify xfrm_address_t use · 15e318bd
      Jiri Benc 提交于
      In many places, the a6 field is typecasted to struct in6_addr. As the
      fields are in union anyway, just add in6_addr type to the union and
      get rid of the typecasting.
      
      Modifying the uapi header is okay, the union has still the same size.
      Signed-off-by: NJiri Benc <jbenc@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      15e318bd
    • J
      tcp: simplify inetpeer_addr_base use · 8f55db48
      Jiri Benc 提交于
      In many places, the a6 field is typecasted to struct in6_addr. As the
      fields are in union anyway, just add in6_addr type to the union and get rid
      of the typecasting.
      Signed-off-by: NJiri Benc <jbenc@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8f55db48
    • I
      ipv6: coding style: comparison for inequality with NULL · 53b24b8f
      Ian Morris 提交于
      The ipv6 code uses a mixture of coding styles. In some instances check for NULL
      pointer is done as x != NULL and sometimes as x. x is preferred according to
      checkpatch and this patch makes the code consistent by adopting the latter
      form.
      
      No changes detected by objdiff.
      Signed-off-by: NIan Morris <ipm@chirality.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      53b24b8f
    • I
      ipv6: coding style: comparison for equality with NULL · 63159f29
      Ian Morris 提交于
      The ipv6 code uses a mixture of coding styles. In some instances check for NULL
      pointer is done as x == NULL and sometimes as !x. !x is preferred according to
      checkpatch and this patch makes the code consistent by adopting the latter
      form.
      
      No changes detected by objdiff.
      Signed-off-by: NIan Morris <ipm@chirality.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      63159f29
    • A
      fib_trie: Cleanup ip_fib_net_exit code path · 6e47d6ca
      Alexander Duyck 提交于
      While fixing a recent issue I noticed that we are doing some unnecessary
      work inside the loop for ip_fib_net_exit.  As such I am pulling out the
      initialization to NULL for the locally stored fib_local, fib_main, and
      fib_default.
      
      In addition I am restoring the original code for flushing the table as
      there is no need to split up the fib_table_flush and hlist_del work since
      the code for packing the tnodes with multiple key vectors was dropped.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6e47d6ca
    • A
      fib_trie: Fix warning on fib4_rules_exit · ad88d051
      Alexander Duyck 提交于
      This fixes the following warning:
      
       BUG: sleeping function called from invalid context at mm/slub.c:1268
       in_atomic(): 1, irqs_disabled(): 0, pid: 6, name: kworker/u8:0
       INFO: lockdep is turned off.
       CPU: 3 PID: 6 Comm: kworker/u8:0 Tainted: G        W       4.0.0-rc5+ #895
       Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
       Workqueue: netns cleanup_net
        0000000000000006 ffff88011953fa68 ffffffff81a203b6 000000002c3a2c39
        ffff88011952a680 ffff88011953fa98 ffffffff8109daf0 ffff8801186c6aa8
        ffffffff81fbc9e5 00000000000004f4 0000000000000000 ffff88011953fac8
       Call Trace:
        [<ffffffff81a203b6>] dump_stack+0x4c/0x65
        [<ffffffff8109daf0>] ___might_sleep+0x1c3/0x1cb
        [<ffffffff8109db70>] __might_sleep+0x78/0x80
        [<ffffffff8117a60e>] slab_pre_alloc_hook+0x31/0x8f
        [<ffffffff8117d4f6>] __kmalloc+0x69/0x14e
        [<ffffffff818ed0e1>] ? kzalloc.constprop.20+0xe/0x10
        [<ffffffff818ed0e1>] kzalloc.constprop.20+0xe/0x10
        [<ffffffff818ef622>] fib_trie_table+0x27/0x8b
        [<ffffffff818ef6bd>] fib_trie_unmerge+0x37/0x2a6
        [<ffffffff810b06e1>] ? arch_local_irq_save+0x9/0xc
        [<ffffffff818e9793>] fib_unmerge+0x2d/0xb3
        [<ffffffff818f5f56>] fib4_rule_delete+0x1f/0x52
        [<ffffffff817f1c3f>] ? fib_rules_unregister+0x30/0xb2
        [<ffffffff817f1c8b>] fib_rules_unregister+0x7c/0xb2
        [<ffffffff818f64a1>] fib4_rules_exit+0x15/0x18
        [<ffffffff818e8c0a>] ip_fib_net_exit+0x23/0xf2
        [<ffffffff818e91f8>] fib_net_exit+0x32/0x36
        [<ffffffff817c8352>] ops_exit_list+0x45/0x57
        [<ffffffff817c8d3d>] cleanup_net+0x13c/0x1cd
        [<ffffffff8108b05d>] process_one_work+0x255/0x4ad
        [<ffffffff8108af69>] ? process_one_work+0x161/0x4ad
        [<ffffffff8108b4b1>] worker_thread+0x1cd/0x2ab
        [<ffffffff8108b2e4>] ? process_scheduled_works+0x2f/0x2f
        [<ffffffff81090686>] kthread+0xd4/0xdc
        [<ffffffff8109ec8f>] ? local_clock+0x19/0x22
        [<ffffffff810905b2>] ? __kthread_parkme+0x83/0x83
        [<ffffffff81a2c0c8>] ret_from_fork+0x58/0x90
        [<ffffffff810905b2>] ? __kthread_parkme+0x83/0x83
      
      The issue was that as a part of exiting the default rules were being
      deleted which resulted in the local trie being unmerged.  By moving the
      freeing of the FIB tables up we can avoid the unmerge since there is no
      local table left when we call the fib4_rules_exit function.
      
      Fixes: 0ddcf43d ("ipv4: FIB Local/MAIN table collapse")
      Reported-by: NCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ad88d051
  3. 30 3月, 2015 24 次提交