1. 23 10月, 2013 9 次提交
    • A
      batman-adv: add bat_neigh_is_equiv_or_better API function · c43c981e
      Antonio Quartulli 提交于
      Each routing protocol has its own metric semantic and
      therefore is the protocol itself the only component able to
      compare two metrics to check their "similarity".
      
      This new API allows each routing protocol to implement its
      own logic and make the external code protocol agnostic.
      Signed-off-by: NAntonio Quartulli <antonio@open-mesh.com>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      c43c981e
    • A
      batman-adv: add bat_neigh_cmp API function · a3285a8f
      Antonio Quartulli 提交于
      This new API allows to compare the two neighbours based on
      the metric avoiding the user to deal with any routing
      algorithm specific detail
      Signed-off-by: NAntonio Quartulli <antonio@open-mesh.com>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      a3285a8f
    • A
      batman-adv: add bat_orig_print API function · 737a2a22
      Antonio Quartulli 提交于
      Each routing protocol has its own metric and private
      variables, therefore it is useful to introduce a new API
      for originator information printing.
      
      This API needs to be implemented by each protocol in order
      to provide its specific originator table output.
      Signed-off-by: NAntonio Quartulli <antonio@open-mesh.com>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      737a2a22
    • A
      batman-adv: make struct batadv_orig_node algorithm agnostic · bbad0a5e
      Antonio Quartulli 提交于
      some of the struct batadv_orig_node members are B.A.T.M.A.N. IV
      specific and therefore they are moved in a algorithm specific
      substruct in order to make batadv_orig_node routing algorithm
      agnostic
      Signed-off-by: NAntonio Quartulli <antonio@open-mesh.com>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      bbad0a5e
    • A
      batman-adv: make struct batadv_neigh_node algorithm agnostic · 0538f759
      Antonio Quartulli 提交于
      some of the fields in struct batadv_neigh_node are strictly
      related to the B.A.T.M.A.N. IV algorithm. In order to
      make the struct usable by any routing algorithm it has to be
      split and made more generic
      Signed-off-by: NAntonio Quartulli <antonio@open-mesh.com>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      0538f759
    • J
      macvlan: resolve ENOENT errors on creation · 47d4ab91
      John Fastabend 提交于
      After the commit below attempting to create macvlan devices was
      resulting in ENOENT errors,
      
      # ip link add link p3p2 type macvlan
      RTNETLINK answers: Invalid argument
      
      This happens because netdev_upper_dev_link() is called before
      register_netdevice() in the macvlan code. Through a call chain
      this results in a call to __netdev_adjacent_dev_insert() and
      finally a sysfs_create_link(). This requires the kobject of
      the macvlan to be registered which is done in register_netdevice().
      If there is no kobject which is the case here the ENOENT error
      is seen on the command line.
      
      To resolve this move the netdev_upper_dev_link() call below
      the register_netdevice() call. This aligns with vlan driver
      flow.
      
      Regression introduced here,
      
      commit 5831d66e
      Author: Veaceslav Falico <vfalico@redhat.com>
      Date:   Wed Sep 25 09:20:32 2013 +0200
      
          net: create sysfs symlinks for neighbour devices
      
      CC: Veaceslav Falico <vfalico@redhat.com>
      CC: Neil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Acked-by: NVeaceslav Falico <vfalico@redhat.com>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      47d4ab91
    • V
      bonding: move bond-specific init after enslave happens · 5378c2e6
      Veaceslav Falico 提交于
      As Jiri noted, currently we first do all bonding-specific initialization
      (specifically - bond_select_active_slave(bond)) before we actually attach
      the slave (so that it becomes visible through bond_for_each_slave() and
      friends). This might result in bond_select_active_slave() not seeing the
      first/new slave and, thus, not actually selecting an active slave.
      
      Fix this by moving all the bond-related init part after we've actually
      completely initialized and linked (via bond_master_upper_dev_link()) the
      new slave.
      
      Also, remove the bond_(de/a)ttach_slave(), it's useless to have functions
      to ++/-- one int.
      
      After this we have all the initialization of the new slave *before*
      linking, and all the stuff that needs to be done on bonding *after* it. It
      has also a bonus effect - we can remove the locking on the new slave init
      completely, and only use it for bond_select_active_slave().
      Reported-by: NJiri Pirko <jiri@resnulli.us>
      CC: Jay Vosburgh <fubar@us.ibm.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      Signed-off-by: NVeaceslav Falico <vfalico@redhat.com>
      Acked-by: Ding Tianhong@huawei.com
      Reviewed-by: NJiri Pirko <jiri@resnulli.us>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5378c2e6
    • D
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · 666d1008
      David S. Miller 提交于
      Jeff Kirsher says:
      
      ====================
      Intel Wired LAN Driver Updates
      
      This series contains updates to i40e only.
      
      Jesse provides 6 patches against i40e.  First is a patch to reduce
      CPU utilization by reducing read-flush to read in the hot path.  Next
      couple of patches resolve coverity issues reported by Hannes Frederic
      Sowa <hannes@stressinduktion.org>.  Then Jesse refactored i40e to cleanup
      functions which used cpu_to_xxx(foo) which caused a lot of line wrapping.
      
      Mitch provides 2 i40e patches.  First fixes a panic when tx_rings[0]
      are not allocated, his second patch corrects a math error when
      assigning MSI-X vectors to VFs.  The vectors-per-vf value reported
      by the hardware already conveniently reports one less than the actual
      value.
      
      Shannon provides 5 patches against i40e.  His first patch corrects a
      number of little bugs in the error handling of irq setup, most of
      which ended up panicing the kernel.  Next he fixes the overactive
      IRQ issue seen in testing and allows the use of the legacy interrupt.
      Shannon then provides a cleanup of the arguments declared at the
      beginning of each function.  Then he provides a patch to make sure
      that there are really rings and queues before trying to dump
      information in them.  Lastly he simplifies the code by using an
      already existing variable.
      
      Catherine provides an i40e patch to bump the version.
      
      v2:
       - Remove unneeded parenthesis in patch 3 based on feedback from
         Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
       - Fix patch description for patch 11 based on feedback from
         Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      666d1008
    • Z
      net: remove function sk_reset_txq() · 0a6957e7
      ZHAO Gang 提交于
      What sk_reset_txq() does is just calls function sk_tx_queue_reset(),
      and sk_reset_txq() is used only in sock.h, by dst_negative_advice().
      Let dst_negative_advice() calls sk_tx_queue_reset() directly so we
      can remove unneeded sk_reset_txq().
      Signed-off-by: NZHAO Gang <gamerh2o@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0a6957e7
  2. 22 10月, 2013 31 次提交