aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
Commit message (Collapse)AuthorAgeFilesLines
* kernel: fix forwarding locally generated packages in bridge isolation patchDaniel Danzberger2018-02-052-2/+2
| | | | | | | | | Locally generated packets weren't forwarded to the isolated interfaces in a bridge. Isolation should only prevent the flooding of incomming packets to other interfaces in the bridge. Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ramips: use napi_alloc_frag and skb_free_fragFelix Fietkau2018-02-051-4/+4
| | | | | | Slightly improves rx performance Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ramips: improve NAPI polling to increase GRO batch sizeFelix Fietkau2018-02-051-16/+13
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ar71xx: use global timestamp for hang checkFelix Fietkau2018-02-052-6/+7
| | | | | | | Shrink the size of struct ag71xx_buf to 8 bytes, which improves cache footprint Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ar71xx: only access device stats in tx handler if packets were processedFelix Fietkau2018-02-051-3/+3
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ar71xx: allocate rx/tx descriptor/buffers in one chunkFelix Fietkau2018-02-051-47/+38
| | | | | | Reduces false sharing due to cache aliases Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ag71xx: Reorder ag71xx struct members for better cache performanceRosen Penev2018-02-051-10/+17
| | | | | | | | | | | | | | | Qualcomm claims this improves the D-cache footprint. Origina commit message below: From: Ben Menchaca <ben.menchaca@qca.qualcomm.com> Date: Fri, 7 Jun 2013 10:57:28 -0500 Subject: [ag71xx] cluster/align structs for cache perf Cluster the frequently used, per-packet structures in ag71xx near to each other, and cacheline-align them. Some other re-ordering occurred to move "warmer" structures near the per-packet structures. Signed-off-by: Ben Menchaca <ben.menchaca@qca.qualcomm.com> Signed-off-by: Rosen Penev <rosenp@gmail.com>
* build: replace uses of OpenWrt with $(VERSION_DIST)Felix Fietkau2018-02-059-20/+20
| | | | | | This makes the distribution name more configurable. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ar71xx: /lib/ar71xx.sh: add model detection for TP-Link TL-WR810NMatthias Schiffer2018-02-031-0/+3
| | | | | | Properly report the revision in /tmp/sysinfo/model. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ar71xx-generic: enable ATH79_MACH_TL_WR841N_V8 machineMatthias Schiffer2018-01-311-0/+1
| | | | | | | | | This machfile also contains the code for the TL-WR842N/ND v2, which is in ar71xx-generic and not in ar71xx-tiny. Fixes: 0cd5e85e7a "ar71xx: create new ar71xx/tiny subtarget for 4MB flash devices" Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* build: add config option KERNEL_MIPS_FPU_EMULATORYousong Zhou2018-01-292-2/+0
| | | | | | | To make it more accessible for nodejs users to configure and run a build on mips target lacking hardware fpu Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* ar71xx: add ew-balin platform from Embedded WirelessCatrinel Catrinescu2018-01-2512-0/+148
| | | | | | | | | | | | | | | | | | | Add the Embedded Wireless "Balin" platform SoC: QCA AR9344 or AR9350 RAM: DDR2-RAM 64MBytes Flash: SPI-NOR 16MBytes WLAN: 2 x 2 MIMO 2.4 & 5 GHz IEEE802.11 a/b/g/n Ethernet: 3 x 10/100 Mb/s USB: 1 x USB2.0 Host/Device bootstrap-pin at power-up PCI-Express: 1 x lane PCIe 1.2 UART: 1 x Normal, 1 x High-Speed JTAG: 1 x EJTAG GPIO: 10 x Input/Output multiplexed The module comes already with the current vanilla OpenWrt firmware. To update, use "sysupgrade" image directly in vendor firmware. Signed-off-by: Catrinel Catrinescu <cc@80211.de>
* ar71xx: add unaligned access hacks for VXLANMatthias Schiffer2018-01-251-0/+92
| | | | | | Gives a ~5% performance gain. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ramips: add support for Widora Neo 32MB flash revisionJackson Ming Hu2018-01-235-1/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Widora has updated their Widora Neo board recently. The new model uses 32MB WSON-8 factor SPI flash instead of the original 16MB SOP-8 factor SPI flash. All the other hardware components are the same as the first revision. Detailed hardware specs listed below: CPU: MTK MT7688AN RAM: 128MB DDR2 ROM: 32MB WSON-8 factor SPI Flash (Winbond) WiFi: Built-in 802.11n 150Mbps? Ethernet: 10/100Mbps x1 Audio codec: WM8960 Other IO: USB OTG; USB Power+Serial (CP2104); 3x LEDs (Power, LAN, WiFi); 2x Keys (WPS, CPU Reset) 1x Audio In/Out 1x IPEX antenna port 1x Micro SD slot Signed-off-by: Jackson Ming Hu <huming2207@gmail.com> Signed-off-by: Mathias Kresin <dev@kresin.me>
* ramips: add flash size postfix to Widora neoMathias Kresin2018-01-237-60/+62
| | | | | | | | | | Rename the Widora neo by adding a flash size prefix. Move the common parts into a dtsi to be prepare everything for upcomming support of the 32MB version. Migrate the Widora neo to the generic board detection as well. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: generic: add 4.9 config optionHans Dedecker2018-01-241-0/+1
| | | | | | | | When CGROUPS is enabled the new option CONFIG_CGROUP_NET_CLASSID is selectable and not handled. Add this option to the 4.9 kernel configuration. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* ramips: Fix GB-PC1 cpuclock againRosen Penev2018-01-241-1/+1
| | | | | | | The intended frequency is 900 MHz, not 90. Fixes: 7059ab48a6d5 ("ramips: fix cpuclock for the GB-PC1") Signed-off-by: Rosen Penev <rosenp@gmail.com>
* ar71xx: fix MikroTik rb-nor-flash-16M-ac imageDaniel Golle2018-01-241-1/+1
| | | | | | | | | | | | | commit e15c63a375 ar71xx: add support for MikroTik RouterBOARD wAP G-5HacT2HnD (wAP AC) changed the existing rb-nor-flash-16M-ac image in a way that it would now only support the rb-wapg-5hact2hnd. The board show however rather be added to the existing boards in the rb-nor-flash-16M image template. Reported-by: Mathias Kresin <dev@kresin.me> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ramips: add support for ZBT-WE1226Daniel Golle2018-01-237-0/+132
| | | | | | | | MT7628NN (580MHz), 8MB SPI NOR, 64MB DDR2 RAM Everything except for the switch LEDs works great. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* sunxi: Orange Pi R1: configure USB Ethernet controller.Hauke Mehrtens2018-01-221-0/+3
| | | | | | Now the USB port is the WAN port. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* sunxi: Orange Pi R1: Fix USB Ethernet and activate SPIHauke Mehrtens2018-01-222-0/+77
| | | | | | | | | The USB Ethernet is not working with the patches proposed for upstream, fix this and activate the SPI node as this board always has a SPI flash. Both patches are also targeted for upstream kernel 4.16 and 4.17. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* sunxi: use upstream patch for Orange Pi R1Hauke Mehrtens2018-01-222-196/+105
| | | | | | | Instead of using our own device tree definitions use the one provided in the upstream kernel for 4.16. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* sunxi: backport stmmac network patchesHauke Mehrtens2018-01-2211-0/+1391
| | | | | | | | Ethernet support was initial added in kernel 4.13, but deactivated before the final release. This is backports the changes which are activating it again from kernel 4.15. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* sunxi: Add support for kernel 4.14Hauke Mehrtens2018-01-226-12/+940
| | | | | | | This is based on the code for kernel 4.9, but a lot of 4.9 patches are backports from more recent kernel version and can be removed now. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* sunxi: refresh kernel configurationHauke Mehrtens2018-01-224-4/+2
| | | | | | | | Just refresh the sunxi kernel configuration. This also moves the CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG option to the config-4.9 file. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ar71xx: add support for the MikroTik RB911-2Hn/5Hn boardsGabor Juhos2018-01-2211-3/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch adds support for the MikroTik RB911-2Hn (911 Lite2) and the RB911-5Hn (911 Lite5) boards: https://mikrotik.com/product/RB911-2Hn https://mikrotik.com/product/RB911-5Hn The two boards are using the same hardware design, the only difference between the two is the supported wireless band. Specifications: * SoC: Atheros AR9344 (600MHz) * RAM: 64MiB * Storage: 16 MiB SPI NOR flash * Ethernet: 1x100M (Passive PoE in) * Wireless: AR9344 built-in wireless MAC, single chain 802.11b/g/n (911-2Hn) or 802.11a/g/n (911-5Hn) Notes: * Older versions of these boards might be equipped with a NAND flash chip instead of the SPI NOR device. Those boards are not supported (yet). * The MikroTik RB911-5HnD (911 Lite5 Dual) board also uses the same hardware. Support for that can be added later with little effort probably. Installation: 1. Setup a DHCP/BOOTP Server with the following parameters: * DHCP-Option 66 (TFTP server name): pointing to a local TFTP server within the same subnet of the DHCP range * DHCP-Option 67 (Bootfile-Name): matching the initramfs filename of the to be booted image. The usable intramfs files are: - openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf - openwrt-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf - openwrt-ar71xx-mikrotik-rb-nor-flash-16M-initramfs-kernel.bin 2. Press the reset button on the board and keep that pressed. 3. Connect the board to your local network via its ethernet port. 4. Release the button after the LEDs on the board are turned off. Now the board should load and start the initramfs image from the TFTP server. 5. Upload the sysupgrade image to the board with scp: $ scp openwrt-ar71xx-mikrotik-rb-nor-flash-16M-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/fw.bin 5. Log in to the running system listening on 192.168.1.1 via ssh as root (without password): $ ssh root@192.168.1.1 7. Flash the uploaded firmware file from the ssh session via the sysupgrade command: root@OpenWrt:~# sysupgrade /tmp/fw.bin Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* ar71xx: make leds-gpio usable with single-ended GPIOsGabor Juhos2018-01-222-0/+90
| | | | | | | | | Add patches for the leds-gpio driver to make it usable with open-drain and open-source kind of GPIO lines. This type of functionality is required by various MikroTik boards. Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* ar71xx: mach-rbspi: return rb_info from rbspi_platform_setupGabor Juhos2018-01-221-13/+13
| | | | | | | | | | | | Modify the rbspi_platform_setup() function to return the pointer of the rb_info structure. This allows board specific setup routines to access the various fields of the information. It is useful for investigating the hardware option bits for example. Also update the board setup codes, to ensure that those handle the new return value correctly. Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* ar71xx: add definitions for RouterBOARD hardware option bitsGabor Juhos2018-01-221-0/+26
| | | | | | | | | | | | Add bit definitions for the 'hardware options' tag which is used in the MikroTik devices' hardware configurations. These values can be used in board setup codes, to do different initialization sequences. The values were obtained from the RouterOS 6.41-rc38 patches. Additionally, introduce two helper functions what make the processing of the hardware options easy. Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* pistachio: make patches apply againHauke Mehrtens2018-01-201-2/+2
| | | | | | | | Support for Winbond NAND flash detection was added into the generic patches and this conflicted with this patch adding Gigadevice support. Fixes: 02050f7e7d5b ("kernel/4.{4, 9}: add manufacturer ID for Winbond NANDs") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq806x: make patches apply againHauke Mehrtens2018-01-201-18/+0
| | | | | | | | Some part of this patch was added to the generic patches as it was needed also for some other target. Do not add it here any more. Fixes: 02050f7e7d5b ("kernel/4.{4, 9}: add manufacturer ID for Winbond NANDs") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* x86: Add CONFIG_RETPOLINE to fix buildHauke Mehrtens2018-01-202-6/+7
| | | | | | | | | This adds support for the new configuration option CONFIG_RETPOLINE and refreshes the configuration. Fixes: d8565a06dc ("kernel: bump 4.9 to 4.9.77") Fixes: 9ddfac8015 ("kernel: bump 4.14 to 4.14.14") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: use upstream patches for muslHauke Mehrtens2018-01-2017-638/+603
| | | | | | | | | | This replaces the current patches used to make the kernel headers compatible with musl with the version which was accepted upstream. This is included in upstream kernel 4.15. This was compile tested with iproute2 build on all supported kernel versions with musl and one one with glibc. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: backport fix for nftables on big EndianHauke Mehrtens2018-01-201-0/+323
| | | | | | | | | | | nftables 0.8.1 generates some new commands which will not work without this on big endian systems. This patch is included in Linux 4.11 and later. My rule matching a TCP port was not working: nft add rule ip foo bar ct state new tcp dport 22 accept Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: bump 4.4 to 4.4.112Kevin Darbyshire-Bryant2018-01-2011-163/+17
| | | | | | | | | | | | | | | | | | | | | | Refresh patches. Remove upstreamed patches: target/linux/generic/patches-4.4/030-2-smsc75xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch target/linux/generic/patches-4.4/030-3-cx82310_eth-use-skb_cow_head-to-deal-with-cloned-skb.patch target/linux/generic/patches-4.4/030-4-sr9700-use-skb_cow_head-to-deal-with-cloned-skbs.patch target/linux/generic/patches-4.4/030-5-lan78xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch CVEs completely or partially addressed: CVE-2017-5715 CVE-2017-5753 CVE-2017-17741 CVE-2017-1000410 Compile-tested: ar71xx Archer C7 v2 Run-tested: ar71xx Archer C7 v2 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* kernel: bump 4.9 to 4.9.77Kevin Darbyshire-Bryant2018-01-2028-393/+243
| | | | | | | | | | | | | | | | | | | | | | | Refresh patches. Remove upstreamed patches: target/linux/generic/backport-4.9/023-2-smsc75xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch target/linux/generic/backport-4.9/023-3-cx82310_eth-use-skb_cow_head-to-deal-with-cloned-skb.patch target/linux/generic/backport-4.9/023-4-sr9700-use-skb_cow_head-to-deal-with-cloned-skbs.patch target/linux/generic/backport-4.9/023-5-lan78xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch CVEs completely or partially addressed: CVE-2017-5715 CVE-2017-5753 CVE-2017-17741 CVE-2017-1000410 Compile-tested: ar71xx Archer C7 v2 Run-tested: ar71xx Archer C7 v2 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.14Kevin Darbyshire-Bryant2018-01-202-12/+12
| | | | | | | | | | | | | | Refresh patches. CVEs completely or partially addressed: CVE-2017-5715 CVE-2017-5753 CVE-2017-17741 CVE-2017-1000410 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel/4.{4, 9}: add manufacturer ID for Winbond NANDsGabor Juhos2018-01-203-1/+69
| | | | | | | | | | | | | | | | | | | Some MikroTik devices are using a Winbond NAND flash. Linux treats it as an unknown NAND before version 4.11: nand: device found, Manufacturer ID: 0xef, Chip ID: 0xf1 nand: Unknown NAND 128MiB 3,3V 8-bit nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 Backport a patch from 4.11 to show the manufacturer correctly: nand: device found, Manufacturer ID: 0xef, Chip ID: 0xf1 nand: Winbond NAND 128MiB 3,3V 8-bit nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 Tested on a MikroTik R951Ui-2HnD board. Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* ipq806x: remove merged ipq4019 patchChristian Lamparter2018-01-1811-39/+11
| | | | | | | | | The patch 0022-dts-ipq4019-support-ARMv7-PMU.patch was merged into 4.8-rc1. Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [refresh patches] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: remove dependency on non-existent kmodChristian Lamparter2018-01-181-1/+1
| | | | | | | | During the integration of the ipq40xx target, the phy drivers were included into the ipq806x's target kernel config. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq-wifi: align AVM FRITZ!Box 4040's board-2.bin packageChristian Lamparter2018-01-181-1/+1
| | | | | | | This patch renames the AVM FRITZ!Box 4040's board-2.bin file and package to match the 'vendor_product' format. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq806x: overhaul AVM FRITZ!box 4040 device-tree fileChristian Lamparter2018-01-181-38/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch aligns the device-tree file with the latest guidelines. - No longer include qcom-ipq4019-ap.dk01.1.dtsi. This file is only partially upstream and therefore subjected to changes that might not be compatible with the board. As a result, the definitions from the file have been copied into this dts. - exclusively use decimal GPIO addresses. - reorganize the reserved-memory layout to waste less memory. There's no point in keeping the u-boot loader around. This should also make it possible to create an image that will boot with the original EVA/ADAM2 loader without needing to install the modified u-boot loader. And finally mark the "tz-apps" as reusable. There isn't a way to upload apps to the trust-zone in OpenWrt yet. But it might see some use in the future as a "secure" key-store/TPM. - sort the first-level nodes alphabetically. - sort nodes with an address by the address. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ramips: tl-wr840n-v5: increase firmware partition for 4Mmtk layotSerg Studzinskii2018-01-182-8/+2
| | | | | | | | | | | According to console log during TP-Link TL-WR840N v5 OEM firmware update procedure 0x3e0000-0x3f0000 64kB "config" partition, which is used to store router's configuration settings, is erased and recreated again during every OEM firmware update procedure, thus does not contain any valuable factory data. So it is conviniant to use this extra 64kB erase block for jffs overlay due limited flash size on this device like it used on TP-Link's ar71xx boards. Signed-off-by: Serg Studzinskii <serguzhg@gmail.com>
* kirkwood: fix sysupgrade尤晓杰2018-01-181-1/+1
| | | | | | | | | | | | The platform_check_image() stub need to return 0 for success, otherwise the sysupgrade will fail with: Image check 'platform_check_image' failed. Fixes: aa6f5f1787a6 ("kirkwood: use image metadata") Signed-off-by: 尤晓杰 <yxj790222@163.com> [reworded commit message} Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: fix ZyXEL NBG6817 sysupgradeMathias Kresin2018-01-181-7/+10
| | | | | | | | | | | Use the first found directory in the tar archive instead of relying on a directory named according to the userspace boardname. It allows to change the boardname without adding another compatibility layer to the zyxel sysupgrade. Fixes: 33f09cf15178 ("ipq806x: convert to dt-based board-detection") Signed-off-by: Mathias Kresin <dev@kresin.me>
* ar71xx: drop mdio-gpio.h include from mach-om5pacv2.cGabor Juhos2018-01-171-6/+0
| | | | | | | | | | | | | | The setup code of the OpenMesh OM5P ACv2 device uses nothing from the mdio-gpio.h header, so remove the inclusion of that. Also remove the kernel version check which is needed only because the mdio-gpio.h header exists in a different path in older kernels. Compile tested only. Cc: Sven Eckelmann <sven.eckelmann@openmesh.com> Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* cns3xxx: switch to kernel 4.14Koen Vandeputte2018-01-171-1/+1
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: refresh patchesKoen Vandeputte2018-01-178-21/+21
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: remove deprecated uart flagsKoen Vandeputte2018-01-171-0/+29
| | | | | | | | Flag UPF_NO_TXEN_TEST is deprecated. Remove it. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: fix ethernet IRQ imbalance in 4.14Koen Vandeputte2018-01-171-0/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kernel 4.14 contains more warnings regarding NAPI usage, which showed following warning: [ 4016.420000] ------------[ cut here ]------------ [ 4016.430000] WARNING: CPU: 1 PID: 14 at kernel/irq/manage.c:525 __enable_irq+0x3c/0x78 [ 4016.440000] Unbalanced enable for IRQ 51 [ 4016.440000] Modules linked in: ath9k ath9k_common pppoe ppp_async ath9k_hw ath pppox ppp_generic nf_conntrack_ipv6 mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG slhc nf_reject_ipv4 nf_nat_redirs [ 4016.500000] CPU: 1 PID: 14 Comm: ksoftirqd/1 Tainted: G W 4.14.11 #0 [ 4016.500000] Hardware name: Gateworks Corporation Laguna Platform [ 4016.510000] Backtrace: [ 4016.510000] [<c010a28c>] (dump_backtrace) from [<c010a56c>] (show_stack+0x18/0x1c) [ 4016.520000] r7:c059df4b r6:00000000 r5:60000093 r4:00000000 [ 4016.530000] [<c010a554>] (show_stack) from [<c048b04c>] (dump_stack+0x94/0xb4) [ 4016.530000] [<c048afb8>] (dump_stack) from [<c011760c>] (__warn+0xc8/0xf8) [ 4016.540000] r7:c059df4b r6:c015144c r5:00000000 r4:cf863e08 [ 4016.550000] [<c0117544>] (__warn) from [<c011767c>] (warn_slowpath_fmt+0x40/0x48) [ 4016.550000] r9:cf863eb0 r8:00000036 r7:00000000 r6:c0636360 r5:00000033 r4:cf80a500 [ 4016.560000] [<c0117640>] (warn_slowpath_fmt) from [<c015144c>] (__enable_irq+0x3c/0x78) [ 4016.570000] r3:00000033 r2:c059e0c5 [ 4016.570000] [<c0151410>] (__enable_irq) from [<c01514ec>] (enable_irq+0x64/0x7c) [ 4016.580000] [<c0151488>] (enable_irq) from [<c0335c14>] (eth_poll+0x28c/0x558) [ 4016.590000] r5:d08926c0 r4:cf894488 [ 4016.590000] [<c0335988>] (eth_poll) from [<c03b1718>] (net_rx_action+0xfc/0x2e8) [ 4016.600000] r10:cf863eb8 r9:cf863eb0 r8:00000001 r7:0f7b5000 r6:c0636360 r5:cfdeb360 [ 4016.610000] r4:cf894488 [ 4016.610000] [<c03b161c>] (net_rx_action) from [<c0101510>] (__do_softirq+0xe0/0x228) [ 4016.620000] r10:00000100 r9:c070204c r8:c0702040 r7:00000003 r6:00000008 r5:40000003 [ 4016.620000] r4:cf862000 [ 4016.630000] [<c0101430>] (__do_softirq) from [<c011ae28>] (run_ksoftirqd+0x34/0x58) [ 4016.630000] r10:c0133964 r9:00000000 r8:00000001 r7:00000000 r6:c070b44c r5:cf862000 [ 4016.640000] r4:cf8037e0 [ 4016.640000] [<c011adf4>] (run_ksoftirqd) from [<c0133adc>] (smpboot_thread_fn+0x178/0x190) [ 4016.650000] [<c0133964>] (smpboot_thread_fn) from [<c013099c>] (kthread+0x11c/0x138) [ 4016.660000] r9:cf8037e0 r8:cf802cdc r7:cf839df8 r6:cf803800 r5:00000000 r4:cf802cc0 [ 4016.670000] [<c0130880>] (kthread) from [<c0107218>] (ret_from_fork+0x14/0x3c) [ 4016.680000] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0130880 [ 4016.680000] r4:cf803800 r3:cf862000 [ 4016.690000] ---[ end trace 51114df08f429115 ]--- This is triggered by calling eth_schedule_poll(sw) after the IRQ has been re-enabled. Rework the network code to only enable IRQ's again if NAPI agrees it's safe to do so. Also only re-enable IRQ *after* cleaning up the RX ring and re-enabling DMA, which otherwise resulted in ugly warnings regarding dirty page fragments. These popped up nearly immediately when building the kernel with O2 iso Os. --> Note that this change fixes stability issues, at the cost of ~8% throughput performance. While at it, also change the iface name being used in warning prints, making it more obvious: "switch%d" --> "cns3xxx_eth" The changes have been tested on 4 boards, each moving ~30TB of data Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>