linux/net/batman-adv/soft-interface.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2007-2011 B.A.T.M.A.N. contributors:
   3 *
   4 * Marek Lindner, Simon Wunderlich
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of version 2 of the GNU General Public
   8 * License as published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful, but
  11 * WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13 * General Public License for more details.
  14 *
  15 * You should have received a copy of the GNU General Public License
  16 * along with this program; if not, write to the Free Software
  17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  18 * 02110-1301, USA
  19 *
  20 */
  21
  22#include "main.h"
  23#include "soft-interface.h"
  24#include "hard-interface.h"
  25#include "routing.h"
  26#include "send.h"
  27#include "bat_debugfs.h"
  28#include "translation-table.h"
  29#include "hash.h"
  30#include "gateway_common.h"
  31#include "gateway_client.h"
  32#include "bat_sysfs.h"
  33#include "originator.h"
  34#include <linux/slab.h>
  35#include <linux/ethtool.h>
  36#include <linux/etherdevice.h>
  37#include <linux/if_vlan.h>
  38#include "unicast.h"
  39
  40
  41static int bat_get_settings(struct net_device *dev, struct ethtool_cmd *cmd);
  42static void bat_get_drvinfo(struct net_device *dev,
  43                            struct ethtool_drvinfo *info);
  44static u32 bat_get_msglevel(struct net_device *dev);
  45static void bat_set_msglevel(struct net_device *dev, u32 value);
  46static u32 bat_get_link(struct net_device *dev);
  47
  48static const struct ethtool_ops bat_ethtool_ops = {
  49        .get_settings = bat_get_settings,
  50        .get_drvinfo = bat_get_drvinfo,
  51        .get_msglevel = bat_get_msglevel,
  52        .set_msglevel = bat_set_msglevel,
  53        .get_link = bat_get_link,
  54};
  55
  56int my_skb_head_push(struct sk_buff *skb, unsigned int len)
  57{
  58        int result;
  59
  60        /**
  61         * TODO: We must check if we can release all references to non-payload
  62         * data using skb_header_release in our skbs to allow skb_cow_header to
  63         * work optimally. This means that those skbs are not allowed to read
  64         * or write any data which is before the current position of skb->data
  65         * after that call and thus allow other skbs with the same data buffer
  66         * to write freely in that area.
  67         */
  68        result = skb_cow_head(skb, len);
  69        if (result < 0)
  70                return result;
  71
  72        skb_push(skb, len);
  73        return 0;
  74}
  75
  76static void softif_neigh_free_ref(struct softif_neigh *softif_neigh)
  77{
  78        if (atomic_dec_and_test(&softif_neigh->refcount))
  79                kfree_rcu(softif_neigh, rcu);
  80}
  81
  82static void softif_neigh_vid_free_rcu(struct rcu_head *rcu)
  83{
  84        struct softif_neigh_vid *softif_neigh_vid;
  85        struct softif_neigh *softif_neigh;
  86        struct hlist_node *node, *node_tmp;
  87        struct bat_priv *bat_priv;
  88
  89        softif_neigh_vid = container_of(rcu, struct softif_neigh_vid, rcu);
  90        bat_priv = softif_neigh_vid->bat_priv;
  91
  92        spin_lock_bh(&bat_priv->softif_neigh_lock);
  93        hlist_for_each_entry_safe(softif_neigh, node, node_tmp,
  94                                  &softif_neigh_vid->softif_neigh_list, list) {
  95                hlist_del_rcu(&softif_neigh->list);
  96                softif_neigh_free_ref(softif_neigh);
  97        }
  98        spin_unlock_bh(&bat_priv->softif_neigh_lock);
  99
 100        kfree(softif_neigh_vid);
 101}
 102
 103static void softif_neigh_vid_free_ref(struct softif_neigh_vid *softif_neigh_vid)
 104{
 105        if (atomic_dec_and_test(&softif_neigh_vid->refcount))
 106                call_rcu(&softif_neigh_vid->rcu, softif_neigh_vid_free_rcu);
 107}
 108
 109static struct softif_neigh_vid *softif_neigh_vid_

	a href="net/batman-adv/soft-interface. 10se.c#  * o href="net/batman-adv/so2s="stinterface.c#L13" id="L13"(1hv2.6.12.3"
	  >
  v2.6.12.3
  v2.6.11
  

  
softif_neigh_vid_

	a href50adv/main.h" class="fref">main.h"
softif_neigh *sof="comment"> * General Pubblic 11e=softif_neigd="L81" class="linease batman-adv/soft-intelinease batmaet/bacu" class="sref">call_rcu(&call_rcu(&softif_neigh_vid_

	a href=/soft-interface.c#L97" id="L97" class="line" name="L97">  97        }
  94                                  &a1e
<softif_neih_vid" class="sref"t;refcount))
);
atomic_dec_and_tttttttttlineinueu" class="sref">call_rcu(&  18unicas1"L19" cla1ss="line" name="L19">  119121ss="sref">softif_neih_vi!d" class="sref">softifinc"srt_zeret_settings" cla>softifinc"srt_zerenterface.c#L104" id="L104" class="line" name="L104"> 104{
 105        if (atomic_dec_and_tttttttttlineinueu" class="sref">call_rcu(&  21
call_rcu(&  69        if ("
"
bat_priv;
softif_neigh_lz    cet/batizeof(interface.c#L103" id="L103" class="line" name="L103"> 103static rface.c#L94" id="GFP_ATOMICs="line" name="GFP_ATOMICll_rcu" class="sref">call_rcu(& 103static void atomic_dec_and_tgotoh_vid" class="srouL105" id="L105" ou"L69">  69        if ("
unicas1quot;
bat_priv;
  69        if (softif_neigh_vid, rcu);
  13pan>
call_rcu(&  66origina1tor.h"
softifslinterface.c#L104" id="L104" class="line" name="L104"> 104{
call_rcu(& 104{
node_tmp,
call_rcu(& 104{
  951erdevice.1h>
bat_priv;
  91
  951ea href="1.h>
 104{
call_rcu(&  38#include "1;softif_neigh_vid_

	a/soft-interface.c#L97" id="L97" class="line" name="L97">  97        }
  951t.h&q1uot;
softif_neigh);
  97        }
  951et_device1" class="sref">net_devic1e14=softif_neigh_vid" class="sref">softif_neigh_vid<  42s1tatic void softif_neigh_vid<  PURPOSE.  See the GNU
call_rcu(&1u32 n_vid->u32 bat_get_link(stru1ct net_devic softif_neigh_vid * 108
 109static struct softif_neigh_vid  14ref">atomic_dec_and_tttttttttttttttttttttttttttttte ="L109"> 109 109ddrine", -interface. 10se.c#  * o href="net/batman-adv/so2s="stinterface.c#L13" id="L13"(1hv2.6.12.3ace.c#L491" id="L49" class="line" 1name=1L49">   94                                  &a1terface.c1#L50" id="L50" class="li1ne" n1me="L50">  50<50adv/main.h" class="fref">main.h"
main.hsoftif_neigh_vid *softif_neigh_vid = NULLclass="sref">soNULL.6.12.3"="net/batman-adv/s 
  adv/s6.24s1" id="L52" class="line" 1name=153id_

	a href50adv/main.h" class="fef="+code=softif_neigh" class="sref">softif_neigh *get_link1 15e=softif_neigd="L81" class="_priv" class="sref">bat_priv;
 108
 109static struct ,
 103static void my_skb_head_push(st157ss="sref">softif_neigotoh_vid" class="srouL105" id="L105" ou"L69">  69        if ( *s15free_rcu" class="sref">softif_neigh_vid_free_rcu1  57<15priv *call_rcu(&  5816de=softif_neigh_lock" class=iv->softif_neigh_vidcall_rcu(&softif_neiiiiiiiiiiiiiiiiiiace.c#L104" id="L104" class="line" name="L104"> 104{
node_tmp,
call_rcu(&atomic_dec_and_ttttttttttttttttttace.c#L94" id="L94" class="line" name="L94">  94                                  &a1f="net/ba1tman-adv/soft-interface.1c#L6216et_drvinfo" class="srde=s!d" class="sref"comparename class="line" ncomparename/a>);
softif_neigh_vidddrine", -adv/soft-interaddrne" name="L108">ddrine" name="L105"> 105        if (call_rcu(&  73     1ef="net/b1atman-adv/soft-interface1.c#L616_dec_and_test(&amh_vi!d" class="sref">softifinc"srt_zeret_settings" cla>softifinc"srt_zerenterface.c#L104" id="L104" class="linclass="sref">softif_neigh_vid 105        if (softif_neigh_vid_
lineinueu" class="sref">call_rcu(& *         * to write1 free16free_rcu" class="sref">softif_neigh_vid_free_rcu1resul16ref">atomic_dec_and_test(&softif_neigh_vid  69        if (len1);
result < 0)
<1a hre171ss="sref">so_vid->  70  1     17=softif_neigh_vid" class="sref">softif_neigh_vid17">spin_lock_bh(&softif_neigh_vid = kz    c">softif_neigh_lz    cet/batizeof(interface.c#L103" id="L103" class="sref">softif_neigh_vidcall_rcu(&1skbsoftif_neigh_vidcall_rcu(&softif_neighgotoh_vid" class="srnet/ban-adv/soft-intenet/baet/b>  69        if (

softif_neigh_vidddrine", -adv/soft-interaddrne" name="L108">ddrine", -adv/soft-interETH_ALENne" name="L108"ETH_ALENll_rcu" class="sref">call_rcu(&softif_nei1ghsoftif_neigh_vid  69        if (atomic_d   66  79               1 softifsline" name="L108">softifslinterface.c#L104" id="L104" class="linclass="sref">softif_neigh_vidcall_rcu(&softif_neigh, rcu);
softif_neigh_vid  951oid spin_lock_bh(&bat_priv;
  91
  98        softif_neigh_vidcall_rcu(&  184softif_neighhhhhhhhhhhhace.c#L104" id="L104" class="line" name="L104"> 104{
node_tmp,
  98        softif_neigh);
  97        }
  98        L86">  86        str1uct <18bat_get_link" class="sref">bat_get_link(stru1man-adv/s1oft-interface.c#L87" id=1"L87"1class=_vid" class="srnet/ban-adv/soft-intenet/baet/b:if_neigh_vid" class="sref">softif_neigh_vid< href="+c1ode=bat_priv" class="sre1f">ba1_priv *call_rcu(&container_of(softif_neigh_vid<90   1     soh_vid" class="sref"t;refcountcall_rcu(&softif_n1eigh_192ef">atomic_dec_and_tadv/soft-interf id="L108" class=1}
refcountcall_rcu(&softif_neigh_vidcall_rcu(&len);
  73     1         1       softif_neigh_vid *refc"lifsllecteeL102""L73" class="line" name="L73">  73     1 se="line" name="L96">  96<1/a>  197ss="sref">softif_neigh_vid_

	a href50adv/main.h" class="fref">main.h"
call_rcu(&                                  &a1ref="+cod1e=spin_unlock_bh" class=1"sref19priv *softif_neigh_vid *softif_neigh_vid;
bat_priv->unicas2/soft-int2rface.c#L100" id="L100" 2lass=201=softif_neigd="L81" class="linease batman-adv/soft-intelinease batmaet/bacu" class="sref">call_rcu(&kfree(softif_nclass="sref">softif_neigh_vid = lineders="line"n-adv/soft-intelineders="line"L102"d" class="sref"t;refcount  97        }
softif_neigh_vidcall_rcu(&call_rcu(&softif_neigh_vid_f2ee_re20f="+code=softde=shref="+code=bat_f">softif_nclass="sref">softif_neigh_vidsoftifinc"srt_zeret_settings" cla>softifinc"srt_zerenterface.c#L104" id="L104" class="linclass="sref">softif_neigh_vid 105        if (so2tif_neigh_vid *softif_neighhref="+code=bat_f">softif_nclass="sref">softif_neigh_vid = NULLclass="sref">soNULL.6.12.3"="net/batman-adv/s 
  adv/s6.24atom20adv/svid->call_rcu(&softif_neigh_vidcall_rcu(&len);
 *unicas2"
	  >
  22.6.12.3
  22.6.11erface. softif_neigh_vid *refchref="nfsllecteeL102""L73" class="line" name="L73">  73     2/so2s="st2nterfa2lass="sref">softi2_neig212ef">atomic_dec_and_tttttttttttttttttth_vid_

	a href50adv/main.h" class="fe.c#L109" id="L109" class="line" name="L109"> 109static struct softif_neigh_vid
(struct so2="comment"> * General Pu2blic 21e=softif_neig50adv/main.h" class="fref">main.h"
call_rcu(&main.hsoftif_neigh_vid *softif_neigh_vid = NULLclass="sref">soNULL.6.12.3"="net/batman-adv/s 
  adv/s6.24
bat_get_link(stru2e
2bat_priv;
 108
 109static struct );
 =  103static void   18  69        if (  12922softif_neigh, ->softif_nclass="sref">softif_neigh_vid = e=softif_nei="lifsllectee=refcount" class="sref">refc"lifsllecteeL102"d" class="sref"t;refcountcall_rcu(&  21
softif_neigh_vid2n" class=2href="net/batman-adv/sof2t-int22f="+code=softde=shref="+code=bat_f">softif_nclass="line" name="L103"> 103static void so2href="net/batman-adv/sof2t-int22s="sref">softif_neighhref="+code=bat_f">softif_nlass=1}
refcountcall_rcu(&softif_neigh_vidcall_rcu(&->softif_neigh_vid_free_rcu2 10sllecta href="net/batman-adv/soft-intesllectL102"50adv/main.h" class="fe.c#L109" id="L109" class="line" name="L109"> 109static struct softif_neigh_vid"
softif_neigh_vid_

	a href="ne50adv/main.h" class="fref">main.hsoftif_neigh_vid *sonewain.hsoftif_neigh_vidsoftif_neiiiiiiiiiiiiiiiiii ef5interface. 10se.c#  * o href="net/batman-adv/so2s="stinterface.c#L13" id="L13"(1hv2.6.12.2sbuttruct 
main.h"
call_rcu(&main.hsoftif_neigh_vid *socurrain.h<.6.1u" class="sref">call_rcu(&so2tor.h"
  73     2nux/slab.2h>
bat_priv;
 108
 109static struct  103static void   69        if ((&  38#include "2;bat_priv;
  91
  98        &q2uot;
net_devic2e242=softif_neig="+c *sonewain.hsoftifinc"srt_zeret_settings" cla>softifinc"srt_zerenterface.c#L104" id="L104newain.hsonewain.h 105        if (sonewain.h = NULLclass="sref">soNULL.6.12.3"="net/batman-adv/s 
  adv/s6.24
2u32 socurrain.h<.6.1at_msglevel = lineders="line"lasotectee=refcount" claslineders="line"lasotecteeL102"d" class="sref"t;refcount  97        }
softif_neigh_vidsoftif_neigh_vid(&ammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm1 class="line" name="L98">  98        u32 uign_po>    =refcount" clasline">uign_po>    L102"d" class="sref"t;refcount  97        }
softif_neigh_vidsonewain.h  98        softif_neigh_vid_free_rcu28" id="L428" class="line" name="L428">  24/a> = socurrain.h<.6.1)a/soft/soft c!d" class="sref"newain.hsonewain.h 105        if (softif_neitman-adv/soft-interdbg.c#L91" id="L91" cldbgL102"d" class="sref"DBG_ROUTES.c#L91" id="L91DBG_ROUTESidsoftif_neigh_vidsoftif_neiiiiiiiii "Removing mesh exit po>   on oun: %d (prev: %pM).\n" id="L6f_neigh_vid" class="sref">softif_neigh_vidatomic_dec_and_tttttttttface. 10se.c#  * o href="net/batman-adv/fr *socurrain.h<.6.1atman-adv/soft-interaddrne" name="L108">ddrine" class="line" name="L98">  98        s2" id="L52" class="line" 2name=253id_

	a hrefelsef="+c"d" class="sref"currain.hsocurrain.h<.6.1)a/soft/soft cd" class="sref"newain.hsonewain.h 105        if (static struct softif_neigh_vid2k" class="sref">get_link2 25s="sref">softif_neighhhhhhhhh "Changing mesh exit po>   on oun: %d from %pM " id="L6_neigh_vid" class="sref">softif_neigh_vid,
"toh%pM.\n" id="L6ftface. 10se.c#  * o href="net/batman-adv/fr *socurrain.h<.6.1atman-adv/soft-interaddrne" name="L108">ddrine"fr *sonewain.hddrine" class="line" name="L98">  98        my_skb_head_push(st257ss="sref">soelsef="+c"!d" class="sref"currain.hsocurrain.h<.6.1)a/soft/soft cd" class="sref"newain.hsonewain.h 105        if (s25"+code=softiffffffffftman-adv/soft-interdbg.c#L91" id="L91" cldbgL102"d" class="sref"DBG_ROUTES.c#L91" id="L91DBG_ROUTESidsoftif_neigh_vid2  57<25ref">atomic_dec_and_ttttttttt "Setting mesh exit po>   on oun: %d toh%pM.\n" id="L6f_neigh_vid" class="sref">softif_neigh_vid  5826ass="sref">softif_neigh_vid_
face. 10se.c#  * o href="net/batman-adv/fr *sonewain.hddrine" class="line" name="L98">  98        socurrain.h<.6.1)f_neigh, socurrain.h<.6.1)class="line" name="L98">  98        softif_neigh);
  97        }
  98        softif_neigh_vid2"> *         * to write2 free26* 103static void 2resul26ref">atomic_dec_and_test(&refcountcall_rcu(&len2);
->result < 0)
<2a hre27softif_neigh,   70  2     27=softL107" id="L101" class="line" name="L101"> 10desllecta href="net/batman-adv/soft-intedesllectL102"50adv/main.h" class="fe.c#L109" id="L109" class="line" name="L109"> 109static struct softif_neigh_vid27et_drvinfo" class="srttttttttttttttttth_vid50adv/main.h" class="fref">main.h"
2skb(struct main.hsoftif_neigh_vid *socurrain.h<.6.1u" class="sref">call_rcu(&main.hsoftif_neigh_vid *softif_neigh_vid = NULLclass="sref">soNULL.6.1,call_rcu(& = NULLclass="sref">soNULL.6.12.3"="net/batman-adv/s 
  adv/s6.24 *softif_nei2ghsoftif_neigh *(&  79               2  = de=mary_i ="lifsllectee=refcount" clasde=mary_i ="lifsllecteeet/ba="L109"> 109static struct call_rcu(&soh_vi!d" class="sref"de=mary_i -adv/s 
  adv/sde=mary_i ofti void rcu);
atomic_dec_and_tgotoh_vid" class="srouL105" id="L105" ou"L69">  69        if (call_rcu(&  66  284call_rcu(&socurrain.h<.6.1at_msglevel = lineders="line"=refcount" claslineders="line"L102"d" class="sref"t;refcount  97        }
softif_neigh_vidcall_rcu(&  86        str2uct <28bat_get_link" class="sref">bat_get_link(stru2man-adv/s2oft-interface.c#L87" id=2"L87"28"+code=softif_neigh" class="iv->call_rcu(&ba28ref">atomic_dec_and_ttttttttttttttttttace.c#L104" id="L104" class="line" name="L104"> 104{
node_tmp,
call_rcu(&container_of(softif_neigh_vid_

	a href=-adv/soft-interL94" class="line" name="L94">  94                                  &a290   2     softif_neide=sd" class="sref"" id="L103" ctmp-adv/s 
  adv/s6.24 = currain.hsocurrain.h<.6.1)f_neigh, softif_n2eigh_292ef">atomic_dec_and_tttttttttlineinueu" class="sref">call_rcu(&call_rcu(&  66softif_neighde=sd" class="sref"memcmp-adv/s 
  adv/smemcmp/a>);
call_rcu(&ddrine"fr *,   96<2/a>  297ss="sref">softif_neigh_vid_
lineinueu" class="sref">call_rcu(&softif_neigh_vid_free_rcu2ref="+cod2e=spin_unlock_bh" class=2"sref29ref">atomic_dec_and_th_vi!d" class="sref">softifinc"srt_zeret_settings" cla>softifinc"srt_zerenterface.c#L104" id="L104" class="linctmp-adv/s 
  adv/s6.24 105        if (bat_priv->softif_neigh_vid_
lineinueu" class="sref">call_rcu(&, kfree(atomic_dec_and_tadv/soft-interf id="L108" cclass="sref">softif_neigh_vid = href="net/battmp-adv/s 
  adv/s6.24call_rcu(&softif_neigh_vid_f3ee_re30f="+code=soft_vid->so3tif_neigh_vid *  73     3e=atomic_3ec_and_test" class="sref3>atom30adv/s_vid" class="srnet/ban-adv/soft-intenet/baet/b:if_neigh_vid" class="sref">softif_neigh_vid3ode=softi3_neigh_vid" class="sref"3softi307=softif_neigd="L81" class="linease bnet/ban-adv/soft-intelinease bnet/baet/bacu" class="sref">call_rcu(&softif_neigh_vid3/a>);
 109static struct softif_neigh_vid 104{
unicas3"
	  >
  32.6.12.3
  311ss="sref">soh_vid" class="sref"de=mary_i -adv/s 
  adv/sde=mary_i ofti void softi3_neig312ef">atomic_dec_and_tain.h" class="feard{
<1}
softif_nclass="sref">softif_neigh_vid
softif_neigh_vidcall_rcu(&so3="comment"> * General Pu3blic 31e=sof_vid->->   tman-adv/soft-it;                                  &a3"a>);
 *softif_neigh *soft) *  69        if (  18 109static struct call_rcu(&  139321ef="net/batm50adv/main.h" class="fref">main.h"
call_rcu(&->softif_neigh_vid *softif_neigh_vid;
  21
;
softif_neigh *;
so3href="net/batman-adv/sof3t-int32e=softif_neig50adv/main.h" class="fref">main.hsoftif_neigh_vid *main.hsocurraref">main.h;
   tman-adv/soft-irline" name="L108"rliid;
bat_get_link(stru3h&quo3t;
 109static struct call_rcu(& =   94                                  &a3slation-t3able.h"
softif_neitman-adv/soft-irline" name="L108"rliid"BATMAN mesh %s disabled - " id="L6_neigh_vid" class="sref">softif_neigh_vidsoftif_neiiiiiiiiiiiiiiiiii "please specify f_neigh_vs tohenable it\n" id="L6f_neigh_vid" class="sref">softif_neigh_vidatomic_dec_and_tttttttttttttttttt-adv/soft-interlinede struct call_rcu(&  69        if (&q3uot;
->so3tor.h"
  73     3nux/slab.3h>
softif_neitman-adv/soft-irline" name="L108"rliid"BATMAN mesh %s " id="L6_neigh_vid" class="sref">softif_neigh_vid&quo3h>
"disabled - de=mary f_neigh_v not active\n" id="L6f_neigh_vid" class="sref">softif_neigh_vid>
atomic_dec_and_tttttttttttttttttt-adv/soft-interlinede struct call_rcu(&  38#include "3;  69        if (&q3uot;
->net_devic3e342=sofvid->spin_lock_bh(&"Sef">m in.hcall_rcu(&3u32 call_rcu(&call_rcu(&u32 softif_neigh_vid_

	a hreftace.c#L104" id="L1047" id="L97" class="line" name="L97">  97        }
  94                                  &a3trdevice.3f="+code=net_device" cla3ss="s34"+code=softiffffffffftman-adv/soft-ieeqode=nt"hrefta#37;-15s %s on oun: %d\n" id="L6f_neigh_vid" class="sref">softif_neigh_vid  34ref">atomic_dec_and_tttttttttttt "Originator" id="L6ftf"ls=r-f"="" id="L6ftface. 10se.c#   id="L108" ce" name="L104"> 104{
unicas3terface.c3#L50" id="L50" class="li3ne" n351ss="sref">softif_nei *main.hsocurraref">main.h = e=softif_nei="lifsllectee=refcount" class="sref">refc"lifsllecteeL102"d" class="sref"t;refcountcall_rcu(&->->softif_neigh_vidsoftif_neigh_vid 104{
node_tmp,
call_rcu(&3k" class="sref">get_link3 35s="sref">softif_neighhhhhhhhh_and_tttttttttttt dv/soft-interfl94" class="line" name="L94">  94                                  &a3tct ,
 = jiffies_toemf"col_ops" class="sjiffies_toemf"co/a>);
my_skb_head_push(st357ss="sref">softif_neigh_vid_

	a hreft/a>(&ammmmmmmmm dv/soft-interfatman-adv/soclass="sref">softif_neigh_vid/ 1000u" class="sref">call_rcu(&s35"+code=softifffffffffmmmmmmmm dv/soft-interfls=ref"="emf"col_ops" class="sls=ref"="emf"coid = jiffies_toemf"col_ops" class="sjiffies_toemf"co/a>);
3  57<35ref">atomic_dec_and_ttttttttt
	a hreft/a>(&ammmmmmmmm dv/soft-interfatman-adv/soclass="sref">softif_neigh_vid% 1000u" class="sref">call_rcu(&  5836ass="sref">softif_neigh_vid_
face. 10se.c#  eeqode=nt"%s %pM  %3i.%03is\n" id="L6f_neigh_vid" class="sref">softif_neigh_vidsoftif_neiiiiiiiiiiiiiiiiii e *main.hsocurraref">main.h = e=softif_neiclass="sref">softif_neigh_vidsoftif_neigh_vidatomic_dec_and_tttttttttttttttttth_?t "=tman" id="L6 :t "hr" id="L6ftface. 10se.c#   id="L108" cclass="sref">softif_neigh_vidddrine"f_neigh_vid" class="sref">softif_neigh_vids3tman-adv/soft-interface.3c#L6236et_drvinfo" class="sriiiiiiiiiiiiiiiii e *call_rcu(&->  73     3ef="net/b3atman-adv/soft-interface3.c#L636_dec_and_test(&am="+c *main.hsocurraref">main.hsoftif_neigh_vid_
-adv/soft-intersref">node_tm1}
main.hsocurraref">main.hcall_rcu(&         * to write3 free36free_rcu" class="sref">softif_neigh_vid_free_rcu3href="+co3de=result" class="sref">3resul36ref">atomic_dec_and_test(&"\n" id="L6 u" class="sref">call_rcu(&len3);
so_vid->result < 0)
<3a hre371ss="sref">sod="L81" class="linease bnet/ban-adv/soft-intelinease bnet/baet/bacu" class="sref">call_rcu(&  70  3     372=sofvid->37et_dr_vid" class="srouL105" id="L105" ou"L69":if_neigh_vid" class="sref">softif_neigh_vid33skbsoftif_neighd" class="sref"iard{
<1}
->softif_nei3ghsoftif_neigh_vid_free_rcu3=ref="+co3e=atomic_dec_and_test" c3lass=37spin_d="L101" class="line" name="L101"purgft-interface.c#Ls name="L101"purgf/a>);50adv/main.h" class="fe.c#L109" id="L109" class="line" name="L109"> 109static struct   79               3                                   &a3 href="+c3ode=softif_neigh" class=3"sref381ef="net/batm50adv/main.h" class="fref">main.hsoftif_neigh_vid *softif_nei,main.hsocurraref">main.h;
rcu);
"
call_rcu(&softif_neigh *call_rcu(&   tman-adv/soft-ido_desllecta href="net/batdo_desllect.6.1u" class="sref">call_rcu(&  384  73     3sf="net/b3L85" id="L85" class="lin3e" na386=softif_neigd="L81" class="linease batman-adv/soft-intelinease batmaet/bacu" class="sref">call_rcu(&  86        str3uct <387=softif_neigd="L81" class="iv->call_rcu(&  97        }
  94                                  &a3 href="+c3ode=bat_priv" class="sre3f">ba38ref">atomic_dec_and_th_vi!d" class="sref">softifinc"srt_zeret_settings" cla>softifinc"srt_zerenterface.c#L104" id="L104" class="linc" name="L104"> 104{
 105        if (container_of(softif_neigh_vid_
lineinueu" class="sref">call_rcu(&, softif_n3eigh_392ef">atomic_dec_and_t *main.hsocurraref">main.h = e=softif_nei="lifsllectee=refcount" class="sref">refc"lifsllecteeL102"d" class="sref"t;refcountcall_rcu(&call_rcu(&softif_neighd" class="sref"tref"" class="sref">bat_priv;
  91
  98        (&amd="L81" class="iv->);
softif_neigh_vidcall_rcu(&  96<3/a>  397ss="sref">softif_neigh_vid_


















ace.c#L104" id="L104" class="line" name="L104"> 104{
node_tmp,
call_rcu(&(&amd="L81" class="l94" class="line" name="L94">  94                                  &a3ref="+cod3e=spin_unlock_bh" class=3"sref39ref">atomic_dec_and_ttttttttt="+c"!d" class="sref"time_aft  =refcount" clastime_aft  /a>);
softif_neigh_vid                                  &a4class="sr4f">bat_priv->softif_neigh_vid_
(&amd="L81" class="mf"co_toejiffiesl_ops" class="smf"co_toejiffies/a>);
                                  &a4c1ass="sr4f    softif_neiiiiiiiiiiiii;
softifase ef="net/batman-adv/soft-interface.c#L91" id="L91" class="line" name="L91">  91tt_msglevel = MESH_ACTIVEl_ops" class="sMESH_ACTIVEine" name="L105"> 105        if (kfree(atomic_dec_and_tttttttttttttttttlineinueu" class="sref">call_rcu(&call_rcu(&softif_neigh_vid_f4ee_re40f="+code=softif_neighftif_nei="+c *main.hsocurraref">main.h = e=softif_neiclass="sref">softif_neigh_vid  94                                  &a4"sref">so4tif_neigh_vid *softif_neighhhhhhhhh_and_ttttman-adv/soft-interdbg.c#L91" id="L91" cldbgL102"d" class="sref"DBG_ROUTES.c#L91" id="L91DBG_ROUTESidsoftif_neigh_vidatom40_dec_and_test(&ammmmmmmmmmmmhhhhh_and_tttt"Currref mesh exit po>   on oun: %d " id="L6_neigh_vid" class="sref">softif_neigh_vidsoftif_neigh_vid_
















 "'%pM' vanished.\n" id="L6f_neigh_vid" class="sref">softif_neigh_vidrcu,4(&#L104" id="L104" class="line" name="L104"> 104{
softif_neigh_vid9cu,4<=spin_unlock_bh" class=4inter40ref">atomic_dec_and_ttttttttt
	a hreft/a>(&amface. 10se.c#   id="L108" cclass="sref">softif_neigh_vidddrine" class="line" name="L98">  98         *softif_neigh_vid_
(&amd="L81" class="do_desllecta href="net/batdo_desllect.6.1at_1class="line" name="L98">  98        1ass="sr42.6.12.3
  411ss="sref">softif_neiiiiiiiii_vid->softi4_neig412=sofvid->softif_neigh_vid  98        " class=4. See the GNU
(&amface. 10se.c#   id="L108" cc1}
softif_neigh_vidcall_rcu(&so4="comment"> * General Pu4blic 41s="sref">softif_neigh_vid->(&amd="L81" class="_ref">softif_neigh);
  97        }
  98        
bat_get_link(stru4/rcu,4softif_neigh_vid);
  66  18softif_nei="+c * 105        if (  149421ss="sref">softif_neiiiiiiiii#L104" id="L104" class="line" n_desllecta href="net/bat" class="line" n_desllectL102"d" class="sref">static struct  104{
  98        ->  21
main.hsocurraref">main.h(&amface. 10se.c#   id="L108" cc1}
main.hsocurraref">main.hcall_rcu(&so4href="net/batman-adv/sof4t-int42" id="L73" class="line" name="L73">  73     4nan>
"
}
refcountcall_rcu(&so_vid->call_rcu(&(&"
bat_priv;
  91
call_rcu(&sod="L81" class="iv->);
softif_neigh_vidatomic_dec_and_ttttttttttttttttttiace.c#L104" id="L1047" id="L97" class="line" name="L97">  97        }
  94                                  &a43pan>
 104{
node_tmp,
 105        if (call_rcu(&so4tor.h"
  73     4nux/slab.4h>
 104{
  98        softif_neitman-adv/soft-i_ class="line" n_1}
refcountcall_rcu(&->>
softif_neigh);
  97        }
call_rcu(&  38#include "4;unicas4t.h&q4uot;
->net_devic4e442=sofvid->spiL107ic d="L101" class="line" name= href=e.ccL97" class="line" name= href=e.ccLn-adv softif_neigh *softif_neigh_vid&q4  See the GNU
softif_neigh_vidso4u32  109static struct call_rcu(&u32 so50adv/main.h" class="fethhdrne" name="L108"ethhdr" name="L109"> 109call_rcu(& 109stef=eogm_packline" name="L108"e.cef=eogm_packli" nau" class="sref">call_rcu(&  44priv *softif_neigh_vid *softif_neiat_msglevel = NULLgh_vid" class="NULL" nau" class="sref">call_rcu(& = NULLgh_vid" class="NULL" nau" class="sref">call_rcu(&main.hsoftif_neigh_vid *main.hsocurraref">main.h = NULLgh_vid" class="NULL" nau" class="sref">call_rcu(&->tt_msglevel = ETH_P_8021Qt_settings" claETH_P_8021Qadv/s_neigh_vid" class="sref">softif_neigh_vidsoftif_neigh_vidso4k" class="sref">get_link4 45s="sref">softif_neighhhhhhhhh_and_ttttttttttt"d" class="sref"tkba href="net/batmabid = ETH_HLENt_settings" claETH_HLENid = VLAN_HLENt_settings" claVLAN_HLENofti u" class="sref">call_rcu(&call_rcu(&my_skb_head_push(st457ss="sref">softif_neiain.h" class="fe.cef=eogm_packline" name="L108"e.cef=eogm_packli" namt_"50adv/main.h" class="fe.cef=eogm_packline" name="L108"e.cef=eogm_packli" names_neigh_vid" class="sref">softif_neigh_vid&quo4ef="+code=skb" class="sr4ef">s45"+code=softifffffffffmmmmmmmmif_neighhhhhhhhh_and_ttttttttttt"d" class="sref"tkba href="net/batmabid = ETH_HLENt_settings" claETH_HLENidcall_rcu(&4  57<45spin_unlock_bh(&  5846ass="sref">sode=shref="+code=bate.cef=eogm_packline" name="L108"e.cef=eogm_packli" naatman-adv/soft-inter*ersio"l_ops" class="s*ersio"ss="s!t_ain.h" class="fCOMPAT_VERSIONt_settings" claCOMPAT_VERSIONadv/s_neigh_vid" class="sref">softif_neigh_vidsoftif_neigotoh_vid" class="srouL105" id="L105" ou"L69">  69        if (->softif_neigh_vid  69        if (so4an-adv/soft-interface.c#4L64" 46" id="L73" class="line" name="L73">  73     4ef="net/b4atman-adv/soft-interface4.c#L646_dec_and_testh_vi!shref="+code=bate.cef=eogm_packline" name="L108"e.cef=eogm_packli" naatman-adv/soft-interflagol_ops" class="sflagodec_a/softh_vid" class="srPRIMARIES_FIRST_HOPl_ops" class="sPRIMARIES_FIRST_HOPinte name="L105"> 105        if (softif_neigotoh_vid" class="srouL105" id="L105" ou"L69">  69        if (&quo4ent">         * to write4 free46free_rcu" class="sref">softif_neigh_vid_free_rcu4href="+co4de=result" class="sref">4resul46/a> =  105        if (len4);
  69        if (result < 0)
<4a hre47softif_neigh,   70  4     472ef">atomic_d *softif_neiat_msglevel = rface.c#L98" gline" name="L108"rface.c#L98" gliL102"d" class="sref"e.catic struct 47et_drvinfo" cde=s!d" class="sref"a href="net/class="sref">softif_neigh_vid     4L PURPOSE4+code=skb" class="sref">4skb  69        if (  73     4=f="net/b4 0;
main.hsocurraref">main.h = e=softif_nei=inte"lifsllectee=refcount" class="sref">refcinte"lifsllecteeL102"d" class="sref"e.catic struct  = main.hsocurraref">main.h = e=softif_neiclass="sref">softif_neigh_vid     4L&quo4 class="sref">softif_nei4gh  69        if ((&  79               4  = de=mary_i ="lifsllectee=refcount" clasde=mary_i ="lifsllecteeet/ba="L109"> 109static struct call_rcu(&call_rcu(&);
atomic_dec_and_tgotoh_vid" class="srouL105" id="L105" ou"L69">  69        if (call_rcu(&  66  484 =  109softif_neigh_vid(&ammmmmsglevel = e=softif_neiclass="sref">softif_neigh_vidddrine"f_msglevel = ETH_ALENt_settings" claETH_ALENidcall_rcu(&  86        str4uct <487ss="sref">softif_neigotoh_vid" class="srouL105" id="L105" ou"L69">  69        if (softif_neigh_vid_free_rcu4 href="+c4ode=bat_priv" class="sre4f">ba48ref">atomic_dt  66container_of(sode=s!d" class="sref"curraref">main.hsocurraref">main.h  94                                  &a490   4     softif_nei *refcintesllecta href="net/bat" class="line" n_sllectL102"d" class="sref">static struct softif_neigh_vidsoftif_n4eigh_492ef">atomic_dec_and_tgotoh_vid" class="srouL105" id="L105" ou"L69">  69        if (->4(softt  66 109softif_neigh_vidddrine"f_msglevel = curraref">main.hsocurraref">main.hddrine"f_msglevel = ETH_ALENt_settings" claETH_ALENidcall_rcu(&  96<4/a>  497ss="sref">softif_nei *refcintesllecta href="net/bat" class="line" n_sllectL102"d" class="sref">static struct softif_neigh_vid(<4a hre49free_rcu" class="sref">softif_neigh_vid_free_rcu4ref="+cod4e=spin_unlock_bh" class=4"sref49ref">_vid" class="srouL105" id="L105" ou"L69":if_neigh_vid" class="sref">softif_neigh_vid5class="sr5f">bat_priv-> 109(&softif_neigh_vid     5ree" clas5="sref">kfree(atomic_dec_and_t *refc1}
softif_neigh_vidcall_rcu(&main.hsocurraref">main.hsoftif_neigh_vid_f5ee_re50f="+code=softif_neigh *refc1}
main.hsocurraref">main.hcall_rcu(&so5tif_neigh_vid *call_rcu(&}
);
     5ode=softi5_neigh_vid" class="sref"5softi507ss="sref">so ->(& *   tman-adv/soft-iode=bat_p_op="l_ops" class="sode=bat_p_op="/a>); softif_neigh *call_rcu(&
  511ss="  94                                  &a5/so2s="st5nterfa2lass="sref">softi5_neig512ef">atomic_d *);
call_rcu(&call_rcu(&" class=5. See the GNU
->so5="comment"> * General Pu5blic 51" id="L73" class="line" name="L73">  73     5/=atomic_5ref="net/batman-adv/soft5-inte51_dec_L107ic >   tman-adv/soft-iode=bat_p_rlleas"=refcount" clasode=bat_p_rlleas"/a>); softif_neigh *call_rcu(&                                  &a5/8e=softi5);
call_rcu(&call_rcu(&  18->  15952softif_neigh, softif_neigh *softif_neigh *call_rcu(&  21
 109static struct call_rcu(&so5href="net/batman-adv/sof5t-int525t_drvinfo" c   97        }
call_rcu(&->"
bat_get_link(stru5h&quo5t;
   tman-adv/soft-iode=bat_p_sinemac_addrne" name="L108"ode=bat_p_sinemac_addr/a>); softif_neigh *call_rcu(& 109static struct call_rcu(& 109ddrine"at_msglevel = d-adv/s 
  adv/sdoftiu" class="sref">call_rcu(&ddrine">  97        }
call_rcu(&call_rcu(&so5tor.h"
  73     5nux/slab.5h>
 itialized before66" id="L66" class="line" name="L66">  66softifase ef="net/batman-adv/soft-interface.c#L91" id="L91" class="line" name="L91">  91tt_msglevel = MESH_ACTIVEl_ops" class="sMESH_ACTIVEine" >  94                                  &a5s&quo5h>
 = tteatmalfasmov=softif_neigh" ctteatmalfasmov=L102"d" class="sref">static struct softif_neigh_vid>
atomic_dec_and_ttttttttt
	a href "mac address changed" id="L6f&#L104" id="L104fals"=refcount" clasfals"ofti u" class="sref">call_rcu(&  38#include "5;ddrine">  97        }
call_rcu(&->net_devic5e542=sofvid->ddrine">  97        }
call_rcu(&call_rcu(&so5u32 u32    tman-adv/soft-iode=bat_p_change_mtune" name="L108"ode=bat_p_change_mtu/a>); softif_neigh *   tman-adv/soft-inew_mtune" name="L108"new_mtuoftis" class="sref">call_rcu(&                                  &a5na href="58" class="line" name="L458">  54ref">atomic_dt  66sode=sshref="+code=batnew_mtune" name="L108"new_mtuofti < 68) ||=shref="+code=batnew_mtune" name="L108"new_mtuofti & 97m_vid" class="sriard{
call_rcu(&softif_nei  = EINVALgh_vid" class="EINVALoftiu" class="sref">call_rcu(&-> =   w_mtune" name="L108"new_mtuoftiu" class="sref">call_rcu(&so5k" class="sref">get_link5 555t_drvinfo" c call_rcu(&,
my_skb_head_push(st55bat_get_link" class="sref">bat_get_link(stru5a&quo5ef="+code=skb" class="sr5ef">s55"+codL107ic >   tman-adv/soft-iode=bat_p_txne" name="L108"ode=bat_p_tx/a>); softif_neigh *<_get_i hre-adv/s 
  adv/s_get_i hreoftis" class="sref">call_rcu(&5  57<55spin_  94                                  &a5 id="L58"5 class="line" name="L58"5>  5856ref="net/batm50adv/main.h" class="fethhdrne" name="L108"ethhdr" name="L109"> 109call_rcu(&am          &a5 .h&q5ace.c#L59" id="L59" clas5s="li561ef="net/batm50adv/main.h" class="fe.c#L109" id="L109" class="line" name="L109"> 109static struct call_rcu(&am          &a5 t_device5atman-adv/soft-interface5.c#L6562ef="net/batm50adv/main.h" class="feard_i hre-adv/s 
  adv/seard_i hreid *call_rcu(& 109cs=repackline" name="L108"ecs=repackli" nau" class="sref">call_rcu(& 109call_rcu(&so5an-adv/soft-interface.c#5L64" 565="+code=soft50adv/main.h" class="fa href="net/class="sref">softif_neigh_vid *main.hsocurraref">main.h = NULLgh_vid" class="NULL" nau" class="sref">call_rcu(&   tman-adv/soft-iheader_l="l_ops" class="sheader_l="oftiat_0u" class="sref">call_rcu(&
5so>   tman-adv/soft-idata_l="l_ops" class="sdata_l="oftiat_msglevel = ekba href="net/batmabidcall_rcu(&         * to write5 free56"+code=softif5horref="+code=softif* o href="net/batman-adv/at_-1class="line" name="L98">  98        5resul56priv *  98        len5);
unicas5=t-interf5ef">result < 0)
<5a hre571ef="net/batm="+cmsglevel = >softifase t_settings" cla>softifase ef="net/batman-adv/soft-interface.c#L91" id="L91" class="line" name="L91">  91!t_ain.h" class="fMESH_ACTIVEl_ops" class="sMESH_ACTIVEine" t/batman-adv/unicast.h" class="fref">unicas5=t_device5e" name="L70">  70  5     572ef">atomic_dec_and_tgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        s5L72" class="line" name="5L72">57atman" class="sref">call_rcu(&5skb  91 = jiffieol_ops" class="sjiffieoofticlass="line" name="L98">  98        so5batman-adv/soft-interfac5e.c#L57" id="L73" class="line" name="L73">  73     5=f="net/b5 0;
  94                                  &a5Lith the 5

softif_neigh_vid5L&quo5 class="sref">softif_nei5gh 109call_rcu(&am          &a5atomic_dec_and_tf="+code=softif* o href="net/batman-adv/at_href="+code=batntohol_ops" class="sntohoL102"d" class="sref"vhdrne" name="L108"vhdr" naatman-adv/soft-interh_vlan_TCIt_settings" clah_vlan_TCI"L94">/softh_vid" class="srVLAN_VID_MASKt_settings" claVLAN_VID_MASKidcall_rcu(&am          &a5ame="L79"5>  79               5 unicas5 href="+c5ode=softif_neigh" class=5"sref581ss="sref">softif_neide=shref="+code=batntohol_ops" class="sntohoL102"d" class="sref"vhdrne" name="L108"vhdr" naatman-adv/soft-interh_vlan_encapsul07=d_tiotet_settings" clah_vlan_encapsul07=d_tiote"L94">!t_ain.h" class="fETH_P_BATMANt_settings" claETH_P_BATMANine" t/batman-adv/unicast.h" class="fref">unicas5 ass="lin5>);
atomic_dec_and_tttttttttbaseku" class="sref">call_rcu(&am          &a5a 42s5ef="+code=softif_neigh_v5id_fr58atman" class="sref">call_rcu(&  66  584 =  = ETH_P_BATMANt_settings" claETH_P_BATMANine":if_neigh_vid" class="sref">softif_neigh_vid5sf="net/b5L85" id="L85" class="lin5e" na58_dec_and_test(&amain.h" class="fa href=class=e.ccL97" class="line" name= href=e.ccLn-adv3tif_n 7e meth hkba href="net/batmabid  86        str5uct <587ss="sref">softif_neigotoh_vid" class="sreno href="net/batmenoidcall_rcu(&am          &a5a&quo5oft-interface.c#L87" id=5"L87"58"+code=softif_vid->ba58spin_unlock_bh(&container_of(so   66   5       66softif_n5eigh_592ef">   66s5+code=spin_lock_bh" clas5s="sr59et_dr   66main.hsocurraref">main.h = e=softif_nei=inte"lifsllectee=refcount" class="sref">refcinte"lifsllecteeL102"d" class="sref"e.catic struct   66softde=shref="+code=batcurraref">main.hsocurraref">main.h  98          96<5/a>  59bat_get_link" class="sref">bat_get_link(stru5_an-adv/s5tif_neigh_free_ref(<5a hre598ss="sref">so   66 *  66bat_priv->unicas6c1ass="sr6f      94                                  &a6ree" clas6="sref">kfree(atomic_dec_and_t *  98        call_rcu(&softif_neigh_vid_f6ee_re60f="+code=softif_neigh_witch shref="+code=bat>softifase t_settings" cla>softifase ef="net/batman-adv/soft-interface.c#L91" id="L91" class="line" name="L91">  91  94                                  &a6r5 class=6s="+code=softif_neigh_vi6f="+c605a> =  = GW_MODE_SERVER.c#L91" id="L91GW_MODE_SERVERine":if_neigh_vid" class="sref">softif_neigh_vid6e=atomic_6ec_and_test" class="sref6>atom60_dec_and_test(&amsref">so   66  ohthe meshc*" id="L66" class="line" name="L66">  66(<6gh_vi60"+code=softifffffffffmmmmmmmm#L104" id="L104rline" name="L108"rli" naat_msglevel = gw_os_dhcp_targline" name="L108"gw_os_dhcp_targlin-adv3tif_n 7e meth hkba href="net/batmabid  66atomic_dec_and_ttttttttt="+cmsglevel = rline" name="L108"rli" na void   98        1ass="sr62.6.12.3
  611ss="sref">softif_neiiiiiiiiibaseku" class="sref">call_rcu(&am          &a6/so2s="st6nterfa2lass="sref">softi6_neig612ef">atomic_dec_and_tcs=e_msglevel = GW_MODE_CLIENT.c#L91" id="L91GW_MODE_CLIENTine":if_neigh_vid" class="sref">softif_neigh_vid6>3e" clas6v/s 
  adv/s6tman-adv/so6t-int61et_drvinfo" cffffffffmmmmmmmm#  66" class=6. See the GNU
  66so6="comment"> * General Pu6blic 61s="sref">softif_neighhhhhhhhh#L104" id="L104rline" name="L108"rli" naat_msglevel = gw_os_dhcp_targline" name="L108"gw_os_dhcp_targlin-adv3tif_n 7e meth hkba href="net/batmabid  66so="+cmsglevel = rline" name="L108"rli" na void softif_neiif_neighhhhhhhhh#L104" id="L104do_ecs=rl_ops" class="sdo_ecs=roftiat_msglevel = fals"=refcount" clasfals"ofticlass="line" name="L98">  98        call_rcu(&am          &a6/9e=softi6anklin Street, Fifth Flo6or, B61ref">atomic_dec_and_tcs=e_msglevel = GW_MODE_OFF.c#L91" id="L91GW_MODE_OFFine":if_neigh_vid" class="sref">softif_neigh_vid6ne" name=6"L18">  18softif_neigh_vid6n1ass="sr6ss="line" name="L19">  169621ss="sref">softif_neiiiiiiiiibaseku" class="sref">call_rcu(&am          &a6"so2s="st6>>
atomic_dec_and_t_vid->  21
->so6href="net/batman-adv/sof6t-int625t_drvinfo" c#  66"
"
softif_nei * 109static struct call_rcu(&call_rcu(&atomic_dec_and_tttttttttgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        "
unicas6sL19" cla6href="net/batman-adv/sof6t-int631ss="sref">softif_neide=shref="+code=batmyetkb_head_pussomyetkb_head_pus 109cs=repackline" name="L108"ecs=repackli" na)  < 0s" class="sref">call_rcu(&atomic_dec_and_tttttttttgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        call_rcu(& 109cs=repackline" name="L108"ecs=repackli" namt_"50adv/main.h" class="fecs=repackline" name="L108"ecs=repackli" name) *call_rcu(&am          &a6ssref">so6tor.h"
softif_neighain.h" class="fecs=repackline" name="L108"ecs=repackli" naatman-adv/soft-inter*ersio"l_ops" class="s*ersio"oftiat_msglevel = COMPAT_VERSIONt_settings" claCOMPAT_VERSIONidcall_rcu(&am          &a6s=atomic_6h>
 = TTLgh_vid" class="TTLidcall_rcu(&am          &a6sde=softi6;
bat_get_link(stru6s&quo6h>
  66atomic_dec_and_tain.h" class="fecs=repackline" name="L108"ecs=repackli" naatman-adv/soft-interpackli_type-adv/s 
  adv/sdackli_typeoftiat_msglevel = BAT_BCAST.c#L91" id="L91BAT_BCASTidcall_rcu(&am          &a6name="L386">  38#include "6;unicas6nL19" cla6uot;
softif_nei un is the orig mac because only id="L66" class="line" name="L66">  66net_devic6e642ef">   66
  66&q6  See the GNU
call_rcu(&so6u32   73     6eux/slab.6ef="+code=net_device" cl6ass="64_dec_and_test(&ama  66u32 softif_nei *  66&quo6f="+code=net_device" cla6ss="s64"+code=softifffffffffmmmmmmmm#L104" id="L104htonll_ops" class="shtonlL102"d" class="sref">softifinifasa hrt_settings" cla>softifinifasa href="net/batman-adv/soft-interface.c#L91" id="L91" class="line" name="L91">  91call_rcu(&  64spin_unlock_bh(& = add_ecs=repackli_to_li=rl_ops" class="sadd_ecs=repackli_to_li=rL102"d" class="sref"e.catic struct call_rcu(&, atomic_dec_and_t  hthe ecs=r li=r,htherefore6asmoving id="L66" class="line" name="L66">  66s6" id="L52" class="line" 6name=65et_dr   66&q6-interface.c#L53" id="L563" cl65f="+code=softif_neigh="L109"> 109 109(&so6k" class="sref">get_link6 65" id="L73" class="line" name="L73">  73     6tct ,
  66my_skb_head_push(st657ss="sref">so} else   94                                  &a6a&quo6ef="+code=skb" class="sr6ef">s65"+code=softifffffffff="+chref="+code=bat>softifase t_settings" cla>softifase ef="net/batman-adv/soft-interface.c#L91" id="L91" class="line" name="L91">  91!t_ain.h" class="fGW_MODE_OFF.c#L91" id="L91GW_MODE_OFFine" >  94                                  &a6ta href="6class="line" name="L57">6  57<65ref">atomic_dec_and_ttttttttt#L104" id="L104rline" name="L108"rli" naat_msglevel = gw_out_of_range.c#L91" id="L91gw_out_of_rangeL102"d" class="sref"e.catic struct   5866ref="net/batman-adv/sssssssss="+cmsglevel = rline" name="L108"rli" na void softif_neiiiiiiiiiiiiiiiiigotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        atomic_dec_and_t_vid->call_rcu(& 109 = unics=r_sendetkba href="net/batunics=r_sendetkbn-adv3tif_n 7e meth hkba href="net/batmabid 109static struct call_rcu(&so6an-adv/soft-interface.c#6L64" 66s="sref">softif_neigh="+cmsglevel = rline" name="L108"rli" na>!t_0s" class="sref">call_rcu(&(&amsref">sogotoh_vid" class="srdroppee<1  98        
6so_vid->         * to write6 free66free_rcu" class="sref">softif_neigh_vid_free_rcu6href="+co6de=result" class="sref">6resul66priv *  97        }
  98        len6);
  97        }
  98        &q6ef">result < 0)
<6a hre671ef="net/batmgotoh_vid" class="sreno href="net/batmenoidcall_rcu(&am          &a6=t_device6e" name="L70">  70  6     672=sofvid->67atman_vid" class="srdroppee=refcount" clasdroppeeofti:if_neigh_vid" class="sref">softif_neigh_vid6L PURPOSE6+code=skb" class="sref">6skb 109(&so6batman-adv/soft-interfac6e.c#L67" id=_vid" class="srdroppee<1softif_neigh_vid6Lf="net/b6 0;
  97        }
)++class="line" name="L98">  98        softif_neigh_vid6L&quo6 class="sref">softif_nei6ghmain.hsocurraref">main.hatomic_dec_and_tf="+code=softifs="sref">refc1}
refc1}
 109main.hsocurraref">main.h  98          79               6 sode=sd" class="sref"de=mary_i -adv/s 
  adv/sde=mary_i oftis" class="sref">call_rcu(&softif_nei#L104" id="L104hard{
<1}
 109  98        );
atomic_d  109call_rcu(&am          &a6a 42s6ef="+code=softif_neigh_v6id_fr68atman_vid->  684 =d="L1="L109"> 109); softif_neigh *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" class="line" name="L66">  66(&amft50adv/main.h" class="faatmuf  66  86        str6uct <687ss="sref">softif_neiso>   tman-adv/soft-ihdrarize-adv/s 
  adv/sedrarizeoftis" class="sref">call_rcu(&                                  &a6 href="+c6ode=bat_priv" class="sre6f">ba68ref">atomic_d50adv/main.h" class="fe.c#L109" id="L109" class="line" name="L109"> 109static struct call_rcu(&am          &a6class="sr6ef">container_of( 109call_rcu(&am          &a6chref="+c6      109call_rcu(&am          &a6ct_device6d" class="sref">softif_n6eigh_692ef="net/batm50adv/main.h" class="fvlan_ethhdrne" name="L108"vlan_ethhdr" name="L109"> 109call_rcu(&main.hsoref">main.h 109main.hsocurraref">main.h = NULLgh_vid" class="NULL" nau" class="sref">call_rcu(&6(  98        softd   tman-adv/soft-irline" name="L108"rli" nau" class="sref">call_rcu(&  96<6/a>  697ss="sref">sot  66(<6a hre69"+code=softifde=s!d" class="sref"dtkb_may_pule-adv/s 
  adv/sdtkb_may_pulen-adv3tif_n 7e meth hkba href="net/batmabid 109call_rcu(&atomic_dec_and_tgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        bat_priv->unicas7c1ass="sr7f     109  98        softif_n7="+co702ef">atomic_d3tif_n 7e meth hkb_resinemac_headera href="net/batmab_resinemac_headeret/ba="L109"> 109(&call_rcu(&softif_neigh_vid_f7ee_re70f="+code=softd" class="sref"ethhdrne" name="L108"ethhdr" namt_"50adv/main.h" class="fethhdrne" name="L108"ethhdr" name) * 109(&  73     7e=atomic_7ec_and_test" class="sref7>atom70_dec_and_test_witch shref="+code=batntohol_ops" class="sntohoL102"d" class="sref"ethhdrne" name="L108"ethhdr" naatman-adv/soft-interh_tiotet_settings" clah_tiote"L94" >  94                                  &a7ode=softi7_neigh_vid" class="sref"7softi707a> =  = ETH_P_8021Qt_settings" claETH_P_8021Qadv/:if_neigh_vid" class="sref">softif_neigh_vid7o8e=softi7_if_neigh_free_ref(<7gh_vi70"+code=softifffffffff="L109"> 109call_rcu(&am          &a7c9e=softi7_=spin_unlock_bh" class=7inter70ref">atomic_dec_and_tf="+code=softif* o href="net/batman-adv/at_href="+code=batntohol_ops" class="sntohoL102"d" class="sref"vhdrne" name="L108"vhdr" naatman-adv/soft-interh_vlan_TCIt_settings" clah_vlan_TCI"L94">/softh_vid" class="srVLAN_VID_MASKt_settings" claVLAN_VID_MASKidcall_rcu(&am          &a7> *unicas7>1ass="sr72.6.12.3
  711ss="sref">softif_neide=shref="+code=batntohol_ops" class="sntohoL102"d" class="sref"vhdrne" name="L108"vhdr" naatman-adv/soft-interh_vlan_encapsul07=d_tiotet_settings" clah_vlan_encapsul07=d_tiote"L94">!t_ain.h" class="fETH_P_BATMANt_settings" claETH_P_BATMANine" t/batman-adv/unicast.h" class="fref">unicas7>2ass="sr7nterfa2lass="sref">softi7_neig712ef">atomic_dec_and_tttttttttbaseku" class="sref">call_rcu(&am          &a7>3e" clas7v/s 
  adv/s6tman-adv/so7t-int71atman" class="sref">call_rcu(&
  66so7="comment"> * General Pu7blic 715a> =  = ETH_P_BATMANt_settings" claETH_P_BATMANine":if_neigh_vid" class="sref">softif_neigh_vid7/=atomic_7ref="net/batman-adv/soft7-inte71_dec_and_test(&amgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        de=softi7>
so_vid->softif_neigh_vid_free_rcu7/9e=softi7anklin Street, Fifth Flo7or, B71ref">atomic_dt  66  18  66  179721ss="   66   66  21
main.hsocurraref">main.h = e=softif_nei=inte"lifsllectee=refcount" class="sref">refcinte"lifsllecteeL102"d" class="sref"e.catic struct   66main.hsocurraref">main.h  94                                  &a7nsref">so7href="net/batman-adv/sof7t-int72s="sref">softif_neighain.h" class="fmab_pussomab_pus 109  98        "
call_rcu(&am          &a7"de=softi7ting.h"
bat_get_link(stru7h&quo7t;
/soft/softet_link" class="sref">bat_get_link(stru7h9e=softi7net/batman-adv/soft-inte7rface72ref">atomic_dec_and_tttttv3tif_n 7e meth unics=r_packline" name="L108"unics=r_packli" naatman-adv/soft-interpackli_type-adv/s 
  adv/sdackli_typeoftia!t_ain.h" class="fBAT_UNICAST_FRAG.c#L91" id="L91BAT_UNICAST_FRAGoftiss" class="sref">call_rcu(&  98        atomic_dec_and_t3tif_n 7e meth hkb_resinemac_headera href="net/batmab_resinemac_headeret/ba="L109"> 109(&call_rcu(& 109  66so7tor.h"
softif_neighf_neigh="L109"> 109main.hsocurraref">main.hcall_rcu(&(&amain.h" class="frline" name="L108"rli" naat_msglevel = route_unics=r_packline" name="L108"route_unics=r_packlin-adv3tif_n 7e meth hkba href="net/batmabid 109call_rcu(&softif_nei="+cmsglevel = rline" name="L108"rli" na>=t_msglevel = NET_RX_DROPgh_vid" class="NET_RX_DROPine" t/batman-adv/unicast.h" class="fref">unicas7s&quo7h>
  98        >
  38#include "7;  98        so_vid->net_devic7e742=sofvid->/softh_kbatmanpki_type are _lifherei*" id="L66" class="line" name="L66">  66&q7  See the GNU
 109call_rcu(&so7u32 softif_neighgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98         = eth_type_tranLne" name="L108"eth_type_tranLn-adv3tif_n 7e meth hkba href="net/batmabid 109call_rcu(&am          &a7ede=softi7="sref">u32 bat_get_link(stru7e&quo7f="+code=net_device" cla7ss="s748ss="sref">so   66  74spin_   66  66&q7#L50" id="L50" class="li7ne" n75softif_neigh,    66
call_rcu(&  97        }
  98        so7k" class="sref">get_link7 755="+code=softd" class="sref"b" id="L97" class="line" name="L97">  97        }
call_rcu(&am          &a7tct ,
my_skb_head_push(st757ss="sref">so="L109"> 109 = jiffieol_ops" class="sjiffieoofticlass="line" name="L98">  98        &quo7ef="+code=skb" class="sr7ef">s75free_rcu" class="sref">softif_neigh_vid_free_rcu7ta href="7class="line" name="L57">7  57<75ref">atomic_d="+cmsglevel = is_ap_isol07=dl_ops" class="sis_ap_isol07=dL102"d" class="sref"e.catic struct softif_neigh_vid_free_rcu7 id="L58"7 class="line" name="L58"7>  5876ref="net/batman-adv/sgotoh_vid" class="srdroppee=refcount" clasdroppeeofticlass="line" name="L98">  98        &q7ace.c#L59" id="L59" clas7s="li76softif_neigh, atomic_d3tif_n 7e meth >, if_rxne" name="L108">, if_rxet/ba="L109"> 109(&  98        &q7batman-adv/soft-interfac7e.c#L76et/ba.3"="net/batman-adv/s 
  adv/s6.24so7an-adv/soft-interface.c#7L64" 76" id=_vid" class="srdroppee=refcount" clasdroppeeofti:if_neigh_vid" class="sref">softif_neigh_vid7ef="net/b7atman-adv/soft-interface7.c#L6766=softif_neiggh_lock" class=krfacetkba href="net/batkrfacetkbet/ba="L109"> 109(&softif_neigh_vid7e&quo7ent">         * to write7 free76"+code=softifde=shref="+code=batcurraref">main.hsocurraref">main.h7resul76ref">atomic_dec_and_tf="+code=softifs="sref">refc1}
refc1}
 109main.hsocurraref">main.h  98        len7);
  98        &q7ef">result < 0)
<7a hre771ef="_vid->  70  7     772=sofvid->77atmanL107ic con=r s                                  &a7L PURPOSE7+code=skb" class="sref">7skb = ode=bat_p_op="l_ops" class="sode=bat_p_op=""L94f6" class="line" name="L66">  66so7batman-adv/soft-interfac7e.c#L775="+code=soft.-adv/soft-interndo_stopl_ops" class="sndo_stop" naat_msglevel = ode=bat_p_reles=el_ops" class="sode=bat_p_reles=e"L94f6" class="line" name="L66">  66 = ode=bat_p_s107ol_ops" class="sode=bat_p_s107o"L94f6" class="line" name="L66">  66 = ode=bat_p_sinemac_addrl_ops" class="sode=bat_p_sinemac_addr"L94f6" class="line" name="L66">  66&quo7 class="sref">softif_nei7gh = ode=bat_p_change_mtul_ops" class="sode=bat_p_change_mtu"L94f6" class="line" name="L66">  66atomic_d.-adv/soft-interndo_start_xmit=refcount" clasndo_start_xmit" naat_msglevel = ode=bat_p_txne" name="L108"ode=bat_p_tx"L94f6" class="line" name="L66">  66  79               7 so.-adv/soft-interndo_valid07=_addrl_ops" class="sndo_valid07=_addr" naat_msglevel = eth_valid07=_addrl_ops" class="seth_valid07=_addr=sofvid->  98        );
 109softif_neigh *                                  &a7onet/batm7ass="line" name="L84">  784 109 =    de _tic struct   98          98          86        str7uct <78bat_get_link" class="sref">bat_get_link(stru7 &quo7oft-interface.c#L87" id=7"L87"788ss="sref">so sglevel = ether_sinupl_ops" class="sether_sinupL102"d" class="sref"de struct   98        ba78spin_unlock_bh(&container_of(  98         = 1   de ne" name="L108"1   de " naclass="line" name="L98">  98        softif_n7eigh_792ef">atomic_d3tif_n 7e meth de struct   98        s7+code=spin_lock_bh" clas7s="sr79atman" class="sref">call_rcu(&7(  66  66  66  96<7/a>  797ss="   66(<7a hre798ss="sref">so sglevel = de struct  = ETH_DATA_LENt_settings" claETH_DATA_LEN" naclass="line" name="L98">  98        atomic_dt  66bat_priv-> = BAT_HEADER_LENt_settings" claBAT_HEADER_LEN" naclass="line" name="L98">  98        , softif_n8="+co802ef">atomic_d3  66  98        softif_neigh_vid_f8ee_re80f="+code=softd" class="sref"memcpysoftif_neigh" cmemcpyL102"d" class="sref"de struct call_rcu(&  73     8e=atomic_8ec_and_test" class="sref8>atom806=softif_neiggh_lock" class=SET_ETHTOOL_OPSt_settings" claSET_ETHTOOL_OPSL102"d" class="sref"de struct call_rcu(&  96<8softi80bat_get_link" class="sref">bat_get_link(stru8o8e=softi8_if_neigh_free_ref(<8gh_vi808ss="sref">so sglevel = memsline" name="L108"memsliL102"d" class="sref"L109" id="L109" clade=softi, 0,tsizeof(e="L109"> 109(<="sr7ss="line" naname="L84">  684cas7>1ass="sr72.6.12.3
  711ss8"sref">so8tif_neide=shref="+code=b8tntoh8l_ops"slinede ie"">softif_neigh *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" class="if_creme=9"> 109macreme=i, 0,s" cla_addri hreoftif6" cla+cod_get_i hre-adv/scod_r7oa href="7 href="+code=rcu_head" c7lass=78et/8>atomic_d8c_and_tttttttttbaseku" c8ass="8ref">cnet/batm7ass="line" name="L84">  784call_rcu(&8a hre81soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" class="oft-interls=r_rxne" name="L108"ls=r9e=softi8  de ruct  109static struct  = ETH_P8BATMA8t_settings" cliclass="sref">call_rcu(&my_skb_head_push(st757ss8"sref">so8vid->  98 =    de _tic struct softif_neigh_vi8_free8rcu7/9e=softi7anklin Street, Fifth Flo7or, B71ref8>atomic_d8call_rcu(&am          &a7ee=softi7anklin Street, Fifth Flo7or, B71ref8"   98        softif_n8="+co802ef"> call_rcu(&am          &a7ede=softi7="sref">u32 8ain.h8class="sref">st_msglevel = NET_RX_DROPgh_vid" class="NE< 07nsref">so7href="net/batman-adv/sof7t-int72s="8code=soft8e=shref="+code=batcurrar8f">ma82if_neigh" cmemcpyL102"d" class="srefpr_erTH_ALENt_settingpr_erTi, 0,ts *" id="L66s="ing">"Unline"ss==egis8="lass="et/ba of7t-int7 les iles7;sles i: les7;i\n"n cl8c3me="L79"7>  79               7 soft8f_neighain.h" class="fma8_pus<8lass="sref">somab_pusu32 (&amain.h" class="fun8cs=r_8ackline" name="L108"unlass="line" name="L9mabidcall_rcu(&amabid h7nL19" cla7uot;
so8class="sref">bat_get_lin8(82class="sref7/8e=softi7atomic_d8c_and_tttttv3tif_n 7e me8h uni82"line" name="L97">  97        }
call_rcu(&am          &a6class="sr6ef">container_of(1ass="sr72.6.12.3
  711ss8if_neigh<8a>,   91!t_ain.h" cagg=egt_setogmsref">call_rcucontainer_of(  91!t_ain.h" cbonding"gw_m91<.c#L91" onding" cladeclass="sr6ef">container_of(call_rcu(&8a hre83e" name="L108"random_ether_a#L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" caa href="io = BAT_HEADEaa href="io<" cladeclass="sr6ef">container_of( 109  91!t_ain.h" cvis_mh" /gw_m91<.c#L91"vis_mh" _r7oENidcontainer_of(soft8f_neighf_neigh="L109"> 189main.h"d" class="sref#L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" cgw_mh" /gw_m91<.c#L91"gw_mh" _r7oENidcontainer_of((&amain.h" class="frl8ne" n83ettings" claSET_ETHTOOL_OPSL#L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" cgw_sel_w_m91/gw_m91<.c#L91"gw_sel_w_m91_r7oEN2eclass="sr6ef">container_of(so8tif_nei="+cmsglevel 8 rlin83  adv/s_get_i hreoftiatman-a#L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" cgw_bandwidtine" name="L98">gw_bandwidti_r7oEN41class="sr6ef">container_of(  91!t_ain.h" corig_a 6hrvaeth_type_tranLneorig_a 6hrvae_r7oEN100eclass="sr6ef">container_of((&  97  #L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" chop_penalttruct container_of(  91!t_ain.h" clog_leveeth_type_tranLnelog_levee" cladeclass="sr6ef">container_of(so8vid->  91!t_ain.h" cfraglass="io = BAT_HEADEfraglass="io<_r7oEN1class="sr6ef">container_of(-8gt;  91!t_ain.h" cbbatma/a>     f" id="L109" cladbbatma/a>     f"_r7oENid  98container_of(  91!t_ain.h" cntainea/a>     f" id="L109" cladbtainea/a>     f"_r7oENid  98container_of(so7an-adv/soft-interface.c#7L64" 76" i8ref">soft8f_neighgotoh_vid" class=8srdro84raref">main.h"d" class="sref#L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" c  66container_of(  91!t_ain.h" cbbatmaseqn>!t_ain.h" classbbatmaseqn>_r7oEN1class="sr6ef">container_of(so8class="sref">bat_get_lin8(84  adv/s_get_i hreoftiatman-a#L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" cttve" name="L98">  9tve" cladeclass="sr6ef">container_of(  91!t_ain.h" ctt_local6container_of(  97  #L91" i09" id="L109" clad#L91" i09"get_ilass="line" name="L91">  91!t_ain.h" ctt_ogm_append_cn" id="L109" cladtt_ogm_append_cn"" cladeclass="sr6ef">container_of(1ass="sr72.6.12.3
  711ss8if_neigh<8a>,   91!t_ain.h" ctt_ame= id="L109" cladtt_ame=07o/ de _tic L102"d" cl_rcu(&6(  91!t_ain.h" ctt_ame=line" name="L98">  9t_ame=line07o/ dec 42s7+code=spin_lock_bh" clas7s="sr79atm8n" class=8sref">call_rcu(&8a hre85e" name="L108"random_ether_a1">  91!t_ain.h" ctt_poss6  9t_poss6ode=soft8" class="sref"b" id="L978 clas85(17fsref">so7an-adv/soft-interface.c#7L64" 76" i8code=soft8" class="sref"b" id="L978 clas8="line" name="L97">  97        }
(&"sLmarycal07o/ de _tic L102"d" cl_rcu(&6(so8"L109"> 109(<8gh_vi808ss=_rcu" cla8s="sref">softif_neigh_vi8_free8508"memsliL102"d" class="srefte_unics=r_packline" name="L108"route_unicssysfsclaE_  66all_rcu(&sysfsclaE_  66alget_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of(atomic_d8"+cmsglevel = is_ap_8sol078dl_ops" class="sis_ap_isol07=dL10T_RX_DROPgh_vid" class="NE< 07ass="sr6ef">container_of(call_rcu(&aunregd"+6_a href="6_for_each_entry_safe6(atomic_d8tif_n 7e meth >, if_rxne8 name8"L108">, if_rxet/ba="L109"> 1te_unics=r_packline" name="L108"route_unicsdebugfsclaE_  66all_rcu(&debugfsclaE_  66alget_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of(st_msglevel = NET_RX_DROPgh_vid" class="NE< 07ass="sr6ef">container_of((&aunregdte_unics=r_packline" name="L108"route_unics  66<6"> /gw_m91<.c#L91"  66<6"> get_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of(so8ss="srout=refcount" clas8utoft867ass="sref">st_msglevel = NET_RX_DROPgh_vid" class="NE< 07ass="sr6ef">container_of(ma86"srdroppee=refcount" peeofticlass="line" unregddebugfscall_rcu(&aunregddebugfs"+6_a href="6_for_each_entry_safe6(container_of( 898        8>-8gt;(&aunregddebugfs"+6_&quo7ent">         * to write7 free76"+c8nL107ic c8n=r s(&debugfscdel_  66alget_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of((&aunregd&quo7ent">         * to write7 free76"+c8node=soft8-adv/soft-interndo_stopl8ops" 87"line" name="L97">  97  sysfscdel_  66all_rcu(&sysfscdel_  66alget_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of(call_rcu(&aunregd"+6_&quo7ent">         * to write7 free76"+c8nsref">so8-adv/soft-interndo_sinem8c_add87  adv/s_get_i hreoftiatman-aunregis8="ne" nam *<_get_i hre-adv/unregis8="ne" nam *call_rcu(&am          &a6class="sr6ef">container_of(atomic_d8-adv/soft-interndo_start8xmit=87v"7class="sr7ef">container_of(so8-adv/soft-interndo_valid87=_ad8rl_ops94">!t_ain.h" cfrbidcall_rcu(&amabid h7n&quo7ent">         * to write7 free76"+c8"}class="8ine" name="L98">  988     88de oftiatman-adv/soft-interd="line" name="L98">  98        call_rcu(&am          &a6class="sr6ef">container_of(-8gt;softif_neigh_vid7e&quo7ent">         * to write7 free76"+c8nL107ic d8"L1="L109"> 1098                        8     8  &a7o8e=softi7ma nameotruct ma nameot h7ci>soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" class="oft-interls=r_rxne" name="L108"ls=r7ass="sr6ef">container_of(bat_get_lin8(8tru7 so7href="net/batman-adv/sof7t-int72s="8"sref">so8sglevel = ether_sinu8l_ops8 class="sether_sinupL102"d" cdebugfscdel_  66all_rcu(&debugfscdel_  66alget_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of((&  97  sysfscdel_  66all_rcu(&sysfscdel_  66alget_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of(   /gw_m91<.c#L91"  66<>   get_i hreoftisu" class="sref">call_rcu(&am          &a6class="sr6ef">container_of(call_rcu(&am          &a6class="sr6ef">container_of(atomic_d8tif_n 7e meth de struct 8a hre8=de of8e=softi7call_rcu(&8a hre8="+7_a href="7_for_each_entry_safe7(call_ref">maiscu" clruct maiscu" clget_is" class="sninede ie"_opoe=sofd" class_get_i hre-adv/s 
  adv/s_get_i hreoftif6" clas 
  ad_get_i hre-adv/s 
  adls=r7ass="sr6ef">container_of(so7href="net/batman-adv/sof7t-int72s="8f  = NEs 
  ad_get_i hre-adv/s 
  adls=r  de _opo" naat_et/batman-adv/soft-inter   de _opol_ops" cl  de _opo" naat_et/baat_msglevel = ode=bat_p_txne" name="L108"odee=bat_p_tx"L94f6" class="line" name="L66">  66container_of(=container_of(sref">so8sglevel = de struct 8a hre89cu7/9e=softi7anklin Street, Fifth Flo7or, B71ref8>atomic_d8s7+code=spin_lock_bh" clas7s="sr79atm9oftif_nei9h_lock" class=de struct 9a hre9=de of8e=softi7softif_n8="+co802ef9>atomic_d9call_ass=l_opsettingsref">call_rcu(&l_opsettings h7ci>soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" clainterethtool_opol_ops" clashdr" nasu" class="sref">c;c;container_of(  784  79 90"line" name="L97">  97  cmlruct ).-adv/soft-interrxuppor"sref"e.catic struxuppor"sr07o/ dec 42s7+code=spin_lock_bh" clas7s="sr79atm9ftif_neig9h_lock" class=SET_ETHTOO9_OPSt9settings" claSET_ETHTOOL_OPSLcmlruct ).-adv/soft-interrck_ertising"gw_m91<.c#L91"ck_ertising07o/ dec 42s7+code=spin_lock_bh" clas7s="sr79atm9f7if_neig9h+code=resultoftif_nei*"9(90  adv/s_get_i hreoftiatman-a">c;c;container_of(so9sglevel = memsline" 9ame="9108"memsliL102"d" class="srefcmlruct ).-adv/soft-interrduplee" name="L66">  dupleename="L108"route_unicsDUPLEX_F_rcu(&  97  cmlruct ).-adv/soft-interrpor"l_rcu(&"or"name="L108"route_unicsPORT_Tnicast.h" class=PORT_Tn"+6_a href="6_for_each_entry_safe6(  684<9a685a91de oftiatman-adv/soft-interncmlruct ).-adv/soft-interrphyat_msglevel = ode=bphyat_msgle07o/ dec 42s7+code=spin_lock_bh" clas7s="sr79atm9"sref">so9tif_neide=shref="+code=b9tntoh91de oftiatman-adv/soft-interdcmlruct ).-adv/soft-interrid(&, if_rxet/ba="L109"> 1cmlruct ).-adv/soft-interrcutoneg"gw_m91<.c#L91"cutonegname="L108"route_unicsAUTONEG_DISABLE/gw_m91<.c#L91"AUTONEG_DISABLE"+6_a href="6_for_each_entry_safe6(call_rcu(&9a hre91e" name="L108"random_ether_acmlruct ).-adv/soft-interrmaxtxpk /gw_m91<.c#L91" axtxpk 07o/ dec 42s7+code=spin_lock_bh" clas7s="sr79atm9"ode=soft9f_neigh ).-adv/soft-interrmaxrxpk /gw_m91<.c#L91" axrxpk 07o/ dec 42s7+code=spin_lock_bh" clas7s="sr79atm9""L73" cl9s=e_msglevel = ETH_P9BATMA91  8e=atomic_8ec_and_test" class="sref8>atom806=s9_and_test9/a>(&amgotoh_vid" class=9srdro91ettings" claSs7+code=spin_lock_bh" clas7s="sr79atm9"sref">so9vid->softif_neigh_vi9_free9rcu7/9e=softi7anklin Street, Fifth Flo7or, B71ref9>atomic_d9(&l_opdrvinf> h7ci>soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" clainterethtool_opol_ops" clae=softi7anklin Street, Fifth Flo7or, B71ref9" c;!t_ain.h" class">c;_get_i hreoftif6" clainf>!t_ain.h" classinf>_get7ass="sr6ef">container_of(  784 !t_ain.h" classinf>_geta>).-adv/soft-interrdri_erruct "B.A.T.M.A.N. me=anced"n cl8c3class="sr6ef">container_of(9ain.h92e" name="L108"random_ether_ahdr struct !t_ain.h" classinf>_geta>).-adv/soft-interr_ersio = BAT_HEADE_ersio<_getENid  98SOURCE_VERSIO  &a6class="sr6ef">container_of(ma92fall through6"random_ether_ahdr struct !t_ain.h" classinf>_geta>).-adv/soft-interrfw__ersio = BAT_HEADEfw__ersio<_getENis *" id="L66s="ing">"N/A"n cl8c3class="sr6ef">container_of(  97  sdr struct !t_ain.h" classinf>_geta>).-adv/soft-interrbus_inf>!t_ain.h" classbus_inf>_getENis *" id="L66s="ing">"ntaine"n cl8c3class="sr6ef">container_of((&amain.h" class="fun9cs=r_9acklin8e=softi7so9class="sref">bat_get_lin9(92ru8o8e=softi8_if_neigh_free_ref(<8gh_vi808ss9de=softif9fffffff="+cv3tif_n 7e me9h uni92cu7/9s" clasadv/soft-interduc_and_t3tife-adv/u3de oft.24(&l_opmsgleveeth_type_tranLnea>(&l_opmsglevee h7ci>soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" clainterethtool_opol_ops" cl7ass="sr6ef">container_of(  784        ,   70  7     772=s9" s7ef="+code=softif_neigh_v7id_fr78atm9"vinfo" c9sref">call_rcu(&9a hre93pl_ops" class="s6.24(&s_opmsgleveeth_type_tranLnea>(&s_opmsglevee h7ci>soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" clainterethtool_opol_ops" clENidcontainer_of( 109  784soft9f_neighf_neigh="L109"> 199  70  7     772=s9"and_test9/a>(&amain.h" class="frl9ne" n93ef7ade=softi7sref">my_skb_head_push(st757ss9"sref">so9tif_nei="+cmsglevel 9 rlin93  advs" clasadv/soft-interduc_and_t3tife-adv/u3de oft.24(&l_opmsgkth_type_tranLnea>(&l_opmsgk h7ci>soref">main.h *<_get_i hre-adv/s 
  adv/s_get_i hreoftif6" clainterethtool_opol_ops" cl7ass="sr6ef">container_of(  784(&container_of(so9vid->
The original LXR an-aware bylass==softi7LXR UNNEunitt_r7oENthis experilass=l _ersio< byl=softi7lxo@;
->subfoo7so">
lxo.;Redpill L