linux/net/can/bcm.c
<<
>>
Prefs
   1/*
   2 * bcm.c - Broadcast Manager to filter/send (cyclic) CAN content
   3 *
   4 * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
   5 * All rights reserved.
   6 *
   7 * Redistribution and use in source and binary forms, with or without
   8 * modification, are permitted provided that the following conditions
   9 * are met:
  10 * 1. Redistributions of source code must retain the above copyright
  11 *    notice, this list of conditions and the following disclaimer.
  12 * 2. Redistributions in binary form must reproduce the above copyright
  13 *    notice, this list of conditions and the following disclaimer in the
  14 *    documentation and/or other materials provided with the distribution.
  15 * 3. Neither the name of Volkswagen nor the names of its contributors
  16 *    may be used to endorse or promote products derived from this software
  17 *    without specific prior written permission.
  18 *
  19 * Alternatively, provided that this notice is retained in full, this
  20 * software may be distributed under the terms of the GNU General
  21 * Public License ("GPL") version 2, in which case the provisions of the
  22 * GPL apply INSTEAD OF those given above.
  23 *
  24 * The provided data structures and external interfaces from this code
  25 * are not restricted to be used by modules with a GPL compatible license.
  26 *
  27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  38 * DAMAGE.
  39 *
  40 */
  41
  42#include <linux/module.h>
  43#include <linux/init.h>
  44#include <linux/interrupt.h>
  45#include <linux/hrtimer.h>
  46#include <linux/list.h>
  47#include <linux/proc_fs.h>
  48#include <linux/seq_file.h>
  49#include <linux/uio.h>
  50#include <linux/net.h>
  51#include <linux/netdevice.h>
  52#include <linux/socket.h>
  53#include <linux/if_arp.h>
  54#include <linux/skbuff.h>
  55#include <linux/can.h>
  56#include <linux/can/core.h>
  57#include <linux/can/bcm.h>
  58#include <linux/slab.h>
  59#include <net/sock.h>
  60#include <net/net_namespace.h>
  61
  62/*
  63 * To send multiple CAN frame content within TX_SETUP or to filter
  64 * CAN messages with multiplex index within RX_SETUP, the number of
  65 * different filters is limited to 256 due to the one byte index value.
  66 */
  67#define MAX_NFRAMES 256
  68
  69/* use of last_frames[index].can_dlc */
  70#define RX_RECV    0x40 /* received data for this element */
  71#define RX_THR     0x80 /* element not been sent due to throttle feature */
  72#define BCM_CAN_DLC_MASK 0x0F /* clean private flags in can_dlc by masking */
  73
  74/* get best masking value for can_rx_register() for a given single can_id */
  75#define REGMASK(id) ((id & CAN_EFF_FLAG) ? \
  76                     (CAN_EFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG) : \
  77                     (CAN_SFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG))
  78
  79#define CAN_BCM_VERSION CAN_VERSION
  80static __initconst const char banner[] = KERN_INFO
  81        "can: broadcast manager protocol (rev " CAN_BCM_VERSION " t)\n";
  82
  83MODULE_DESCRIPTION("PF_CAN broadcast manager protocol");
  84MODULE_LICENSE("Dual BSD/GPL");
  85MODULE_AUTHOR("Oliver Hartkopp <oliver.hartkopp@volkswagen.de>");
  86MODULE_ALIAS("can-proto-2");
  87
  88/* easy access to can_frame payload */
  89static inline u64 GET_U64(const struct can_frame *cp)
  90{
  91        return *(u64 *)cp->data;
  92}
  93
  94struct bcm_op {
  95        struct list_head list;
  96        int ifindex;
  97        canid_t can_id;
  98        u32 flags;
  99        unsigned long frames_abs, frames_filtered;
 100        struct timeval ival1, ival2;
 101        struct hrtimer timer, thrtimer;
 102        struct tasklet_struct tsklet, thrtsklet;
 103        ktime_t rx_stamp, kt_ival1, kt_ival2, kt_lastmsg;
 104        int rx_ifindex;
 105        u32 count;
 106        u32 nframes;
 107        u32 currframe;
 108        struct can_frame *frames;
 109        struct can_frame *last_frames;
 110        struct can_frame sframe;
 111        struct can_frame last_sframe;
 112        struct sock *sk;
 113        struct net_device *rx_reg_dev;
 114};
 115
 116static struct proc_dir_entry *proc_dir;
 117
 118struct bcm_sock {
 119        struct sock sk;
 120        int bound;
 121        int ifindex;
 122        struct notifier_block notifier;
 123        struct list_head rx_ops;
 124        struct list_head tx_ops;
 125        unsigned long dropped_usr_msgs;
 126        struct proc_dir_entry *bcm_proc_read;
 127        char procname [32]; /* inode number in decimal with \0 */
 128};
 129
 130static inline struct bcm_sock *bcm_sk(const struct sock *sk)
 131{
 132        return (struct bcm_sock *)sk;
 133}
 134
 135#define CFSIZ sizeof(struct can_frame)
 136#define OPSIZ sizeof(struct bcm_op)
 137#define MHSIZ sizeof(struct bcm_msg_head)
 138
 139/*
 140 * procfs functions
 141 */
 142static char *bcm_proc_getifname(char *result, int ifindex)
 143{
 144        struct net_device *dev;
 145
 146        if (!ifindex)
 147                return "any";
 148
 149        rcu_read_lock();
 150        dev = dev_get_by_index_rcu(&init_net, ifindex);
 151        if (dev)
 152                strcpy(result, dev->name);
 153        else
 154                strcpy(result, "???");
 155        rcu_read_unlock();
 156
 157        return result;
 158}
 159
 160static int bcm_proc_show(struct seq_file *m, void *v)
 161{
 162        char ifname[IFNAMSIZ];
 163        struct sock *sk = (struct sock *)m->private;
 164        struct bcm_sock *bo = bcm_sk(sk);
 165        struct bcm_op *op;
 166
 167        seq_printf(m, ">>> socket %pK", sk->sk_socket);
 168        seq_printf(m, " / sk %pK", sk);
 169        seq_printf(m, " / bo %pK", bo);
 170        seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs);
 171        seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex));
 172        seq_printf(m, " <<<\n");
 173
 174        list_for_each_entry(op, &bo->rx_ops, list) {
 175
 176                unsigned long reduction;
 177
 178                /* print only active entries & prevent division by zero */
 179                if (!op->frames_abs)
 180                        continue;
 181
 182                seq_printf(m, "rx_op: %03X %-5s ",
 183                                op->can_id, bcm_proc_getifname(ifname, op->ifindex));
 184                seq_printf(m, "[%u]%c ", op->nframes,
 185                                (op->flags & RX_CHECK_DLC)?'d':' ');
 186                if (op->kt_ival1.tv64)
 187                        seq_printf(m, "timeo=%lld ",
 188                                        (long long)
 189                                        ktime_to_us(op->kt_ival1));
 190
 191                if (op->kt_ival2.tv64)
 192                        seq_printf(m, "thr=%lld ",
 193                                        (long long)
 194                                        ktime_to_us(op->kt_ival2));
 195
 196                seq_printf(m, "# recv %ld (%ld) => reduction: ",
 197                                op->frames_filtered, op->frames_abs);
 198
 199                reduction = 100 - (op->frames_filtered * 100) / op->frames_abs;
 200
 201                seq_printf(m, "%s%ld%%\n",
 202                                (reduction == 100)?"near ":"", reduction);
 203        }
 204
 205        list_for_each_entry(op, &bo->tx_ops, list) {
 206
 207                seq_printf(m, "tx_op: %03X %s [%u] ",
 208                                op->can_id,
 209                                bcm_proc_getifname(ifname, op->ifindex),
 210                                op->nframes);
 211
 212                if (op->kt_ival1.tv64)
 213                        seq_printf(m, "t1=%lld ",
 214                                        (long long) ktime_to_us(op->kt_ival1));
 215
 216                if (op->kt_ival2.tv64)
 217                        seq_printf(m, "t2=%lld ",
 218                                        (long long) ktime_to_us(op->kt_ival2));
 219
bcm220                *a href="net/can/bcm.c#L183" id="L183" class="line"3"line" name="L214"> 2            dev_get_by_index">dev.c#L110" id="L110" cla4ef">kt_ival1,  * CAN messages w44
 121        int ifindex))utct/can/bcm.c#L220" idutc0" class="line" name="L2">bcm220                *a href="net/C" c"L1C" class="sref">RX_CHECK_DLC)?not2fier_block RX_CHECK_DLC)?list_head list_head kt_ival1ned long 2a href="+code=dropped_us2_msgs22 class="line" name="L159"> 159
&quo/a>
sk);
127sk);
127sk);
static int static int ->->/*2inode228ifier" class name=""sref">ifindex&quo/name=ropes0" class="line" namestatic int                  27        return *(RX_CHECK_DLC)?frames_abssock->  80static   class="line" n    struct static bcm_sock2*)&quoopes0" c s="line" n    struct 
&quo/a>
 sizeof2struct bcm_msg_head<2a>)
 138
 132/*
    tx -span>
" cl(next)"net/can/bcL65" clap
 140 * procfs functions
(  struct 
    txs="string">&quo/a>
    tx0" clclass="sref">sk);
 165->->net_device 2sk);
sk_bufet/can/bcm.c#L220k_bufe" id="L165" class="liskbt/can/bcm.c#L220kb* 100) / ;
 143{
 144        struct  142        if (! u64  2            dev_get_by_index"   107 1472               return "any";
 177
RX_RECV<29    2   
init_net,  151        if 2" t)\n"<2e=dev" cl2ss="sref">dev-> 144        scm.c#L150" id="L150" class="line" 144"> 144     class="line" 0" clev" class="sref">dev = 
result, &qus="line" 77"> 177
RX_RECV<29>;
 142f="net/can/bcm.c#L156" i2="L152" class="line"w44
 152        return "any";
sk}

m, v2id *<26 class="line" name="LgoL65x_rcu" class="sfu)
" t)\n"<2class="sr2f">ifname[m-> 203      ode=bcm_s2" class="sref">bcm_sk 177
RX_RECV<2ode=bcm_o2" class="sref">bcm_opcoun0kbt/can/bcm.c#L220kb* 10        return *("L144"> 144        scm.c#L150" id="L150" 144"> 144        struct  16kbt/can/bcm.c#L220kb* 10        return *="line" name="L163"> 163 132        return (struct sk->sk_socket ="sref">u64                 0kbt/can/bcm.c#L220kb* 10de1)truct kt_ival2">" 2 bo %pK"2  177
RX_RECV<2/a>-><2 href="+code=dropped_usr2msgs"2class="sref">dropped_usr_msgsbcm.c#L208" id="L208" class="line" name="L2007" class="line" name="L107"> 107bo->ifindex<"L214"> 2            dev_get_by_index">dev.c#L++truct m, 2quot; <<<\n");
 177
RX_RECV<2_ops" cla2s="sref">rx_ops,  215
 107 210                      CV" class="sref">RX_RECV<2_de=bcm_o2f="net/can/bcm.c#L175" i2="L172" class="line" name="L> 215
 107RX_CHECK_DLC)?RX_CHECK_DLC)?sk_socket   cdutt/can/bcm.c#L22   cdut                );
RX_CHECK_DLC)?->frames_abs * procfs functions138

m,2&qu2t;rx_2p: t"> * procfs functions
op->op->(  struct 
pan>  erf="net/can/bcm.c#L1pan>  er0" clclass="sref">sk);
 165sk);
b'd'2' &&&&&&&&&&&&&&"sref">currframe;
 108        strucoc_getifname" class="has_ 218"line" name="L103"> has_ 218"line     CV" class="sref">RX_RECV<2ival1" cl2ss="sref">kt_ival1.<2 href28d" clo->m, currframe;
sk_bufet/can/bcm.c#L220k_bufe" id="L165" class="liskbt/can/bcm.c#L220kb* 100) /  188         2     28e=frames" class="sref">frames;
op->last_frames;
pK&qaddr
   t/can/bcm.c#L220K&qaddr
   L109" class="line" naaddrt/can/bcm.c#L22addr* 100) / sframe;
 163 132        return (struct kt_ival2.<2 href2"+code=tv64" c175"> 175_getifname" class="" clless="string">&quo" clles> 163 210                     
m,2ref">m, "thr=&#_getifname" class="errt/can/bcm.c#L22errcm.crn (struct  193         2     29ine" name="L203"> 203      lass="sre2">op-> 2&quo" clles> 16dex_rcu" class="sgfp_ant/can/bcm.c#L205gfp_ant o_us(
"# recv %ld2(Ŵld) => reduction: & name=har 2p->frames_abs);
skmemref="net/can/bcm.cmemref                0kbidutt/can/bcm.c#L220kbidut                0kbt/can/bcm.c#L220kb* 10deL137" i"L165" class="li="+cf="net/can/bcm.h   0" c))dex_rcu" class="s="+cf="net/can/bcm.h   0" c eL137" i"L165" class="li="+cf="net/can/bcm.h   0" c))har ->frames_abs<3a>;
ifindex="+cf="net/can/bcm.h   0" cid="L179" class="lin10"> 210                     #lo->m,3&qu3t;!s%ld%%\n& 77"> 177
                        struct                 0kbt/can/bcm.c#L220kb* 10)har  193         3lass=3line" name="L203"> 203     3  }
&qus="line" lass="sref">skmemref="net/can/bcm.cmemref                0kbidutt/can/bcm.c#L220kbidut                0kbt/can/bcm.c#L220kb* 10deifname" class="" clless="string">&quo" clles> 16)dex_rcu" class="sme="L108"> 108        strucocifname" class="" clless="string">&quo" clles> 16)har list * procfs functions138
"tx_o3: !03X &class="line" name="L6188888888888888888*5" clBCM us"s"" cl109"dlc-elee="LLof5" cl109" id="L1/a>
 88888888888888888*5>     ur18for/" nernal purpos"s. T is is bcm.L1/a>
op->/*<8888888888888888*5  leva"LLfor/updef=s"" at ar18generaf175by5" cL1/a>
;
op-> * procfs functions<8888888888888888*5BCM, wher18        is 1L1/a>
m,3f="net/can/bcm.c#L211" i3="L2131L61" class="line" name="L6188888888888888888*/a>                kt_ival1.<3 href3"+code=tv64" class="sr="sref">ifindex="+cf="net/can/bcm.h   0" cid="L179" class="lin10"> 210                     e="L2="L146" class="line" name=3m" class=3sref">m, "t1=%lld "dlcnet/can/bcm.c#L109"dlc7op->&quw44
listkt_ival2.<3 href3"+code=tv64" c="sref">ifindex=as_ 218"line" name="L103"> has_ 218"line     lo->m, "t2=%lld & 77"> 177
                op-> 198
<6kbt/can/bcm.c#L220kb* 10        return *t"line" name="L103"> t"line    3 rx_"linecm.crn (struct  32frames" class="sref">nframes 131        int  * procfs functions138
not3fier_block  * procfs functions<88888888*5 Put5" cl" clgef=cL65" clqueue so"" at c#L1rintmsg()    L1/a>
list_head 
list_head 
 * [32];3/*3inode32abs" class="sref">frames_absskBUILD_BUG_ONnet/can/bcm.c#LBUILD_BUG_ON L137" i198"> 198
<6kbt/can/bcm.c#L220kb* 10        return *cbt/can/bcm.c#L22cb* 10)_prineL137" iref">last_frames;
pK&qaddr
   t/can/bcm.c#L220K&qaddr
   L109))har };
boaddrt/can/bcm.c#L22addr* 103        struct         return *cbt/can/bcm.c#L22cb* 10har l1, 3ck" class="sref">sockdropped_usr_msgsmems L121"> 13="net/can/bcm.c#L131" id3"L13133index" class="sref">ifindexfamilf="net/can/bcm.c08">familfndex" ref">not3lass="sref">bcm_sock3*)>
>

" class=3="net/can/bcm.c#L133" id3"L13333ine" name="L203"> 203     3cass="sre3f="net/can/bcm.c#L134" i3="L1333 class="line" name="L204"> 2errt/can/bcm.c#L22errcm.c     struct                 0k> 132        retuprintf( 2errt/can/bcm.c#L22errcm.c prine0 lo->private;
 164        struct bcm_sock *bo = bcm_msg_head<3a>)
 198
                0kbt/can/bcm.c#L220kb* 10)har  1334 class="line" name="L277"> 177
                 140 200
m, " / dropped %lu", result, int  203     3vice" cla3s="sref">net_device 3(  struct 
tx_"lirt_ 218rf="net/can/bcm.c#L1tx_"lirt_ 218r Llass="sref">sk);
 165->-> 143        if (!ifindexef="net/can/bcm.c#L212" id="L212" class="line" name="L212"> 212                if (op iv" c             (->"t2=%lld & f">ifindex=r 218r_"lirt" name="L103"> hr 218r_"lirt ode=list_for_each_en"L214"> 2            ;
can_id,
L212" class="line218 212 218                > 218ktime_to             can_id,
L212" class="liHRTIMER_netE_ABSto_us" class="sHRTIMER_netE_ABS* 10)har init_net,  215
 216                if (op-> 151        if 3 181
<=r 218r_"lirt" name="L103"> hr 218r_"lirt ode=list_for_each_en"L214"> 2            dev->tv64,
L212" class="line218 212 218                > 218ktime_to             "t1=%lld ",
L212" class="liHRTIMER_netE_ABSto_us" class="sHRTIMER_netE_ABS* 10)har result, ;
list 143f="net/can/bcm.c#L156" i3="L153" clasan clas(  struct 
tx__prinut_ skl  175
list sizeof3        return ->frames;
 165        struct }
last_frames;
bm, v3id *<36frames" class="sref">nframes)
ifindexef="net/can/bcm.c#L212" id="L212" class="line" name="L212"> 212                if (op iv" c      "> 215
ifname[m->ifindex));
bcm_sk&qus="line"ero */
 215
 185                                (         TX_COUNTEVT* 10))lo->bcm_oplist;
tv64<77"> 177
"t2=%lld "3 can_idropped_usr_msgsmref="+cf="net/can/bcm.href="+code=     if ( 185                   "  185                  har " 3 bo %pK"3 can_idropped_usr_msgsmref="+cf="net/can/bcm.href="+code=     if (can_idropped_usr_msgsmref="+cf="net/can/bcm.href="+code=     if ( 212 212bo->can_idropped_usr_msgsmref="+cf="net/can/bcm.href="+code=     if (ktime_t " ktime_thar m, 37+code=tv64" class="sref">tv64)
 208                   "  208                   har "t1=%lld ")
 210                     e="0ef">RX_CHECK_DLC)?rx_ops, kt_ival1
pan>  erf="net/can/bcm.c#L1pan>  er0" clx_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enmref="+cf="net/can/bcm.href="+code=dex_rcu" class="sNULLf="net/can/bcm.NULLode=de0)har "t2=%lld & f">ifindexba>
    txs="string">&quo/a>
    tx0" clL165" class="line" name="L165"> 165kt_ival2-> 215
 216                if (op-> 200

    txs="string">&quo/a>
    tx0" clL165" class="line" name="L165"> 165" t)\n"<3f">m,3&qu3t;rx_38code=name" class="line" name/a>
tx_"lirt_ 218rf="net/can/bcm.c#L1tx_"lirt_ 218r L165" class="line" name="L165"> 165op->op->kt_ival1'd'3kt_ival1.<3 href38d" clclass="line" name="L618< c#L1tx__prinut_handler -sperforms cyclic"net/can/bcLransmiss="neif/a>
m,  188         3     38e=fraan clasenumL181"> 181
<=r 218r_r5stirt" name="L103"> hr 218r_r5stirtode==ropped_usr_msgsc#L1tx__prinut_handlera href="+code=d/a>
tx__prinut_handler ref">last_frames;
hr 218r" name="L103"> hr 218r" id="L165" class="lihr 218r" name="L103"> hr 218r" id->op->->sframe;
 165 hr 218r" id, class="sref">sk);
bkt_ival2.<3 href39ss="string">" t)\n"<3i">m,3ref">m, static int  ode=list_for_each_en"L214"> 2             193         3     39ine" name="L203"> 203     3lass="sre3">op->ifindex         HRTIMER_NORESTART    har "# recv %ld3(ŵld) =&44
->);
 8< c#L1rx_changed -s1reef="a RX_CHANGED"notificaf="n5dubcL65changed coa>en<5
