summaryrefslogtreecommitdiff
path: root/target/linux
AgeCommit message (Collapse)Author
2013-02-09generic: ar8216: move sleep out of the loopjuhosg
It is enough to sleep once after ANEG is enabled on all PHYs. This reduces boot time on boards with AR8316 switch. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35532 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-08ar71xx: Routerboard 751 Mac Address Offset Fixjuhosg
We utilize many Routerboard 751's and discovered that our latest batch of RB751's would not initialize the wireless radio. We have determined Mikrotik has changed where the mac address was located inside hardconfig. As such we utilize "routerboot_find_tag" to find the location of the mac address. We should remove "RB751_MAC_ADDRESS_OFFSET" as it is ambiguous by machine manufacturing date. The newer batch of RB751's that we received had a RB751_MAC_ADDRESS_OFFSET 0x10. Signed-off-by: Davey Hutchison <dhutchison@bluemesh.net> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35519 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-08generic: ar8216: simplify phy features setupjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35518 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-08generic: ar8216: don't use mdio bus specific functions in ar8216_id_chipjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35517 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07generic: ar8216: use inline function to convert swdev to ar8216juhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35514 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07generic: ar8216: add mii_bus field to struct ar8216_privjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35513 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07generic: mvswitch: add detach callbackjuhosg
Use the detach callback to disable packet mangling to avoid possible NULL pointer dereference. Compile tested only. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35512 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07generic: ar8216: add detach callbackjuhosg
The current code uses the 'remove' callback to disable packet mangle on the underlying ethernet device. However the attached_dev is always NULL when the 'remove' callback is called by phylib, and this causes NULL pointer dereference, like this: [ 475.300000] CPU 0 Unable to handle kernel paging request at virtual address 000000f0, epc == 801cdcf0, ra == 801c7eac [ 475.310000] Oops[#1]: [ 475.310000] Cpu 0 [ 475.310000] $ 0 : 00000000 00000000 00000000 00000001 [ 475.310000] $ 4 : 828dde00 00000005 828dde08 ffffffff [ 475.310000] $ 8 : 00380081 00380081 82902a40 00000001 [ 475.310000] $12 : 00000037 00370081 00000001 00000000 [ 475.310000] $16 : 82865000 828dde08 828dde00 00000001 [ 475.310000] $20 : 00000080 00460000 00000002 77151448 [ 475.310000] $24 : 00000000 801abfd4 [ 475.310000] $28 : 82cc2000 82cc3d58 0053c3c4 801c7eac [ 475.310000] Hi : 00000007 [ 475.310000] Lo : 00000004 [ 475.310000] epc : 801cdcf0 ar8216_remove+0x1c/0x94 [ 475.310000] Tainted: G O [ 475.310000] ra : 801c7eac phy_remove+0x4c/0x6c [ 475.310000] Status: 1000cc03 KERNEL EXL IE [ 475.310000] Cause : 00800008 [ 475.310000] BadVA : 000000f0 [ 475.310000] PrId : 00019750 (MIPS 74Kc) [ 475.310000] Modules linked in: ath79_wdt ledtrig_usbdev ledtrig_netdev ag71xx(-) nf_nat_irc nf_nat_ftp nf_conntrack_irc nf_conntrack_ft p ipt_MASQUERADE iptable_nat xt_nat nf_nat_ipv4 nf_nat pppoext_conntrack xt_CT iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_co nntrack ehci_hcd pppox ipt_REJECT xt_TCPMSS xt_LOG xt_comment xt_multiport xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpu dp x_tables ppp_async ppp_generic slhc ath9k(O) ath9k_common(O) ath9k_hw(O) ath(O) mac80211(O) usbcore usb_common nls_base crc_ccitt cfg80 211(O) compat(O) arc4 crypto_blkcipher aead ledtrig_timer ledtrig_default_on leds_gpio gpio_button_hotplug(O) [ 475.310000] Process rmmod (pid: 1160, threadinfo=82cc2000, task=83969920, tls=7747c440) [ 475.310000] Stack : 828dde08 802f5004 802f4680 00000001 828ddf70 801c7eac 802f4680 801ad6d8 82902940 00000000 828dde08 802f5004 802f4680 801ad770 00000002 80269d94 00000000 00000001 00000080 828dde08 828dde3c 801ad7fc 82902940 00000000 83859100 00000000 8384dd2c 8384dd2c 828dde08 801ad230 82902800 00000000 00000000 001a0041 828dde08 828dde08 802e80e8 801aac44 00000080 00460000 ... [ 475.310000] Call Trace: [ 475.310000] [<801cdcf0>] ar8216_remove+0x1c/0x94 [ 475.310000] [<801c7eac>] phy_remove+0x4c/0x6c [ 475.310000] [<801ad770>] __device_release_driver+0x6c/0xd0 [ 475.310000] [<801ad7fc>] device_release_driver+0x28/0x40 [ 475.310000] [<801ad230>] bus_remove_device+0xd8/0x10c [ 475.310000] [<801aac44>] device_del+0x110/0x170 [ 475.310000] [<801aacb8>] device_unregister+0x14/0x28 [ 475.310000] [<801c92b0>] mdiobus_unregister+0x4c/0x70 [ 475.310000] [<82913060>] ag71xx_remove_ar8216_header+0xdc/0x5a8 [ag71xx] [ 475.310000] [ 475.310000] Code: 1200001c 8c82017c ac800128 <8c4500f0> 3c03ffdf 3463ffff 00a31824 ac4300f0 ac4000e0 Add a detach callback and disable packet mangling in that to fix the problem. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35511 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07generic: add detach callback to struct phy_driverjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35510 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-06brcm47xx: fix name of kmod-ocf-ubsec-ssbhauke
This also removes kmod-ocf, because kmod-crypto-ocf is automatically selected by kmod-ocf-ubsec-ssb. Thank you Manuel Munz <freifunk@somakoma.de> for the patch. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35509 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-06brcm47xx: bgmac: make it possible to set the devices into promisc mode when ↵hauke
it is already up This fixes #12927. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35507 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05[brcm63xx] remove support for 3.6 kernelflorian
Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35506 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05[brcm63xx] make default version 3.7.6florian
Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35505 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05[brcm63xx] remove superfluous calls to /lib/brcm63xx.shflorian
The first preinit script 03_do_brcm63xx.sh does the right job of exporting variables for the other subsequent preinit scripts to use them. Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35504 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05[brcm63xx] remove references to the old switch driverflorian
Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35503 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05fix trx checksum after first boot and add led/button definitions for boards ↵mirko
RTA770BW and RTA770W git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35501 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05add support for board named RTA770Wmirko
Actually this board is the very same as the rta770bw, where the additional 'b' within the name just indicates 'Annex B'. The ADSL Modem itself is able to handle both, Annex A as well as Annex B - the loaded firmware makes the only difference git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35500 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05generic: ar8216: clear driver specific data pointer in phy_devicejuhosg
This is needed to avoid a NULL pointer dereference: [ 19.525270] Unable to handle kernel paging request for data at address 0x00000018 [ 19.532750] Faulting instruction address: 0xc016e104 [ 19.537714] Oops: Kernel access of bad area, sig: 11 [#1] [ 19.543102] P1010 RDB [ 19.545365] Modules linked in: booke_wdt nf_nat_irc nf_nat_ftp nf_conntrack_irc nf_conntrack_ftp ipt_MASQUERADE iptable_nat xt_nat d [ 19.590725] NIP: c016e104 LR: c0171490 CTR: 00000000 [ 19.595681] REGS: c4bc3c10 TRAP: 0300 Tainted: G W O (3.7.6) [ 19.602284] MSR: 00029000 <CE,EE,ME> CR: 82002022 XER: 20000000 [ 19.608381] DEAR: 00000018, ESR: 00000000 [ 19.612382] TASK = c4cd9c80[2070] 'ifconfig' THREAD: c4bc2000 GPR00: 00000001 c4bc3cc0 c4cd9c80 00000000 c7811000 00000000 00000000 0000e8ec GPR08: 0000e8eb 00000000 00029000 00000001 00000000 100801f8 1005c51c 1005c514 GPR16: 1005c468 1005c54c 1005c258 1005c530 10060000 00000000 c7811000 ffff8914 GPR24: c7815030 c793e400 10063adb 00000000 c7811000 c045594c c78ca600 c7815000 [ 19.646352] NIP [c016e104] register_switch+0x98/0x2d0 [ 19.651397] LR [c0171490] ar8216_config_init+0x2d8/0x3f4 [ 19.656697] Call Trace: [ 19.659138] [c4bc3cc0] [c0170490] ar8216_mii_read+0x64/0xc4 (unreliable) [ 19.665835] [c4bc3d00] [c0171490] ar8216_config_init+0x2d8/0x3f4 [ 19.671835] [c4bc3d20] [c016cf8c] phy_init_hw+0x50/0x6c [ 19.677053] [c4bc3d30] [c016d078] phy_attach_direct+0xd0/0xf8 [ 19.682793] [c4bc3d50] [c016d154] phy_connect_direct+0x24/0x68 [ 19.688621] [c4bc3d70] [c0183b70] of_phy_connect+0x48/0x6c [ 19.694102] [c4bc3d90] [c0175aac] gfar_enet_open+0x254/0x3d8 [ 19.699755] [c4bc3db0] [c019acc4] __dev_open+0xc0/0x120 [ 19.704975] [c4bc3dd0] [c019af98] __dev_change_flags+0xd4/0x15c [ 19.710888] [c4bc3df0] [c019b0d4] dev_change_flags+0x1c/0x60 [ 19.716544] [c4bc3e10] [c01ebb94] devinet_ioctl+0x290/0x690 [ 19.722111] [c4bc3e70] [c01ec8d4] inet_ioctl+0x88/0xbc [ 19.727245] [c4bc3e80] [c0186b98] sock_ioctl+0x258/0x294 [ 19.732551] [c4bc3ea0] [c009c00c] do_vfs_ioctl+0x6a4/0x728 [ 19.738031] [c4bc3f10] [c009c0d4] sys_ioctl+0x44/0x70 [ 19.743077] [c4bc3f40] [c000c74c] ret_from_syscall+0x0/0x3c [ 19.748646] --- Exception: c01 at 0x48091b34 [ 19.748646] LR = 0x480e4b64 [ 19.756033] Instruction dump: [ 19.758991] 2f830000 907f0050 3860fff4 419e021c 837f0000 38000000 901f0038 901f0040 [ 19.766744] 901f003c 7f600034 5400d97e 0f000000 <801b0018> 2f800000 40be0010 801b001c Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35497 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05generic: ar8216: unregister switch on error pathjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35496 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05mpc85xx: enable GPIO sysfs interfacejuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35495 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05mpc85xx: enable Freescale eSPI driver and m25p80 supportjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35494 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05mpc85xx: sync kernel configjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35493 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04brcm47xx: fix detection of Asus RT-N16hauke
This fixes #12936. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35492 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04Add Failsafe support for Linksys E3000V1 / WRT610NV2hauke
Adds specification of the correct cpu_port for Linksys E3000V1 and WRT610NV2 in /lib/preinit/05_init_interfaces_brcm. The list of devices will need to be expanded. Is there a way to determine the correct cpu_port to use in a generic sense; for instance, if "/proc/switch/eth0/port/8" exists, or if "/sys/class/net/eth0/device/driver/module/drivers/bcma:bgmac" exists? Could a similar method be used in "/etc/init.d/netconfig"? Signed-off-by: Nathan Hintz <nlhintz@hotmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35491 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04brcm47xx: Fix switch config on 4716/53115 deviceshauke
Signed-off-by: Jonathan McCrohan <jmccrohan@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35490 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04coldfire: R.I.P.juhosg
The target still uses 2.6.38. The support of that kernel version has been removed ~9 months ago. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35489 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04leon: R.I.P.juhosg
It is broken since ~9 months and nobody takes care of that. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35488 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04imx21: R.I.P.juhosg
It is broken since ~22 months and nobody takes care of that. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35487 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04octeon: R.I.P.juhosg
It is broken since ~8 months and nobody takes care of that. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35486 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04omap35xx: R.I.P.juhosg
It is broken since ~22 months and nobody takes care of that. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35485 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04bcm63xx: add support for linux 3.8jogo
Based on 3.8-rc6 Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35482 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04bcm63xx: add support for linux 3.7jogo
Based on 3.7.6. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35481 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04kernel: generic: update the ehci overcurrent patch to upstream submissionjogo
Adds support for setting this in the generic platform driver's platform_data. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35480 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04kernel: generic: add back the patch exporting bcm63xx tag headerjogo
It went missing when adding linux 3.7 support. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35479 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04kernel: generic: update to 3.8-rc6jogo
Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35478 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04bcm63xx: refresh 3.6 patchesjogo
Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35477 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-04kernel: update linux 3.7 to 3.7.6juhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35476 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ar71xx: use backported PCI_MEM_SIZE patchesjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35470 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ar71xx: rename ar933x_uart patchjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35469 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ramips: build image for the Omnima EMB HPM boardjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35468 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ramips: add user-space support for the Omnima EMB HPM boardjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35467 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ramips: rt3883: add kernel support for the Omnima EMB HPM boardjuhosg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35466 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ramips: add userspace support for the Edimax BR-6425juhosg
[juhosg: remove sysupgrade changes] Signed-off-by: Yuval Adam <yuv.adm@gmail.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35463 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ramips: add kernel support for the Edimax BR-6425 boardjuhosg
Signed-off-by: Yuval Adam <yuv.adm@gmail.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35462 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02x86/kvm_guest: add support for 3.7juhosg
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35460 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02x86: add missing symbols for 3.7juhosg
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35459 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02x86/kvm_guest: add missing symbols for 3.3juhosg
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35458 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02alix2: convert from kernel version 3.3.8 to 3.7.5juhosg
[juhosg: use 3.7.5 instead of 3.7.3] Signed-off-by: Russell Senior <russell@personaltelco.net> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35457 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02generic: convert crypto-ocf from kernel_thread to kthreadjuhosg
recent kernels have finally stopped exporting kernel_thread, since a deprecation circa 2006. This patch attempts to convert to the newer kernel kthread API, particularly in random.c [juhosg: remove randomproc variable, it is not required after the patch] Signed-off-by: Russell Senior <russell@personaltelco.net> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35456 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-02ar71xx: fixes whitespaces for dir-825-c1juhosg
Signed-off-by: Alexander Stadler <sa.maillists@univie.ac.at> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35455 3c298f89-4303-0410-b956-a3cf2f4a3e73