All of lore.kernel.org
 help / color / mirror / Atom feed
* RESEND: Easily reproducible kernel panic due to netdev all_adj_list refcnt handling
@ 2016-02-23 22:29 Andrew Collins
  2016-03-25 20:43 ` Matthias Schiffer
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Collins @ 2016-02-23 22:29 UTC (permalink / raw)
  To: netdev; +Cc: vfalico

I'm running into a relatively easily reproducible kernel panic related to the all_adj_list handling for netdevs
in recent kernels.

The following sequence of commands will reproduce the issue:

ip link add link eth0 name eth0.100 type vlan id 100
ip link add link eth0 name eth0.200 type vlan id 200
ip link add name testbr type bridge
ip link set eth0.100 master testbr
ip link set eth0.200 master testbr
ip link add link testbr mac0 type macvlan
ip link delete dev testbr

This creates an upper/lower tree of (excuse the poor ASCII art):

             /---eth0.100-eth0
mac0-testbr-
             \---eth0.200-eth0

When testbr is deleted, the all_adj_lists are walked, and eth0 is deleted twice from the mac0 list.
Unfortunately, during setup in __netdev_upper_dev_link, only one reference to eth0 is added,
so this results in the following panic trace:

[68235.234564] tried to remove device eth0 from mac0
[68235.234585] ------------[ cut here ]------------
[68235.234599] kernel BUG at net/core/dev.c:5237!
[68235.234608] invalid opcode: 0000 [#1] SMP
[68235.234619] Modules linked in: macvlan bridge 8021q garp mrp stp llc nfsv3 nfs_acl rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace sunrpc fscache ebtable_filter ebtables ip6table_filter ip6_tables ccm fuse vmw_vsock_vmci_transport vsock vmw_vmci ftdi_sio snd_hda_codec_realtek snd_hda_codec_hdmi snd_hda_codec_generic intel_rapl arc4 iosf_mbi x86_pkg_temp_thermal snd_hda_intel coretemp iwldvm snd_hda_codec kvm_intel mac80211 kvm snd_hda_core snd_hwdep iTCO_wdt snd_seq iTCO_vendor_support ppdev iwlwifi snd_seq_device crct10dif_pclmul snd_pcm joydev cfg80211 crc32_pclmul crc32c_intel snd_timer snd mei_me i2c_i801 rfkill soundcore lpc_ich mei parport_pc shpchp parport soc_button_array binfmt_misc i915 i2c_algo_bit drm_kms_helper drm e1000e r8169 mii ptp pps_core video fjes
[68235.234841] CPU: 2 PID: 14808 Comm: ip Not tainted 4.3.3-301.fc23.x86_64 #1
[68235.234856] Hardware name: Shuttle Inc. SZ87R/FZ87, BIOS 1.02 07/29/2013
[68235.234870] task: ffff8803cce50000 ti: ffff8801c7db8000 task.ti: ffff8801c7db8000
[68235.234885] RIP: 0010:[<ffffffff816678b1>]  [<ffffffff816678b1>] __netdev_adjacent_dev_remove+0x51/0x170
[68235.234908] RSP: 0018:ffff8801c7dbb8b8  EFLAGS: 00010286
[68235.234919] RAX: 0000000000000027 RBX: ffff8800369400b8 RCX: 0000000000000006
[68235.234934] RDX: 0000000000000000 RSI: 0000000000000246 RDI: ffff88043fa8dff0
[68235.234948] RBP: ffff8801c7dbb8d8 R08: 000000000000000a R09: 0000000000000434
[68235.234963] R10: ffff88032fe49528 R11: 0000000000000434 R12: ffff88009621e000
[68235.234977] R13: ffff880036940000 R14: ffff8803bcf7f0e0 R15: ffff8802b9b8fc40
[68235.234991] FS:  00007f3057634700(0000) GS:ffff88043fa80000(0000) knlGS:0000000000000000
[68235.235007] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[68235.235020] CR2: 000055efaad421f8 CR3: 000000009d8d9000 CR4: 00000000001406e0
[68235.235034] Stack:
[68235.235039]  ffff8803bcf7f0b0 ffff88009621e000 ffff880036940000 ffff8803ad48c000
[68235.235056]  ffff8801c7dbb8f8 ffffffff816679ee ffff8803ad48c0d0 ffff880399b93100
[68235.235073]  ffff8801c7dbb958 ffffffff81667af9 ffff8803bcf7f000 ffffffffa0731af6
[68235.235090] Call Trace:
[68235.235098]  [<ffffffff816679ee>] __netdev_adjacent_dev_unlink+0x1e/0x40
[68235.235112]  [<ffffffff81667af9>] netdev_upper_dev_unlink+0x99/0x170
[68235.235128]  [<ffffffffa0731af6>] ? br_fdb_delete_by_port+0xa6/0xd0 [bridge]
[68235.235144]  [<ffffffffa0733950>] del_nbp+0xc0/0x130 [bridge]
[68235.235157]  [<ffffffffa0733a02>] br_dev_delete+0x42/0xb0 [bridge]
[68235.235172]  [<ffffffff8167aeb3>] rtnl_delete_link+0x43/0x70
[68235.235184]  [<ffffffff8167befb>] rtnl_dellink+0xcb/0x1d0
[68235.235196]  [<ffffffff8167c146>] rtnetlink_rcv_msg+0xe6/0x230
[68235.235210]  [<ffffffff8132d762>] ? sock_has_perm+0x72/0x90
[68235.235222]  [<ffffffff8167c060>] ? rtnetlink_rcv+0x30/0x30
[68235.235235]  [<ffffffff816a18c4>] netlink_rcv_skb+0xa4/0xc0
[68235.235247]  [<ffffffff8167c058>] rtnetlink_rcv+0x28/0x30
[68235.235260]  [<ffffffff816a1087>] netlink_unicast+0x127/0x1a0
[68235.235272]  [<ffffffff816a15a2>] netlink_sendmsg+0x4a2/0x5f0
[68235.235285]  [<ffffffff8164f8f8>] sock_sendmsg+0x38/0x50
[68235.235297]  [<ffffffff81650289>] ___sys_sendmsg+0x289/0x2a0
[68235.235310]  [<ffffffff811b694c>] ? lru_cache_add+0x1c/0x50
[68235.235323]  [<ffffffff811d9323>] ? handle_mm_fault+0xc83/0x1840
[68235.235336]  [<ffffffff8123a6cd>] ? __dentry_kill+0x13d/0x1b0
[68235.235349]  [<ffffffff8123a8ff>] ? dput+0x1bf/0x1f0
[68235.235359]  [<ffffffff81650d21>] __sys_sendmsg+0x51/0x90
[68235.235371]  [<ffffffff81650d72>] SyS_sendmsg+0x12/0x20
[68235.235382]  [<ffffffff817815ee>] entry_SYSCALL_64_fastpath+0x12/0x71

I have a rather naive patch which simply calls __netdev_adjacent_dev_link ref_nr times
to keep the refcnts synced, but it seems hacky and is likely incomplete.

The basic idea is as below (excluding cleanup handling):

diff --git a/net/core/dev.c b/net/core/dev.c
index cc9e365..37d0574 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5633,7 +5633,7 @@ static int __netdev_upper_dev_link(struct net_device *dev,
  {
         struct netdev_notifier_changeupper_info changeupper_info;
         struct netdev_adjacent *i, *j, *to_i, *to_j;
-       int ret = 0;
+       int ret = 0, refs;

         ASSERT_RTNL();

@@ -5685,18 +5685,22 @@ static int __netdev_upper_dev_link(struct net_device *dev,
         list_for_each_entry(i, &upper_dev->all_adj_list.upper, list) {
                 pr_debug("linking %s's upper device %s with %s\n",
                          upper_dev->name, i->dev->name, dev->name);
-               ret = __netdev_adjacent_dev_link(dev, i->dev);
-               if (ret)
-                       goto rollback_upper_mesh;
+               for (refs = 0; refs < i->ref_nr; refs++) {
+                       ret = __netdev_adjacent_dev_link(dev, i->dev);
+                       if (ret)
+                               goto rollback_upper_mesh;
+               }
         }

         /* add upper_dev to every dev's lower device */
         list_for_each_entry(i, &dev->all_adj_list.lower, list) {
                 pr_debug("linking %s's lower device %s with %s\n", dev->name,
                          i->dev->name, upper_dev->name);
-               ret = __netdev_adjacent_dev_link(i->dev, upper_dev);
-               if (ret)
-                       goto rollback_lower_mesh;
+               for (refs = 0; refs < i->ref_nr; refs++) {
+                       ret = __netdev_adjacent_dev_link(i->dev, upper_dev);
+                       if (ret)
+                               goto rollback_lower_mesh;
+               }
         }

Has anyone else encountered this before?  Any ideas on a cleaner solution?

Thanks,
Andrew Collins

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: RESEND: Easily reproducible kernel panic due to netdev all_adj_list refcnt handling
  2016-02-23 22:29 RESEND: Easily reproducible kernel panic due to netdev all_adj_list refcnt handling Andrew Collins
@ 2016-03-25 20:43 ` Matthias Schiffer
  2016-03-25 22:10   ` Andrew Collins
  0 siblings, 1 reply; 4+ messages in thread
From: Matthias Schiffer @ 2016-03-25 20:43 UTC (permalink / raw)
  To: Andrew Collins; +Cc: netdev, vfalico


[-- Attachment #1.1.1: Type: text/plain, Size: 2164 bytes --]

On 02/23/2016 11:29 PM, Andrew Collins wrote:
> I'm running into a relatively easily reproducible kernel panic related to
> the all_adj_list handling for netdevs
> in recent kernels.
> 
> The following sequence of commands will reproduce the issue:
> 
> ip link add link eth0 name eth0.100 type vlan id 100
> ip link add link eth0 name eth0.200 type vlan id 200
> ip link add name testbr type bridge
> ip link set eth0.100 master testbr
> ip link set eth0.200 master testbr
> ip link add link testbr mac0 type macvlan
> ip link delete dev testbr
> 
> This creates an upper/lower tree of (excuse the poor ASCII art):
> 
>             /---eth0.100-eth0
> mac0-testbr-
>             \---eth0.200-eth0
> 
> When testbr is deleted, the all_adj_lists are walked, and eth0 is deleted
> twice from the mac0 list.
> Unfortunately, during setup in __netdev_upper_dev_link, only one reference
> to eth0 is added,
> so this results in the following panic trace:
> 
> [68235.234564] tried to remove device eth0 from mac0

Hi,
I got a similar report which looks like the same issue. Our setup is a bit
more complicated, it also involves batman-adv:

* 5 VLANs (eth0.2, eth0.3, eth0.100, eth0.101, eth0.102)
* batman-adv device bat0 is master of eth0.100, eth0.101, eth0.102
* Bridge br-wan is master of eth0.2
* Bridge br-client is master of bat0 and eth0.3
* macvlan device local-node on top of br-client

The setup is OpenWrt-based, which has a network config daemon which will in
some cases remove bridge ports/slaves when the corresponding devices lose
carrier (and I think br-client and bat0 get deleted in this case, not
completely sure about this). The crash occurs when eth0 goes down.

We've tried your patch, and it changes the symptoms a bit, but doesn't fix
the panic. I've attached kernel logs of the crash both before and after
applying the patch.

One note: I did not reproduce this issue myself, it was first reported in
[1], and then forwarded to the batman-adv issue tracker [2] by me.

Regards,
Matthias


[1] https://github.com/freifunk-gluon/gluon/issues/680
[2] https://www.open-mesh.org/issues/247

[-- Attachment #1.1.2: dmesg-after.txt --]
[-- Type: text/plain, Size: 47588 bytes --]

U-Boot SPL 2015.01 (Mar 18 2016 - 19:30:08)
DRAM: 1024 MiB
CPU: 960000000Hz, AXI/AHB/APB: 3/2/2


U-Boot 2015.01 (Mar 18 2016 - 19:30:08) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
I2C:   ready
DRAM:  1016 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

Reserved 8192kB of RAM for Framebuffer.
In:    serial
Out:   serial
Err:   serial
SCSI:  SUNXI SCSI INIT
SATA link 0 timeout.
AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst 
Net:   dwmac.1c50000
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found U-Boot script /boot.scr
reading /boot.scr
377 bytes read in 18 ms (19.5 KiB/s)
## Executing script at 43100000
reading uImage
1981560 bytes read in 117 ms (16.2 MiB/s)
reading dtb
23549 bytes read in 30 ms (765.6 KiB/s)
## Booting kernel from Legacy Image at 42000000 ...
   Image Name:   ARM OpenWrt Linux-3.18.27
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1981496 Bytes = 1.9 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Loading Kernel Image ... OK
   Using Device Tree in place at 43000000, end 43008bfc

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.27 (julian@eclipse) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r48900) ) #1 SMP PREEMPT Fri Mar 18 19:27:10 CET 2016
[    0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: LeMaker Banana Pi
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] PERCPU: Embedded 9 pages/cpu @eefe1000 s6272 r8192 d22400 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 258576
[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk rootwait root=/dev/mmcblk0p2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1025188K/1040384K available (3931K kernel code, 174K rwdata, 1132K rodata, 208K init, 610K bss, 15196K reserved, 262144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04f9ef4   (5064 kB)
[    0.000000]       .init : 0xc04fa000 - 0xc052e000   ( 208 kB)
[    0.000000]       .data : 0xc052e000 - 0xc05598f8   ( 175 kB)
[    0.000000]        .bss : 0xc05598f8 - 0xc05f214c   ( 611 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Architected cp15 timer(s) running at 24.00MHz (phys).
[    0.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 2863311519744ns
[    0.000023] Switching to timer-based delay loop, resolution 41ns
[    0.000357] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
[    0.000514] sched_clock: 32 bits at 160MHz, resolution 6ns, wraps every 26843545593ns
[    0.000685] Console: colour dummy device 80x30
[    0.000721] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000738] pid_max: default: 32768 minimum: 301
[    0.000848] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000860] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001489] CPU: Testing write buffer coherency: ok
[    0.001805] /cpus/cpu@0 missing clock-frequency property
[    0.001823] /cpus/cpu@1 missing clock-frequency property
[    0.001838] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001893] Setting up static identity map for 0x40011c40 - 0x40011c74
[    0.060450] CPU1: Booted secondary processor
[    0.060493] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.060563] Brought up 2 CPUs
[    0.060588] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.060594] CPU: All CPU(s) started in HYP mode.
[    0.060599] CPU: Virtualization extensions available.
[    0.065075] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 4
[    0.065484] pinctrl core: initialized pinctrl subsystem
[    0.065886] regulator-dummy: no parameters
[    0.071994] NET: Registered protocol family 16
[    0.072348] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.111521] reg-fixed-voltage usb1-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb1_vbus_pin@0, deferring probe
[    0.111557] platform usb1-vbus: Driver reg-fixed-voltage requests probe deferral
[    0.111587] reg-fixed-voltage usb2-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb2_vbus_pin@0, deferring probe
[    0.111602] platform usb2-vbus: Driver reg-fixed-voltage requests probe deferral
[    0.111818] vcc3v0: 3000 mV 
[    0.112043] vcc3v3: 3300 mV 
[    0.112293] vcc5v0: 5000 mV 
[    0.112380] reg-fixed-voltage gmac-3v3: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/gmac_power_pin@0, deferring probe
[    0.112398] platform gmac-3v3: Driver reg-fixed-voltage requests probe deferral
[    0.112849] SCSI subsystem initialized
[    0.113247] usbcore: registered new interface driver usbfs
[    0.113318] usbcore: registered new interface driver hub
[    0.113433] usbcore: registered new device driver usb
[    0.113589] Linux video capture interface: v2.00
[    0.113668] pps_core: LinuxPPS API ver. 1 registered
[    0.113676] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.113706] PTP clock support registered
[    0.114774] Switched to clocksource arch_sys_counter
[    0.121905] NET: Registered protocol family 2
[    0.122974] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.123059] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.123181] TCP: Hash tables configured (established 8192 bind 8192)
[    0.123265] TCP: reno registered
[    0.123280] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.123339] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.123623] NET: Registered protocol family 1
[    0.125165] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.125321] audit: initializing netlink subsys (disabled)
[    0.125405] audit: type=2000 audit(0.110:1): initialized
[    0.134298] VFS: Disk quotas dquot_6.5.2
[    0.134558] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.136331] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.136356] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.137079] msgmni has been set to 1490
[    0.138111] bounce: pool size: 64 pages
[    0.138136] io scheduler noop registered
[    0.138151] io scheduler deadline registered
[    0.138208] io scheduler cfq registered (default)
[    0.138525] platform 1c13400.phy: Driver sun4i-usb-phy requests probe deferral
[    0.141203] sun7i-a20-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.183606] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.187333] console [ttyS0] disabled
[    0.207747] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 33, base_baud = 1500000) is a U6_16550A
[    0.814490] console [ttyS0] enabled
[    0.840993] 1c28c00.serial: ttyS1 at MMIO 0x1c28c00 (irq = 36, base_baud = 1500000) is a U6_16550A
[    0.872949] 1c29c00.serial: ttyS2 at MMIO 0x1c29c00 (irq = 52, base_baud = 1500000) is a U6_16550A
[    0.885470] platform 1c50000.ethernet: Driver stmmaceth requests probe deferral
[    0.892897] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.899467] ehci-platform: EHCI generic platform driver
[    0.904865] platform 1c14000.usb: Driver ehci-platform requests probe deferral
[    0.912159] platform 1c1c000.usb: Driver ehci-platform requests probe deferral
[    0.919494] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.925722] ohci-platform: OHCI generic platform driver
[    0.931062] platform 1c14400.usb: Driver ohci-platform requests probe deferral
[    0.938376] platform 1c1c400.usb: Driver ohci-platform requests probe deferral
[    0.945755] usbcore: registered new interface driver usb-storage
[    0.952007] mousedev: PS/2 mouse device common for all mice
[    0.962268] axp20x-regulator axp20x-regulator: regulators node not found
[    0.969149] LDO1: 1300 mV 
[    0.972298] LDO2: at 3000 mV 
[    0.975698] LDO3: at 2275 mV 
[    0.978851] LDO4: at 2800 mV 
[    0.982215] LDO5: at 2800 mV 
[    0.985637] DCDC2: at 1400 mV 
[    0.989106] DCDC3: at 1250 mV 
[    0.992241] axp20x 0-0034: AXP20X driver loaded
[    0.997829] sunxi-wdt 1c20c90.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    1.006405] sunxi-mmc 1c0f000.mmc: No vqmmc regulator found
[    1.012342] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    1.055002] sunxi-mmc 1c0f000.mmc: base:0xf00f6000 irq:64
[    1.062779] sunxi-ss 1c15000.crypto-engine: Die ID 0
[    1.067830] sunxi-ss: probe of 1c15000.crypto-engine failed with error -22
[    1.075493] TCP: cubic registered
[    1.078832] Initializing XFRM netlink socket
[    1.083141] NET: Registered protocol family 17
[    1.087766] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.100440] Bridge firewalling registered
[    1.104463] 8021q: 802.1Q VLAN Support v1.8
[    1.108796] Registering SWP/SWPB emulation handler
[    1.114102] registered taskstats version 1
[    1.119083] usb1-vbus: 5000 mV 
[    1.122663] usb2-vbus: 5000 mV 
[    1.127319] gmac-3v3: 3300 mV 
[    1.174166] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.184852] stmmaceth 1c50000.ethernet: no reset control found
[    1.191255]  Ring mode enabled
[    1.194309]  No HW DMA feature register supported
[    1.198870]  Normal descriptors
[    1.198899] mmc0: new high speed SDHC card at address e624
[    1.207713]  TX Checksum insertion supported
[    1.213392] mmcblk0: mmc0:e624 SD08G 7.40 GiB 
[    1.216616] libphy: stmmac: probed
[    1.216626] eth0: PHY ID 001cc915 at 0 IRQ POLL (stmmac-0:00) active
[    1.216631] eth0: PHY ID 001cc915 at 1 IRQ POLL (stmmac-0:01)
[    1.217010] ehci-platform 1c14000.usb: EHCI Host Controller
[    1.217045] ehci-platform 1c14000.usb: new USB bus registered, assigned bus number 1
[    1.217169] ehci-platform 1c14000.usb: irq 71, io mem 0x01c14000
[    1.234814] ehci-platform 1c14000.usb: USB 2.0 started, EHCI 1.00
[    1.235016] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.235024] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.235029] usb usb1: Product: EHCI Host Controller
[    1.235035] usb usb1: Manufacturer: Linux 3.18.27 ehci_hcd
[    1.235040] usb usb1: SerialNumber: 1c14000.usb
[    1.235628] hub 1-0:1.0: USB hub found
[    1.235668] hub 1-0:1.0: 1 port detected
[    1.236331] ehci-platform 1c1c000.usb: EHCI Host Controller
[    1.236383] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
[    1.236487] ehci-platform 1c1c000.usb: irq 72, io mem 0x01c1c000
[    1.254865] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
[    1.255051] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.255058] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.255064] usb usb2: Product: EHCI Host Controller
[    1.255069] usb usb2: Manufacturer: Linux 3.18.27 ehci_hcd
[    1.255074] usb usb2: SerialNumber: 1c1c000.usb
[    1.255627] hub 2-0:1.0: USB hub found
[    1.255662] hub 2-0:1.0: 1 port detected
[    1.256308] ohci-platform 1c14400.usb: Generic Platform OHCI controller
[    1.256341] ohci-platform 1c14400.usb: new USB bus registered, assigned bus number 3
[    1.256492] ohci-platform 1c14400.usb: irq 96, io mem 0x01c14400
[    1.318952] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    1.318960] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.318966] usb usb3: Product: Generic Platform OHCI controller
[    1.318971] usb usb3: Manufacturer: Linux 3.18.27 ohci_hcd
[    1.318976] usb usb3: SerialNumber: 1c14400.usb
[    1.319502] hub 3-0:1.0: USB hub found
[    1.319538] hub 3-0:1.0: 1 port detected
[    1.320151] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[    1.320183] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[    1.320303] ohci-platform 1c1c400.usb: irq 97, io mem 0x01c1c400
[    1.378951] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    1.378959] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.378964] usb usb4: Product: Generic Platform OHCI controller
[    1.378970] usb usb4: Manufacturer: Linux 3.18.27 ohci_hcd
[    1.378975] usb usb4: SerialNumber: 1c1c400.usb
[    1.379522] hub 4-0:1.0: USB hub found
[    1.379559] hub 4-0:1.0: 1 port detected
[    1.379962] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.384644] vcc5v0: disabling
[    1.384652] vcc3v0: disabling
[    1.488763]  mmcblk0: p1 p2
[    1.494548] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    1.503485] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[    1.516897] EXT4-fs (mmcblk0p2): mounted filesystem without journal. Opts: (null)
[    1.524433] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.531491] Freeing unused kernel memory: 208K (c04fa000 - c052e000)
[    1.640749] init: Console is alive
[    1.644465] init: - watchdog -
[    2.648475] init: - preinit -
Detected bananapi // LeMaker Banana Pi
[    2.731365] random: mktemp urandom read with 4 bits of entropy available
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    5.796138] mount_root: mounting /dev/root
[    5.800858] EXT4-fs (mmcblk0p2): warning: mounting unchecked fs, running e2fsck is recommended
[    5.811354] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    5.837847] procd: - early -
[    5.840865] procd: - watchdog -
[    6.606054] procd: - ubus -
[    7.609696] procd: - init -
Please press Enter to activate this console.
[    8.232866] NET: Registered protocol family 10
[    8.242967] tun: Universal TUN/TAP device driver, 1.6
[    8.248889] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    8.259186] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.277084] batman_adv: B.A.T.M.A.N. advanced 2016.0 (compatibility version 15) loaded
[    8.297752] sunxi-rtc 1c20d00.rtc: rtc core: registered rtc-sunxi as rtc0
[    8.305320] sunxi-rtc 1c20d00.rtc: RTC enabled
[    8.318817] u32 classifier
[    8.321545]     input device check on
[    8.325896]     Actions configured
[    8.330868] Mirror/redirect action on
[    8.380954] Ebtables v2.0 registered
[    8.386278] ip_tables: (C) 2000-2006 Netfilter Core Team
[    8.400730] nf_conntrack version 0.5.0 (16021 buckets, 64084 max)
[    8.513019] xt_time: kernel timezone is -0000
[   11.937749]  RX IPC Checksum Offload disabled
[   11.952824]  No MAC Management Counters available
[   11.969175] device eth0.3 entered promiscuous mode
[   11.974031] device eth0 entered promiscuous mode
[   11.982173] br-client: port 1(eth0.3) entered forwarding state
[   11.988168] br-client: port 1(eth0.3) entered forwarding state
[   12.032478] device eth0.2 entered promiscuous mode
[   12.049870] br-wan: port 1(eth0.2) entered forwarding state
[   12.055544] br-wan: port 1(eth0.2) entered forwarding state
[   12.096467] device br-client entered promiscuous mode
[   12.319653] batman_adv: bat0: Adding interface: eth0.102
[   12.342191] batman_adv: bat0: Interface activated: eth0.102
[   12.368829] batman_adv: bat0: Adding interface: eth0.100
[   12.370226] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.408061] batman_adv: bat0: Interface activated: eth0.100
[   12.423195] batman_adv: bat0: Adding interface: eth0.101
[   12.427478] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.437005] batman_adv: bat0: Interface activated: eth0.101
[   12.450289] 8021q: adding VLAN 0 to HW filter on device bat0
[   12.457783] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.476966] device bat0 entered promiscuous mode
[   12.481729] br-client: port 2(bat0) entered forwarding state
[   12.487551] br-client: port 2(bat0) entered forwarding state
[   13.092033] batman_adv: bat0: Changing gw mode from: off to: client
[   13.098739] batman_adv: bat0: gw_sel_class: Changing from: 20 to: 15
[   13.105651] batman_adv: bat0: hop_penalty: Changing from: 30 to: 15
[   13.112197] batman_adv: bat0: multicast_mode: Changing from: enabled to: disabled
[   13.121181] batman_adv: bat0: orig_interval: Changing from: 1000 to: 5000
[   13.480576] batman_adv: bat0: Adding interface: mesh-vpn
[   13.487555] batman_adv: bat0: The MTU of interface mesh-vpn is too small (1406) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which.
[   13.516518] batman_adv: bat0: Interface activated: mesh-vpn
[   13.525152] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   13.932260] br-wan: port 1(eth0.2) entered disabled state
[   13.939085] br-client: port 1(eth0.3) entered disabled state
[   13.987370] batman_adv: bat0: Interface deactivated: eth0.100
[   13.993137] batman_adv: bat0: Removing interface: eth0.100
[   14.004625] batman_adv: bat0: Interface deactivated: eth0.102
[   14.010903] batman_adv: bat0: Removing interface: eth0.102
[   14.018061] batman_adv: bat0: Interface deactivated: eth0.101
[   14.023825] batman_adv: bat0: Removing interface: eth0.101
[   14.030058] tried to remove device eth0 from local-node
[   14.035444] ------------[ cut here ]------------
[   14.040092] kernel BUG at net/core/dev.c:4981!
[   14.044542] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[   14.050368] Modules linked in: iptable_nat nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE ebtable_nat ebtable_filter ebtable_broute xt_time xt_tcpudp xt_state xt_quota s
[   14.147741] CPU: 1 PID: 1658 Comm: batadv.sh Not tainted 3.18.27 #1
[   14.154004] task: ee8ab740 ti: edc20000 task.ti: edc20000
[   14.159406] PC is at __netdev_adjacent_dev_remove+0x64/0x124
[   14.165076] LR is at 0x0
[   14.167609] pc : [<c032bbb8>]    lr : [<00000000>]    psr: 60000113
[   14.167609] sp : edc21e18  ip : 00000000  fp : edc21e34
[   14.179070] r10: edc57500  r9 : ee3fd800  r8 : ee3fd868
[   14.184289] r7 : eebd8000  r6 : edc0d000  r5 : eebd8060  r4 : eebd8054
[   14.190809] r3 : 00000000  r2 : 00000001  r1 : eefea24c  r0 : 0000002b
[   14.197329] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   14.204455] Control: 10c5387d  Table: 6de9806a  DAC: 00000015
[   14.210194] Process batadv.sh (pid: 1658, stack limit = 0xedc20238)
[   14.216454] Stack: (0xedc21e18 to 0xedc22000)
[   14.220810] 1e00:                                                       eebd8000 edc0d000
[   14.228980] 1e20: edc57060 edc57000 edc21e4c edc21e38 c032bc94 c032bb60 ee1e9040 ee3d2d00
[   14.237149] 1e40: edc21e7c edc21e50 c032bd5c c032bc84 00000001 ee3b7600 ee3b7600 ee3b7600
[   14.245319] 1e60: edc57000 00000001 edde2b00 edde2b18 edc21ebc edc21e80 bf0a4514 c032bcf0
[   14.253488] 1e80: ee0ea180 edc57000 edc21eac edde2b00 c000f80c ee3b7600 ee0ea540 00000005
[   14.261658] 1ea0: 00000000 00000005 ee0ea180 ee0ea18c edc21edc edc21ec0 bf0adfec bf0a42f4
[   14.269827] 1ec0: ee0ea540 00000000 ee0ea540 edc21f78 edc21eec edc21ee0 c01cb49c bf0adefc
[   14.277997] 1ee0: edc21f04 edc21ef0 c0127d0c c01cb48c c0127cc8 00000000 edc21f3c edc21f08
[   14.286166] 1f00: c01275a0 c0127cd4 00000000 00000000 edc21f3c edc20000 00d07610 ee0c0900
[   14.294336] 1f20: 00000005 edc21f78 00d07610 00000000 edc21f74 edc21f40 c00c827c c0127498
[   14.302506] 1f40: edc21fa4 edc21f50 c0026498 00000000 00000000 ee0c0900 ee0c0900 00000005
[   14.310675] 1f60: 00d07610 00000000 edc21fa4 edc21f78 c00c8818 c00c81d0 00000000 00000000
[   14.318844] 1f80: 00081b10 00000001 00d07610 00000004 c0008fa4 edc20000 00000000 edc21fa8
[   14.327014] 1fa0: c0008e00 c00c87e0 00081b10 00000001 00000001 00d07610 00000005 00000000
[   14.335183] 1fc0: 00081b10 00000001 00d07610 00000004 00d19de0 00000020 00000002 00d05008
[   14.343352] 1fe0: 00000005 be886298 00018c98 b6f130ec 60000010 00000001 00000000 00000000
[   14.351514] Backtrace: 
[   14.353983] [<c032bb54>] (__netdev_adjacent_dev_remove) from [<c032bc94>] (__netdev_adjacent_dev_unlink+0x1c/0x30)
[   14.364314]  r7:edc57000 r6:edc57060 r5:edc0d000 r4:eebd8000
[   14.370022] [<c032bc78>] (__netdev_adjacent_dev_unlink) from [<c032bd5c>] (netdev_upper_dev_unlink+0x78/0x120)
[   14.380006]  r5:ee3d2d00 r4:ee1e9040
[   14.383631] [<c032bce4>] (netdev_upper_dev_unlink) from [<bf0a4514>] (batadv_hardif_disable_interface+0x22c/0x374 [batman_adv])
[   14.395088]  r9:edde2b18 r8:edde2b00 r7:00000001 r6:edc57000 r5:ee3b7600 r4:ee3b7600
[   14.402914] [<bf0a42e8>] (batadv_hardif_disable_interface [batman_adv]) from [<bf0adfec>] (batadv_store_mesh_iface+0xfc/0x178 [batman_adv])
[   14.415412]  r10:ee0ea18c r9:ee0ea180 r8:00000005 r7:00000000 r6:00000005 r5:ee0ea540
[   14.423295]  r4:ee3b7600
[   14.425857] [<bf0adef0>] (batadv_store_mesh_iface [batman_adv]) from [<c01cb49c>] (kobj_attr_store+0x1c/0x28)
[   14.435755]  r7:edc21f78 r6:ee0ea540 r5:00000000 r4:ee0ea540
[   14.441468] [<c01cb480>] (kobj_attr_store) from [<c0127d0c>] (sysfs_kf_write+0x44/0x50)
[   14.449465] [<c0127cc8>] (sysfs_kf_write) from [<c01275a0>] (kernfs_fop_write+0x114/0x18c)
[   14.457715]  r4:00000000 r3:c0127cc8
[   14.461318] [<c012748c>] (kernfs_fop_write) from [<c00c827c>] (vfs_write+0xb8/0x1d0)
[   14.469048]  r10:00000000 r9:00d07610 r8:edc21f78 r7:00000005 r6:ee0c0900 r5:00d07610
[   14.476930]  r4:edc20000
[   14.479481] [<c00c81c4>] (vfs_write) from [<c00c8818>] (SyS_write+0x44/0x84)
[   14.484774] br-client: port 2(bat0) entered forwarding state
[   14.492165]  r10:00000000 r9:00d07610 r8:00000005 r7:ee0c0900 r6:ee0c0900 r5:00000000
[   14.500049]  r4:00000000
[   14.502601] [<c00c87d4>] (SyS_write) from [<c0008e00>] (ret_fast_syscall+0x0/0x38)
[   14.510158]  r9:edc20000 r8:c0008fa4 r7:00000004 r6:00d07610 r5:00000001 r4:00081b10
[   14.517960] Code: e1a01007 e1a02006 e34c004c ebf4a2c5 (e7f001f2) 
[   14.524052] ---[ end trace f08a7d9e1d9c2a3b ]---
U-Boot SPL 2015.01 (Mar 18 2016 - 19:30:08)
DRAM: 1024 MiB
CPU: 960000000Hz, AXI/AHB/APB: 3/2/2


U-Boot 2015.01 (Mar 18 2016 - 19:30:08) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
I2C:   ready
DRAM:  1016 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

Reserved 8192kB of RAM for Framebuffer.
In:    serial
Out:   serial
Err:   serial
SCSI:  SUNXI SCSI INIT
SATA link 0 timeout.
AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst 
Net:   dwmac.1c50000
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found U-Boot script /boot.scr
reading /boot.scr
377 bytes read in 18 ms (19.5 KiB/s)
## Executing script at 43100000
reading uImage
1981560 bytes read in 117 ms (16.2 MiB/s)
reading dtb
23549 bytes read in 30 ms (765.6 KiB/s)
## Booting kernel from Legacy Image at 42000000 ...
   Image Name:   ARM OpenWrt Linux-3.18.27
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1981496 Bytes = 1.9 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Loading Kernel Image ... OK
   Using Device Tree in place at 43000000, end 43008bfc

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.27 (julian@eclipse) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r48900) ) #1 SMP PREEMPT Fri Mar 18 19:27:10 CET 2016
[    0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: LeMaker Banana Pi
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] PERCPU: Embedded 9 pages/cpu @eefe1000 s6272 r8192 d22400 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 258576
[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk rootwait root=/dev/mmcblk0p2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1025188K/1040384K available (3931K kernel code, 174K rwdata, 1132K rodata, 208K init, 610K bss, 15196K reserved, 262144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04f9ef4   (5064 kB)
[    0.000000]       .init : 0xc04fa000 - 0xc052e000   ( 208 kB)
[    0.000000]       .data : 0xc052e000 - 0xc05598f8   ( 175 kB)
[    0.000000]        .bss : 0xc05598f8 - 0xc05f214c   ( 611 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Architected cp15 timer(s) running at 24.00MHz (phys).
[    0.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 2863311519744ns
[    0.000023] Switching to timer-based delay loop, resolution 41ns
[    0.000357] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
[    0.000514] sched_clock: 32 bits at 160MHz, resolution 6ns, wraps every 26843545593ns
[    0.000685] Console: colour dummy device 80x30
[    0.000721] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000738] pid_max: default: 32768 minimum: 301
[    0.000848] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000860] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001489] CPU: Testing write buffer coherency: ok
[    0.001805] /cpus/cpu@0 missing clock-frequency property
[    0.001823] /cpus/cpu@1 missing clock-frequency property
[    0.001838] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001893] Setting up static identity map for 0x40011c40 - 0x40011c74
[    0.060450] CPU1: Booted secondary processor
[    0.060493] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.060563] Brought up 2 CPUs
[    0.060588] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.060594] CPU: All CPU(s) started in HYP mode.
[    0.060599] CPU: Virtualization extensions available.
[    0.065075] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 4
[    0.065484] pinctrl core: initialized pinctrl subsystem
[    0.065886] regulator-dummy: no parameters
[    0.071994] NET: Registered protocol family 16
[    0.072348] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.111521] reg-fixed-voltage usb1-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb1_vbus_pin@0, deferring probe
[    0.111557] platform usb1-vbus: Driver reg-fixed-voltage requests probe deferral
[    0.111587] reg-fixed-voltage usb2-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb2_vbus_pin@0, deferring probe
[    0.111602] platform usb2-vbus: Driver reg-fixed-voltage requests probe deferral
[    0.111818] vcc3v0: 3000 mV 
[    0.112043] vcc3v3: 3300 mV 
[    0.112293] vcc5v0: 5000 mV 
[    0.112380] reg-fixed-voltage gmac-3v3: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/gmac_power_pin@0, deferring probe
[    0.112398] platform gmac-3v3: Driver reg-fixed-voltage requests probe deferral
[    0.112849] SCSI subsystem initialized
[    0.113247] usbcore: registered new interface driver usbfs
[    0.113318] usbcore: registered new interface driver hub
[    0.113433] usbcore: registered new device driver usb
[    0.113589] Linux video capture interface: v2.00
[    0.113668] pps_core: LinuxPPS API ver. 1 registered
[    0.113676] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.113706] PTP clock support registered
[    0.114774] Switched to clocksource arch_sys_counter
[    0.121905] NET: Registered protocol family 2
[    0.122974] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.123059] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.123181] TCP: Hash tables configured (established 8192 bind 8192)
[    0.123265] TCP: reno registered
[    0.123280] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.123339] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.123623] NET: Registered protocol family 1
[    0.125165] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.125321] audit: initializing netlink subsys (disabled)
[    0.125405] audit: type=2000 audit(0.110:1): initialized
[    0.134298] VFS: Disk quotas dquot_6.5.2
[    0.134558] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.136331] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.136356] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.137079] msgmni has been set to 1490
[    0.138111] bounce: pool size: 64 pages
[    0.138136] io scheduler noop registered
[    0.138151] io scheduler deadline registered
[    0.138208] io scheduler cfq registered (default)
[    0.138525] platform 1c13400.phy: Driver sun4i-usb-phy requests probe deferral
[    0.141203] sun7i-a20-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.183606] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.187333] console [ttyS0] disabled
[    0.207747] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 33, base_baud = 1500000) is a U6_16550A
[    0.814490] console [ttyS0] enabled
[    0.840993] 1c28c00.serial: ttyS1 at MMIO 0x1c28c00 (irq = 36, base_baud = 1500000) is a U6_16550A
[    0.872949] 1c29c00.serial: ttyS2 at MMIO 0x1c29c00 (irq = 52, base_baud = 1500000) is a U6_16550A
[    0.885470] platform 1c50000.ethernet: Driver stmmaceth requests probe deferral
[    0.892897] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.899467] ehci-platform: EHCI generic platform driver
[    0.904865] platform 1c14000.usb: Driver ehci-platform requests probe deferral
[    0.912159] platform 1c1c000.usb: Driver ehci-platform requests probe deferral
[    0.919494] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.925722] ohci-platform: OHCI generic platform driver
[    0.931062] platform 1c14400.usb: Driver ohci-platform requests probe deferral
[    0.938376] platform 1c1c400.usb: Driver ohci-platform requests probe deferral
[    0.945755] usbcore: registered new interface driver usb-storage
[    0.952007] mousedev: PS/2 mouse device common for all mice
[    0.962268] axp20x-regulator axp20x-regulator: regulators node not found
[    0.969149] LDO1: 1300 mV 
[    0.972298] LDO2: at 3000 mV 
[    0.975698] LDO3: at 2275 mV 
[    0.978851] LDO4: at 2800 mV 
[    0.982215] LDO5: at 2800 mV 
[    0.985637] DCDC2: at 1400 mV 
[    0.989106] DCDC3: at 1250 mV 
[    0.992241] axp20x 0-0034: AXP20X driver loaded
[    0.997829] sunxi-wdt 1c20c90.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    1.006405] sunxi-mmc 1c0f000.mmc: No vqmmc regulator found
[    1.012342] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    1.055002] sunxi-mmc 1c0f000.mmc: base:0xf00f6000 irq:64
[    1.062779] sunxi-ss 1c15000.crypto-engine: Die ID 0
[    1.067830] sunxi-ss: probe of 1c15000.crypto-engine failed with error -22
[    1.075493] TCP: cubic registered
[    1.078832] Initializing XFRM netlink socket
[    1.083141] NET: Registered protocol family 17
[    1.087766] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.100440] Bridge firewalling registered
[    1.104463] 8021q: 802.1Q VLAN Support v1.8
[    1.108796] Registering SWP/SWPB emulation handler
[    1.114102] registered taskstats version 1
[    1.119083] usb1-vbus: 5000 mV 
[    1.122663] usb2-vbus: 5000 mV 
[    1.127319] gmac-3v3: 3300 mV 
[    1.174166] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.184852] stmmaceth 1c50000.ethernet: no reset control found
[    1.191255]  Ring mode enabled
[    1.194309]  No HW DMA feature register supported
[    1.198870]  Normal descriptors
[    1.198899] mmc0: new high speed SDHC card at address e624
[    1.207713]  TX Checksum insertion supported
[    1.213392] mmcblk0: mmc0:e624 SD08G 7.40 GiB 
[    1.216616] libphy: stmmac: probed
[    1.216626] eth0: PHY ID 001cc915 at 0 IRQ POLL (stmmac-0:00) active
[    1.216631] eth0: PHY ID 001cc915 at 1 IRQ POLL (stmmac-0:01)
[    1.217010] ehci-platform 1c14000.usb: EHCI Host Controller
[    1.217045] ehci-platform 1c14000.usb: new USB bus registered, assigned bus number 1
[    1.217169] ehci-platform 1c14000.usb: irq 71, io mem 0x01c14000
[    1.234814] ehci-platform 1c14000.usb: USB 2.0 started, EHCI 1.00
[    1.235016] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.235024] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.235029] usb usb1: Product: EHCI Host Controller
[    1.235035] usb usb1: Manufacturer: Linux 3.18.27 ehci_hcd
[    1.235040] usb usb1: SerialNumber: 1c14000.usb
[    1.235628] hub 1-0:1.0: USB hub found
[    1.235668] hub 1-0:1.0: 1 port detected
[    1.236331] ehci-platform 1c1c000.usb: EHCI Host Controller
[    1.236383] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
[    1.236487] ehci-platform 1c1c000.usb: irq 72, io mem 0x01c1c000
[    1.254865] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
[    1.255051] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.255058] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.255064] usb usb2: Product: EHCI Host Controller
[    1.255069] usb usb2: Manufacturer: Linux 3.18.27 ehci_hcd
[    1.255074] usb usb2: SerialNumber: 1c1c000.usb
[    1.255627] hub 2-0:1.0: USB hub found
[    1.255662] hub 2-0:1.0: 1 port detected
[    1.256308] ohci-platform 1c14400.usb: Generic Platform OHCI controller
[    1.256341] ohci-platform 1c14400.usb: new USB bus registered, assigned bus number 3
[    1.256492] ohci-platform 1c14400.usb: irq 96, io mem 0x01c14400
[    1.318952] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    1.318960] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.318966] usb usb3: Product: Generic Platform OHCI controller
[    1.318971] usb usb3: Manufacturer: Linux 3.18.27 ohci_hcd
[    1.318976] usb usb3: SerialNumber: 1c14400.usb
[    1.319502] hub 3-0:1.0: USB hub found
[    1.319538] hub 3-0:1.0: 1 port detected
[    1.320151] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[    1.320183] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[    1.320303] ohci-platform 1c1c400.usb: irq 97, io mem 0x01c1c400
[    1.378951] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    1.378959] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.378964] usb usb4: Product: Generic Platform OHCI controller
[    1.378970] usb usb4: Manufacturer: Linux 3.18.27 ohci_hcd
[    1.378975] usb usb4: SerialNumber: 1c1c400.usb
[    1.379522] hub 4-0:1.0: USB hub found
[    1.379559] hub 4-0:1.0: 1 port detected
[    1.379962] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.384644] vcc5v0: disabling
[    1.384652] vcc3v0: disabling
[    1.488763]  mmcblk0: p1 p2
[    1.494548] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    1.503485] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[    1.516897] EXT4-fs (mmcblk0p2): mounted filesystem without journal. Opts: (null)
[    1.524433] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.531491] Freeing unused kernel memory: 208K (c04fa000 - c052e000)
[    1.640749] init: Console is alive
[    1.644465] init: - watchdog -
[    2.648475] init: - preinit -
Detected bananapi // LeMaker Banana Pi
[    2.731365] random: mktemp urandom read with 4 bits of entropy available
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    5.796138] mount_root: mounting /dev/root
[    5.800858] EXT4-fs (mmcblk0p2): warning: mounting unchecked fs, running e2fsck is recommended
[    5.811354] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    5.837847] procd: - early -
[    5.840865] procd: - watchdog -
[    6.606054] procd: - ubus -
[    7.609696] procd: - init -
Please press Enter to activate this console.
[    8.232866] NET: Registered protocol family 10
[    8.242967] tun: Universal TUN/TAP device driver, 1.6
[    8.248889] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    8.259186] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.277084] batman_adv: B.A.T.M.A.N. advanced 2016.0 (compatibility version 15) loaded
[    8.297752] sunxi-rtc 1c20d00.rtc: rtc core: registered rtc-sunxi as rtc0
[    8.305320] sunxi-rtc 1c20d00.rtc: RTC enabled
[    8.318817] u32 classifier
[    8.321545]     input device check on
[    8.325896]     Actions configured
[    8.330868] Mirror/redirect action on
[    8.380954] Ebtables v2.0 registered
[    8.386278] ip_tables: (C) 2000-2006 Netfilter Core Team
[    8.400730] nf_conntrack version 0.5.0 (16021 buckets, 64084 max)
[    8.513019] xt_time: kernel timezone is -0000
[   11.937749]  RX IPC Checksum Offload disabled
[   11.952824]  No MAC Management Counters available
[   11.969175] device eth0.3 entered promiscuous mode
[   11.974031] device eth0 entered promiscuous mode
[   11.982173] br-client: port 1(eth0.3) entered forwarding state
[   11.988168] br-client: port 1(eth0.3) entered forwarding state
[   12.032478] device eth0.2 entered promiscuous mode
[   12.049870] br-wan: port 1(eth0.2) entered forwarding state
[   12.055544] br-wan: port 1(eth0.2) entered forwarding state
[   12.096467] device br-client entered promiscuous mode
[   12.319653] batman_adv: bat0: Adding interface: eth0.102
[   12.342191] batman_adv: bat0: Interface activated: eth0.102
[   12.368829] batman_adv: bat0: Adding interface: eth0.100
[   12.370226] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.408061] batman_adv: bat0: Interface activated: eth0.100
[   12.423195] batman_adv: bat0: Adding interface: eth0.101
[   12.427478] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.437005] batman_adv: bat0: Interface activated: eth0.101
[   12.450289] 8021q: adding VLAN 0 to HW filter on device bat0
[   12.457783] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.476966] device bat0 entered promiscuous mode
[   12.481729] br-client: port 2(bat0) entered forwarding state
[   12.487551] br-client: port 2(bat0) entered forwarding state
[   13.092033] batman_adv: bat0: Changing gw mode from: off to: client
[   13.098739] batman_adv: bat0: gw_sel_class: Changing from: 20 to: 15
[   13.105651] batman_adv: bat0: hop_penalty: Changing from: 30 to: 15
[   13.112197] batman_adv: bat0: multicast_mode: Changing from: enabled to: disabled
[   13.121181] batman_adv: bat0: orig_interval: Changing from: 1000 to: 5000
[   13.480576] batman_adv: bat0: Adding interface: mesh-vpn
[   13.487555] batman_adv: bat0: The MTU of interface mesh-vpn is too small (1406) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which.
[   13.516518] batman_adv: bat0: Interface activated: mesh-vpn
[   13.525152] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   13.932260] br-wan: port 1(eth0.2) entered disabled state
[   13.939085] br-client: port 1(eth0.3) entered disabled state
[   13.987370] batman_adv: bat0: Interface deactivated: eth0.100
[   13.993137] batman_adv: bat0: Removing interface: eth0.100
[   14.004625] batman_adv: bat0: Interface deactivated: eth0.102
[   14.010903] batman_adv: bat0: Removing interface: eth0.102
[   14.018061] batman_adv: bat0: Interface deactivated: eth0.101
[   14.023825] batman_adv: bat0: Removing interface: eth0.101
[   14.030058] tried to remove device eth0 from local-node
[   14.035444] ------------[ cut here ]------------
[   14.040092] kernel BUG at net/core/dev.c:4981!
[   14.044542] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[   14.050368] Modules linked in: iptable_nat nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE ebtable_nat ebtable_filter ebtable_broute xt_time xt_tcpudp xt_state xt_quota s
[   14.147741] CPU: 1 PID: 1658 Comm: batadv.sh Not tainted 3.18.27 #1
[   14.154004] task: ee8ab740 ti: edc20000 task.ti: edc20000
[   14.159406] PC is at __netdev_adjacent_dev_remove+0x64/0x124
[   14.165076] LR is at 0x0
[   14.167609] pc : [<c032bbb8>]    lr : [<00000000>]    psr: 60000113
[   14.167609] sp : edc21e18  ip : 00000000  fp : edc21e34
[   14.179070] r10: edc57500  r9 : ee3fd800  r8 : ee3fd868
[   14.184289] r7 : eebd8000  r6 : edc0d000  r5 : eebd8060  r4 : eebd8054
[   14.190809] r3 : 00000000  r2 : 00000001  r1 : eefea24c  r0 : 0000002b
[   14.197329] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   14.204455] Control: 10c5387d  Table: 6de9806a  DAC: 00000015
[   14.210194] Process batadv.sh (pid: 1658, stack limit = 0xedc20238)
[   14.216454] Stack: (0xedc21e18 to 0xedc22000)
[   14.220810] 1e00:                                                       eebd8000 edc0d000
[   14.228980] 1e20: edc57060 edc57000 edc21e4c edc21e38 c032bc94 c032bb60 ee1e9040 ee3d2d00
[   14.237149] 1e40: edc21e7c edc21e50 c032bd5c c032bc84 00000001 ee3b7600 ee3b7600 ee3b7600
[   14.245319] 1e60: edc57000 00000001 edde2b00 edde2b18 edc21ebc edc21e80 bf0a4514 c032bcf0
[   14.253488] 1e80: ee0ea180 edc57000 edc21eac edde2b00 c000f80c ee3b7600 ee0ea540 00000005
[   14.261658] 1ea0: 00000000 00000005 ee0ea180 ee0ea18c edc21edc edc21ec0 bf0adfec bf0a42f4
[   14.269827] 1ec0: ee0ea540 00000000 ee0ea540 edc21f78 edc21eec edc21ee0 c01cb49c bf0adefc
[   14.277997] 1ee0: edc21f04 edc21ef0 c0127d0c c01cb48c c0127cc8 00000000 edc21f3c edc21f08
[   14.286166] 1f00: c01275a0 c0127cd4 00000000 00000000 edc21f3c edc20000 00d07610 ee0c0900
[   14.294336] 1f20: 00000005 edc21f78 00d07610 00000000 edc21f74 edc21f40 c00c827c c0127498
[   14.302506] 1f40: edc21fa4 edc21f50 c0026498 00000000 00000000 ee0c0900 ee0c0900 00000005
[   14.310675] 1f60: 00d07610 00000000 edc21fa4 edc21f78 c00c8818 c00c81d0 00000000 00000000
[   14.318844] 1f80: 00081b10 00000001 00d07610 00000004 c0008fa4 edc20000 00000000 edc21fa8
[   14.327014] 1fa0: c0008e00 c00c87e0 00081b10 00000001 00000001 00d07610 00000005 00000000
[   14.335183] 1fc0: 00081b10 00000001 00d07610 00000004 00d19de0 00000020 00000002 00d05008
[   14.343352] 1fe0: 00000005 be886298 00018c98 b6f130ec 60000010 00000001 00000000 00000000
[   14.351514] Backtrace: 
[   14.353983] [<c032bb54>] (__netdev_adjacent_dev_remove) from [<c032bc94>] (__netdev_adjacent_dev_unlink+0x1c/0x30)
[   14.364314]  r7:edc57000 r6:edc57060 r5:edc0d000 r4:eebd8000
[   14.370022] [<c032bc78>] (__netdev_adjacent_dev_unlink) from [<c032bd5c>] (netdev_upper_dev_unlink+0x78/0x120)
[   14.380006]  r5:ee3d2d00 r4:ee1e9040
[   14.383631] [<c032bce4>] (netdev_upper_dev_unlink) from [<bf0a4514>] (batadv_hardif_disable_interface+0x22c/0x374 [batman_adv])
[   14.395088]  r9:edde2b18 r8:edde2b00 r7:00000001 r6:edc57000 r5:ee3b7600 r4:ee3b7600
[   14.402914] [<bf0a42e8>] (batadv_hardif_disable_interface [batman_adv]) from [<bf0adfec>] (batadv_store_mesh_iface+0xfc/0x178 [batman_adv])
[   14.415412]  r10:ee0ea18c r9:ee0ea180 r8:00000005 r7:00000000 r6:00000005 r5:ee0ea540
[   14.423295]  r4:ee3b7600
[   14.425857] [<bf0adef0>] (batadv_store_mesh_iface [batman_adv]) from [<c01cb49c>] (kobj_attr_store+0x1c/0x28)
[   14.435755]  r7:edc21f78 r6:ee0ea540 r5:00000000 r4:ee0ea540
[   14.441468] [<c01cb480>] (kobj_attr_store) from [<c0127d0c>] (sysfs_kf_write+0x44/0x50)
[   14.449465] [<c0127cc8>] (sysfs_kf_write) from [<c01275a0>] (kernfs_fop_write+0x114/0x18c)
[   14.457715]  r4:00000000 r3:c0127cc8
[   14.461318] [<c012748c>] (kernfs_fop_write) from [<c00c827c>] (vfs_write+0xb8/0x1d0)
[   14.469048]  r10:00000000 r9:00d07610 r8:edc21f78 r7:00000005 r6:ee0c0900 r5:00d07610
[   14.476930]  r4:edc20000
[   14.479481] [<c00c81c4>] (vfs_write) from [<c00c8818>] (SyS_write+0x44/0x84)
[   14.484774] br-client: port 2(bat0) entered forwarding state
[   14.492165]  r10:00000000 r9:00d07610 r8:00000005 r7:ee0c0900 r6:ee0c0900 r5:00000000
[   14.500049]  r4:00000000
[   14.502601] [<c00c87d4>] (SyS_write) from [<c0008e00>] (ret_fast_syscall+0x0/0x38)
[   14.510158]  r9:edc20000 r8:c0008fa4 r7:00000004 r6:00d07610 r5:00000001 r4:00081b10
[   14.517960] Code: e1a01007 e1a02006 e34c004c ebf4a2c5 (e7f001f2) 
[   14.524052] ---[ end trace f08a7d9e1d9c2a3b ]---

[-- Attachment #1.1.3: dmesg-before.txt --]
[-- Type: text/plain, Size: 23920 bytes --]

U-Boot SPL 2015.01 (Mar 08 2016 - 21:55:59)
DRAM: 1024 MiB
CPU: 960000000Hz, AXI/AHB/APB: 3/2/2


U-Boot 2015.01 (Mar 08 2016 - 21:55:59) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
I2C:   ready
DRAM:  1016 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

Reserved 8192kB of RAM for Framebuffer.
In:    serial
Out:   serial
Err:   serial
SCSI:  SUNXI SCSI INIT
SATA link 0 timeout.
AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst 
Net:   dwmac.1c50000
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found U-Boot script /boot.scr
reading /boot.scr
377 bytes read in 17 ms (21.5 KiB/s)
## Executing script at 43100000
reading uImage
1981680 bytes read in 113 ms (16.7 MiB/s)
reading dtb
23549 bytes read in 27 ms (851.6 KiB/s)
## Booting kernel from Legacy Image at 42000000 ...
   Image Name:   ARM OpenWrt Linux-3.18.27
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1981616 Bytes = 1.9 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Loading Kernel Image ... OK
   Using Device Tree in place at 43000000, end 43008bfc

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.27 (julian@eclipse) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r486
[    0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: LeMaker Banana Pi
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] PERCPU: Embedded 9 pages/cpu @eefe1000 s6272 r8192 d22400 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 258576
[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk rootwait root=/dev/mmcblk0p2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1025188K/1040384K available (3931K kernel code, 174K rwdata, 1132K rodata, 208K init,)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04f9ef4   (5064 kB)
[    0.000000]       .init : 0xc04fa000 - 0xc052e000   ( 208 kB)
[    0.000000]       .data : 0xc052e000 - 0xc05598f8   ( 175 kB)
[    0.000000]        .bss : 0xc05598f8 - 0xc05f214c   ( 611 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Architected cp15 timer(s) running at 24.00MHz (phys).
[    0.000008] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 2863311519744ns
[    0.000021] Switching to timer-based delay loop, resolution 41ns
[    0.000358] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
[    0.000516] sched_clock: 32 bits at 160MHz, resolution 6ns, wraps every 26843545593ns
[    0.000679] Console: colour dummy device 80x30
[    0.000714] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lp)
[    0.000729] pid_max: default: 32768 minimum: 301
[    0.000839] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000851] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001482] CPU: Testing write buffer coherency: ok
[    0.001801] /cpus/cpu@0 missing clock-frequency property
[    0.001819] /cpus/cpu@1 missing clock-frequency property
[    0.001832] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001890] Setting up static identity map for 0x40011c40 - 0x40011c74
[    0.060445] CPU1: Booted secondary processor
[    0.060491] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.060565] Brought up 2 CPUs
[    0.060587] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.060594] CPU: All CPU(s) started in HYP mode.
[    0.060599] CPU: Virtualization extensions available.
[    0.065096] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 4
[    0.065505] pinctrl core: initialized pinctrl subsystem
[    0.065908] regulator-dummy: no parameters
[    0.072004] NET: Registered protocol family 16
[    0.072360] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.111533] reg-fixed-voltage usb1-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/ue
[    0.111569] platform usb1-vbus: Driver reg-fixed-voltage requests probe deferral
[    0.111600] reg-fixed-voltage usb2-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/ue
[    0.111615] platform usb2-vbus: Driver reg-fixed-voltage requests probe deferral
[    0.111831] vcc3v0: 3000 mV 
[    0.112055] vcc3v3: 3300 mV 
[    0.112307] vcc5v0: 5000 mV 
[    0.112391] reg-fixed-voltage gmac-3v3: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/gme
[    0.112408] platform gmac-3v3: Driver reg-fixed-voltage requests probe deferral
[    0.112855] SCSI subsystem initialized
[    0.113256] usbcore: registered new interface driver usbfs
[    0.113325] usbcore: registered new interface driver hub
[    0.113444] usbcore: registered new device driver usb
[    0.113601] Linux video capture interface: v2.00
[    0.113679] pps_core: LinuxPPS API ver. 1 registered
[    0.113687] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.113718] PTP clock support registered
[    0.114788] Switched to clocksource arch_sys_counter
[    0.121926] NET: Registered protocol family 2
[    0.122992] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.123074] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.123196] TCP: Hash tables configured (established 8192 bind 8192)
[    0.123279] TCP: reno registered
[    0.123294] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.123353] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.123629] NET: Registered protocol family 1
[    0.125162] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.125320] audit: initializing netlink subsys (disabled)
[    0.125401] audit: type=2000 audit(0.110:1): initialized
[    0.134297] VFS: Disk quotas dquot_6.5.2
[    0.134557] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.136338] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.136360] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, In.
[    0.137090] msgmni has been set to 1490
[    0.138171] bounce: pool size: 64 pages
[    0.138196] io scheduler noop registered
[    0.138212] io scheduler deadline registered
[    0.138270] io scheduler cfq registered (default)
[    0.138586] platform 1c13400.phy: Driver sun4i-usb-phy requests probe deferral
[    0.141264] sun7i-a20-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.183844] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.187678] console [ttyS0] disabled
[    0.208102] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 33, base_baud = 1500000) is a U6_16550A
[    0.814767] console [ttyS0] enabled
[    0.841281] 1c28c00.serial: ttyS1 at MMIO 0x1c28c00 (irq = 36, base_baud = 1500000) is a U6_16550A
[    0.873232] 1c29c00.serial: ttyS2 at MMIO 0x1c29c00 (irq = 52, base_baud = 1500000) is a U6_16550A
[    0.885745] platform 1c50000.ethernet: Driver stmmaceth requests probe deferral
[    0.893175] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.899752] ehci-platform: EHCI generic platform driver
[    0.905147] platform 1c14000.usb: Driver ehci-platform requests probe deferral
[    0.912439] platform 1c1c000.usb: Driver ehci-platform requests probe deferral
[    0.919780] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.926008] ohci-platform: OHCI generic platform driver
[    0.931352] platform 1c14400.usb: Driver ohci-platform requests probe deferral
[    0.938664] platform 1c1c400.usb: Driver ohci-platform requests probe deferral
[    0.946046] usbcore: registered new interface driver usb-storage
[    0.952292] mousedev: PS/2 mouse device common for all mice
[    0.962555] axp20x-regulator axp20x-regulator: regulators node not found
[    0.969446] LDO1: 1300 mV 
[    0.972587] LDO2: at 3000 mV 
[    0.975990] LDO3: at 2275 mV 
[    0.979138] LDO4: at 2800 mV 
[    0.982495] LDO5: at 2800 mV 
[    0.985913] DCDC2: at 1400 mV 
[    0.989387] DCDC3: at 1250 mV 
[    0.992527] axp20x 0-0034: AXP20X driver loaded
[    0.998124] sunxi-wdt 1c20c90.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    1.006696] sunxi-mmc 1c0f000.mmc: No vqmmc regulator found
[    1.012633] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    1.055070] sunxi-mmc 1c0f000.mmc: base:0xf00f6000 irq:64
[    1.062857] sunxi-ss 1c15000.crypto-engine: Die ID 0
[    1.067906] sunxi-ss: probe of 1c15000.crypto-engine failed with error -22
[    1.075572] TCP: cubic registered
[    1.078912] Initializing XFRM netlink socket
[    1.083222] NET: Registered protocol family 17
[    1.087852] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to .
[    1.100523] Bridge firewalling registered
[    1.104545] 8021q: 802.1Q VLAN Support v1.8
[    1.108877] Registering SWP/SWPB emulation handler
[    1.114183] registered taskstats version 1
[    1.119143] usb1-vbus: 5000 mV 
[    1.122716] usb2-vbus: 5000 mV 
[    1.127366] gmac-3v3: 3300 mV 
[    1.174087] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.184869] stmmaceth 1c50000.ethernet: no reset control found
[    1.191280]  Ring mode enabled
[    1.194334]  No HW DMA feature register supported
[    1.198895]  Normal descriptors
[    1.198923] mmc0: new high speed SDHC card at address aaaa
[    1.207736]  TX Checksum insertion supported
[    1.213665] mmcblk0: mmc0:aaaa SL08G 7.40 GiB 
[    1.220788] libphy: stmmac: probed
[    1.224196] eth0: PHY ID 001cc915 at 0 IRQ POLL (stmmac-0:00) active
[    1.230568] eth0: PHY ID 001cc915 at 1 IRQ POLL (stmmac-0:01)
[    1.231976]  mmcblk0: p1 p2
[    1.239501] ehci-platform 1c14000.usb: EHCI Host Controller
[    1.245145] ehci-platform 1c14000.usb: new USB bus registered, assigned bus number 1
[    1.253005] ehci-platform 1c14000.usb: irq 71, io mem 0x01c14000
[    1.274810] ehci-platform 1c14000.usb: USB 2.0 started, EHCI 1.00
[    1.281095] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.287897] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.295121] usb usb1: Product: EHCI Host Controller
[    1.299996] usb usb1: Manufacturer: Linux 3.18.27 ehci_hcd
[    1.305488] usb usb1: SerialNumber: 1c14000.usb
[    1.310613] hub 1-0:1.0: USB hub found
[    1.314409] hub 1-0:1.0: 1 port detected
[    1.319201] ehci-platform 1c1c000.usb: EHCI Host Controller
[    1.324844] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
[    1.332692] ehci-platform 1c1c000.usb: irq 72, io mem 0x01c1c000
[    1.354820] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
[    1.361081] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.367887] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.375112] usb usb2: Product: EHCI Host Controller
[    1.379986] usb usb2: Manufacturer: Linux 3.18.27 ehci_hcd
[    1.385477] usb usb2: SerialNumber: 1c1c000.usb
[    1.390523] hub 2-0:1.0: USB hub found
[    1.394309] hub 2-0:1.0: 1 port detected
[    1.398857] ohci-platform 1c14400.usb: Generic Platform OHCI controller
[    1.405533] ohci-platform 1c14400.usb: new USB bus registered, assigned bus number 3
[    1.413408] ohci-platform 1c14400.usb: irq 96, io mem 0x01c14400
[    1.478981] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    1.485792] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.493007] usb usb3: Product: Generic Platform OHCI controller
[    1.498939] usb usb3: Manufacturer: Linux 3.18.27 ohci_hcd
[    1.504421] usb usb3: SerialNumber: 1c14400.usb
[    1.509491] hub 3-0:1.0: USB hub found
[    1.513279] hub 3-0:1.0: 1 port detected
[    1.517834] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[    1.524498] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[    1.532394] ohci-platform 1c1c400.usb: irq 97, io mem 0x01c1c400
[    1.598987] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    1.605795] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.613011] usb usb4: Product: Generic Platform OHCI controller
[    1.618944] usb usb4: Manufacturer: Linux 3.18.27 ohci_hcd
[    1.624424] usb usb4: SerialNumber: 1c1c400.usb
[    1.629485] hub 4-0:1.0: USB hub found
[    1.633271] hub 4-0:1.0: 1 port detected
[    1.637643] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.648663] vcc5v0: disabling
[    1.651652] vcc3v0: disabling
[    1.656923] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    1.665773] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[    1.682643] EXT4-fs (mmcblk0p2): mounted filesystem without journal. Opts: (null)
[    1.690223] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.697279] Freeing unused kernel memory: 208K (c04fa000 - c052e000)
[    1.798252] init: Console is alive
[    1.801965] init: - watchdog -
[    2.806040] init: - preinit -
Detected bananapi // LeMaker Banana Pi
[    2.879685] random: mktemp urandom read with 4 bits of entropy available
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    5.942575] mount_root: mounting /dev/root
[    5.947358] EXT4-fs (mmcblk0p2): warning: mounting unchecked fs, running e2fsck is recommended
[    5.959410] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    5.984762] procd: - early -
[    5.987972] procd: - watchdog -
[    6.735933] procd: - ubus -
[    7.745771] procd: - init -
Please press Enter to activate this console.
[    8.358225] NET: Registered protocol family 10
[    8.366943] tun: Universal TUN/TAP device driver, 1.6
[    8.372026] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    8.381799] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.398985] batman_adv: B.A.T.M.A.N. advanced 2016.0 (compatibility version 15) loaded
[    8.411746] sunxi-rtc 1c20d00.rtc: rtc core: registered rtc-sunxi as rtc0
[    8.418711] sunxi-rtc 1c20d00.rtc: RTC enabled
[    8.429943] u32 classifier
[    8.432672]     input device check on
[    8.436488]     Actions configured
[    8.441213] Mirror/redirect action on
[    8.479821] Ebtables v2.0 registered
[    8.485662] ip_tables: (C) 2000-2006 Netfilter Core Team
[    8.499934] nf_conntrack version 0.5.0 (16021 buckets, 64084 max)
[    8.591017] xt_time: kernel timezone is -0000
[   12.041736]  RX IPC Checksum Offload disabled
[   12.049093]  No MAC Management Counters available
[   12.068605] device eth0.3 entered promiscuous mode
[   12.073433] device eth0 entered promiscuous mode
[   12.086656] br-client: port 1(eth0.3) entered forwarding state
[   12.092607] br-client: port 1(eth0.3) entered forwarding state
[   12.108459] device eth0.2 entered promiscuous mode
[   12.135938] br-wan: port 1(eth0.2) entered forwarding state
[   12.141555] br-wan: port 1(eth0.2) entered forwarding state
[   12.202680] device br-client entered promiscuous mode
[   12.438516] batman_adv: bat0: Adding interface: eth0.101
[   12.443871] batman_adv: bat0: Interface activated: eth0.101
[   12.492743] batman_adv: bat0: Adding interface: eth0.100
[   12.498191] batman_adv: bat0: Interface activated: eth0.100
[   12.504395] batman_adv: bat0: Adding interface: eth0.102
[   12.509766] batman_adv: bat0: Interface activated: eth0.102
[   12.515948] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.530593] 8021q: adding VLAN 0 to HW filter on device bat0
[   12.538142] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.546165] batman_adv: bat0: no_rebroadcast: Changing from: disabled to: enabled
[   12.556298] device bat0 entered promiscuous mode
[   12.560980] br-client: port 2(bat0) entered forwarding state
[   12.566766] br-client: port 2(bat0) entered forwarding state
[   13.111428] batman_adv: bat0: Changing gw mode from: off to: client
[   13.118621] batman_adv: bat0: gw_sel_class: Changing from: 20 to: 15
[   13.125833] batman_adv: bat0: hop_penalty: Changing from: 30 to: 15
[   13.133850] batman_adv: bat0: multicast_mode: Changing from: enabled to: disabled
[   13.144378] batman_adv: bat0: orig_interval: Changing from: 1000 to: 5000
[   14.055562] br-wan: port 1(eth0.2) entered disabled state
[   14.062080] br-client: port 1(eth0.3) entered disabled state
[   14.097557] batman_adv: bat0: Interface deactivated: eth0.100
[   14.103345] batman_adv: bat0: Removing interface: eth0.100
[   14.122078] batman_adv: bat0: Interface deactivated: eth0.102
[   14.128006] batman_adv: bat0: Removing interface: eth0.102
[   14.136070] batman_adv: bat0: Interface deactivated: eth0.101
[   14.142480] batman_adv: bat0: Removing interface: eth0.101
[   14.148901] tried to remove device eth0 from br-client
[   14.154079] ------------[ cut here ]------------
[   14.158717] kernel BUG at net/core/dev.c:4981!
[   14.163187] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[   14.169023] Modules linked in: iptable_nat nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipts
[   14.266446] CPU: 0 PID: 1583 Comm: batadv.sh Not tainted 3.18.27 #1
[   14.272712] task: edd49980 ti: eddac000 task.ti: eddac000
[   14.278116] PC is at __netdev_adjacent_dev_remove+0x64/0x124
[   14.283773] LR is at irq_work_queue+0x14/0xd4
[   14.288128] pc : [<c032bbb8>]    lr : [<c0083b60>]    psr: 60000013
[   14.288128] sp : eddade18  ip : 00000007  fp : eddade34
[   14.299589] r10: edd79500  r9 : ee3db000  r8 : ee3db068
[   14.304808] r7 : eebd8000  r6 : eea86000  r5 : eebd8060  r4 : eebd8054
[   14.311325] r3 : 00000000  r2 : 00000001  r1 : 00000000  r0 : 0000002a
[   14.317845] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   14.324972] Control: 10c5387d  Table: 6de5006a  DAC: 00000015
[   14.330710] Process batadv.sh (pid: 1583, stack limit = 0xeddac238)
[   14.336968] Stack: (0xeddade18 to 0xeddae000)
[   14.341322] de00:                                                       eebd8000 eea86000
[   14.349493] de20: edd79060 edd79000 eddade4c eddade38 c032bc94 c032bb60 edd6fa80 ee3c7c40
[   14.357663] de40: eddade7c eddade50 c032bd5c c032bc84 00000001 ee38e400 ee38e400 ee38e400
[   14.365834] de60: edd79000 00000001 bf0b6868 ee343480 eddadebc eddade80 bf0a4514 c032bcf0
[   14.374003] de80: ee343480 edd79000 eddadeac bf0b6868 c000f80c ee38e400 ee343080 00000005
[   14.382172] dea0: 00000000 00000005 ee343480 ee34348c eddadedc eddadec0 bf0adfec bf0a42f4
[   14.390342] dec0: ee343080 00000000 ee343080 eddadf78 eddadeec eddadee0 c01cb49c bf0adefc
[   14.398512] dee0: eddadf04 eddadef0 c0127d0c c01cb48c c0127cc8 00000000 eddadf3c eddadf08
[   14.406681] df00: c01275a0 c0127cd4 00000000 00000000 eddadf3c eddac000 008ad610 ee00b6c0
[   14.414851] df20: 00000005 eddadf78 008ad610 00000000 eddadf74 eddadf40 c00c827c c0127498
[   14.423021] df40: eddadfa4 eddadf50 c0026498 00000000 00000000 ee00b6c0 ee00b6c0 00000005
[   14.431190] df60: 008ad610 00000000 eddadfa4 eddadf78 c00c8818 c00c81d0 00000000 00000000
[   14.439360] df80: 00081b10 00000001 008ad610 00000004 c0008fa4 eddac000 00000000 eddadfa8
[   14.447529] dfa0: c0008e00 c00c87e0 00081b10 00000001 00000001 008ad610 00000005 00000000
[   14.455699] dfc0: 00081b10 00000001 008ad610 00000004 008bfde0 00000020 00000002 008ab008
[   14.463869] dfe0: 00000005 bece2298 00018c98 b6f100ec 60000010 00000001 00000000 00000000
[   14.472031] Backtrace: 
[   14.474496] [<c032bb54>] (__netdev_adjacent_dev_remove) from [<c032bc94>] (__netdev_adjacent_dev_unlink+0)
[   14.484827]  r7:edd79000 r6:edd79060 r5:eea86000 r4:eebd8000
[   14.490537] [<c032bc78>] (__netdev_adjacent_dev_unlink) from [<c032bd5c>] (netdev_upper_dev_unlink+0x78/0)
[   14.500521]  r5:ee3c7c40 r4:edd6fa80
[   14.504154] [<c032bce4>] (netdev_upper_dev_unlink) from [<bf0a4514>] (batadv_hardif_disable_interface+0x2)
[   14.515612]  r9:ee343480 r8:bf0b6868 r7:00000001 r6:edd79000 r5:ee38e400 r4:ee38e400
[   14.523437] [<bf0a42e8>] (batadv_hardif_disable_interface [batman_adv]) from [<bf0adfec>] (batadv_store_m)
[   14.535934]  r10:ee34348c r9:ee343480 r8:00000005 r7:00000000 r6:00000005 r5:ee343080
[   14.543817]  r4:ee38e400
[   14.546379] [<bf0adef0>] (batadv_store_mesh_iface [batman_adv]) from [<c01cb49c>] (kobj_attr_store+0x1c/0)
[   14.556277]  r7:eddadf78 r6:ee343080 r5:00000000 r4:ee343080
[   14.561986] [<c01cb480>] (kobj_attr_store) from [<c0127d0c>] (sysfs_kf_write+0x44/0x50)
[   14.569984] [<c0127cc8>] (sysfs_kf_write) from [<c01275a0>] (kernfs_fop_write+0x114/0x18c)
[   14.578233]  r4:00000000 r3:c0127cc8
[   14.581836] [<c012748c>] (kernfs_fop_write) from [<c00c827c>] (vfs_write+0xb8/0x1d0)
[   14.589566]  r10:00000000 r9:008ad610 r8:eddadf78 r7:00000005 r6:ee00b6c0 r5:008ad610
[   14.597448]  r4:eddac000
[   14.599996] [<c00c81c4>] (vfs_write) from [<c00c8818>] (SyS_write+0x44/0x84)
[   14.607032]  r10:00000000 r9:008ad610 r8:00000005 r7:ee00b6c0 r6:ee00b6c0 r5:00000000
[   14.614912]  r4:00000000
[   14.617462] [<c00c87d4>] (SyS_write) from [<c0008e00>] (ret_fast_syscall+0x0/0x38)
[   14.625020]  r9:eddac000 r8:c0008fa4 r7:00000004 r6:008ad610 r5:00000001 r4:00081b10
[   14.632819] Code: e1a01007 e1a02006 e34c004c ebf4a2c5 (e7f001f2) 
[   14.638910] ---[ end trace 2d4f0cd805c0b722 ]---
[   14.643947] br-client: port 2(bat0) entered forwarding state
[   17.025141] stmmaceth 1c50000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

[   72.904982] random: nonblocking pool is initialized


BusyBox v1.23.2 (2016-03-08 21:57:19 CET) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (Chaos Calmer, r48900)
 -----------------------------------------------------
  * 1 1/2 oz Gin            Shake with a glassful
  * 1/4 oz Triple Sec       of broken ice and pour
  * 3/4 oz Lime Juice       unstrained into a goblet.
  * 1 1/2 oz Orange Juice
  * 1 tsp. Grenadine Syrup
 -----------------------------------------------------
root@0216088335f8:/# 

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: RESEND: Easily reproducible kernel panic due to netdev all_adj_list refcnt handling
  2016-03-25 20:43 ` Matthias Schiffer
