not quite sure if this is a firmware problem:
Feb 21 01:40:10 kernel: transmission-da: page allocation failure. order:3, mode:0x4020
Feb 21 01:40:10 kernel: Call Trace:
Feb 21 01:40:10 kernel: [<80004fe0>] memset+0x0/0x1c
Feb 21 01:40:10 kernel: [<c00f6c2c>] et_link_up+0x2a4c/0x2cd0 [et]
Feb 21 01:40:10 kernel: [<c00f53f0>] et_link_up+0x1210/0x2cd0 [et]
Feb 21 01:40:10 kernel: [<c00f5418>] et_link_up+0x1238/0x2cd0 [et]
Feb 21 01:40:10 kernel: [<802f0000>] cpu_cache_init+0x50/0x6c
Feb 21 01:40:10 kernel: [<c00f5830>] et_link_up+0x1650/0x2cd0 [et]
Feb 21 01:40:10 kernel: [<8000150c>] ret_from_irq+0x0/0x4
Feb 21 01:40:11 kernel: WARNING: at mm/slub.c:2432 kfree()
Feb 21 01:40:11 kernel: Call Trace:
Feb 21 01:40:11 kernel: [<802f0000>] cpu_cache_init+0x50/0x6c
Feb 21 01:40:11 kernel: [<c00f5830>] et_link_up+0x1650/0x2cd0 [et]
Feb 21 01:40:11 kernel: [<8000150c>] ret_from_irq+0x0/0x4
Feb 21 01:40:11 kernel: WARNING: at mm/slub.c:2432 kfree()
Feb 21 01:40:11 kernel: Call Trace:
Feb 21 01:40:11 kernel: [<802f0000>] cpu_cache_init+0x50/0x6c
Feb 21 01:40:11 kernel: WARNING: at mm/slub.c:2432 kfree()
Feb 21 01:40:11 kernel: Call Trace:
Feb 21 01:40:11 kernel: [<802f0000>] cpu_cache_init+0x50/0x6c
Feb 21 01:40:11 kernel: [<c00f5830>] et_link_up+0x1650/0x2cd0 [et]
Feb 21 01:40:11 kernel: [<8000150c>] ret_from_irq+0x0/0x4
Feb 21 01:40:11 kernel: [<80003204>] stack_done+0x20/0x40
Feb 21 01:40:11 kernel: WARNING: at mm/slub.c:2432 kfree()
Feb 21 01:40:11 kernel: Call Trace:
Feb 21 01:40:11 kernel: [<80003204>] stack_done+0x20/0x40
Feb 21 01:40:11 kernel: WARNING: at mm/slub.c:2432 kfree()
I do know it kills my router frequently

I've already increased the min_free_kbytes option since... a long long time, but it's not good enough anymore
echo 8192 > /proc/sys/vm/min_free_kbytes