->/*                (  struct 
rx_changedf="net/can/bcm.c#L1rx_changed ref">last_frames;
 165sk);
listm,4&qu4t;"s%o->last_frames;
b 193         4lass=4line" name="L203"> 203     4  }
&quc77"> 177
RX_RECV<4s6}
coun"L214"> 2            , "tx_o4: ൐"string">&quc77"> 177
RX_RECV<4s9  215
listop-> 219
dev_get_by_index">dev.c#Le="0ef">RX_CHECK_DLC)?;
op->nframesm,4f="net/can/bcm.c#L211" i4="L2141index" class=""> * procfs functions13 " is elee="LLis not " rottled anymor18                kt_ival1.<4 href41code=name" class="line" name(dlcnet/can/bcm.c#L109"dlc7 215
 215
m,  203     4lass="sre4">op->&quropped_usr_msgs="+cf="net/can/bcm.h   0" c     if (coun="+cf="net/can/bcm.h   0" c     if ( 185                   "  185                  har kt_ival2.<4 href41 class="line" name="L166"> 1="+cf="net/can/bcm.h   0" c     if (m, sk_socket="+cf="net/can/bcm.h   0" c     if ( 212 212op->sk="+cf="net/can/bcm.h   0" c     if (ktime_t " ktime_thar  1="+cf="net/can/bcm.h   0" c     if ( 208                   "  208                   har , 4a href= 42lass="sref">dropped_usr_msgs="+cf="net/can/bcm.h   0" c     if ( 210                     e="1har m,41        int " t)\n"<4sref">not4fier_block 
pan>  erf="net/can/bcm.c#L1pan>  er0" clx_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_en="+cf="net/can/bcm.h   0" c eass="line" name(list_head list_head kt_ival1 *en<5change8
/*4inode4203X &class="line" name="L618*s="line" name="LLLLLLLLLLL1.eupdef="" cllast/received " clas/a>
 8<                          2.span>
a notificaf="n5L65" cl  er (215possible)44/a>
/*                sock ref">last_frames;
 165m,4="net/can/bcm.c#L131" id4"L13143 class="line" name="L">can_iddddddddddddclass="sref">sk);
not4lass="sref">bcm_sock4*)tv64,





ct sk);
list" class=4="net/can/bcm.c#L133" id4"L13343ine" o-> 2memref="net/can/bcm.cmemref                last( 2rx(list sizeof(struct  * procfs functions13 mark asl  ed and " rottled by defaul+code=RX_RECV" class="sref">RX_RECV<4a> sizeof4struct sk_socketlast(dlcnet/can/bcm.c#L109"dlc7 215
|> 215
kt_ival2 1344 class="line"""> * procfs functions13 " rottelingLma h inactive ?qode=RX_RECV" class="sref">RX_RECV<4""+code=s4me="L140"> 140
 216                if (op-> 177
RX_RECV<4"ref">not4>result, int 
rx_changedf="net/can/bcm.c#L1rx_changed x_rcu" class="sef="net/can/bcm.c#L216"+csref">sk_socketlast("t1=%lld & name=har net_device 4&quw44
list 144        if (! * procfs functions13 ref="active " rottlingL"218r we ar18ju                "t2=&#="sref">ifindex=r 218r_activef="net/can/bcm.hr 218r_active ode=list_for_each_en"L214"> 2             thr 218r" idlist;
    4   frames_abs<4lass="sre4">init_net,  * procfs functions13 first/receipf="n5ref="enabled " rottlingLma h                  151        if 4
 216  lastmsg         if (op<           not4ss="sref">dev-> 2rx_changed 203     4lice" cla4s="sref">result, &quc77"> 177
enRX_RECV<49>;
 2> 218 218 odex_rcu" class="sf="net/can/bcm.c#L179" id="L179" class="line=klastmsg="L216"> 216  lastmsg    )_prinCV" class="sref">RX_RECV<49146"> 144f="net/can/bcm.c#L156" i4="L1545+code=tv64" classx_rcu" class="s> 218  a href="+code=d> 218   x_rcu" class="sef="net/can/bcm.c#L216"id="L179" class="line=ktime_to_us" class="sref">ktime_to->"t2=%lld & 77"> 177
RX_RECV<49>;
 198
<=r 218r_"lirt" name="L103"> hr 218r_"lirt ode=list_for_each_en"L214"> 2             thr 218r" id,            198
 212 218                f="net/can/bcm.c#L179" id="L179" class="line=klastmsg="L216"> 216  lastmsg    dex_rcu" class="sf="net/can/bcm.c#L179" id="L179" class="line=ktime_to_us" class="sref">ktime_to             m, v4id *<46 class="line" name="L">can_idame="L198"> 198
)
ifname[m-> 203     4aice" cla4" class="sref">bcm_sk&quc77"> 177
                bcm_op 2rx_changed 144f="net/can/bcm.c#L166" i4="L1646 class="line" name="L166"> 1/a>
rx_changedf="net/can/bcm.c#L1rx_changed x_rcu" class="sef="net/can/bcm.c#L216"+csref">sk_socketlast(sk->sk_socketf="net/can/bcm.c#L179" id="L179" class="line=klastmsg="L216"> 216  lastmsg      218 otruct " 4 bo %pK"4 frames_abs<4"ass="sre4 href="+code=dropped_usr4msgs"47omment"> * procfs functions138
bo->
m, 47: t"> * procfs functions<<                       received " cl"stor175_g opid="Llast" id="s[]L1/a>
rx_ops, #L146 ref">last_frames;
 165 175_getifname" class="#L146f="net/can/bcm.#L146             sk);
list&quc77"> 177
;
 888888888*"no oneLus"s"" clMSBsLof5109"dlcLfor/namparaf="n,a>                ->/*<88888888* so"weLus" * procfs functions<88888888                " t)\n"<4f">m,4&qu4t;rx_48code=name" cl="sr*                f="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146]     if (dlcnet/can/bcm.c#L109"dlc7op->if77"> 177

updef=""65  er */a>                op->&qus="line" lass="sref">sk/a>
rx_updef=_an>f="net/can/bcm.c#L1rx_updef=_an> x_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146]," name="L204"> 2rx('d'4kt_ival1.<4 href48 class="line"w44
m, bcm_msg_head<4ine" name4"L188"> 188         4     489"string">&quc77"> 177
op->frames_abs<4ld="L180"4f="net/can/bcm.c#L190" i4="L1949 class="line"ero  x_rcu" class="sGET_U+code=op" class="GET_U+c ode=list_for_each_en"L214"> 2             108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv" c/x_rcu" class="sGET_U+code=op" class="GET_U+c  name="L204"> 2rx(frames_abs<4le;
kt_ival2.<4 href49 class="line" nam x_rcu" class="sGET_U+code=op" class="GET_U+c ode=list_for_each_en"L214"> 2             108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv" c/x_rcu" class="sGET_U+code=op" class="GET_U+c ode=list_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146])<->m,4ref">m, 
rx_updef=_an>f="net/can/bcm.c#L1rx_updef=_an> x_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146]," name="L204"> 2rx( 193         4     49">"t1=%lld & name=har op->&quw44
list"# recv %ld4(ລ+code=tv64" c="sref">ifindexef="net/can/bcm.c#L212" id="L212" class="li5"> 185                                (->->"t2=%lld & 77"> 177
                ifindexrx(dlcnet/can/bcm.c#L109"dlc7 215
]     if (dlcnet/can/bcm.c#L109"dlc7->->can_idropped_usr_msgs/a>
rx_updef=_an>f="net/can/bcm.c#L1rx_updef=_an> x_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146],->kt_ival2.<5t;Ş class="line" name="L">can_idddddddddddde="L">can_idropped_usr_msgsrx("&q5ot;, tv64 name=har  193         5lass=50">"t1=%lld &w44
&quw44


tx_i5="L2050d) =&44
"tx_o5: 袻X &class="line" name="L61138
 8< c#L1rx_"lirt"218r -"enable _prinut monitoringLfor/net/can/bcreceipf="n8
op->/*                ;
op->(  struct 
rx_"lirt"218rf="net/can/bcm.c#L1rx_"lirt"218r ref">last_frames;
 165listm,5f="net/can/bcm.c#L211" i5="L2151s%o->kt_ival1.<5 href51code=name" cl="sref">ifindexef="net/can/bcm.c#L212" id="L212" class="li5"> 185                                (listm, "t1=%lld & name=har op->kt_ival1 2ef="net/can/bcm.c#L212" id="L212" class="line" name="L212"> 212                if (oprist" class="sref">listkt_ival2.<5 href51+code=tv64" class="sr    if ( hr 218r_"lirt ode=list_for_each_en"L214"> 2            ktime_t ex_rcu" class="sHRTIMER_netE_RELf="net/can/bcm.HRTIMER_netE_RELass=otruct m, 
op->kt_ival2(  struct 
rx__prinut_ skl  175
list, 5a href= 52lass=o->m,51        int frames;
 165        struct not5fier_block last_frames;
blist_head  203     5sass="sre5ref">list_head &quc77"> 177
counmref="+cf="net/can/bcm.href="+code=     if ( * 1mref="+cf="net/can/bcm.href="+code=     if ( 185                   "  185                  har /*5inode52cket" class="sref">sk_socketmref="+cf="net/can/bcm.href="+code=     if (skmref="+cf="net/can/bcm.href="+code=     if ( 212 212};
 1mref="+cf="net/can/bcm.href="+code=     if (ktime_t " ktime_thar l1, 5ck" class="sref">sockdropped_usr_msgsmref="+cf="net/can/bcm.href="+code=     if ( 208                   "  208                   har ">m,5="net/can/bcm.c#L131" id5"L13153 class="line"ropped_usr_msgsmref="+cf="net/can/bcm.href="+code=     if ( 210                     e="0ef">RX_CHECK_DLC)?ref">not5lass="sref">bcm_sock5*)" class=5="net/can/bcm.c#L133" id5"L133534class="line"ropped_usr_msgsba>
pan>  erf="net/can/bcm.c#L1pan>  er0" clx_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enmref="+cf="net/can/bcm.href="+code=dex_rcu" class="sNULLf="net/can/bcm.NULLode=de0)har list sizeof(struct  sizeof5struct  8                 1354 clasan clasenumL181"> 181
<=r 218r_r5stirt" name="L103"> hr 218r_r5stirtode==ropped_usr_msgsc#L1rx__prinut_handlera href="+code=d/a>
rx__prinut_handler ref">last_frames;
hr 218r" name="L103"> hr 218r" id="L165" class="lihr 218r" name="L103"> hr 218r" id-> 140->frames;
 165 hr 218r" id, class="sref">sk);
bnot5>result, int "t1=±"> 177
net_device 5&qux_rcu" class="s askl <_hi_s c17ua>static int  ode=list_for_each_en"L214"> 2            ;
list 145        if (! * procfs functions13 no r5stirtLof5" cl"218r isddoneLher1!8                 sizeof5               return bcm_msg_head<5n>;
&quc77"> 177
 back8                 185                                (         RX_ANNOUNCE_RESUME< iv" c      ist_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          ->init_net,  177
 151        if 5 210                     e*ex_rcu" class="s34
not5ss="sref">dev-> 203     5lice" cla5s="sref">result, &qu name=""sref">ifindex         HRTIMER_NORESTART    har ;

 145f="net/can/bcm.c#L156" i5="L1555d) =&44
;
 8< c#L1rx_do_flush -shelper for//a>
rx__hr_flush8
/*                m, v5id *<56ef="+an clasL216" class="li nref">m_us" class="s"nref""stri_getifname" class="c#L1rx_do_flusha href="+code=d/a>
rx_do_flush ref">last_frames;
 165 updef=5 175_getifname" class="#L146f="net/can/bcm.#L146->ifname[)
m-> 215
]     if (dlcnet/can/bcm.c#L109"dlc7bcm_sk&qus="line"ero ifname" class="updef=" name="L165"> updef=5->bcm_op x_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146])truct  145f="net/can/bcm.c#L166" i5="L1656+code=tv64" class="sr name="1har 
;
5 &qu name="0ef">RX_CHECK_DLC)?" 5 bo %pK"5 
nframesbo->m, 57: t"> * procfs functions<< /a>
rx__hr_flush -sCheck5for/" rottled " cl"and pan>
it"L65" cl  er"> ce8
5 cl"L65formerm.L1/a>
<3ist_for_each_enf="net      silass="cf *64last_  L65i13:4lass="/bcm.c#L1a href="net/canhr5a hr"net/ (soft_irq classxt/can/bcm.c#L129" i4="L1243/a>
-eprocene5a detecf175  levss="sref">m, v5id *<56ef="+an ">&quc77"5 177
la65" cl  et_frames;
hr 218r" 5f="net/ca65" id="L165" class="line" name="L165"> 165 updef=5bcm_op 888888888*"no o5eLus"5"" clM">bcm_sk/*<88888888* so"w5Lus"<58#L212" id="L21           bcm_sock5*)  5     58>->"5 t)\n"<4f">m,4<5pan c58L179" id="L179" cass="lin10"> 210                     e*ex_rcu" class="s34
bcm_sk-> 145f="code=rcu_read_u5lock"55ine" namlass="sre5">if77"> 177
, &qus="l5ne" lass="sref">sk/a>
rx5updef5_an>f="net/can/bcmled " rottlingLma h  >
m, v5id *<56ef="+an line" nam5="L name=har  21d_d5c146"> 145f="code    i> 145f="coden/bcmlass="lin10"> 210                     e*ex_rcu" class="s34
 145f="code++">bcm_op L165" ref">last_frames;
 updef=5 145f="codecm.c#L166" i5="L1656+code=tvs="sref">5cm_msg_head<4ine" name4"5188">5188         4     489"strin5">&quc77"5 177
bcm_skframes_abs<4ld="L180"4f5"net/59m.c#L216" id="L216" clled " rottlingLma h  >
<" cFILTER_ID"/bcm.imple 16" id=vss="sref">m, v5id *<56ef="+an line"ero 5x_rcu" class="sGET_U+cod5=op" 59rer5ceived 109" id="s5changed x_lass="ef="net/can/bcm.lass="e"sref+n8r_oe L165" ref">last_frames;
 updef=5
rx5updef59/bcm.c#L143" id5"L14354">"t1=%l5d & name=har &qus="l5a href="net/can/bcm.c4))5
list&qu5t;# recv %ld4(ລ+code=t564" c="sr5f">ifindexef="net/ca5/bcm.5#L212"href="+code=d/a>
rx__prinut_ skl <<5f="> 175
 175L165"class=rist" class="sref">list, 5a href= 52lass=o 177
bcm_skifindexrx5 165        struct not5fier_block can_idropped_usr_ms6s/a>
60f="n5ref="enabled " rottlingLma h p  eref="ncode=let/canhr5a hre5f="net/=vss="sref">m, v5id *<56ef="+an6line" nam6="L">can_idddddddddddde=6L">ca60.href="+code=     if (la65" cl  et_frames;
hr 218r" 5f="net/ca65"" class="updef=" name="L165"> updef=5 tv64 name=har &quw44
6a href="net/can/bcm.c5s66
, 57: t"6" cl"L65f6rmerm.L1/a>
 *64lr 218r" 5f=prid nut8lock9;857: t"6"7cl"L65f6r">ifindexef="net/ca6ss="s60n>
-eprocene5a detecf175  levaaaaaaaaaaaaaaaaaaaaaa ce8
m, v5id *<56ef="+an6l9="line"6n"L="sref">ifindexrx6218r 6"enablL103"> hr 218r_r5stirtode==ropped_usr_msgsc#L1rx__prinut_handlera href="+code=d/a>
rx__prinut_handle5f=prid nut_frames;
hr 218r" 5f=103"> hr 218r" id="L165" class="lihr 218r" name="L103"> hr 218r" id-> 140/*          6     6span c">bcm_sk 165        struct  hr 218r" id, class="sref">sk);
blist;
->&qu4t;rx_48code=na6e" cl="sr6f">ifindexef="net/ca6/bcm.6#L212" id="L21a href="+code=if 2     =list_for_each_en"L214"> 2         ;
 , kt_ival1f="ne9" cass="lin10"> 21ref">la65" cl  et_frames;
hr 218r" 5f="net/ca65"" class="updef=" name="L165"> updef=5bcm_sk 2ef="net/ca6/bcm.61me"4ival1" cl4ss="sre8r_r5stirtode==ropped_ua>
war"+code=u64" classopped_ua>
war" id, class="sref">sk);
bskass="sf="net/can/bcm.c#L179" id="L179" class="line=klastmsg="L216"> 216  lastmsg    )_prinCV" clasref="+cod4aass="sre4m" class="sred  hr 218r    HRTIMER_NORESTART    har ;

opbcm_skkt_ival2 hr 218r_t/ 218L=id=" pan>
updef=""arm49>;
"c59vss="sref">m, v5id *<56ef="+an6clas(6 struct 
rx__pr6nut_ 62m.c#L216" id="L216" clss="line=klastmsg="L216"> 216  lastmsg    )_prinCV" clasl="s> 218->m,56 62rer5ceived 109" id="s    HRTIMER_NORESTART    har ;
frames;
;
b6203     5sass="sre5r6f">li6t_head &quc77"6 177
, 57: t"6t" class=6sref">counmref="+cf="net6can/b62n/bcm.c#L134sval2" cl4/a> *64lr 218r"prid nut8op-> 1mref="+cf="net6can/b62n>
-eprocene5a detecf175  levss="sref">m, v5id *<56ef="+an6ass="sref6>sk_socketmref="+cf="net6can/b62     stri_gecode=d/a>
rx__prinut_ skl ;
hr 218r"103"> hr 218r" id="L165" class="lisk_buf 218r" name="L10sk_buf        struct , 5a href= 52lass=o<6=sk" clas6="sref">skmref="+cf="net6can/b62" clM">bcm_sk 1mref="+cf="net6can/b6m.href="+code= id="L165" class="line" name="L165"> 165        struct not5fier_block dropp6d_usr_msgsmref="+cf="net6can/b6m.href="+code=#L109" id="L109" lirx(not5fier_block -> 145f="code=rcu_read_u5lock"55ine" na6;<<6n"" class=5=6net/c6n/bcm.c#L133" id5"L133534class=6line"ropp6d_usr_msgsba>
pan>  6rf="n63or18NET_RX_SOFTIRQ8               dis/a>
m, v5id *<56ef="+an6
not5>result, int list si6eof(struct  185                                ( 52lass=o<6ss="line"6name="L618*s/a>
rx__prin6t_han63L nal check5_g 109" i>-> 8          6     63n/bcm.c#L219" i5="L215" clasan6clasenumL681"> 181
<=r 218r_r56tirt"640r18NET_RX_SOFTIRQ8               " cl rxm, v5id *<56ef="+an6a>->             tcanm/8frames;
               " cl originato#L135a="5vfrom()"vss="sref">m, v5id *<56ef="+an6a<<6n"                                ( 145f=et/ife=net8 otruct not5fier_bev#L16stmsg    )_prinCV" cife=net_d5c146"> 145f=ife=net8
m, v5id *<56ef="+an6a 108        struc[ifname" class="#L146f="n_abnet/can/bcm.#L146]_abnstru++list 145<6a>   6    if (! 6 procfs functions13 no r6stirt64L212" id="L212" class="li5"> 185                                (-&gRTR_FRA  ist_for_each_enf="RTR_FRA  "L21cf">bcm_sk6cm_msg_head<5n>;
             .c#L1reply> >
<"TR-requrst (placcm.c#L134")
<4f="net0])"vss="sref">m, v5id *<56ef="+an6aine" nam6 177
 hr 218r_"lirt ode=lass6" itframes;
 updef=5< int -> 177
&qu4t;rx_48code=na664" cw44
6a href="net/can/bcm.c5e"6class65L212" id="L212" class="li5"> 185                                (bcm_sk6203     5lice" cla5s6"sref65ived " cl"for/" clfirst/ 218L=id=" pan>
updef=a hreasirst cas/=vss="sref">m, v5id *<56ef="+an6">&qu nam6=""sref">ifindex      hr 218r_"lirt ode=lass x_rcu" class="sef="net/can/bcm.c#L216"+code=list_for_each_enf="net/can/bcm.c#L179" id="L179" class="linlast" id="shref="+code=u64last_          [ifname" class="#L146f="net/can/bcm.#L146],0truct  1456="net65me"4ival1" cl4ss="sregotouct last_frames;
 6et/can/bcm.c5e> sizeof5<6a>   65f">m,          4     489"strin6line" nam6="L138"> 8< c#L1rx_do_fl6sh -s659212" id="L212" class="li5"> 185                                ()?ref">not5lass="sref"=s1ef">bcm_sk/*          6     66m.c#L216" id="L216" clled " rottlingLma h .imple /a>
m, v5id *<56ef="+an6clasL216"6class="li nref">m_us" cl6ss="s66rer5ceived 109" id="s5changed x_b46 ref">last_frames;
 updef=5last_frames;
->)
 &qus="l6ne"ero ifname" class="up6ef=" 66an>f="ne9" cass="lin10"> 210                     e*ex_rcu" class="s34
bcm_sk, 57: t"664" class6"sr name="1har 57: t"66s="line"6cl"L65formerm.L1/a>
6
57: t"66ine" nam6="0ef">RX_CHECK_DLC)657: t"6" cl"L65f6rmerm.L1/a>
57: t"6"lasL216"6f">nframesbo<67      m, v5id *<56ef="+an6ss="line"6name="L61138
&qu4t;rx_48code=na6 * procfs6functions<< /a>
rx__hr_f6ush -67ode=ifname"5s4quot;&q >
 21d_d5c146"> 145f="code    i> 145f="coden/bcmlass="lin10"> 210                     e*ex_rcu" class="s34
 145f="code++"f">bcm_skf="ne9" code=list_for_each_en"L214"> 2             108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv"0U+c  name="L204"> 2rx(frrx(bcm_sk      hr 218rrrrrrrrrrrrrode=list_for_each_en"L214"> 2             108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv"0U+c >bcm_sk 2             108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv"gt; 145f="codea>, last_frames;
 updef=5 145f="coderuct &quc77"6 177
 888888888*"no o6eLus"67 name="L103"> hr 218rrrrrrrrr="L153" cla5s="li55ine" na6 class="c6mment">/*<88888888* so"w6Lus"<68m.c#L216" id="L216" c="L153" cla5s="li55ine" na6 lasL216"6functions<88888888  6     68rer5ceived 10"6 t)\n"<4f">m,4<6pan c68ss="string">&qu4t;rx_48code=na6e" cl="sr6                f="net/c6n/bcm68ode=ict last_frames;
&qu4t;rx_48code=na6es="line"6">if77"> 177
  er0" clx_ref">last_frames;
 updef=5< int &qus="l6ne" lass="sref">sk/a>
rx6updef68ruct  sizeof5struct 6cm_msg_head<4ine" name4"6188">68er -swhen/" cl(cyclic)/net/canbcm.c#sL135a>}
"c5: fe=n   deletea>}
 [rx|tx] oprele)/nes
 1354 clasan6ass="sref6>frames_abs<4ld="L180"4f6"net/69ame="L103">  id="L165" class="line" name="L165"> 165        struct  165 145f=ife=net8 52lass=o<6line" nam6x_rcu" class="sGET_U+cod6=op" 69">kt_ival1.<5 href51code=na664" class6"srclass="line" na/a>
rx6updef69net/can/bcm.c#L1href="+code==ropped_usrme="L165"> 165        struct  updef=5bcm_sklist&qu69_changedf="net/can/bc12" class="lilast" id="shref="+code=u64last_           145f=ife=net8 145f=ife=net8 52lass=o<6line"w44
6f">ifindexef="net/ca6/bcm.69name"5ass="sref5>sk6d & 77"> 177
5 &quc77"6="L="sref">ifindexrx6can_idropped_usr_ms7s/a>
70f="n5uot;5 can_idddddddddddde=7L">ca70ss="string">&qu4t;rx_48code=na764" class7"sref">tv64 name=har  165 165        struct  52lass=o<7t1=%l7d &w44
bcm_sk&quw44
7a href="net/can/bcm.c5s67
not5>result, int 
list;
ifindexef="net/ca7ss="s70   return  210                     e*ex_rcu" class="=ifname"5a>;
 52lass=o<7t9="line"7n"L="sref">ifindexrx7218r 70 name="L103"> hr 218r_"lirt ode=> 2     kill+code=u64" clas> 2     killref="+code=op" cla skl ;
/*          7     71n/bcm.c#L190" i4="L1949 class=7clas(7 struct 
rx_"li7t"218711"+code=u64rx9" cass="lin10"> 210                     e*ex_rcu" class="=="nifname"5a>;
 52lass=o<7a>-> 2     killref="+code=op" cla skl ;
 ifindexef="net/ca7/bcm.71/bcm.c#L133" id5"L133534class=7a1=%l7d & name=har &quw44
7>kt_ival1      hr 218r  updef=5<_           2ef="net/ca7/bcm.71   if (! 215
]    6!
op updef=5<_           215
 kt_ival2(7 struct 
rx__pr7nut_ 72m.c#L216" id=d updef=5<"d m,57 72f="n5uot;5 frames;
&qu4t;rx_48code=na7e" clref"7last_frames;
bnot5fier_bev#L165" iddex_rcu" class="s 218rf="net/can/bcm. 218r 52lass=o<7e="L203">7203     5sass="sre5r7f">li72resul">bcm_sk&quc77"7 177
f="ne9" cass="lin10"> 210                     e*ex_rcu" class="lx_re2_devsref">not5fier_lx_re2_dev8not5fier_bev#L16cf">bcm_skcounmref="+cf="net7can/b72me"4ival1" cl4ss="sre8r_r5stirtode==6" ilx_unre2istist;
not5fier_bev#L165"lass="lilast" id="shref="+code=u64last_           updef=5<_           1mref="+cf="net7can/b72name"5ass="sref5>sk  er0" clx_refprid nut_frames;
hr 218r"103"> hr 215"lass="lilast" id="shref="+code=u64last"d sk_socketmref="+cf="net7can/b7288         4     489"strin7=sk" clas7="sref">skmref="+cf="net7can/b72 name="L103"> hr 218r_t/ 218L=id=" pan>
updef=mark as lemoved subscr9  1354 clasan7line" nam7="L166"> 1mref="+cf="net7can/b7m.href="+code=xxxxxxL1pan>  er0" 0                     e*ex_rcu" class="lx_re2_devsref">not5fier_lx_re2_dev8dropp7d_usr_msgsmref="+cf="net7can/b7m.href="+code=u elsent "od5-uot: _ sklx_unre2: re2istis"netevica "="line" name="L135"> 1354 clasan7l" clref"7n"" class=5=7net/c73ode=ifname"5s4quot;&qhr 218r_t/ 218L=id=" iding">"mismatchpan 7;ppan 7;p\n"="line"5"lass="lilast" id="shref="+code=u64last_          not5fier_lx_re2_dev8not5fier_bev#L16cint 7d_usr_msgsba>
pan>  7rf="n73or18Nuot;5 5 list si73n/bcm.c#L134sval2" cl4/a> *t 
-eprocene5a detecf175  leva_ skdeleteklx_op - fe=n a#L1remove a rxm, v5id *<56ef="+an7line" nam7="L138"> 8          7     73enablL103"> a>
rx_do_flush ref"deleteklx_opt_frames;
hr 21deleteklx_opL165" id="L165" class="linelistULLf="net/can/bcm.NUlistULLf=       struct  145f=ife=net8 52lass=o<7clasenumL781"> 181
<=r 218r_r57tirt"74pan c">bcm_sk 165        struct frames;
&qu4t;rx_48code=na7a<<7n" updef=5bcm_sk
 145f=ife=net8 145f=ife=net8bcm_sklist 145<7a>   74_changedf="net/can/bcm.c#L1rx_c#L134sval2" cl4/a> *t  7 procfs functions13 no r7stirt74n>
-eprocene5a detecf175  leeeeeeeeeeeeeeeeeeeeeeeee* Don5151"t carer12"we5151"rerbou#L1or not (due")
<5_mbev#L href="+code=bc5_msg_5303X &cl7ls="line"7cm_msg_head<5n>;

57: t"7line"ero 7x_rcu" class="sef="net/c7n/bcm75/her18L65detecf"" clfirst/ 218Lof5reeeeeeeeeeeeeeeee*ss="sref">m, v5id *<56ef="+an7line" nam7="Lc77"> 177
 210                     e*ex_rcu" class="dfe=net_d5c146"> 145f=ife=net8bcm_sk *t      5lice" cla5s7"sref75n/bcm.c#L135aice" clao %                                * been lemoved due")
ifindex
 1457="net75n/bcm.c#L134sval2" cl4/a> *6                                *ss="sref">m, v5id *<56ef="+an7line"""> 7et/can/bcm.c5e> sizeof5<7a>   75name"5ass="sref5>sk 210                     e*ex_rcu" class="lx_re2_devsref">not5fier_lx_re2_dev8bcm_sknot5fier_bev#L16int  8< c#L1rx_do_fl7sh -s75n/bcm.c#L219" i5="L215" clasan7 class="c7mment">/*          7     76m.c#L216" id="L216" ccccccccccccccccccccccccc struct not5fier_bev#L166=TIMER_NORESTART bevid="_bylast_frames;
;
m_us" cl7ss="s76rer5ceived 109" id="ssssssssssssssssssssssssssssssssssssssssssssssssass="lin10"> 210                     e*ex_rcu" class="dfe=net_d5c146"> 145f=ife=net8 21devsref">not5fier_bev#L16cf">bcm_sk)
 21_ sklx_unre218not5fier_bev#L165"lass="lilast" id="shref="+code=u64lastcint f="nessssssssssssssssssssssssass="lin10"> 21bevipume"5a>;
not5fier_bev#L16cint f="neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeuot;5  7"sr name="1har 
7
;
RX_CHECK_DLC)7 hr 218rrrrrrrrr5_g 109" iiiiiiiiiiiiiiiii8r_r5stirtode==REGMASKt/can/bcm.c#L21REGMASKL165"" class="updef=" name="L165"> updef=5<_          
;
hr 218r"103"> hr 215"lass="lilast" id="shref="+code=u64last"d nframesbo<77>-> updef=5<_           ->
rx__hr_f7ush -77ode=ifname"5s4quot;&qiiiiiiii8r_r5stirtode==clx_removerme="L165"> 165 f="ne    HRT i&gTIRQ8               don/=vss="sref">m, v5id *<56ef="+an7s>&qus="l7or_each_enf="net     5  7href="+code=t4 ss="sref47="net77   return &quc77"7 177
m, v5id *<56ef="+an7sine" nam7="L138"> 888888888*"no o7eLus"77 nameuot;5 /*<88888888* so"w7Lus"<78n/bcm.c#L190" i4="L1949 class=7 lasL216"7functions<88888888  7     78      "7 t)\n"<4f">m,4<7pan c78ss="sprocene5a detecf175  leva_ skdeletektx_op - fe=n a#L1remove a txm, v5id *<56ef="+an7es="line"7">if77"> 177
 a>
rx_do_flush ref"deletektx_opt_frames;
hr 21deletektx_opL165" id="L165" class="linelistULLf="net/can/bcm.NUlistULLf=       struct  145f=ife=net8 52lass=o<7">&qus="l7ne" lass="sref">sk/a>
rx7updef78ruct ">bcm_sk 165        struct 7cm_msg_head<4ine" name4"7188">78L nal check5_a href="+code=ilistU135_each_5" ry_safa href="+code=u6.istU135_each_5" ry_safaL165"" class="updef=" name="L165"> updef=5bcm_sk
 hr 218r12" class="lilast" id="shref="+code=u64last_           145f=ife=net8 145f=ife=net8bcm_skframes_abs<4ld="L180"4f7"net/79m.c#L216" id="L216" ccccccccca href="+code=ilistUdel+code=u64" claslistUdelref="+code=op" cla skl  updef=5<_            165 m, v5id *<56ef="+an764" class7"srclass="line" na/a>
rx7updef79ode=ifname"5s4quot;"5 5 &qus="l7a href="net/can/bcm.c4))7
5 list&qu79_changedf="ne    HRT0i&gTIRQ8               not fou#L1vss="sref">m, v5id *<56ef="+an7line"w44
7f">ifindexef="net/ca7/bcm.79name"uot;5 7d & 77"> 177
         4     489"strin7a>&quc77"7="L="sref">ifindexrx7}
}
<.c#Lmsg/can/bcm.c#L129" i4="L1243/a>can_idropped_usr_ms8s/a>
80      m, v5id *<56ef="+an8line" nam8="L">can_idddddddddddde=8L">ca80ss="sL103"> a>
rx_do_flush ref"8Lf=_op="L165"> 165tv64 name=har -> 145f=ife=net8 52lass=o<8t1=%l8d &w44
bcm_sk&quw44
8a href="net/can/bcm.c5s68
 165        struct  165 145f=ife=net8
ifindexef="net/ca8ss="s80L212" id="L212" c!lass="lilast" id="shref="+code=u64last" (! 177
ifindexrx8218r 80n/bcm.c#L219" i5="L215" clasan8 class="c8mment">/*          8     810r18NET_RX_SOFTIRQ8               pf="curr    valuesia>-o msgULLf= vss="sref">m, v5id *<56ef="+an8clas(8 struct 
rx_"li8t"21881.href="+code=     if (->ifindexef="net/ca8/bcm.81L212" id="L21a href="+code=imsgULLf="net/can/bcm.NUmsgULLf=    _           145f=ival1cm.c# 16565" class="line                                ( 145f=ival1cm.cint  145f=ival2cm.c# 16565" class="line                                ( 145f=ival2cm.cint &quw44
8>kt_ival1     a href="+code=imsgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="sref"lass="lin10"> 210                     e*ex_rcu" class="s34
 2ef="net/ca8/bcm.81   if (! 165 updef=5 108        struc[ifname" class="#L146f="nO_AUTOTIMERnet/c/bcm.c)tr, 0cint 
op         4     489"strin8e9="line"8>kt_ival2    HRTIMER_NORESTART MHSIZO_AUTOTIMERnet/MHSIZc)trint (8 struct 
rx__pr8nut_ 82m.c#Luot;5 ->m,58 82>->frames;
;
b}
}
 tx}
<.c#Lmsg/can/bcm.c#L129" i4="L1243/a>8203     5sass="sre5r8f">li82n/bcm.c#L135aice" clao %vss="sref">m, v5id *<56ef="+an8">&quc77"8 177
 a>
rx_do_flush ref"txa.ctup="L165"> 165 165 165counmref="+cf="net8can/b82me"4ival1" cl4ss="sreqiiiiiiia>-> 145f=ife=net8 1mref="+cf="net8can/b82name"">bcm_sksk_socketmref="+cf="net8can/b82L nal check5_ id="L165" class="line" nasockme"5cass="sre5f" nasock       struct skmref="+cf="net8can/b82 name="L103">#L1href="+code==ropped_usrme="L165"> 165        struct  1mref="+cf="net8can/b8m.href="+code=unsigncm.c#-> 145f=i.c#Lint -> 165&qu4t;rx_48code=na8l" clref"8n"" class=5=8net/c83ode=ifname"5sFTIRQ8               we necm.a 8Lfletevica to1.c#L1c/bcm.;vss="sref">m, v5id *<56ef="+an8e="L203">8d_usr_msgsba>
pan>  8rf="n83#L212" id="L212" !lass="lilast" idfe=net_d5c146"> 145f=ife=net8 52lass=o<8
      hr 218r    HRT-lass="lilast" iENODEVme"5cass="sre5fENODEV.c#Lint list si83   if (!
               check an/bcm.rbou#Larim.r- we necm.at least on/=6" in/bcm;vss="sref">m, v5id *<56ef="+an8es="line"8name="L618*s/a>
rx__prin8t_han83 sk %pK&q9" cass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="sref/bcml1 || a href="+code=imsgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="sref clasIMER_NORESTART MAX_NFRA  SO_AUTOTIMERnet/MAX_NFRA  S8 52lass=o<8
9="line"8="L138"> 8          8     83 name="L103"> hr 218r    HRT-lass="lilast" iEINVAame"5cass="sre5fEINVAat/caint  181
<=r 218r_r58tirt"84n/bcm.c#L190" i4="L1949 class=8a>->               check     given 6" id=;vss="sref">m, v5id *<56ef="+an8line"ss="8ref">frames;
 165no=x_op>coderuct  145f=ife=net8
bcm_sk 1354 clasan8l class="8ref">list 145<8a>   84   if (! 8 procfs functions13 no r8stirt84name"5ass="sref5>sk;


lexity / lock"c5)1it"is not suppor  d., 57: t"8line" nam8="Lc77"> 177
m, v5id *<56ef="+an8line" nam8="L1st_for_each_enmems <8 href85etifname" class="#L149" cass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="sref/clasIMER_NORESTART 0                     e*ex_rcu" class="s34
 52lass=o<864" cw44
8a href="net/can/bcm.c5e"8class85ode=ifname"5s4quot;&qiiiiiiii    HRT-lass="lilast" iE2BIGme"5cass="sre5fE2BIGt/caint      5lice" cla5s8"sref85_head ifindex      hr 218r TIRQ8               ast_  L6" in/bcms cont    *ss="sref">m, v5id *<56ef="+an8l class="8rmerm.L1/a>
 1458="net85me"4ival1" cl4ss="sre >
 21d_d5c146"> 145f="code   0i> 145f="coden/bcmlass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="srei> 145f="code++"f">bcm_sk 8et/can/bcm.c5e> sizeof5<8a>   85name"5ass="sref5>sk 165 21u8_THRnet/can/bcmu sk &#*)+code=op" clame="L108"> 108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv"gt; 145f="codea.c#L161" id5"L16156 class=8ls="line"8name="L61138
 165 8< c#L1rx_do_fl8sh -s85n/bcm.c#L219" i5="L215" clasan8 class="c8mment">/*          8     86m.c#L216" id="L216" ccccccccc9" cass="lin10"> 210                     e*ex_rcu" class="46f="net/can/bcm.#L146]) iv"gt; 145f="codeax_rcu" class="se6" idlX_THRnet/can/bcm6" idlX"sref/clas8class="comm5nt"> 52lass=o<8 ine" nam8class="li nref">m_us" cl8ss="s86rer5ceived 109" id="sssssssssssssssssgt; 165&qu4t;rx_48code=na8a>->)
 21err="L165"> 165 52lass=o<8 ine"ropp8x_rcu" class="sef="net/c8n/bcm86ived " cl"for/" clfiran>f="nessssssss    HRTIMER_NORESTART err="L165"> 1655  21msgULLf="net/can/bcm.NUmsgULLf=    _          bcm_sk 8"sr name="1har -o n/bcm;vss="sref">m, v5id *<56ef="+an86s="line"8cl"L65formerm.L1/a>
8
                     e*ex_rcu" class="46f="net/can/bcm.#L146]) iv"gt; 145f="codeax_rcu" class="se6" inet/can/bcm.c#L216" id="L216=uct RX_CHECK_DLC)8 hr 218rrrrrrrrruot;5 
5 nframesbo<87>->bcm_sk->
rx__hr_f8ush -87ode=ifname"5s4quot;&qgTIRQ8               insert new9BCMm, v5id *<56ef="+an8"ine"ropp8name="L618<8
 &qus="l8or_each_enf="net      8href="+code=t4 ss="sref48="net87name"5ass="sref5>sk&quc77"8 177
 888888888*"no o8eLus"87 name="L103"> hr 218r_"lirt ode=d="shref="+code=u64last_          /*<88888888* so"w8Lus"<88n/bcm.c#L190" i4="L1949 class=8 lasL216"8functions<88888888  8     88rer5ceived 109" id="sgTIRQ8               cleatl arrayn135a6" in/bcms a#L1copy     data;vss="sref">m, v5id *<56ef="+an8ng">"8 t)\n"<4f">m,4<8pan c88etifname" class="#L149" cass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="sref/clas1"f">bcm_sk)?ref">not5lass="sref*"lass="lilast" iCFSIZO_AUTOTIMERnet/CFSIZ8if77"> 177
f="nessssssssssssssssssssslass="lilast" iGFP_KERNEame"5cass="sre5fGFP_KERNEa8&qus="l8ne" lass="sref">sk/a>
rx8updef88an>f="neeeeeeeeeeeeeeeee2" c!lass="lilast" id="shref="+code=u64last_          bcm_sk updef=5<"d 8cm_msg_head<4ine" name4"8188">88L nal check5_g 109" iiiiiiiiiuot;5 
 hr 218ru elsent -> 21d_d5c146"> 145f="code   0i> 145f="coden/bcmlass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="srei> 145f="code++"f">bcm_sk
rx8updef89ode=ifname"5s4quot;&qcccccccca href="+code=ierr="L165"> 165 21u8_THRnet/can/bcmu sk &#*)+code=op" clame="L108"> 108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv"gt; 145f="codea.c#L161" id5"L16156 class=8t1=%l8d & name=har f="nesssssssssssssssssssssrxgt; 165&qus="l8a href="net/can/bcm.c4))8
5 list&qu89_changedf="net/can/bceeeeeeee9" cass="lin10"> 210                     e*ex_rcu" class="46f="net/can/bcm.#L146]) iv"gt; 145f="codeax_rcu" class="se6" idlX_THRnet/can/bcm6" idlX"sref/clas8class="comm5nt"> 52lass=o<8line"w44
8f">ifindexef="net/ca8/bcm.89name"5ass="sref5>sk 1658d & 77"> 177
         4     489"strin8a>&quc77"8="L="sref">ifindexrx8 hr 218rrrrrrrrr9" cass="lin10"> 21err="L165"> 165bcm_sk 210                     e*ex_rcu" class="46f="net/can/bcm.#L146]) iv6! 52lass=o<9line" nam9="L">can_idropped_usr_ms9s/a>
90rer5ceived 109" id="sssssssssssssssssssssssss65" class="linekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> updef=5<_          can_idddddddddddde=9L">ca90etifname" class="#L146f="net/can/bcm._5" class="linekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> updef=5<"d tv64 name=har  165f="neuot;5 &quw44
9a href="net/can/bcm.c5s69
5 
 21msgULLf="net/can/bcm.NUmsgULLf=    _          bcm_skifindexef="net/ca9ss="s90name"5ass="sref5>sk               copy 6" id=;a>-o n/bcm;vss="sref">m, v5id *<56ef="+an9"8cl"L65f9r & 77"> 177
 210                     e*ex_rcu" class="46f="net/can/bcm.#L146]) iv"gt; 145f="codeax_rcu" class="se6" inet/can/bcm.c#L216" id="L216=uct ifindexrx9218r 90 name="L103"> hr 218rrrrrrrrruot;5 /*          9     91m.c#L216" id="L216" cuot;5 (9 struct 
rx_"li9t"21891>->->m, v5id *<56ef="+an9a4" class9f">ifindexef="net/ca9/bcm.91ode=ifname"5s4quot;&qgss="lin10"> 210                     e*ex_rcu" class="   t_46f="net/can/bcm.#L14   t_46f="n"L216=uct       hr 218r TIRQ8               3}
 h necms   i.;vss="sref">m, v5id *<56ef="+an9a cl"L65f9name="L204"> 2ef="net/ca9/bcm.91_changedf="net/can/bc=op" cla skl  145f=ife=net8 145f=ife=net8
op         4     489"strin9e9="line"9>kt_ival2 hr 218r_TIRQ8               initialize uninitialized (kzalloc)>#L1hreurm;vss="sref">m, v5id *<56ef="+an9clas(9 struct 
rx__pr9nut_ 92m.c#L216" id="L216" class="lilast" ihrtimer_init_d5c146"> 145f=hrtimer_initL165"+code=op" cla skl  m,59 92rer5ceived 109" id="sgop" cla skl }
 het/can/bcm.#L14>}
 h8frames;
&qu4t;rx_48code=na9e" clref"9last_frames;
b               initialize taskletn135a x /ou#"event notifeca 1354 clasan9e="L203">9203     5sass="sre5r9f">li92ived " cl"for/" clfir  145f=tasklet_initL165"+code=op" cla skl  145f=tsklet"L215"lass="lilast" i>}
 145f=>}
&quc77"9 177
f="neeeeeeeeeeeeeeeeeeeeee(unsigncm.loc5)1" class="updef=" name="L165"> updef=5<"d counmref="+cf="net9can/b92   if (! 1mref="+cf="net9can/b92name"5ass="sref5>sk ss="line" name="L135"> 1354 clasan9e8cl"L65f9>sk_socketmref="+cf="net9can/b92L nal check5_g 109" ilass="lilast" ihrtimer_init_d5c146"> 145f=hrtimer_initL165"+code=op" cla skl  145f=thrtimer"L215"lass="lilast" iCLOCK_MONOTONICO_AUTOTIMERnet/CLOCK_MONOTONIC"L215"lass="lilast" iHRTIMER_MODE_REame"5cass="sre5fHRTIMER_MODE_REaf=5<"d skmref="+cf="net9can/b92n/bcm.c#L219" i5="L215" clasan9line" nam9="L166"> 1mref="+cf="net9can/b93m.c#L216" id="L216" clrocene5a detecf175  lt "add   i.;3 ")
<    listpan     =x_op> ss="line" name="L135"> 1354 clasan9l>->no=x_op>code"d &qu4t;rx_48code=na9l" clref"9n"" class=5=9net/c93ode=ifname"5s}qgTIRQ8               i2" c> "= 3, msgULLf=> 1354 clasan9l="L203">9d_usr_msgsba>
pan>  9rf="n93_head      9" cass="lin10"> 210                     e*ex_rcu" class="DLC)?ref">not5lass="sref!=uct 
bcm_sklist si93_changedf="net/can/bc=op" cla skl )?ref">not5lass="sref 16565" class="linemsgULLf="net/can/bcm.NUmsgULLf=    _          
 1354 clasan9l8cl"L65f9name="L618*s/a>
rx__prin9t_han93L nal check5_g 109" ilass="lilast" id="shref="+code=u64last_           1354 clasan9l9="line"9="L138"> 8          9     93 name="L103">uot;5  181
<=r 218r_r59tirt"94n/bcm.c#L190" i4="L1949 class=9a>->               check can/b ss="line" name="L135"> 1354 clasan9line"ss="9ref">frames;
&qu4t;rx_48code=na9a<<9n"                                (
 210                     e*ex_rcu" class="fRX_NO_AUTOTIMERnet/can/bcm.c#179" c      bcm_sklist 145<9a>   94_changedf="net/can/bc=rocene5a detecf175  lt "start multiple n/bcm;transmissspanwith e=net 0 ss="line" name="L135"> 1354 clasan9line"""> 9 procfs functions13 no r9stirt94name"5ass="sref5>sk 1354 clasan9ls="line"9cm_msg_head<5n>;
uot;5 
     9" cass="lin10"> 210                     e*ex_rcu" class="fRX_NO_AUTOTIMERnet/can/bcm.c#179" c      bcm_sk 177
 1354 clasan9line" nam9="L1st_for_each_enmems <9 href95etifname" class="#L14pass="lilast" id="shref="+code=u64last_           145f=ival1cm.c#=uct  145f=ival1cm.cint      5lice" cla5s9"sref95ived " cl"for/" clfir  145f=ival2cm.c#=uct  145f=ival2cm.cint ifindex      hr 218r  145f=kt_ival1cm.c#=uct  145f=ival1cm.c"d 
 1459="net95me"4ival1" cl4ss="sre  145f=kt_ival2cm.c#=uct  145f=ival2cm.c"d  9et/can/bcm.c5e> sizeof5<9a>   95   return                disablera# active timer dua to1zero values?iss="line" name="L135"> 1354 clasan9l9="line"9="L138"> 8< c#L1rx_do_fl9sh -s95 name="L103"> hr 218r12" !lass="lilast" id="shref="+code=u64last_           145f=kt_ival1cm.cx_rcu" class="setvx_rcu" clase=d sktv6ived "id="L179" c!lass="lilast" id="shref="+code=u64last_           145f=kt_ival2cm.cx_rcu" class="setvx_rcu" clase=d sktv6ived class="comm5nt"> 52lass=o<9 class="c9mment">/*          9     96m.c#L216" id="L216" ccccccccclass="lilast" ihrtimer_> 5cel+code=u64" clashrtimer_> 5celL165"+code=op" cla skl  m_us" cl9ss="s96rer5ceived 10uot;5 &qu4t;rx_48code=na9a>->)
 210                     e*ex_rcu" class="fRX_NO_AUTOTIMERnet/can/bcm.c#179" c      bcm_sk 5cel+code=u64" clashrtimer_> 5celL165"+code=op" cla skl        hr 218r TIRQ8               spec:1.c#L16" in/bcm when"start"c59timer ss="line" name="L135"> 1354 clasan9line" nam9="Lquot; 210                     e*ex_rcu" class="fRX_NO_AUTOTIMERnet/can/bcm.c#|=uct  9"sr name="1har 
9
         4     489"strin9line" nam9="0ef">RX_CHECK_DLC)99" cass="lin10"> 210                     e*ex_rcu" class="fRX_NO_AUTOTIMERnet/can/bcm.c#179" c      bcm_sk
}
 updef=5<"d nframe99" cass="lin10"> 210                     e*      ca90etifname" clasame="L103">9" cass="lin10"> 210                     e*       updef=5<"d ->9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an8"ine"ropp8name="L619<8 &qus="l8or_each_e9f="ne97_hi_s c97ua>s94RT85     9" cass="lin10"> 210                     e*ex_rcu" class="fRX_NO_AUTOTIMERnet/can/bcm.c#179" c        1354 cl; &l8sine" nam8="Lquot;<9sssss9sssct me"511ne91  dlast"9href=97m.c#L2"strin9" cl"L65f9rmerm.L1/a2 e*ex_rcu" class="fRX_NO_AU   7uot;&qgTIRQ8 a1u8_Tl c8dfe=net_d5c146"> 145f=ife=net89" cass="li64last_  9        1354 clasan8l9190" i4="91949 class=8 lasL216"8fu9ction98l8clas(8 struct frames;
,58 82>->8203 r   5sass="sre5r8f">li82n/bcm.c#L135aice" clao %vss="sref">m, v5id *<56ef="+an8">&quc77"8 177
 a>
rx_do_flush ref"txa.ctup="L165"> 165if77"9 177<9a>
 165 165counmref="+cf="net8can/b82me"4iva9qus="l8ne9 lass="sref">sk/a>
rx8up9ef88a9>CHECK_DLC)9 1mref="+cf="net8can/b82name"">bcm_sksk_socketmref="+cf="net8can/b82L nal check5_ id="L165" class="lin9=5<"d98c9_msg_head<4ine" name4"8198">889 nal check5_g ; &l8line" nam8="L166"> 1mref="+cf="net8can/="line" name="L135"> 1354 clasaf="+code=964last_          [ifname9 46f=9net/can/bcm.#L146]) iv665+c9de=op" cl9 skl cass="fRX_NO_AU   7uot;&qgTIRQ8 a1u8_Tl c8dfe=net_d5c146"> 145f=ife8"ine"ropp8name="L619<8
RX_|| (!      f="net/c8n/bcm88ode=ifname"5s4quot;&qiiiiiiii8r_r5stirtode==d="shref="+code=u64last_          [ifn9canCHECK_DLC)9 145f="9oden/bcmlass="lin10"> 219sgULL9="net/can/bcm.NUmsgULLoifname"5cass="sre5f="net/e robust against wrong u  21u8_9HRnet/can/bcmu sk &#*)+c9de=op9 clame="L108"> 108ass="fRX_NO_AU   7uot;&qgTIRQ8 a1u8_Tl c8dfe=net_d5c146"> 145f=ife8"ine"ropp8name="L619<8
Rne" name="L135"> 1354 clasaf5"L161569ssssssssssssrxgt; 5celL165"+code=op" cla skligneeeetrail  145f=ife=net8 1354 clasafeine" na9            e*ex_rcu" cl9ss="499                e*ex_rcu" class="fRX_NO_w44
8f">i9indexef="net/ca8/bcm989nam9"5ass="sref5>sk 165)?
10f8"nedo8910f8"ncoerr="L165"> 16510f89rx__hr_f8ushan8es="line"8name="L618*s/a>
rx__prin8t_han83 sk %pK&q9" cass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf=    _          )?ref1rn1f="/pre>
edo825/28/888fdbb8eda60695896cac5308b4ba837c36_3/10f8">eeeeeee* thede=ore (/a>
10f1"nedo8910f4last_          [ifname10f4l>10fhref=97m.c#L216" id="v" c  DLC)?ref">not5lass="sref clasIMER_NORESTART MAX_NFRA  SO_AUTOTIM10f2"nedo8910fskl  2110fde>10fnam9class="li nrecass="fRX_NO_AU   7uot;&qgTIRQ8 a1u8_Tl c8dfe=net_d5c146"> 145f=ife8"ine"ropp8name="L619<8
RX_38"> 8< c#+codetimerref="+code=d sk10f4"nedo8910fRnet/can/bcmu sk &#*)+c10fRn>10fclame="L108"> 108ecass="fRX_NO_AU   7uot;&qgTIRQ8 a1u8_Tl c8dfe=net_d5c146"> 145f=ife9l="L203">9d_usr_msgsba>
pan>  9r1X_||+codetimerref="+code=d sk10f5"nedo8910fsssssssssssrxgt;10f=u64" clashrtimer_(!      f="net/c8n/bcm88ode=ifname"5s4quot;&qiiiiiiii8r_r5stirtode==d="shref9"net/90L nal check5_g 109" i href8"net/87_head10f215"lass="lilast" iCFv" c  DLC)?ref">not5lass="sref clasIMER_NORESTART MAX_NFRA  SO_AUTOTIM10f7"nedo8910f           e*ex_rcu" cl10f  >10f id="L216" class65">me"511ne9110f8"nedo8910fndexef="net/ca8/bcm10fnd>10f85-lass="lila     91m.c#L216" id="L216fEINVAat/caint  181<10f9"nedo8910f="+coerr="L165"> 16510f65-lass="lila e5f" naskL165"" class="updef=skme"5ca841"+code=u64rxFTIRQ8               check     given 6" id=;vss="sref">m, v5id *<56ef="+an8line"ss="8ref">framesristUaddet/can/bcm.#Lr=dmems  165n1018"nedo8910=    _          10= 9rx__hr_f8ush -96name"5ass="sruot;)9ifindex10=                 e*ex_rcu" class="fRX_NO_AUTOTref="nep c18ua> b84#L212" id="L212" lass="lilast" id="shref="+co10=2"nedo8910n>5 5>10=ref="+codetimerref="+code=d sk1013"nedo8910" cl9a>->10="net/can/bcm.NUmsgULLoifname"5cass="sre5f="ne12" lass="lilast" id="shref="+co10=4"nedo89105s4quot;&qgss="lin10"> 2105s4>10=4/a>,58 82>->10=5/a>,58 82>->sk9rx__hr_f8ushan8es="line"8name="L618*s/a>
rx__prin8t_han83 sk %pK&q9" cass="lin10"> 21msgULLf="net/can/bcm.NUmsgULLf= line" nam8="L1st_for_each_enmems <8 href85etifname" class="#L149" cass="lin10"> 21msgULLf="net/can/bcm10=9"nedo8910=net_d5c146"> 145f=ife=n10=ne>10=cm.c#L216" id="L216=uct                      e*ex_rcu" class="s34
10   >10  ef="+codetimerref="+code=d sk1021"nedo8910+code=d sktimer"L215"las10+co>10 href=97m.c#L216" id="L216" class="lilast      9" cass="lin10"> 210               10 2"nedo8910f="+code=d sktimer"L21x_10f=">10 ef9"necl95rer5ce96 name="L103"BIGme"5cass="sre5fE2BIGt/caint      5lice" c10 3"nedo89106="lass="lilast" i>}
10 "net/can/bcm.NUmsgULLf=    _          )?ref">not5lass="srei> 145f="code++"f">bcm_sk
a>9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an86" id=;a>-o n/bcm;vss="sref">m namsgULLf="net/can/bcm.NU10 4"nedo8910code=na9e" clref"9last_f10cod>10 clame="L108"> 108        struc[ifname" class="#L146f="net/can/bcm.#L146]) iv"gt; 145f="codea.c#L161" id5"L16156 clasnamsgULLf="net/can/bcm.NU10 5"nedo8910 145f=[ifname" class="#L146f="net/can/bcm.uot;&qgTIRQ8 a1u8_Tl c8dfe=net_d5c146"> 145f=ife=net8n1026"nedo8910161" id5"L16156 class=9"10161>10 ef="net/can/9cm.c590ived " cl"for/" clfiran>f="naint 10 8_changedf="net/can/bceeeeeeeeeeeeeeee65" cl/" clfiran>f="naint )?ref">n1028"nedo8910   if (!10 5ass="sref5>sk 145f=thrtimer"L215"las10> 1>10 cm.c#L216" id="L216=uct fe 'a ahua> /a>(9 st'; &l86ine"ropp8203     5lice" c1038"nedo8910ONOTONIC"L215"lass="lila10ONO>10ONnet/can/bcm.NUmsgULLf=    _            never /a>
arerwith previous leceived a>]sagm.;vss="s, 0t n1031"nedo89105="L215" clasan9line" na105=">10Ohref=97m.c#L216" id="   e*ex_rcu" class="fRX_NO10O2"nedo8910d skl <10Oref="+codetimerref="+code=d sk1033"nedo8910skl 10O)?ref">n1034"nedo8910n"" class=5=10n&q>10O10O5"nedo89102" c> "= 310O=u64" clashrtimer_> 5celL165"+code=op" cla sklOnly> &qu4t;rx_48code=na10O6"nedo8910rcu" class="DLC)?10O215"lass="lilast" iCFass="fRX_NO_AU do r  registcan/bcm.c#179" c do r  registca"5ca7"line" name="L135"> 1354 clas10O7"nedo8910a href="+codeDLC)?10O id="L216" class65">me"511ne911038"nedo8910d54uot; &l9ss="line"9nam10d54>10O94name"5ass="s="sre58href=87m.c#L216" id="L21610O9"nedo8910f9name="L618*s/a>
rx__pr10f9n>10O"lass="lilast" idfe=net_d5c146"> 145f=ife=net8bc1048"nedo8910ode=u64last_          10odspan 5"net/ou#"cm.c#=uct  &qus="l8or_each_enf="net      1354 clasa10 na>10ohref=97m.c#L216" id="L216ass="updef=OPSIZO_AUTOTIMERnet/OPSIZ"L215"lass="lilast" iGFP_KERN10o2"nedo8910/a>
<=r 218r_r59tirt"94n10/a>>10oef9"necl95rer5ce96 name="L103e65" class="linekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> upde10o3"nedo8910de=t5")
10o3id="L216" class65">me"511ne911044"nedo8910                (10o146"> 145f=ival1cm.c#=uct          4     489"strin8sine" nam8="L138"> 888888888*"no o8eLus"87 name="L103"> hr 218r_"lirt ode=d="shref="+code=10o5"nedo8910ULLf="net/can/bcm.NUmsgU10ULL>10o146"> 145f=ival2cm.c#=uct 
bcm_sklist si93_changedf="net/can/bc=op" cla skl                 10 21>10o9 177
10o8_changedf="net/can/b8rer5ceived 109" id="sgTIRQ8               cleatl arrayn135a6" in/bcms a#L1copy     data;vss="sref">m, v5id *<56ef="+an8ng">"8 t)\10o8"nedo8910 9 procfs functions13 no10 9 >10oifindexef="net/ca9ss="s90"net/can/bcm.c#L216" id="L21int /*<88888888* so"w8Lus"<88n/bcm.c#10o9"nedo8910ode=u64last_          10ocm.c#L216" id="L216=uct 9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an86" id=;a>-o n/bcm;vss="sref">ms1"f">bcm_sk 1354 clasa10 na>10 n href="+codetsklet_d5c146"> 145f=[ifname" class="l8or_each_enf="net      21010   >10 t/can/bcm.#L146]) iv6!f="nessssssssssssssssssssslass="lilast" iGFP_KERNEame"5cass="sre5fGFP_KERNEa810 2"nedo8910SETTIMERc)trcf">bcm_sk10 nekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> updef=5<_          10 0etifname" class="#L146f="net/can/bcm._5" class="linekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> upde1054"nedo8910tv64 name=har 10 rr="L165"> 165(9 strcod54uot; &>/*<88888888* so"w8Lus"<88n/bcm.c#1057"nedo8910cotimevalan/bktimeref="+10cot>10 8_changedf="net/can/bceeeeeeeRO_AUTOTIMERnet/ef8"net/87_head  never /a>
arerwith previous leceived a>]sagm.;vss="sv5id *<56ef="+an8"ine"ropp8name="L618<8
f="nessssssssssssssssssssslass="lilast" iGFP_KERNEarerwith previous leceived a>]sagm.;vss="snt 1068"nedo8910ived "id="L179" c!lass="10ive>10ivekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> updef=5<_           52lass=o<9line" nam9="L">can_idropped_usr_ms9s/a>
90rer5ceived 109"10i1"nedo8910ss="lilast" ihrtimer_> 510ss=>10it/can/bcm.#L146]) iv6! updef=5<_           upde1063"nedo8910  210109" >10i1065"nedo8910ss="lilast" ihrtimer_> 510ss=>10i146"> 145f=ival2cm.c#s="sre58href=87m.c#L216" id="L2161066"nedo8910r4f="+c42e=rx_w49 10ief="net/can/9cm.c590ived " cl">9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an86" id=;a>-o n/bcm;vss="sref">ms1"sent  210<10/ca>10i8_changedf="net/can/bceeeeeeeRO_AUTOTIMERnet/ef8"net/87_head  never /a>
arerwith previous leceived a>]sagm.;vss="sv5iadd   i.;3 ")
<    listpan     =x_op> ss="line" name="L135">>]sa"net/89m.c#L216" id=">>]sa"net/8ccccccccca href="+code=id="shr10i8"nedo8910et/can/bcm.c#|=uct 10iifindexef="net/ca 9ref="90ode=ifname"5s4quo1069"nedo8910nt 10iurrrx( 210  10 ca>10 cref=97m.c#L216" id="L216" class="lilast      9" cass="lin10"> 210               1071"nedo8910l"L65f9rmerm.L1/a>
10 t/can/bcm.#L146]) iv6!)?ref">not5lass="srei> 145f="code++"f">bcm_sk
a>9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an86" id=;a>-o n/bcm;vss="sref">m L146f="net/can/bcm.#L146]) iv"gt; 145f="codea.c#L161" id5"L16156 clasnamsgULLf="net/can/bcm.NU1072"nedo8910"ine" nam8f">nframe910 nekfrea href="+code=u6kfreaL165"" cla6]) iv6!]) iv66565" clasvcint 10 0etifname" class="#L146f="netass="sre5fEINVAat/caint 8d & 77"> 177
                     10/a>>10 clame="L108"> 108        struc[ifr89 name="L103"> hr 218rrrrrrrrr9" cass="lin10"> 21err="L165"> 165bcm_sk 210  10 5"nedo8910 10 a href="+codetsklet_d5c146"> 145f=[ifname" clss="updef=" name="L165"> updef=5<_           52lass=o<9line" nam9="L">can_idropped_usr_ms9s/a>
90rer5ceived 109"1076"nedo8910  9" cass="lin10"> 21010 ef="net/can/9cm.c590ived " clstruc[ifr89 name="L103"> hr 218rrrrrrrrr9" cass="lin10"> 21err="L165">rerwith previous leceived a>]sagm.;vss="sv/a5( 210  10 7"nedo89109sssss9sssct 10 8_changedf="net/can/bceeeeeeeeeeeeeeename" clss="updef=" name="L165"> updef=5<_           52lass=o]sagm.;vss="sn_ms9s/a>
90rer5ceived 109"1078"nedo8910ef=97m.c#L2"strin9" cl"L10ef=>10 ifindexef="net/ca9ss="s90name"5ass="sref5>sk updef=5<_          10 65-lass="lilast" iEINVAame"5ccccccccce65" cl/" clfiran>f="naint )?ref">n1088"nedo8910       10 ref="+codetimerref="+code=d sk1083"nedo8910>m,4<8pan c88etifnam10>m<>10 "net/can/bcm.NUmsgULLoifname"5cass="sre5f="net/caint  145f=ival1cm.c#=uct }
 h necms   i.;vss="sref">m, v5id *<56ef="+an9a cl"L65f9name="L20410 5"nedo8910class=8es="line"8">if77"10cla>10 146"> 145f=ival2cm.c#=uct sk/a>
rx8up10 la>10 9 177
(p id="L212" lass="lilast" id="shref="+co1088"nedo891010 urrrx(10_mnot5lass="sref 16565" class="linemsgULLf="netlg int 
op 10_1"nedo891064last_          [ifname1064l>10_"> 1mref="+cf="net9can/b93m.c#L216"  hr 218r_TIRQ8               initialize uninitialized (kzalloc)>#L1hreurm;vss="sref">m, v5id *<56ef="+an9clas(9 struct 
rx__pr9nut_ 92m.c#L216" id="L216" class="lilast" ihrtimer_init_d5c146"> 145f=hrtimer_initL165"+code=op" cla skl  177
 mr59 92rer5ceived 109" id="sgop" cr59 92rer5ceiv"sr    if ( 2110ode>10_3id="L216" class65">me"511ne911094"nedo8910HRnet/can/bcmu sk &#*)+c10HRn>10_146"> 145f=ival1cm.c#=4>}
 h8frames;
10_5"nedo8910ssssssssssssrxgt;10_146"> 145f=ival2cm.c#=uct  1354 clasan9e="L203">9203     5sass="sre5r9f">li92ivedr" cl"for/" clfir 10_ef="net/can/9cm.c590ived " clstructsklet"L215"lass="lilast" i>}
 145f=>}
10_ id="L216" class65">me"511ne911098"nedo8910indexef="net/ca8/bcm10ind>10_ine" nam9="L166"> 1mref="+cf="net9can/b92name"5ass="sref5>sk ss="line" name="L135"> 1354 clasan9e8cl"L65f9>sk_socketmref="+cf="net9can/b92L nal check5_g 109" ilass="lilast" ihrtimer_init_d5c146"> 145f=hrtif=hrtimer_initL165"+code=op" cla skl  16510_"lass="lilast" idfe=ne"curr   ly=unuscm.c# =x_op> ss="line" name="L135"> 1354 clasan9e8cl"L65f9>sk_socketmref="+cf_MODE_REaf=5<"d mr59 165110 ef="+codetimerref="+code=d sk11f1"nedo8911f4last_          [ifname11f4l>11fhref=97m.c#L216" id="=4>}
 h811f2"nedo8911fskl  177
;&qgTIRQ8               initialize taskletn135a x /ou#"event notifeca 1354 cletmasan9e="L203">9203li92ivedr" chrr clfir  2111fde>1100etifname" class="#L146f="net/can/tsklet"L215"lass="lilast" i>}
 145f=>}
11011f5"nedo8911fsssssssssssrxgt;11f=u64" clashrtimer_d="=4>}
 h85<"d skmref="+cf="net9can/b92n/bc11f6"nedo8911fmsgUiov"net/can/bcm.NUm11fms>11f215"lass="lilast" iCF5nt"> 52lass=o ")
<    listpan     =x_op> ss="line" name="L135"> 1354 clasan9l>-> 145f=>}
11f id="L216" class65">me"511ne9111f8"nedo8911fndexef="net/ca8/bcm11fnd>110           145f=ival2cmc c# &qu4t;rx_48code=na11f9"nedo8911f="+coerr="L165"> 165110"lass="lilast" idfe=ne"curr   ly=unudo r  registcan/bcm.c#179" c do r  registca"5ca7"l1"> 145f=>}
111 ef="+codetimerref="+code=d sk11=1"nedo8911e"9n"L="sref">ifindex11=             }5" class="linemsgULLf="netl" ((r4f= k     given"add  boid="sr=dmem, t;&qiiiiid="s 218r_,tl"L65f99can/b93ss="string">&qu4t;rx_48code=na11=2"nedo8911n>5 5>11=ref="+codetimerref="+code=d sk1113"nedo8911" cl9a>->11="net/can/bcm.8          9     93 name="L103">uot;5  2115s4>111146"> 145f=ivliv" c  46f="net/can/bcm.#L146]) i"comm5nt"> 52lass=o<9san9line"ss="9ref">frames;
&qu4t;rx_48code=na9a<<9n"     1115"nedo891146f="net/can/bcm.#L14   1146f>111rr="L165"> 165&quw44
9>kt11c52>111215"lass="lil9< /a>9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an8"ine"ropp8name="L619<8
RX_f">8d & 77"> 177
111 id="L216" class65">me"511ne9111=8"nedo8911="sref5>sk          9     93 nno href=s85  145f=ife=n11=ne>11=cm.c#L216" id="L216=uef="+cf="net9can/b92namcRnet/can/bcm.c#179" c      bcm_sksk_socketmref="+cf6"> 145f=>}
11   >112dspan 5"net/ou#"cm.c#=uct bcm_sk112et/can/bcm.#L146]) iv665+c1122"nedo8911f="+code=d sktimer"L21x_11f=">11 ef9"necl95rer5ce96 naoifname"5cass="sre5f="ne12" lass="lilast" id="shref="+co11 3"nedo89116="lass="lilast" i>}
112,58 82>->d54uRTR-md1124/a>,58 82>->
1126/a>,58 82>->5 11 8_changedf="net/can/b nrecass="fRX_NO_AU e=96name"5ass="sruot;5 
9
     CP_re90.L1/a>
RX_||+codetimerref="+code=d sk1128"nedo8911   if (!112ifindexef="net/ca9ss= 52lass=o<9line" nam9="L">can_idropped_us[0]_MODE_REaf=5<"d 145f=thrtimer"L215"las11> 1>11 cm.c#L216" id="L216=uct  52lass=o<9line" nam9="L">can_idropped_us[0]_MODE_REaf=5<"d9~net9can/b92L nale90RTR_?LA                re90RTR_?LA [ifn"net/c9n/bcm96ived " cl"fo1138"nedo8911ONOTONIC"L215"lass="lila11ONO>113 ef="+codetimerref="+code=d sk1131"nedo89115="L215" clasan9line" na115=">113             }5"sre58href=87m.c#L216" id="L21611O2"nedo8911d skl <113ef9"necl95rer5ce96 na9< /a>9rx__hr_f8ush -96name"5ass="sruot;5id *<56ef9"+an8"ine"ropp8name="L619<8E hr9f="+c52="9trin8s>&E;)
1133id="L216" class65">me"511ne911134"nedo8911n"" class=5=11n&q>113clame="L108"> 108        celL165"+code=op" cla skl et href=""> 9e=ft;5  "= 311O=u64" clashrtimer_> 5ct  52lass=o< timer dua to1zero ves?iss="l>;
&qu4t;rx_48code=na9a<<9n" 52lass=o< tim="+code=u64last_       ;
&qu4t;rx_48code=na9a<<9n"  never /a>
a       er dua to1zero v       e  ;
&qu4t;rx_48code=na9a<<9n"113ifindexef="net/ca9ss="s90"O_AUTOTIMERnet/ef8"net/87_head  never /a>
a       ="+code=u64last_       =  ;
&qu4t;rx_48code=na9a<<9n"11odspan 5"net/ou#"cm.c#        celL165"+code=op" cla skldisablt  9e?=ft;5  1354 clasa11 na>11ohref=97m.c#L216" id="""""""""ass=clfiran>f="nessssssssssssssssssssslass="lilast" iGFP_KERNEa       er dua to1zero v       e  
<=r 218r_r59tirt"94n11/a>>11oef9"necl95rer5ce96 name="L1039ss="s90"O_AUTOTIMERnet_AUTOTIMERnet/can/bcm.c#179" c      bcm_sk11o3id="L216" class65">me"511ne911144"nedo8911                (11o146"> 145f=ival1cm.c#        celL165"+code=op" cla sk;5 5                 11 21>1146/a>,58 82>->;5 1147/a>,58 82>->5 11oifindexef="net/ca9ss="s90"firan>f="nessssssssssssssssssssslass="lilast" iGFP_KERNEa   ssstcm.#L146]) iv"   ssstcm.  ;
11ocm.c#L216" id="L216=uct 9rx__hr_f8ushn/b92namcRnet/can/bcm.c#179" c      bcm_sksk_socketmref="+cf6"> 145f=>}
 1354 clasa11 na>11 n href="+codetsklet_d5c146"> ="sre5r9f">li92ivedr" chrrflush  145f=>}
 21011   >11 t/can/bcm.#L146])   e*ex_rcu" class="fRX_NO11 2"nedo8911SETTIMERc)trcf">bcm_sk115ref="+codetimerref="+code=d sk11 3"nedo8911ast_          11 0etifname" class="#L1 nrecass="fRX_NO_AU e=96name"5ass="sruot;5 
9
  STAR hr9f="+c52="9trin8s>&TAR hr9f=ef="+c38"> 8< c#eRO_AUTOTIMERnet/ef8"net/87_head  never /a>
a       er dua to1zero v       e  tv64 name=har 9rx__hr_f8ushn/b92namstarass="sref5>skbcm_skli92/ef8"net/87_head  never /a>
a       er dua to1zero v       e  115a href="+codetsklet_d5c146"> 145f=[ifname" op> never /a>
artimer_initL165"+code=op" cla skl me"511ne911158"nedo8911LLf="net/can/bcm.NUmsgUL11LLf>11585-lass="lila     91m.c#L216" id="L216nowunct>me registcaef5"+cod5ids,tl"unctaddns1aL61" 5 9rx__hr_f8ushdo r  registcan/bcm.c#179" c do r  registca"5ca+code=t5>)
9rx__hr_f8ushe"5cass="sre5f"o.c#L>)
 511ss=>11it/can/bcm.#L146]) iv6!9rx__hr_f8ushdeodea.c#L161" id5deo   9rx__hr_f8ushdeodea.c#L161" id5deo  ;
li92e"5cass="sre5f"o.c#L>n1164"nedo89119" cass="lin10"> 210119" >116class9"sref">tv64 name=har 9rx__hr_f8ushdeodea.c#L161" id5deo  )
 511ss=>11i146"> 145f=ival2cm.c#ass="#L146f="neta>9rx__hr_f8ushc  DLC)?ref">not5lass="srei>9rx__hr_f8ushdeodea.c#L161" id5deo  li92/ef8"net/87_head  never /a>
aref9"net/90L nal check5_g 109" snamsgULLf="net/can/bcm.NU1166"nedo8911r4f="+c42e=rx_w49 11ief="net/can/9cm.c590ived " cl45f=ival2cm.c#ass="#L146f="neta>9rx__hr_f8ushREGMASKet/90L nal checREGMASK;<   210<11/ca>11i8_changedf="net/can/bceeeeeee45f=ival2cm.c#ass="#L146f="neta>9rx__hr_f8ushtaskr" er5ceived 109" id="sgop" cr59er5ceiv"sr ss="sre5r9f">li92/ef8"net/87_head 11iifindexef="net/caceeeeeee45f=ival2cm.c#ass="#L146f="neta    91m.c#L2rucing">"/bc";)?ref">n1169"nedo8911nt 11iurrrx( 210  11 ca>11 cref=97m.c#L216" id="ass="#L146f="neta>9rx__hr_f8ush5>sk;

11 t/can/bcm.#L146]) iv6!9rx__hr_f8ushdeo_pur 9rx__hr_f8ushdeodea.c#L161" id5deo  )?ref">n1172"nedo8911"ine" nam8f">nframe911 nekfrea href="+code=u6kfreaL1   e*ex_rcu" class="fRX_NO1173"nedo8911ne"8name="L619381173id="L216" class65">me"511ne9111 4"nedo8911/a>                     11/a>>11 clame="L108"> 108}5"sreL216" class65">me"511ne9111 5"nedo8911 11 a href="+codetsklet_d5c146"> a>9rx__hr_f8ushc  DLC)?ref">not5lass="srei>9rx__hr_f8ushNUL"+code=op" cla sNUL"  li92/ef8"net/87_head  never /a>
aref9"net/90L nal check5_g 109" snamsgULLf="net/can/bcm.NU1176"nedo8911  9" cass="lin10"> 21011 ef="net/can/9cm.c590ived " clstruc[ifklet_d5c146"> a>9rx__hr_f8ushREGMASKet/90L nal checREGMASK;<  11 8_changedf="net/can/bceeeeeeeeeeeeeeename" cl146"> a>9rx__hr_f8ushtaskr" er5ceived 109" id="sgop" cr59er5ceiv"sr ss="sre5r9f">li92/ef8"net/87_head "/bc";)?ref">n1178"nedo8911ef=97m.c#L2"strin9" cl"L11ef=>11 ifindexef="net/caass="sre5fEINVAat/caint )
11 65-lass="lilast" iEINVAame"5c     91m.c#L216" id="L216  5 bcm_sk)?ref">n1181"nedo8911Lf="net/can/bcm.NUmsgULL11Lf=>11 href=97m.c#L216" id="cl146"> a>9rx__hr_f8ushtaskremove_t/STARTTIMERc)trctaskremove_t/;<  )?ref">n1182"nedo89111949 class=8 lasL216"8fu11194>118ef9"necl95rer5ce96 name="L103e65" cl"sre5fEINVAat/caint )?ref">n1183"nedo8911>m,4<8pan c88etifnam11>m<>11 "net/can/bcm.NUmsgULL   e*ex_rcu" class="fRX_NO11 4"nedo8911165"" class="updef=msgUL11165>11 146"> 145f=iv   e*ex_rcu" class="fRX_NO11 5"nedo8911class=8es="line"8">if77"11cla>118rr="L165"> 165sk/a>
rx8up11 la>118ef="net/can/9e65" cl"sre5fEINVAat/c/bcm88ode=ifname"5s4quot;&qiiiiiiii8r_r5stirtode==d="shref="+code=u64last_          [ifname" 46f="net/can/bcm.#L146]) iv66565" clas +e" 46f="net/can/MHm.#L146]) iv66MHm.#ot; "+code=x_op>)?ref">n1187"nedo89118="L name=har 11 >not5   e*ex_rcu" class="fRX_NO11 8"nedo8911sk11 urrrxcelL165"+code=op" cla sk;5 11_mnot558 82>->5 11_"> 1m58 82>->5 9rx__hr_f8ushtaskcodsendSTARTTIMERc)trctaskcodsend;<  9rx__hr_f8ushcm.#L146]) iv"gt;9rx__hr_f8ushe"5cass="sre5f"o.c#L>m, v5id *oce/can/*a>9rx__hr_f8ushref">m, v5id *<56eff="+cf="net8can/b82me"4iva1193"nedo8911oden/bcmlass="lin10"> 2111ode>11_3id="ode=t5>)
11_146"> 145f=ivruct m, v5id *<_buff/can/*a>9rx__hr_f8ushrebf">m, v5id *)?ref">n11_5"nedo8911ssssssssssssrxgt;11_146"> 145f=ivruct 9rx__hr_f8ushdeodea.c#L161" id5deo  11_ef="net/can/9int a>9rx__hr_f8ushaint )?ref">n11_7"nedo8911            e*ex_rcu" cl11   >11_ id="L216" class65">me"511ne911198"nedo8911indexef="net/ca8/bcm11ind>11985-lass="lila     91m.c#L216" id="L216we37;l9 a real devicfl="+send 4uot; &>/*<88888888* so"w8Lus"<88n/bcm.c#11_9"nedo8911f="+coerr="L165"> 16511965-lass="lila9< /clfiran>f="nessse"5cass="sre5f"o.c#L> 165120 etifname" class="#L1._5" class="linekfrea hrefDEV="sre5f"o.c#L>)?ref">n12f1"nedo8912f4last_          [ifname12f4l>120et/can/bcm.#L146]) iv665+c12f2"nedo8912fskl 9rx__hr_f8ushrebf">m, v5id *m, v5id l9a8c_reb;<   2112fde>1203id="L216" class65">me"511ne9112f4"nedo8912fRnet/can/bcmu sk &#*)+c12fRn>12045-lass="lila9< /clfiran>f="nesssrebf">m, v5id *12f=u64" clashrtimer_d="._5" class="linekfrea href="+code=u6kfreaL165"" class="updef=" name="L165"> upde12f6"nedo8912fmsgUiov"net/can/bcm.NUm12fms>1209 177
1207="strin9linea>9rx__hr_f8ushc  DLC)?ref">not5lass="srei> 145f="code++"f">bcm_skf="nesssreb_pur m, v5id *]) iv66565" clasv L146f="net/can/bcm.#L146]) iv"gt; 145f="codea.c#L161" id5"L16156 clase" 46f="net/can/bcm.#L146]) iv66565" clasvcint ef="net/ca8/bcm12fnd>120          8d & 77"> 177
 165120"lass="lilast" idfe=ne"curr   ly=unu     _rebf">m, v5id      _reb(f="nesssrebf">m, v5id *121 etifname" class="#L1._5" cla>9rx__hr_f8ushaint )?ref">n12=1"nedo8912e"9n"L="sref">ifindex12=             }+code=x_op>)?ref">n12=2"nedo8912n>5 5>12=ref="+codetimerref="+code=d sk1213"nedo8912" cl9a>->12="net/can/bcm.8>9rx__hr_f8ushdeodea.c#L161" id5deo  ;
li92e"5cass="sre5f"o.c#L>n12=4"nedo89125s4quot;&qgss="lin10"> 2125s4>12145-lass="lila9< /clfiran>f="nesssdeodea.c#L161" id5deo  )
 145f=ival2cm.c#=uct m, v5id      _reb(f="nesssrebf">m, v5id *)?ref">n12=7"nedo8912/ca9/bcm.91_changedf="ne12/ca>1217            }+code=x_op>)?ref">n12=8"nedo8912="sref5>sksk 145f=ife=n12=ne>12=cm.c#L216" idlfiran>f="nesssrebf">m, v5id * 1deodea.c#L161" id5deo  ;
12   >122dspan 5"net/olfiran>f="nesssrebf">m, v5id * 1a>}
 h  necms   i.;vss="sref">m, v5id *<56ef="+an9a cl"L65f9name="L2041221"nedo8912+code=d sktimer"L215"las12+co>1221span 5"net/olfiran>f="nesssc  DLC)?ref">not5lass="srei>f="nesssrebf">m, v5id */*<88888888* so"w8Lus"<88n/bcm.c#1222"nedo8912f="+code=d sktimer"L21x_12f=">1226="strin9linea>9rx__hr_f8ushdeo_pur 9rx__hr_f8ushdeodea.c#L161" id5deo  )?ref">n12 3"nedo89126="lass="lilast" i>}
1223id="L216" class65">me"511ne9112 4"nedo8912code=na9e" clref"9last_f12cod>12245-lass="lila9< /"sre5fEINVAat/caint me"511ne9112 5"nedo89129rx__hr_f8ushaint )?ref">n12 6"nedo8912161" id5"L16156 class=9"12161>1229 177
12 8_changedf="n._5" cla>9rx__hr_f8ushbcm.#L146]) iv66565" clas +e" 46f="net/can/MHm.#L146]) iv66MHm.#ot; "+code=x_op>)?ref">n1228"nedo8912   if (!122ifind}+code=x_op>)?ref">n12 9"nedo8912> 145f=thrtimer"L215"las12> 1>122urrrx( 1m58 82>->5 123ef9"n58 82>->5 1233id="static+int a>9rx__hr_f8ushtasksendt;&STARTTIMERc)trctasksendt;&;<  m, v5id  iocb/can/*a>9rx__hr_f8ushiocbf">m, v5id iocb/can,+ruct m, v5id *oce/cansnamsgULLf="net/can/bcm.NU1234"nedo8912n"" class=5=12n&q>123clame="L108"> 108       ruct 9rx__hr_f8ushcm.#L146]) iv"gt;9rx__hr_f8ushrize_r me"511ne9112O5"nedo89122" c> "= 312O=u64"ode=t5>)
m, v5id *oce/can/*a>9rx__hr_f8ushref">m, v5id *<56ef necms   i.;vss="srocef">m, v5id *oce/canref="+cod_d5c146"> 1a>}
 h"+code=x_op>)?ref">n1237"nedo8912a href="+codeDLC)?1238_changedf="nruct m, v5id tasksoce/can/*a>9rx__hr_f8ushcan/b93rer5ceived 109" href="+code=t5a">ma>}
a>(f="nesssref">m, v5id *<56eff"+code=x_op>)?ref">n1238"nedo8912d54uot; &l9ss="line"9nam12d54>123ifindexefint a>9rx__hr_f8ushe"5cass="sre5f"o.c#L>m9rx__hr_f8ush/bcm88ode=ifname"5s4quot;&qiiiiiiii"+code=x_op>)?ref">n1248"nedo8912ode=u64last_          12odspan 5"net/oint a>9rx__hr_f8ushrir  9e=ft;5  1354 clasa12 na>124et/can/bcm.#L146]) iv665+c12o2"nedo8912/a>
<=r 218r_r59tirt"94n12/a>>12oef9"necl95rer9< /clfiran>f="nesssme"511ne9112o3"nedo8912de=t5")
124"net/can/bcm.NUmsgULL._5" class="linekfrea hrefTCONN="sre5f"o.c#L>)?ref">n1244"nedo8912                (12412o5"nedo8912ULLf="net/can/bcm.NUmsgU12ULL>124=u64" clashrt8          9     93 name="L1o=""> id message length cm_s+user85                 12 21>124215"lass="lil9< /a>9rx__hr_f8ushrize 5 1248_changedf="net/can/b._5" class="linekfrea hrINVAa 8ref="87RT85)?ref">n1248"nedo8912 9 procfs functions13 no12 9 >1245ass="sref5>sk12ocm.c#L216" id8          9     93 name="L1o="alternative l"L65f9name="/a> 5  1354 clasa12 na>125 ef="+codetimerref="+code=d sk1251"nedo8912    9" cass="lin10"> 21012   >12 t/can/bcm.#L19< /clfiran>f="nessse"5cass="sre5f"o.c#L> 8< c#eRO_AUTOTIMERnetcm.#L146]) iv"gt; 145f=0"> e=ifname"5s4quot;&q0">   )
bcm_sk125ef9"necl95rer5ce96 naoifname"5cass="sre5f="nenno tound devicflasndefaultt=e* Doame="Lt;&q0"> f*t;5 12 0etifname" class="#L1ruct m, v5id *oceadd 9rx__hr_f8ushadd f">m, v5id lddn/can/=>5 tv64 name=har m, v5id *oceadd ]) iv"gt; 145f=0"> e=ifname"5s4quot;&q0">   )?ref">n12 5"nedo8912                (125rr="L165"> 1659rx__hr_f8ushcm.#L146]) iv"gt; 145f=0"> lene=ifname"5s4quot;&q0"> lenot; &l8t="sizeof(*a>9rx__hr_f8ushadd f">m, v5id lddn/canaf="+cf="net8can/b82me"4iva12 7"nedo8912cotimevalan/bktimeref="+12cot>1258_changedf="net/can/bceeeeeee._5" class="linekfrea hrINVAa 8ref="87RT85)?ref">n1258"nedo8912LLf="net/can/bcm.NUmsgUL12LLf>1255ass="sref5>sk9rx__hr_f8ushadd f">m, v5id lddn/canNUmsgULLf=    _     ref9familySTARTTIMERc)trcmAF_re9STARTTIMERc)trcAF_re9clasv>5 )?ref">n1261"nedo8912ss="lilast" ihrtimer_> 512ss=>126et/can/bcm.#L146]) iv665+c1262"nedo8912href="+code=d skl <<12hre>126ef9"necl95rer5ce96 naoifname"5cass="sre5f="nenl"L65f9nam_s+sendto(an/b93ss="string">&qu4t;rx_48code=na1263"nedo8912 madd f">m, v5id lddn/canNUmsgULLf=    _     ref9e"5cass="sre5f"o.c#L>)?ref">n1264"nedo89129" cass="lin10"> 210129" >1261265"nedo8912ss="lilast" ihrtimer_> 512ss=>12i146"> 145f=ival2cm.c#9< /a>9rx__hr_f8ushe"5cass="sre5f"o.c#L>)
9rx__hr_f8ushdeodea.c#L161" id5deo   210<12/ca>126 id="L216" class65">me"511ne911268"nedo8912et/can/bcm.c#|=uct 12iifindexef="net/caceeeeeee+cod_d5c146"> 1deodea.c#L161" id5deo  ;
li92e"5cass="sre5f"o.c#L>n1269"nedo8912nt 12665-lass="lilast" iEINVAame"5c9< /clfiran>f="nesssdeodea.c#L161" id5deo  )?ref">n1278"nedo8912 cass="lin10"> 210  12 ca>12 cref=97m.c#L216" id="ass="#L146f="net._5" class="linekfrea hrefDEV="sre5f"o.c#L>)?ref">n1271"nedo8912l"L65f9rmerm.L1/a>
127et/can/bcm.#L146]) iv665+c1272"nedo8912"ine" nam8f">nframe912 nekfrea href="+code=u6kfreaL19< /a>9rx__hr_f8ushdeodea.c#L161" id5deo  mARPHRD_re9STARTTIMERc)trcARPHRD_re9href=code=t5>)
1270etifname" class="#L146f="net/can/eee+cod_d5c146"> 1deo_pur 9rx__hr_f8ushdeodea.c#L161" id5deo  )?ref">n12 4"nedo8912/a>                     12/a>>12 clame="L108"> 108ass="#L146f="net._5" class="linekfrea hrefDEV="sre5f"o.c#L>)?ref">n1275"nedo8912 12 a href="+codetsklet_d5c146"> }+code=x_op>)?ref">n1276"nedo8912  9" cass="lin10"> 2101279 177
12 8_changedf="net/can/bceeeeeee+cod_d5c146"> 1deo_pur 9rx__hr_f8ushdeodea.c#L161" id5deo  )?ref">n12 8"nedo8912ef=97m.c#L2"strin9" cl"L12ef=>12 ifindexef="net/ca}+code=x_op>)?ref">n1279"nedo8912me"5ass="sref5>sk12 65-lass="lila}+code=x_op>)?ref">n1288"nedo8912       frames;
1282"nedo89121949 class=8 lasL216"8fu12194>128ref="+codetimerref="+code=d sk1283"nedo8912>m,4<8pan c88etifnam12>m<>128"net/can/bcm.8>9rx__hr_f8ushrir  145f="code++"f">bcm_sk9rx__hr_f8ushu846"> 145f="codeu8/can/*)RTTIMERO_AUTOTIMERne/bcm88ode=ifname"5s4quot;&qiiiiiiii L146f="net/can/bcm.#L146]) iv"gt; 145f="codea.c#L161" id5"L16156 clase" 46f="net/can/MHm.#L146]) iv66MHm.#ot; )"+code=x_op>)?ref">n12 4"nedo8912165"" class="updef=msgUL12165>12845-lass="lila9< /"sre5fEINVAat/crir )?ref">n12 5"nedo8912class=8es="line"8">if77"12cla>128=u64" clashrtimer_d="._5" cla>9rx__hr_f8ushrir n12 6"nedo8912 lass="sref">sk/a>
rx8up12 la>1289 177
9rx__hr_f8ush _  ksocef">m, v5id  _  ksoce(f="nesssref">m, v5id *<56eff"+code=x_op>)?ref">n12 8"nedo8912sk1289_changedf="nrwitch /a>9rx__hr_f8ushcm.m88ode=ifname"5s4quot;&qiiiiiiii_MODE_REaf=5<"d)
129 ef="+codetimerref="+code=d sk1291"nedo891264last_          [ifname1264l>129href=97m.c#L2>
st MODE_REaf=5<"d 177
rir li92e"5cass="sre5f"o.c#L>9rx__hr_f8ushref">m, v5id *<56eff"+code=x_op>)?ref">n1293"nedo8912oden/bcmlass="lin10"> 2112ode>1290etifname" class="#L1briik"+code=x_op>)?ref">n1294"nedo8912HRnet/can/bcmu sk &#*)+c12HRn>12912_5"nedo8912ssssssssssssrxgt;12_146"> 145f=iv>
st MODE_REaf=5<"d129ef="net/can/9cm.c590iLc77"> 177
rir li92e"5cass="sre5f"o.c#L>9rx__hr_f8ushref">m, v5id *<56eff"+code=x_op>)?ref">n1297"nedo8912            e*ex_rcu" cl12   >1298_changedf="net/can/bbriik"+code=x_op>)?ref">n1298"nedo8912indexef="net/ca8/bcm12ind>1295ass="sref5>sk 16512965-lass="lila>
st MODE_REaf=5<"d 165130 etifname" class="#L19< /"sre5fEINVAat/ctaskdeletekcodt/STARTTIMERc)trctaskdeletekcodt/  STARTTIMERO_AUTOTIMERneli92e"5cass="sre5f"o.c#L>)?ref">n13f1"nedo8913f4last_          [ifname13f4l>130href=97m.c#L216" id="cl146"> a>9rx__hr_f8ushrir ]) iv66MHm.#ot; "+code=x_op>)?ref">n13f2"nedo8913fskl me"511ne9113f3"nedo8913fden/bcmlass="lin10"> 2113fde>1300etifname" class="#L146f="neta>9rx__hr_f8ushrir )?ref">n13f4"nedo8913fRnet/can/bcmu sk &#*)+c13fRn>130clame="L108"> 108briik"+code=x_op>)?ref">n13f5"nedo8913fsssssssssssrxgt;130rr="L165"> 165130646"> 145f=iv>
st MODE_REaf=5<"d1308_changedf="net/can/b nre"sre5fEINVAat/ctaskdeletekrodt/STARTTIMERc)trctaskdeletekrodt/  STARTTIMERO_AUTOTIMERneli92e"5cass="sre5f"o.c#L>)?ref">n13f8"nedo8913fndexef="net/ca8/bcm13fnd>130ifindexef="net/caceeeeeee+cod_d5c146"> 1rir ]) iv66MHm.#ot; "+code=x_op>)?ref">n13f9"nedo8913f="+coerr="L165"> 165130"lass="lilast" idfe=n"sreL216" class65">me"511ne911318"nedo8913=    _          131 etifname" class="#L146f="neta>9rx__hr_f8ushrir )?ref">n13=1"nedo8913e"9n"L="sref">ifindex131href=97m.c#L216" id="briik"+code=x_op>)?ref">n13=2"nedo8913n>5 5>13=ref="+codetimerref="+code=d sk1313"nedo8913" cl9a>->13="net/can/bcm.>
st MODE_REaf=5<"d
 2135s4>131clame="L108"> 108celL165"+code=op" cla sklriust t;&qiiiiname="/elriplyl="+   REALes;
1315"nedo891346f="net/can/bcm.#L14   1346f>131146"> 145f=ival2cm.c#=uct )?ref">n13=6"nedo8913c52="strin9a>&quw44
9>kt13c52>131ef="net/can/9cm.c590iLc77"> 177
rir n13=7"nedo8913/ca9/bcm.91_changedf="ne13/ca>1318_changedf="net/can/bbriik"+code=x_op>)?ref">n13=8"nedo8913="sref5>sksk 145f=ife=n13=ne>13165-lass="lila>
st MODE_REaf=5<"d
13   >132 etifname" class="#L1celL165"+code=op" cla sklriust t;&qiiiiname="/elriplyl="+R  REALes;
1321"nedo8913+code=d sktimer"L215"las13+co>132href=97m.c#L216" id="=uct )?ref">n1322"nedo8913f="+code=d sktimer"L21x_13f=">1326="strin9line" nam9="Lc77"> 177
rir n13 3"nedo89136="lass="lilast" i>}
1320etifname" class="#L1briik"+code=x_op>)?ref">n13 4"nedo8913code=na9e" clref"9last_f13cod>13213 5"nedo8913 145f=iv>
st MODE_REaf=5<"d
132ef="net/can/9cm.c590iL    91m.c#L216" id="L216we37;l9 exactlylonct>me_=d sklbehr <="/elt;& iiiins;
1327"nedo8913f="neeeeeeeeeeeeeeeeeeee13f=">1328_changedf="net/can/b nre/a>9rx__hr_f8ushcm.m88ode=ifname"5s4quot;&qiiiiiiii_MODE_REaf=5<"d9rx__hr_f8ushrize mbcm.#L146]) iv66565" clas +e" 46f="net/can/MHm.#L146]) iv66MHm.#ot; =r+code=x_op>)?ref">n1328"nedo8913   if (!132ifindexef="net/caceeeeeee+cod_d5c146"> 1rir )?ref">n13 9"nedo8913> 145f=thrtimer"L215"las13> 1>132"lass="lilast" idfe=n"sreL216" class65">me"511ne911338"nedo8913ONOTONIC"L215"lass="lila13ONO>133 etifname" class="#L146f="neta>9rx__hr_f8ushrir li92e"5cass="sre5f"o.c#L>9rx__hr_f8ushref">m, v5id *<56eff"+code=x_op>)?ref">n1331"nedo89135="L215" clasan9line" na135=">133href=97m.c#L216" id="briik"+code=x_op>)?ref">n1332"nedo8913d skl <133ref="+codetimerref="+code=d sk1333"nedo8913skl 1330etifname" cldefault:+codetimerref="+code=d sk1334"nedo8913n"" class=5=13n&q>133clame="L108"> 108+cod_d5c146"> 1rir )?ref">n13O5"nedo89132" c> "= 3133146"> 145f=ival2cm.c#briik"+code=x_op>)?ref">n1336"nedo8913rcu" class="DLC)?13O215"lass="lil}+code=x_op>)?ref">n1337"nedo8913a href="+codeDLC)?133 id="L216" class65">me"511ne911338"nedo8913d54uot; &l9ss="line"9nam13d54>133ifindexef+cod_d5c146"> 1rile
stksocef">m, v5id rile
stksoce(f="nesssref">m, v5id *<56eff"+code=x_op>)?ref">n1339"nedo8913f9name="L618*s/a>
rx__pr13f9n>133urrrx(13odspan 5"net/o._5" cla>9rx__hr_f8ushrir n13o1"nedo8913 name="L135"> 1354 clasa13 na>134et/ca}+code=x_op>)?ref">n13o2"nedo8913/a>
<=r 218r_r59tirt"94n13/a>>134ref="+codetimerref="+code=d sk13o3"nedo8913de=t5")
134"net/58 82>->5 134 82>->frameer5ceivname="stdevicflstatus cer5g  [i/span>5  82>->5                 13 21>134215"lstatic+int a>9rx__hr_f8ushtasknotharived 109" id="sgop" cnothariv(m, v5id  othariv_blocespan *a>9rx__hr_f8ushnbf">m, v5id nb/can,+unsignl9 longL146f="net/can/bcm.#L146]) iv"gt;5 1348_changedf="net/can/bbbbbbbbbvoid/*a>9rx__hr_f8ushdata#L146]) iv"data56eff>5 1345ass=ode=t5>)
1349_changedf="nruct 9rx__hr_f8ushdeodea.c#L161" id5deo  ]) iv"data56ef +code=x_op>)?ref">n1358"nedo8913 name="L135"> 1354 clasa13 na>1350_changedf="nruct m, v5id tasksoce/can/*a>9rx__hr_f8ushcan/b93rer5ceived 109" href="+code=t5a">mconta> 1r_off">m, v5id conta> 1r_of(f="nesssnbf">m, v5id nb/can,+ruct m, v5id tasksoce/can,+a>9rx__hr_f8ushnotharived 109" id="sgonothariv()?ref">n1351"nedo8913    9" cass="lin10"> 21013   >13 t/can/bcm.#L1ruct m, v5id *oce/can/*a>9rx__hr_f8ushref">m, v5id *<56ef neRTTIMERO_AUTOTIMERne}
 h"+code=x_op>)?ref">n13 2"nedo8913SETTIMERc)trcf">bcm_sk135ef9"necl95rerruct 9rx__hr_f8usht/can/bcm.#L146]) i"+code=x_op>)?ref">n13 3"nedo8913ast_          13 0etifname" clint a>9rx__hr_f8ushnothay_enodeodea.c#L161" id5nothay_enodeo56ef ne0"+code=x_op>)?ref">n13 4"nedo891313 5"nedo8913                (135146"> 145f=iv9< /clfiran>f="nesss hr_eqe"ropp9x_rcu" c hr_eq(f="nesssdeo_nir )?ref">n13 6"nedo8913cotimevalan/bktimeref="+13cot>135ef="net/can/9cm.c590i._5" cla>9rx__hr_f8ushNOTIFY_DONEe=ifname"5s4quoNOTIFY_DONE]) i"+code=x_op>)?ref">n13 7"nedo8913cotimevalan/bktimeref="+13cot>135 id="L216" class65">me"511ne911358"nedo8913LLf="net/can/bcm.NUmsgUL13LLf>135          mARPHRD_re9STARTTIMERc)trcARPHRD_re9href=L216" class65">me"511ne911359"nedo8913="+c5503X &cl9ls="line"913="+>135"lass="lilast" idfe=n._5" cla>9rx__hr_f8ushNOTIFY_DONEe=ifname"5s4quoNOTIFY_DONE]) i"+code=x_op>)?ref">n1368"nedo8913ived "id="L179" c!lass="13ive>136 ef="+codetimerref="+code=d sk1361"nedo8913ss="lilast" ihrtimer_> 513ss=>136t/can/bcm.#L1rwitch /a>9rx__hr_f8ushcm.#L146]) iv"gt;)
 
st MODE_REaf=5<"d 210139" >136clame="L108"> 108+cod_d5c146"> 1 _  ksocef">m, v5id  _  ksoce(f="nesssref">m, v5id *<56eff"+code=x_op>)?ref">n1365"nedo8913ss="lilast" ihrtimer_> 513ss=>136rr="L165"> 165/*<88888888* so"w8Lus"<88n/bcm.c#13STARTTIMER3/can/bcass="lin10"> 210<13l95rer9< /clfiran>f="nes0bl95rer9< /clfiran>f="nes0bl95rer9< /clfiran>f="nes0bl95rer9<1I1h888* so"w8Lus"<88n/bcm.c#13STARTTIMER3/9x_rcu" cnypflass=!refeach_f="nlasenum1268"nedolass=!refeach_f="nlimer_> 513ss=>136rr="nedo8911ef=97m.c#L2"strif="net/can/bcm.m88ode=ifname"5s4quot;&qiiiiiiii_MODE_REaf=5<"dli92 href=97m.c#L216" id="cl146"/clfiran>f="nes0bl95rer9< /cl_sk;
mARPHRD_r81"nedo8911Lf="net/can/bcm.NUmsgULL11Lf=>1165f9rmerm.et/90L nal check5_9rmerm.span--ine"9>12   >122dspan 5"net/olfiran>f="ness"/clfiran>f="nes0bl95rer9< /cifname"5s45deo  )?ref3>n1278"nedo8912 cass="lin10"> ARTTIMER3/9x_rcu" cnypfa>]) ivun9rmcode=u64last_   rodtivun9rm"sef=r+code=x_op>)?ref">n13 6"nedo8913c?ref">n1178"nedo8911ef=97m.c#L2"stt ]) iv"g>nframe912 nekfrea href="+3ode=u37me"5s4quoop/canhref  nSTARTTIMER3/can/bcass="lin10"> 210<13lusherence,ycododetietiour        f="nes0bl95rer9< /c#L161" id3deo  124"net/can/bcm.NUmsgULL._5" c0">   )
12   >122dspan 5"net/olfiran>f="ness="/a> 5  9rx3_hr_f3ushdeodea.c#L161" id5deo  124"net/can/bcm.NUmsgULL._5" c0 --165">13 5"nedo8913            rea hrefDE3="sre5f"o.c#L>)?ref">n1275"nedo89e=t5>)
13 5"nedo8913            r_w49  210<312  931279 177
13513 5"nedo8913            ricflspecha_129ss>12 8_changedf="net3can/b37so"w8Lus"<88n/bcm.c#1 sk13o3"nedo8913de=t5")
9rx__hr_f8u3hdeod37EINVAat/cdeodea.c#L161" id5deo  o8912me"5a3s="sref5>sk13 65-l3ss="lila}+code=x_op>)?+code=x_op>)?ref">n1339"nedo8913f9name="L618*s/a>
rx__pr13f9n>133urrrx(135 fr3mes;
)?ref">n1rx(
 }+code=x_op>)?ref">3n c88etifn3m12>m<>128"net/can/bcm.8>3rx__h38ropp9x_rcu" cnypflass=!ref="+code href12fss>12f=u6st" flamcode=u64last_  6st" flam>
rx__pr13f9n>133urrrx(n1178SOCK_D32 etifname" classSOCK_D32 _5" cla>9rx__hr_f8ushNOTIFY_DONEelass="srei3gt;3145f=38shdeodea.c#L161" id5deo  )?ref"rx(
rx__pr13f9n>133urrrx()?ref">n13 5"ne38_op>)?ref">n127 sk13o3"nedo8913de=t5")
)?ref3>n12 3"nedo8912 lass="sref">op>)?ref">n1337"nedo8913a hr 1287="strin9linea>3rx__h3_f8ush _  ksocef">m, v5id  _3 ksoce(f="nesssref">m3 v5id3*<56eff"+code=1364"nedo89139" cass="lin10DOW135"lass="lilast="lin10DOW1od_d5c146"> 1 _  ksocef">m, ss="lilast3 12ss >1289_changedf="nrw3tch /38s="lila}+code=x_op>)?er5ceived 109" id="so3"nedo8912de=t5")
124"net/can/bcm.NUmsgULL._5" c0">   )
12   >122dspan 5"net/olfiran>f="ness="/a> 5   )?ref">n1rx(
 }+code=x_op>)?ref">3     [ifna3e1264l>129href=97m.c#L2>
3t MOD39TARTTIMERc)trctaskcodsend;<  code href12fss>12f=u6st" flamcode=u64last_  6st" flam>
rx__pr13f9n>133urrrx(n1178SOCK_D32 etifname" classSOCK_D32 _5" cla>9rx__hr_f8ushNOTIFY_DONEeoTX_SETUPr3f=:+codetimerref="+code=d3sk12939>]) iv66MHm.#ot; "+code=x_op>+code=x_op>)?ref"rx(
rx__pr13f9n>133urrrx(123 145f=iv>
3t MOD3_REaf=5<"def="net/ca8/bcm123nd>1239EINVAat/cdeodea.c#L161" id5deo  165"> 165<3a12f=">12965-lass="lila>
3t MOD3_REaf=134 82>->frameer5ceivname=uoTX_DELET3ref=:+codetimerref="+code3d sk13f8"nedlasenum1345"nedo8913ULLf=m.c5ial settings"> 1354lhar <;)/bcm.tim5  1m58 82>-> l95rer9< /clfiran>f="nes0bl95rer9< 4="+coderir4cant5lass="srei>]) iv_blocef">m, v5id  otharivm.c5code=u64last_   rodm.c5>
rx_O_AUTOTIMERne}
 h"+code=x_ola>9rx__hr_f8ushNOTIFY_DONE4nedo8913fd4n/bcmlass="lin10"> 2113fd4>13004tifnam sk1363"nedo8913 ma>}
a>(f="nesssref">m, v5id *<56eff"+code=x_op>)?ref">n1238"nedo8912d54uot; &l9ss="line"9nam12d54>123ifindexefint a>9rx__hr_f8ushe"5cass="sre5f"o.c#L><45"nedo89134sssssssssssrxgt;1340REaf=5<"d130646"> 145f=iv>
4t MOD40h569"strin9claived 109" id="so3"nedo8912de=t5")
124"net/can/bcm.NUmsgULL._5" c0 -----------165">13 5"nedo8913           4uoRX_DELET4ref=:+codetimerref="+code4d sk14f7"nedo8913f  e=t5>)
13 5"nedo8913           4u7RX_DELET4rdexef="net/ca8/bcm124RTTIM40<56eff"+code=x_op>)?re skldefaulttl"L65f9name="/a> 13 5"nedo8913           4="+coderir4cant5lass="srei>)?12ss= <)?ref">n12NUL46"> 145f=ival2cNUL4de=d sk1361"nedo8913ss="lilast"4nedo8913= 4  _          131 40rx__hr_f8ushrir m, INIT_LIST_H32 etifname" classINIT_LIST_H32 ine"9IMERO_AUTOTIMERne/bcm88ode=ifname"5s4quot;&qiiiiiiii L146f="net/can/be"5cass="sre5f"o.c#L><42"nedo89134>5 5>1341end(f="nesssrebf"INIT_LIST_H32 etifname" classINIT_LIST_H32 ine"9IMERO_AUTOTIMERne/bcm88ode=ifname"5s4quot;&qiiiiiiii L146f="netcef9"net/90L nal check5_g 109" _f8ushe"5cass="sre5f"o.c#L><42edo8913fd4o13" c>13="net/can/bcm.>
4t MOD4_REaf=5<"d
4
]) iv"gc54l t/can/bcm.#L1ruct )?ref">n1238"n_blocespan *a>9rx__hr_f8ushnbf">m, f8ushe"5cass="sre5f"o.c#L><42can/bcm.N4iiiii_MODE_REaf=5<"d)
9rx__hr_fregist hg134=u64"5n_blocespine"9IMERO_AUTOTIMERne/bcm88ode=ifname"5s4quot;&qiiiiiiii L146f="net13   >13 t/can/bcm.#L1ruct m, v5id 48"nedo89134"sref5>sk1341EINVAat/cdeodea.c#L161" id5deo 4> 145f=ife4n13=ne>13165-lass="lila>
4t MOD41v5id *<56eff"913ived65">13 5"nedo8913           4R  REALref4:+codetimerref="+code=d s41328"4edo891 sk13o3"nedo8913de=t5")
4
]) iv"44quot;&qii4iiiii_MODE_REaf=5<"d5 frameer5ceivname4ir/cant5la4s="srei>1233id="static+int a>9r85 13423   >134 82>-> l95rer9< /clfiran>f="nes0bl95rer9< 4de=d skl <4/13132146"> 145f=iv>
4t MOD4_REaf=v_blocef">m, v5id  otharivme="L61code=u64last_   rodte="L61>
rx_O_AUTOTIMERne" class=5=12n&q>123clame="L108"> 108      la>9rx__hr_f8ushNOTIFY_DONE4   SENLref4:+codetimerref="+code=d s41326"42rem, v5id 4xactlylonc4>me_=d sklbehr <="/elt;& 4iiins4/a>;
m, v5id *oce/canref="+cod_d5c146"> 1a>}
 h"+code=x_op>)?ref">n1237"nedo8912a href="+codeDLC)?1238_changedf="nruct m, v4me"5s4quot4&qiiiiiiii_MODE_REaf=5<"d4ref="42eived 109" href="+code=t5a">ma>}
a>(f="nesssref">m, v5id *<56eff"+code=x_ome"5casstasksocef">m, v4m 145f=ife4cant5lass="linekfrea hrIN4Aa 8r4f="87RT85)?ref">n13 3"nedo8913ast_          13 0etifname" clint a>9rx__hr_, m, v4m  REALref4TONIC"L215"lass="lila13ON4>133 42rx__hr_f8ushrir  h"+code=x_op>)>)?ref">n12NUL46"> 145f=ival2cNUL4de=dla>9rx__hr_f8ushNOTIFY_DONE42"nedo89134 skl <134ref="+codetimerref="+c913ived65">13 5"nedo8913           4cass="sre54"13skl>1330etifname" clde4ault:4codetimerref="+code=d sk1334"ned48913n"4" class=5=13n&q>134clame43ode++"f">bcm_sk9 v5id *<56eff"+code=x_op>)?ref">n1238"nedo8912d54uot; &l9ss="line"9nam12d54>123ifindexefint a>9rx__hr_f8ushe"5cass="sre5f"o.c#L><4ir/cant5la4s="linekfrea hrINVAa 8ref4"87RT43REaf=5<"d     f="nes0bl95rer9< 4ref="+code4LC)?133 id="L416" c43f8ush _  ksocef">m, v5id  _4s="line"9n4m13d54>133ifindexef+c4d_d5c43<56eff"+code=x_op>)?reun9rmist hg134=u64"5n_blocespan *a>9rx__hr_fun9rmist hg134=u64"5n_blocespine"9IMERO_AUTOTIMERne/bcm88ode=ifname"5s4quot;&qiiiiiiii L146f="net13   >13 t/can/bcm.#L1ruct m, v5id 4rile
stkso4e(f="nesssref"4m43REaf=5<"d
n1365"nedo8913ss="lilast" ihrtimer_> 513ss=>136rr="L165"> 165n13o1"4edo89449rx__hr_f8ushcm.#L146]) iv"4r_r59tirt"44n13/a>>134ref="+codetime4ref="44end(f="nesssrebf"lass=!refeach_f="nl_saf1code=u64last_  lass=!refeach_f="nl_saf1imer_> 513ss=>136rr=fname" clint a>9rx__hr_, a h569"strin9claex4"nedo8912n"aex4=x_orif="net/can/bcm.m88ode=ifname"5s4quot;&qiiiiiiii_MODE_REaf=5<"dli92 href=97m.c#L216" id="cl146"/clfiran>f="nes0bl95rer9< 4re59class94113de=>134"net/58 82>4><44Rc)trctaskreii_t/  STARTTIMERO_AUTOT rodte10">dt/code=u64last_   rodt/10">dt/imer_> 513ss=>136rr=fname" clint a>9rx__hr_t 5  513ss=>136rr=fname" clint a>9rx__hr_, a h569"strin9claex4"nedo8912n"aex4=x_orif="net/can/bcm.m88ode=ifname"5s4quot;&qiiiiiiii_MODE_REaf=5<"dli92 href=97m.c#L216" id="cl146"d sk1363"nedo8913         4     44me"5s4quoop/canhref  n h569"strin9clasenum1;frameer5ceivname4sgop" cnot4ariv( 82>->                 * Don't car na> we'r n      LL>1ot (duem.c#134=u6 problems)a href=*+notharc>frameer5ceivname4s="line"9n4iv"data56eff>5  82>->                 * ee13tivun9rmist h()ietialwaytia sa"> thingm.c#do here.a href=*+notharc>frameer5ceivname4sile
stkso41349_changedf="nr4ct  82>->                 *95rer9< /clfiran>f="nes0bl95rer9< 4cu" c hr_d4vicf/can/*a>9rx__hr_f8ush4eodea44ARTTIMERc)trc11an>5  9rx__hr_f8ushcan/493rer45TARTTIMERc)trctaskcodsend;<  < h569"strin9clasenum1;frameer5ceivname4oce/can/*a49rx__hr_f8ushref">m, 45id *45n>5  subscrip/bcm< that had>1ota href=*+notharc>frameer5ceivname4oe59class94/*a>9rx__hr_f8usht/can/bc4.#L144512skl>1233id="static+int a>9MERc)trctaskcodsend;<   * beenlin10">d duem.c#"L108"> 108+codhref=*+notharc>frameer5ceivname4o913n"4_enodeo56ef ne0"+code=x_o4>)?134 82>-> MERc)trctaskcodsend;<   * in 8ushnbf">mframeer5ceivname4    (135146"> 145f=iv9<4/clfi45rin9clasenum1345"nedo8913ULLMERc)trctaskcodsend;<   *95rer9< /clfiran>f="nes0bl95rer9< 4hr_eq(f="nesssdeo_nir mARPHRD_r81"nedo8911Lf="net/can/bcm.NUmsgULL11Lf=>1165f9rmerm.et/90L nal check5_9rmerm.span=d sk1363"nedo8913 )4ref">n13 7"nedo88888888888888888   210<12/ca>126 id="L216" class65">me"511ne911268"nedo8912et/can/bcm.4/bcm.NUmsg4L13LLf>135          126 id="L216" class65">me"511nli92e"5cass="sre5f"o.c#L>n1269"nedo8912nt )4ref">n1368"nedo8a href="necree9=code=t5a">mARPHRD_rpan 5"net/olfiran>f="ness"d sk1363"nedo8913 4513ss=>136t/can/bcm.#L1rw4tch /46_op>)?ref">n1271"nedo8912l"L65fyyyyyyyy210<12/ca>126 ia>]) ivun9rmcode=u64last_   rodtivun9rm"sef=r+code=x_op>)?ref">n13 6"nedo8913c?ref">n1178"nedo8911ef=97m.c#L2"stt )
]) iv66MHm.#ot; "+code=x_op>+code=x_yyyyyyyy210<12/ca>126 id="2 8"nedo8912ef=97m.c#L2"strin9" cl"L12ef=>12 ifindexef="net/ca}+code=x_op>)?ref">n1279"ne4="+c42e=rx4w13136"net/can/bcm.>
4t MOD46ropp9x_rcu" cnypflass=!ref="+++++++++ sk13o3"nedo8913de=t5")
f="nesssre4">m, v5id *<56eff"+code=}f="neta>9rx__hr_f8ushrir 13ief="net/can/9cm4c590i46279 177
12 iNUL46"> 145f=ival2cNUL4de=df5"+cod54uot; &1281"nedo8911Lf="net/can/bcm.NUmsgULL11Lf=>11c5>ref">n13f8"nedo8913fndexeta>9rx__hr_f8ushrir /*<884888884 so"w8Lus"<88n/bcm.c#1code=x_op>+code=x_yyyyyyyy210<12/ca>126 i08n13f8"nedo89108 513ss=>136rr=fname" clint a>9rx__hr_bcm.NUmsgULL11Lf=>11c5>ref">n13f8"nedo8913fndex)eta>9rx__hr_f8ushrir +code=x_yyyyyyyy210<12/ca>126 i rodtivNUmsgU1code=u64last_   rodtivNUmsgU1913c?ref">n1178"nedo8911ef=97m.c#L2"stt ;

)?ref4>n1278"nedo8912 cass="ARTTIMERO_AUTOT rodte10">dt/code=u64last_   rodt/10">dt/imer_> 513ss=>136rr=fname" clint a>9rx__hr_t )?r sk13o3"nedo8913de=t5")
nframe912 nekfrea href="+4ode=u47me"5ssk13o3"nedo8913de=t5")
"+c42e=rx4deo    <f="ny *95rer9< /clfiran>f="nes0bl95rer9< 4_pur 9rx4_hr_f4ushdeodea.c#L1code=t5a">mARPHRD_r <   )
f="nes0bl95rer9< 4rea hrefDE4="sre5f"o.c#L>)?ref">n127e=t5>)
d <d < 513ss=>136rr= skldefaulttl"L65f9name="/a> ref">n1178 < 210<412  947lL165"+code=op" cla sklrimovehd4ricflspech4_129ss>12 8_changedf="net4can/b47so"w8Lus"<88nnSTARTTIMER3/can/bcass="lin10"> 210<13lusherence *95rer9< /clfiran>f="nes0bl95rer9< 4_bcm.NUmsg4deo_pur"5ca/a>9rx__hr_f8u4hdeod477hdeodea.c#L1code=t5a">mARPHRD_rso3"nedo8912de=t5")
124"net/can/bcm.NUmsgULL._5" c"d sk1363"nedo8913 14 65-l4ss="lila}+code=x_op>)?+code=x_op>)?124"net/can/bcm.NUmsgULL._5" c0 --165">13 5"nedo8913           4    13 5"nedo8913           4bcm.NUmsgU4L12Lf=>12 href=97m.c#L2ce4L165"48_op>)?r sk13o3"nedo8913de=t5")
fr4mes;
m<>128"net/can/bcm.8>4rx__h48ropp9x_rcu" cref">n1237"ne_orpNUmdo8912a href="+code_orpNUmimer_> 513ss=>136rr="L165"> 1654145f=48ode++"f">bcm_sk97"nedo8912a href="+codeDLC)?1238_changedf="nruct )?ref">n12NUL46"> 145f=ival2cNUL4de=d sk1361"nedo8913ss="lilast"4antl8t="sr4code=x_op>)?ref">n14 5"ne48REaf=5<"d)?ref4>n12 48h569"strin9claived 109" id="pa5>ref">n1339"nedo8913f9name="L618*s/a>
rx__pr13f9n>133urrrx(1287="strin9linea>4rx__h487"nedo8913f  e=t5>)

rx__pr13f9n>133urrrx(f="nesssref">m4 v5id48EINVAat/cdeodea.c#L161" id5deo 4ss="lilast4 12ss >1289_changedf="nrw4tch /48v5id *<56eff"913ived65">13 5"nedo8913           44quot;&qii4iiiii_MODE_REaf=5<"d129href=97m.c#L2>
4t MOD499rx__hr_f8ushcm.#L146]) iv"4oTX_SETUPr4f=:+codetimerref="+code=d4sk12949>]) iv_blocef">m, v5id  otharivconnec5code=u64last_   rodconnec5>
rx_O_AUTOTIMERne" class=5=12n&q>123clame="L108"> 108      nothariv(  add7
123uadd7
m, v5id  othlemdo8912a href="+lemeta>9rx__hr_f8ushrir m, v5id  othflamnet/90L nal checflamn5id "/clfiran>f="nes0bl95rer9< 44"nedo89124Rnet/can/bcmu sk &#*)+c124Rn>124  145f=iv>
4t MOD49_op>)?rthariv(  add7_cUmdo8912a href="+codeadd7_cUm5>" class=5=12n&q>123add7
)?  add7_cUmdo8912a href="+codeadd7_cUm5>" cl4 clasa13 na>135uadd7
13 5"nedo8913           4oRX_SETUPr4f=:+codetimerref="+code=d4sk1294"nedo89121msgU.;vss="srocef">m, v5id *oce/canref="+cod_d5c146"> 1a>}
 h"+code=x_op>)?ref">n1237"nedo8912a href="+codeDLC)?1238_changedf="nruct m, v4ir/cant5la4s="srei>;
m, }
a>(f="nesssref">m, v5id *<56eff"+code=x_op>)?ref">n1238"nedo8912d54uot; &l9ss="line"9nam12d54>123ifindexefint a>9rx__hr_f8ushe"5cass="sre5f"o.c#L><44ksoce(ef="net/ca8/bcm124nd>1249EINVAat/cdeodea.c#L161" id5deo 4165"> 165<4a12f=">12965-lass="lila>
4t MOD49flass=!ref="+code=t5a">mARPHRD_rlemdo8912a href="+lem < ot; of(lass=5=12n&q>123add7
9rx__hr_f8ushNOTIFY_DONE4uoTX_DELET4ref=:+codetimerref="+code4d sk149spa5>ref">n1368"nedo8913ivedfe=name"+co132" >133146"> 145f=ival2cm.c#briik"+code=x_op>)?ref">n135/STARTTIME5c)trctaskdeletekcodt/  ST5RTTIM509rx__hr_f8ushcm.#L146]) iv"5="+coderir5cant5lass="srei>mARPHRD_rso3"nedo8912de=t5")
124"net/can/bcm.NUmsgULL._5" c"hr_f8ushcm.#L146]) iv"5=2+coderir5c="srei>130050ERc)trctaskcodsetu/  913ivedfe=name"+co132" >1SCON135"lass="lilast>1SCON1iik"+code=x_op>)?ref">n135/3+coderir5cnet/can/bcmu sk &#*)+c125Aa 8r503   >1350f9"net/92ss="_STARTTIMER3/can/bcass="lbchana 210<13ltododeti;f="nes0bl95rer9< 5/can/bcm.N5m13fms>130646"> 145f=iv>
5t MOD50h569"strin9clcode=t5a">mARPHRD_radd7
11c5>ren>5 ren>5   210<12/ca>126 id="L216" class65">me"511ne911268"nedo8912et/can/bcm.5u7RX_DELET5rdexef="net/ca8/bcm125RTTIM50EINVAat/cdeodea.c#L161" id5deo 5="+coderir5cant5lass="srei>)?+code=x_op>)?me"511nli92e"5cass="sre5f"o.c#L>n1269"nedo8912nt 
11c5>ren>5 ren>5 131 50ARTTIMERc)trc12f=upan 5"net/olfiran>f="ness"/clfiran>f="nes0bl95rer9< 5="+coderir5cant5lass="linekfrea hrIN5Aa 8r51_op>)?ref">n1271"nedo89913ivedfe=name"+co132" >12 a href="+codetsklet_d5c146"> }+code=x_op>)?ref">52"nedo89135>5 5>1351me"5ssk13o3"nedo8913de=t5")
13="net/can/bcm.>
5t MOD51ropp9x_rcu" cnypflasser5ceived 109" id="e9STARTTIMERc)trcARPHRD_re9href=L216" class65">me"511ne911359"nedo8913="+c5503X &cl9ls="line"913="+>135"lass="lilast" idfe=n._5" cld sk1363"nedo8913 12 ifindexef="net/ca}+code=x_op>)?ref">n1279"ne5qiiiiname=5/elriplyl="+   REALes5
)?ref">n1271"nedo89913ivedfe=name"+co132" >12 a href="+codetsklet_d5c146"> }+code=x_op>)?ref">52can/bcm.N5iiiii_MODE_REaf=5<"d
m, v5id  _58"nedo89135"sref5>sk13518n/bcm.c#13STARTTIMER3/9x_rcu" cnypf skldefaulttl"L65f9name="/a> 5 5  }+code=x_op>)?ref">52"+coderir5n13=ne>13165-lass="lila>
5t MOD51s="lila}+code=x_op>)?+code=x_op>)?12 ifindexef="net/ca}+code=x_op>)?ref">n1279"ne5q9+coderir5:+codetimerref="+code=d s51328"51rx__hr_f8ushrir 5
)?r f="ned sk1363"nedo8913 erfa13lusherence > 13senum12--16 ('any' n._ 210<13) *95rer9< /clfiran>f="nes0bl95rer9< 5ir/cant5la5s="srei>13 5"nedo8913           54"nedo89135ode=na9e" clref"9last_f135od>1352liv" c  eou#" sk13o3"nedo8913de=t5")
132146"> 145f=iv>
5t MOD52REaf=5<"d124"net/can/bcm.NUmsgULL._5" c0-115">13 5"nedo8913           5xactlylonc5>me_=d sklbehr <="/elt;& 5iiins52f8ush _  ksocef">m, v5id  _5me"5s4quot5&qiiiiiiii_MODE_REaf=5<"d5ref="527hdeodea.c#L1code=t5a">mARPHRD_r < socef">m, v5nprc">simer_> 513ss=>136rr= skldefaulttl"L65f9name="/a> "%lu"5rer9< e" na135=">133hrefode_i.c#skldefaulttl"L65fode_i.c#sine"9nam12d54>123ifindexefint a>9rx__hr_e=x_op>)?ref">n1279"ne5="+coderir5cant5lass="srei>)?ref">n127aived 109" id="so3"nedo8912de=t5")
12ss= <)/e_0_chimer_> 513ss=>136rr= skldefaulttl"L65f9name="/a> 9rx__hr_f8ushrir 135ref="+codetimerref="+cccccccccccccccccccccccccccccccccccccc=t5a">mARPHRD_r <9rx__hr_f8ushrir 1330etifname" clde5ault:53ropp9x_rcu" cnypflass=!ref="++++++++++++++++++++++++++++++f="net/can/bcm.m88odess= <efint a>9rx__hr_f8ushe"5cass="sre5f"o.c#L><58913n"5" class=5=13n&q>135clame53liv" c  eou#" sk13o3"nedo8913de=t5")
13 5"nedo8913           5ref="+code5LC)?133 id="L516" c53ERc)t sk13o3"nedo8913de=t5")
133ifindexef+c5d_d5c53EINVAat/cdeodea.c#L161" id5deo 5rile
stkso5e(f="nesssref"5m53REaf=v_blocef">m, v5id  otharivmecvref="+codetimerrefarivmecvref>
rx_O_AUTOTIMERne 210<12/ca>126 iiocotharived 109" iiocon10"nothariv(  34"nedo8912n"" class=5=12n&q>123clame="L108"> 108      nat/cdeodea.c#L161" id5deo 5r9+coderir5l13ode>13odspan 5"net/o._5" cla53spa5>ref">n1368"nedo8a href=thariv(
123changedf="net/can/bbbbbbbb(" c" ,ef">m, v5id  othflamnet/90L nal checflamn5id "/clfiran>f="nes0bl95rer9< 5r/can +cod5=x_op>)?ref">n13o1"5edo89549rx__ sk1363"nedo8913 >134ref="+codetime5ref="546ef neRTTIMERO_AUTOTIMERne}
 h"+code=x_op>)ref">n1237"nedo8912a href="+codeDLC)?1238_changedf="nruct m, v5re59class95113de=>134"net/58 82>5><54Rc)trctaskreiO_AUTOTIMERnem, v5nk_bufs cla skl }
m, v5r913n"5nedo8913                (5a hre545>ref">n13 4"nedo891313 5"nedo8913           5rr/cant5la5tatus cer5g  [i/span>5 m, v5r"nedo89135"nedo8913 210        5     54me"5s4quoop/cnedo8913m, v5ref="+code5ariv(m, v5id  _5s="line"9n5iv"data56eff>5 )?re hbl"nedo8912a href="+ hbl"nee, v5id  othflamnet/90L nal checflamn5id  )
m, v5rile
stkso51349_changedf="nr5ct )?m, v5r9+coderir5vicf/can/*a>9rx__hr_f8ush5eodea548ode=ifname"5iiii L146f="netmeotharived 109" imeoe)ref">n1237kbvmecv_0_chgramtharived 109" imeovmecv_0_chgramine"9nam12d54>123ifindexefint a>9rx__hrb(<5id tasksoc5/can/*a>9rx__hr_f8ushcan/593rer55TARTTIMERc)tr /a> href12fss>12f=u6eotharived 109" imeoef="nes0bl95rer9< 5oce/can/*a59rx__hr_f8ushref">m, 55id *55ef="+codetimerref="+c913ivedt/can/bcm.m88od177retharived 109" i177re39"nf8ushe"5cass="sre5f"o.c#L><5ie59class95/*a>9rx__hr_f8usht/can/bc5.#L1455odetimerref="+code=d sk1334"ned5o913n"5_enodeo56ef ne0"+code=x_o5>)?mARPHRD_r6eotharived 109" imeoe)?1238_chlemdo8912a href="+lem < " "/clfiran>f="nes0bl95rer9< 5or/cant5la5i13   >135146"> 145f=iv9<5/clfi55_op>)?ref">n127e=t5>)
" p>)ref">n1237kbtharived 109" imeoe)?1238_chlemdo8912a href="+lemf8ushe"5cass="sre5f"o.c#L><5i"nedo89135firan>f="nesssdeo_nir )557"nedo8913f  e=t5>)
)ref">n123memcpy_toiovecngedf="net/can/bemcpy_toiovecine"9nam12d54>123ifichangedf="net/can/bbbbbbb/a>)?1238_chbbb_iovngedf="net/can/bbb_iov href5"+cod54uot; &12ndbtharived 109" imeoe)?1238_ch0_changedf="nruct <0_chimerb(" "f8ushe"5cass="sre5f"o.c#L><5i="line"9n5L13LLf>135          mARPHRD_r177tharived 109" i177e ref">n1237kbvfree_0_chgramtharived 109" imeovfree_0_chgramine"9nam12d54>123ifindexefint a>9rx__hrb(<5i9+coderir5quoNOTIFY_DONE]) i"+code=5_op>)5ref">n1368"nedo8913ivedt/can/bcm.m88od177tharived 109" i177em, v5ihrtimer_>5513ss=>136t/can/bcm.#L1rw5tch /56_op>)?r sk13o3"nedo8913de=t5")
)

5t MOD56ropp9x_rcu" c na135=">133hrefode_mecv_ts_and_dropnet/90L nal checfode_mecv_ts_and_dropnine"9nam12d54>123ifichangedf="net/can/bbbbbbbf5"+cod54uot; &12ndexefint a>9rx__hrb(<5ame"5s4quo5ETDEV_UNREGISTERref=:+cod5timer563   >f="nesssre5">m, v5id *<56efcode=t5a">mARPHRD_rchangedf="net/can/bbbbbbb/a>)?1238_chbbb_fDEVcode=u64last_  bbb_fDEVhdeotd sk1363"nedo8913 13ief="net/can/9cm5c590i56279 177
mARPHRD_rchangedf="net/can/bbbbbbb/a>)?1238_chbbb_fDEVlemdo8912a href="+bbb_fDEVleme)ot; of(ata56ef +code=x_op>)?  add7_cUmdo8912a href="+codeadd7_cUm5>" "f8ushe"5cass="sre5f"o.c#L><5agop" cnot5rclriceive  clri; &>/*<885888885 so"w8Lus"<88n/bcm.c#1ref">n123memcpyngedf="net/can/bemcpyine"9nam12d54>123ifichangedf="net/can/bbbbbbb/a>)?1238_chbbb_fDEVcode=u64last_  bbb_fDEVhdeof5"+cod54uot; &12ndbtharived 109" imeoe)?1238_chcotharived 109" icon10"no=t5a">mARPHRD_rchangedf="net/can/bbbbbbb/a>)?1238_chbbb_fDEVlemdo8912a href="+bbb_fDEVleme<5a="line"9n5nes0bl95rer9<1I1h888* so"58Lus"588n/bcm.c#13ST sk13o3"nedo8913de=t5")
;

)?ref568ode=ifname"5iiii L146f="netmeovfree_0_chgramtharived 109" imeovfree_0_chgramine"9nam12d54>123ifindexefint a>9rx__hrb(<5rea hrefDE5="sre5f"o.c#L>]) iv"5>nframe912 nekfrea href="+5ode=u57ef="+codetime913ivedt/can/bcm.m88odaize"nedo8912n"ize5>" f8ushe"5cass="sre5f"o.c#L><5r"+c42e=rx5deo  9rx5_hr_f573   >" c" c=d sk1363"nedo8913  210<512  957279 177

<>)ref">n123PF"+>135"lass="lilastPF"+>1    nat/cdeodea.c#L161" id5deo 5ricflspech5_129ss>12 8_changedf="net5can/b57so"w8Lus"<88nt; &!ref="+code=me="L61code=u64last_  te="L61>
rx7
<>)ref">n123brivme="L61code=u64last_   rodte="L61>
rxnat/cdeodea.c#L161" id5deo 5r="line"9n5deo_pur"5ca/a>9rx__hr_f8u5hdeod577hdeodea.c#L1t; &!ref="+code=bchacode=u64last_   i._5" c0 -------->)ref">n1237"ne_no_bchacode=u64last_  7"ne_no_bcha>
rxnat/cdeodea.c#L161" id5deo 5rl_sksk15 65-l5ss="lila}+codet; &!ref="+code=connec5code=u64last_  connec5>
rx7
<>)ref">n123brivconnec5code=u64last_   rodconnec5>
rxnat/cdeodea.c#L161" id5deo 5rifname"5s5  ef="net/12   >128 ef="+5odeti57n1278"nedo891t; &!ref="+code=;)ref">n1237"ne_no_;
rxnat/cdeodea.c#L161" id5deo 5bcm.NUmsgU5L12Lf=>12 href=97m.c#L2ce5L165"58_op>)?rt; &!ref="+code=accep5code=u64last_  accep579 177
<>)ref">n123;
rxnat/cdeodea.c#L161" id5deo 5bnframe9;

rx7
<>)ref">n123;
rxnat/cdeodea.c#L161" id5deo 5b"+c42e=rx5m12>m<>128"net/can/bcm.8>5rx__h58ropp9x_rcu" ct; &!ref="+code=po4l t/can/bcm.#L1rpo4l5" c0 -------->)ref">n1230_chgram_po4l t/can/bcm.#L1r0_chgram_po4l>
rxnat/cdeodea.c#L161" id5deo 5bpur 5145f=58ode++"f">bcm_t; &!ref="+code=ioctl t/can/bcm.#L1rioctl5" c0 ------->)ref">n123c5>reoctl t/can/bcm.#L1rc5>reoctl__hrb(me"5iSTARTTIMER3/can/bcass="luse c5>reoctl() from af_cUm.c *95rer9< /clfiran>f="nes0bl95rer9< 5antl8t="sr5code=x_op>)?ref">n15 5"ne584de++"f">bcm_t; &!ref="+code=d="cemdo8912a href="+l="cem79 177
<>)ref">n123;
rxnat/cdeodea.c#L161" id5deo 5b_w49 )?ref5>n12 58279 177
>)ref">n1237"ne_no_;hutdowmdo8912a href="+;"ne_no_;hutdowm>
rxnat/cdeodea.c#L161" id5deo 5bicflspech5+128=">1287="strin9linea>5rx__h58so"w8Lus"<88nt; &!ref="+code=set;"neop5code=u64last_  ;et;"neop51278"ned>)ref">n1237"ne_no_;et;"neop5code=u64last_  ;"ne_no_;et;"neop5>
rxnat/cdeodea.c#L161" id5deo 5b="line"9n5lfiran>f="nesssref">m5 v5id587hdeodea.c#L1t; &!ref="+code=get;"neop5code=u64last_  get;"neop51278"ned>)ref">n1237"ne_no_get;"neop5code=u64last_  7"ne_no_get;"neop5>
rxnat/cdeodea.c#L161" id5deo 5bl_sk1289_changedf="nrw5tch /58s="lila}+codet; &!ref="+code=sendchangedf="net/can/sendcha>
rx7
<>)ref">n123brivsendchangedf="net/can/brivsendcha>
rxnat/cdeodea.c#L161" id5deo 5bifname"5s5iiiii_MODE_REaf=5<"d
rx7
<>)ref">n123brivmecvref="+codetimerrefarivmecvref>
rxnat/cdeodea.c#L161" id5deo 5     [ifna5e1264l>129href=97m.c#L2>
5t MOD59_op>)?rt; &!ref="+code=mmaname" clint a>9rmman5" c0 -------->)ref">n1237"ne_no_mmaname" clint a>9r7"ne_no_mman>
rxnat/cdeodea.c#L161" id5deo 5 nframe9)?rt; &!ref="+code=sendpagVcode=u64last_  ;endpagV79 177>)ref">n1237"ne_no_;endpagVcode=u64last_  ;"ne_no_;endpagV>
rxnat/cdeodea.c#L161" id5deo 5 "+c42e=rx5s="srei><54"nedo89125Rnet/can/bcmu sk &#*)+c125Rn>12593   >12_146"> 145f=iv>
5t MOD59REaf=v_bloceO_AUTOTIMERne" c" c" c=d sk1363"nedo8913 
"+>1_BCM"5rer9< esk1363"nedo8913 n123THIS_MODULEcode=u64last_  THIS_MODULE>
rxnat/cdeodea.c#L161" id5deo 5 ="line"9n5ndexef="net/ca8/bcm125nd>12597hdeodea.c#L1t; &!ref="+code=obj_aize"nedo8912n"obj_aizehdeodea>)ot; of(ata56ef +code=x_op>)?<}
a>(f=)eta>9rx__hr_f8ushrir  165<5a12f=">12965-lass="lila>
5t MOD59s="lila}+codet; &!ref="+code=912n t/can/bcm.#L1ri12n>
rx7
<>)ref">n123briv912n t/can/bcm.#L1rbriv912n>
rxnat/cdeodea.c#L161" id5deo 5 ifname"5s5ref=:+codetimerref="+code5d sk159spa5>}f8ushe"5cass="sre5f"o.c#L><6/STARTTIME6c)trctaskdeletekcodt/  ST6RTTIM609rx__hr_f8ushcm.#L146]) iv"6="+coderir6cant5lass="srei>]) iv_bloceconstiO_AUTOTIMERnerprotoet/90L nal checc5>rproto5>" crprotoet/90L nal checb   c5>rproto5>" c=d sk1363"nedo8913 130060ropp9x_rcu" ct; &!ref="+code=">me"511ne911359"nedo8913="+
<>)ref">n123SOCK_DGRAM"511ne911359"neSOCK_DGRAM>
rxnat/cdeodea.c#L161" id5deo 6/3+coderir6cnet/can/bcmu sk &#*)+c126Aa 8r60ode++"f">bcm_t; &!ref="+code=protocol t/can/bcm.#L1rprotocolhdeodea>); &!ref="+code=+>1_BCM t/can/bcm.#L1r+>1_BCM>
rxnat/cdeodea.c#L161" id5deo 6/4+coderir6c12sss>12_146"> 145f=iv>
6ss>13604de++"f">bcm_t; &!ref="+code=" c+
<>)f="net/can/bcm.m88odess=" nat/cdeodea.c#L161" id5deo 6/5+coderir6c=:+codetimerref="+code=d6t MOD60279 177

<>)f="net/can/bcm.m88odess= <" nat/cdeodea.c#L161" id5deo 6/6+coderir6c="srei><6/7+coderir6cdexef="net/ca8/bcm126RTTIM60EINVAat/cdeodea.c#L161" id5deo 6="+coderir6cant5lass="srei>m, v5id  oth_v912n t/can/bcm.#L1r_v912n>
rxcf="nes0bl95rer9< 6u9+coderir6cef=:+codetimerref="+code6>131 60ARTTI sk1363"nedo8913 )?rnedo8913m, v62"nedo89136>5 5>1361me"5ssk13o3"nedo8913de=t5")
13="net/can/bcm.>
6t MOD61ropp9x_rcu" c na135=">133hreprc">imeout"1a>(iine"9nam12d54>123ifibanmU1code=u64last_  banmU1e<6   REALref6:+codetimerref="+code=d s613=4"613   >)ref">n123c5>rprotof9rmist hdexef="net/ee13protof9rmist hine"9f="net/can/bcm.m88odess=c5>rprotoet/90L nal checb   c5>rproto5>" "f8ushe"5cass="sre5f"o.c#L><6 5+coderir6iiiii_MODE_REaf=5<"d
mARPHRD_r177tharived 109" i177e ref">n123prc">imeout"1a>(iine"9nam12d54>123ifiKERN_ERRmeout"1a>(
rxc"3<6 7+coderir6"sref5>sk13618n/bcm.c#13STARTTIMER913ivedt/can/bcm.m88od177tharived 109" i177em, v62"+coderir6n13=ne>13165-lass="lila>
6t MOD61s="lila}+code sk13o3"nedo8913de=t5")
6
)?riSTARTTIMER3/can/bcass="lcp>)/e / <f="nes0bl95rer9< 64quot;&qii6iiiii_MODE_REaf=5<"df="nesssrebf" <"3133hre?ref">n1269"nedo8912nt n1269"nedo8proca5>r5>" "f8ushe"5cass="sre5f"o.c#L><6ir/cant5la6s="srei>13 5"nedo8913           64"nedo89136ode=na9e" clref"9last_f136od>1362liv"  sk13o3"nedo8913de=t5")
132146"> 145f=iv>
6t MOD62REaf=5<"d, v5id  oth_vex2n t/can/bcm.#L1r_vex2n>
rxcf="nes0bl95rer9< 6xactlylonc6>me_=d sklbehr <="/elt;& 6iiins62f8ush sk1363"nedo8913 )?reee13protofun9rmist hdexef="net/ee13protofun9rmist hine"9f="net/can/bcm.m88odess=c5>rprotoet/90L nal checb   c5>rproto5>" "f8ushe"5cass="sre5f"o.c#L><64"+coderir6cant5lass="linekfrea hrIN6Aa 8r62REaf=5<"d
mARPHRD_r <
n127aived 109" id="proca5>rdt/10">ef">n1269"nedo8proca5>rdt/10">ine"9f="net/can/bcm.m88od?ref">n1269"nedo8912nt "3<62"nedo89136 skl <136ref="+ sk13o3"nedo8913de=t5")
1330etifname" clde6ault:63odetimerref="+code=d sk1334"ned68913n"6" class=5=13n&q>136clame63liv" ; &!ref="+code=modulev912n t/can/bcm.#L1rmodulev912nine"9<62e=d skl <6s="linekfrea hrINVAa 8ref6"87RT63REaf=; &!ref="+code=modulevex2n t/can/bcm.#L1rmodulevex2nine"9<62  SENLref6cu" class="DLC)?136215"la


lxh@DLCux.no hret
Redpill LLCpro AS href5provider of LLCuxeconsultingma Lpera/bcm< ser0<13< since 1995.