@ 2016-03-25 22:10   ` Andrew Collins
  2016-03-28 21:31     ` Matthias Schiffer
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Collins @ 2016-03-25 22:10 UTC (permalink / raw)
  To: Matthias Schiffer; +Cc: netdev

[-- Attachment #1: Type: text/plain, Size: 998 bytes --]

On 03/25/2016 02:43 PM, Matthias Schiffer wrote:
> We've tried your patch, and it changes the symptoms a bit, but doesn't fix
> the panic. I've attached kernel logs of the crash both before and after
> applying the patch.
>
> One note: I did not reproduce this issue myself, it was first reported in
> [1], and then forwarded to the batman-adv issue tracker [2] by me.
>
> Regards,
> Matthias
>
>
> [1] https://github.com/freifunk-gluon/gluon/issues/680
> [2] https://www.open-mesh.org/issues/247

On the off chance it helps, the version of the patch I integrated locally takes a somewhat different approach
than the one I sent to the mailing list (propagates adj_list refcnts).  I've attached it in case it's useful.

I haven't submitted this upstream yet as it's still rather ugly.  I'm of the opinion that the whole "every device
knows every upperdev and lowerdev in its tree" model is rather broken, and the patch is just working around
a design that needs some rework.

Thanks,
Andrew Collins

[-- Attachment #2: netdev_ref_cnt.patch --]
[-- Type: text/x-patch, Size: 8962 bytes --]

commit df318544e282c6ab5bdc4595658fc1cf8739d091
Author: Andrew Collins <acollins@cradlepoint.com>
Date:   Fri Mar 25 16:04:59 2016 -0600

    This fixes a relatively easily reproducible kernel panic related to the
    all_adj_list handling for netdevs in recent kernels.
    
    The following sequence of commands will reproduce the issue:
    
    ip link add link eth0 name eth0.100 type vlan id 100
    ip link add link eth0 name eth0.200 type vlan id 200
    ip link add name testbr type bridge
    ip link set eth0.100 master testbr
    ip link set eth0.200 master testbr
    ip link add link testbr mac0 type macvlan
    ip link delete dev testbr
    
    This creates an upper/lower tree of (excuse the poor ASCII art):
    
                /---eth0.100-eth0
    mac0-testbr-
                \---eth0.200-eth0
    
    When testbr is deleted, the all_adj_lists are walked, and eth0 is deleted twice from
    the mac0 list. Unfortunately, during setup in __netdev_upper_dev_link, only one
    reference to eth0 is added, so this results in a panic.
    
    This change adds reference count propagation so things are handled properly.

diff --git a/net/core/dev.c b/net/core/dev.c
index b9bcbe7..4b4ef6b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5471,6 +5471,7 @@ static inline bool netdev_adjacent_is_neigh_list(struct net_device *dev,
 
 static int __netdev_adjacent_dev_insert(struct net_device *dev,
 					struct net_device *adj_dev,
+					u16 ref_nr,
 					struct list_head *dev_list,
 					void *private, bool master)
 {
@@ -5480,7 +5481,7 @@ static int __netdev_adjacent_dev_insert(struct net_device *dev,
 	adj = __netdev_find_adj(adj_dev, dev_list);
 
 	if (adj) {
-		adj->ref_nr++;
+		adj->ref_nr += ref_nr;
 		return 0;
 	}
 
@@ -5490,7 +5491,7 @@ static int __netdev_adjacent_dev_insert(struct net_device *dev,
 
 	adj->dev = adj_dev;
 	adj->master = master;
-	adj->ref_nr = 1;
+	adj->ref_nr = ref_nr;
 	adj->private = private;
 	dev_hold(adj_dev);
 
@@ -5529,6 +5530,7 @@ free_adj:
 
 static void __netdev_adjacent_dev_remove(struct net_device *dev,
 					 struct net_device *adj_dev,
+					 u16 ref_nr,
 					 struct list_head *dev_list)
 {
 	struct netdev_adjacent *adj;
@@ -5541,10 +5543,10 @@ static void __netdev_adjacent_dev_remove(struct net_device *dev,
 		BUG();
 	}
 
-	if (adj->ref_nr > 1) {
-		pr_debug("%s to %s ref_nr-- = %d\n", dev->name, adj_dev->name,
-			 adj->ref_nr-1);
-		adj->ref_nr--;
+	if (adj->ref_nr > ref_nr) {
+		pr_debug("%s to %s ref_nr-%d = %d\n", dev->name, adj_dev->name,
+			 ref_nr, adj->ref_nr-ref_nr);
+		adj->ref_nr -= ref_nr;
 		return;
 	}
 
@@ -5563,21 +5565,22 @@ static void __netdev_adjacent_dev_remove(struct net_device *dev,
 
 static int __netdev_adjacent_dev_link_lists(struct net_device *dev,
 					    struct net_device *upper_dev,
+					    u16 ref_nr,
 					    struct list_head *up_list,
 					    struct list_head *down_list,
 					    void *private, bool master)
 {
 	int ret;
 
-	ret = __netdev_adjacent_dev_insert(dev, upper_dev, up_list, private,
-					   master);
+	ret = __netdev_adjacent_dev_insert(dev, upper_dev, ref_nr, up_list,
+					   private, master);
 	if (ret)
 		return ret;
 
-	ret = __netdev_adjacent_dev_insert(upper_dev, dev, down_list, private,
-					   false);
+	ret = __netdev_adjacent_dev_insert(upper_dev, dev, ref_nr, down_list,
+					   private, false);
 	if (ret) {
-		__netdev_adjacent_dev_remove(dev, upper_dev, up_list);
+		__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
 		return ret;
 	}
 
@@ -5585,9 +5588,10 @@ static int __netdev_adjacent_dev_link_lists(struct net_device *dev,
 }
 
 static int __netdev_adjacent_dev_link(struct net_device *dev,
-				      struct net_device *upper_dev)
+				      struct net_device *upper_dev,
+				      u16 ref_nr)
 {
-	return __netdev_adjacent_dev_link_lists(dev, upper_dev,
+	return __netdev_adjacent_dev_link_lists(dev, upper_dev, ref_nr,
 						&dev->all_adj_list.upper,
 						&upper_dev->all_adj_list.lower,
 						NULL, false);
@@ -5595,17 +5599,19 @@ static int __netdev_adjacent_dev_link(struct net_device *dev,
 
 static void __netdev_adjacent_dev_unlink_lists(struct net_device *dev,
 					       struct net_device *upper_dev,
+					       u16 ref_nr,
 					       struct list_head *up_list,
 					       struct list_head *down_list)
 {
-	__netdev_adjacent_dev_remove(dev, upper_dev, up_list);
-	__netdev_adjacent_dev_remove(upper_dev, dev, down_list);
+	__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
+	__netdev_adjacent_dev_remove(upper_dev, dev, ref_nr, down_list);
 }
 
 static void __netdev_adjacent_dev_unlink(struct net_device *dev,
-					 struct net_device *upper_dev)
+					 struct net_device *upper_dev,
+					 u16 ref_nr)
 {
-	__netdev_adjacent_dev_unlink_lists(dev, upper_dev,
+	__netdev_adjacent_dev_unlink_lists(dev, upper_dev, ref_nr,
 					   &dev->all_adj_list.upper,
 					   &upper_dev->all_adj_list.lower);
 }
@@ -5614,17 +5620,17 @@ static int __netdev_adjacent_dev_link_neighbour(struct net_device *dev,
 						struct net_device *upper_dev,
 						void *private, bool master)
 {
-	int ret = __netdev_adjacent_dev_link(dev, upper_dev);
+	int ret = __netdev_adjacent_dev_link(dev, upper_dev, 1);
 
 	if (ret)
 		return ret;
 
-	ret = __netdev_adjacent_dev_link_lists(dev, upper_dev,
+	ret = __netdev_adjacent_dev_link_lists(dev, upper_dev, 1,
 					       &dev->adj_list.upper,
 					       &upper_dev->adj_list.lower,
 					       private, master);
 	if (ret) {
-		__netdev_adjacent_dev_unlink(dev, upper_dev);
+		__netdev_adjacent_dev_unlink(dev, upper_dev, 1);
 		return ret;
 	}
 
@@ -5634,8 +5640,8 @@ static int __netdev_adjacent_dev_link_neighbour(struct net_device *dev,
 static void __netdev_adjacent_dev_unlink_neighbour(struct net_device *dev,
 						   struct net_device *upper_dev)
 {
-	__netdev_adjacent_dev_unlink(dev, upper_dev);
-	__netdev_adjacent_dev_unlink_lists(dev, upper_dev,
+	__netdev_adjacent_dev_unlink(dev, upper_dev, 1);
+	__netdev_adjacent_dev_unlink_lists(dev, upper_dev, 1,
 					   &dev->adj_list.upper,
 					   &upper_dev->adj_list.lower);
 }
@@ -5688,7 +5694,7 @@ static int __netdev_upper_dev_link(struct net_device *dev,
 		list_for_each_entry(j, &upper_dev->all_adj_list.upper, list) {
 			pr_debug("Interlinking %s with %s, non-neighbour\n",
 				 i->dev->name, j->dev->name);
-			ret = __netdev_adjacent_dev_link(i->dev, j->dev);
+			ret = __netdev_adjacent_dev_link(i->dev, j->dev, i->ref_nr);
 			if (ret)
 				goto rollback_mesh;
 		}
@@ -5698,7 +5704,7 @@ static int __netdev_upper_dev_link(struct net_device *dev,
 	list_for_each_entry(i, &upper_dev->all_adj_list.upper, list) {
 		pr_debug("linking %s's upper device %s with %s\n",
 			 upper_dev->name, i->dev->name, dev->name);
-		ret = __netdev_adjacent_dev_link(dev, i->dev);
+		ret = __netdev_adjacent_dev_link(dev, i->dev, i->ref_nr);
 		if (ret)
 			goto rollback_upper_mesh;
 	}
@@ -5707,7 +5713,7 @@ static int __netdev_upper_dev_link(struct net_device *dev,
 	list_for_each_entry(i, &dev->all_adj_list.lower, list) {
 		pr_debug("linking %s's lower device %s with %s\n", dev->name,
 			 i->dev->name, upper_dev->name);
-		ret = __netdev_adjacent_dev_link(i->dev, upper_dev);
+		ret = __netdev_adjacent_dev_link(i->dev, upper_dev, i->ref_nr);
 		if (ret)
 			goto rollback_lower_mesh;
 	}
@@ -5725,7 +5731,7 @@ rollback_lower_mesh:
 	list_for_each_entry(i, &dev->all_adj_list.lower, list) {
 		if (i == to_i)
 			break;
-		__netdev_adjacent_dev_unlink(i->dev, upper_dev);
+		__netdev_adjacent_dev_unlink(i->dev, upper_dev, i->ref_nr);
 	}
 
 	i = NULL;
@@ -5735,7 +5741,7 @@ rollback_upper_mesh:
 	list_for_each_entry(i, &upper_dev->all_adj_list.upper, list) {
 		if (i == to_i)
 			break;
-		__netdev_adjacent_dev_unlink(dev, i->dev);
+		__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
 	}
 
 	i = j = NULL;
@@ -5747,7 +5753,7 @@ rollback_mesh:
 		list_for_each_entry(j, &upper_dev->all_adj_list.upper, list) {
 			if (i == to_i && j == to_j)
 				break;
-			__netdev_adjacent_dev_unlink(i->dev, j->dev);
+			__netdev_adjacent_dev_unlink(i->dev, j->dev, i->ref_nr);
 		}
 		if (i == to_i)
 			break;
@@ -5827,16 +5833,16 @@ void netdev_upper_dev_unlink(struct net_device *dev,
 	 */
 	list_for_each_entry(i, &dev->all_adj_list.lower, list)
 		list_for_each_entry(j, &upper_dev->all_adj_list.upper, list)
-			__netdev_adjacent_dev_unlink(i->dev, j->dev);
+			__netdev_adjacent_dev_unlink(i->dev, j->dev, i->ref_nr);
 
 	/* remove also the devices itself from lower/upper device
 	 * list
 	 */
 	list_for_each_entry(i, &dev->all_adj_list.lower, list)
-		__netdev_adjacent_dev_unlink(i->dev, upper_dev);
+		__netdev_adjacent_dev_unlink(i->dev, upper_dev, i->ref_nr);
 
 	list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
-		__netdev_adjacent_dev_unlink(dev, i->dev);
+		__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
 
 	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
 				      &changeupper_info.info);

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: RESEND: Easily reproducible kernel panic due to netdev all_adj_list refcnt handling
  2016-03-25 22:10   ` Andrew Collins
@ 2016-03-28 21:31     ` Matthias Schiffer
  0 siblings, 0 replies; 4+ messages in thread
From: Matthias Schiffer @ 2016-03-28 21:31 UTC (permalink / raw)
  To: Andrew Collins; +Cc: netdev


[-- Attachment #1.1: Type: text/plain, Size: 1230 bytes --]

On 03/25/2016 11:10 PM, Andrew Collins wrote:
> On 03/25/2016 02:43 PM, Matthias Schiffer wrote:
>> We've tried your patch, and it changes the symptoms a bit, but doesn't fix
>> the panic. I've attached kernel logs of the crash both before and after
>> applying the patch.
>>
>> One note: I did not reproduce this issue myself, it was first reported in
>> [1], and then forwarded to the batman-adv issue tracker [2] by me.
>>
>> Regards,
>> Matthias
>>
>>
>> [1] https://github.com/freifunk-gluon/gluon/issues/680
>> [2] https://www.open-mesh.org/issues/247
> 
> On the off chance it helps, the version of the patch I integrated locally
> takes a somewhat different approach
> than the one I sent to the mailing list (propagates adj_list refcnts). 
> I've attached it in case it's useful.
> 
> I haven't submitted this upstream yet as it's still rather ugly.  I'm of
> the opinion that the whole "every device
> knows every upperdev and lowerdev in its tree" model is rather broken, and
> the patch is just working around
> a design that needs some rework.
> 
> Thanks,
> Andrew Collins

It's ugly, but it seems to help. No crashes so far with the new version of
your patch.

Thanks,
Matthias


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-03-28 21:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-23 22:29 RESEND: Easily reproducible kernel panic due to netdev all_adj_list refcnt handling Andrew Collins
2016-03-25 20:43 ` Matthias Schiffer
2016-03-25 22:10   ` Andrew Collins
2016-03-28 21:31     ` Matthias Schiffer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.