On 08/01/16 16:49, Felix Fietkau wrote:
Thanks for investigating this further. Please try this patch:
Unfortunately, your proposed patch doesn't work. When I trigger the timeout condition, a tx timeout occurs and the interface doesn't recover correctly: [ 249.075582] ------------[ cut here ]------------ [ 249.080296] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:303 dev_watchdog+0x1dc/0x260() [ 249.088800] NETDEV WATCHDOG: eth1 (ag71xx): transmit queue 0 timed out [ 249.095378] Modules linked in: ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_id xt_hl xt_helper xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_HL xt_DSCP xt_CT xt_CLASSIFY slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack iptable_raw iptable_mangle iptable_filter ipt_ECN ip_tables crc_ccitt compat fuse sch_fq_pie sch_cake act_ipt em_nbyte sch_teql sch_htb sch_prio sch_pie sch_codel sch_gred em_meta cls_basic em_text sch_tbf sch_red sch_sfq sch_fq act_police em_cmp sch_dsmark act_skbedit act_mirred em_u32 cls_u32 cls_tcindex cls_flow cls_route cls_fw sch_hfsc sch_ingress ledtrig_usbdev ip6t_REJ E CT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables ifb zram lzo_decompress lzo_compress lz4_decompress lz4_compress zsmalloc usb_storage ehci_platform ehci_hcd sd_mod scsi_mod gpio_button_hotplug ext4 jbd2 mbcache usbcore nls_base usb_common crc16 crypto_hash [ 249.211641] CPU: 0 PID: 0 Comm: swapper Not tainted 4.1.13 #1 [ 249.217434] Stack : 80378d20 00000000 00000001 803c0000 803b8ab0 803b8743 8035b52c 00000000 [ 249.217434] 80413514 000000c8 00000004 0000000a 00000100 800a6110 803c7d04 803b0000 [ 249.217434] 00000003 000000c8 8035edb4 803b3c44 00000100 800a473c 00000006 00000000 [ 249.217434] 00000000 80410000 00000000 00000000 00000000 00000000 00000000 00000000 [ 249.217434] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 249.217434] ... [ 249.253511] Call Trace: [ 249.256003] [<80071f5c>] show_stack+0x50/0x84 [ 249.260417] [<8008150c>] warn_slowpath_common+0xa0/0xd0 [ 249.265693] [<80081568>] warn_slowpath_fmt+0x2c/0x38 [ 249.270694] [<8026240c>] dev_watchdog+0x1dc/0x260 [ 249.275456] [<800ad290>] call_timer_fn.isra.3+0x24/0x80 [ 249.280735] [<800ad498>] run_timer_softirq+0x1ac/0x1ec [ 249.285936] [<80083b30>] __do_softirq+0x16c/0x298 [ 249.290678] [<80083e7c>] irq_exit+0x54/0x70 [ 249.294897] [<80060830>] ret_from_irq+0x0/0x4 [ 249.299313] [<80060a80>] __r4k_wait+0x20/0x40 [ 249.303709] [<800a189c>] cpu_startup_entry+0x114/0x13c [ 249.308904] [<803d5bc4>] start_kernel+0x464/0x484 [ 249.313649] [ 249.315156] ---[ end trace 5936bede9e8ff3e6 ]--- [ 249.319817] eth1: tx timeout [ 260.075531] eth1: tx timeout [ 275.075459] eth1: tx timeout [ 285.075418] eth1: tx timeout Triggering a manual 'ifconfig eth1 down; ifconfig eth1 up; ifup wan' still restores connectivity with your patch, if it helps. Conn _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
