1. 05 3月, 2011 2 次提交
  2. 12 2月, 2011 1 次提交
  3. 31 1月, 2011 1 次提交
  4. 21 12月, 2010 1 次提交
  5. 17 12月, 2010 1 次提交
  6. 30 11月, 2010 5 次提交
    • S
      Staging: batman-adv: Limit spin_locks to spin_lock_bh · 7a18deb7
      Sven Eckelmann 提交于
      spin_lock_irqsave disables the IRQs and stores them inside the flags
      provided by the caller. This is needed to protect a bottom half handler
      or a user context critical section from being interrupted by an
      interrupt handler which also tries to acquire the spinlock and locks
      forever.
      
      The linux device drivers will receive the packets inside an interrupt
      handler and the network infrastructure will process them inside bottom
      half. Thus batman-adv will only run in user context and bottom half
      handlers. We can conclude that batman-adv doesn't share its own
      spinlocks with real interrupt handlers.
      
      This makes it possible to exchange the quite complex spin_lock_irqsave
      with spin_lock_bh which only stops bottom halves from running on the
      current cpu, but allows interrupt handlers to take over to keep the
      interrupt latency low.
      Signed-off-by: NSven Eckelmann <sven.eckelmann@gmx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7a18deb7
    • S
      Staging: batman-adv: Rewrite hash using hlist_* · bd204952
      Sven Eckelmann 提交于
      The hash implementation is a complete implementation of a hash using
      buckets as hash entries and overflow buckets attached to them.
      
      The kernel already provides datastructures hlist_head and hlist_node
      which can be used to implement an hash using lists as hash buckets. So
      it is better to implement heavily used functionality on top of those
      instead of providing a full hash implementation.
      
      The rewrite changes the behavior of some functions slightly:
       * hash_add add elements to the front instead of the tail
       * hash_iterate doesn't provide pointer to access bucket->data directly,
         but it can be accessed using hlist_entry
      Reported-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NSven Eckelmann <sven.eckelmann@gmx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      bd204952
    • S
      Staging: batman-adv: Remove hashdata_choose_cb from hash · 6d5e6542
      Sven Eckelmann 提交于
      Function pointers cannot be inlined by a compiler and thus always has
      the overhead of an call. hashdata_choose_cb's are one of the most often
      called function pointers and its overhead must kept relative low.
      
      As first step, every function which uses this function pointer takes it
      as parameter instead of storing it inside the hash abstraction
      structure.
      
      This not generate any performance gain right now. The called functions
      must also be able to be inlined by the calling functions to enable
      inlining of the function pointer.
      Reported-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NSven Eckelmann <sven.eckelmann@gmx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6d5e6542
    • S
      Staging: batman-adv: Remove hashdata_compare_cb from hash · 51f3d8a2
      Sven Eckelmann 提交于
      Function pointers cannot be inlined by a compiler and thus always has
      the overhead of an call. hashdata_compare_cb's are one of the most often
      called function pointers and its overhead must kept relative low.
      
      As first step, every function which uses this function pointer takes it
      as parameter instead of storing it inside the hash abstraction
      structure.
      
      This not generate any performance gain right now. The called functions
      must also be able to be inlined by the calling functions to enable
      inlining of the function pointer.
      Reported-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NSven Eckelmann <sven.eckelmann@gmx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      51f3d8a2
    • L
      Staging: batman-adv: Unify sysfs file names with their bat_priv atomics · 641ee3f8
      Linus Lüssing 提交于
      Both sysfs entries and variable names shall be as descriptive as
      possible while not exceeding a certain length. This patch renames
      bat_priv atomics to be equally descriptive with their according sysfs
      entries.
      
      Unifying sysfs and bat_priv atomic names also makes it easier to find
      each others pendant.
      
      The reduced ("type"-)information which was previously indicated with a
      _enabled for booleans got substituted by a comment in bat_priv.
      
      This patch has also been done in regards for the future BAT_ATTR_*
      macros (they only need one name argument instead of a file and variable
      name).
      Signed-off-by: NLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: NSven Eckelmann <sven.eckelmann@gmx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      641ee3f8
  7. 20 10月, 2010 1 次提交
  8. 05 9月, 2010 2 次提交
  9. 09 7月, 2010 4 次提交
  10. 23 6月, 2010 4 次提交
  11. 12 5月, 2010 6 次提交
  12. 04 3月, 2010 6 次提交
  13. 12 12月, 2009 1 次提交