[ifxmips]:
[openwrt/svn-archive/archive.git] / target / linux / ifxmips / patches / 210-atm_hack.patch
diff --git a/target/linux/ifxmips/patches/210-atm_hack.patch b/target/linux/ifxmips/patches/210-atm_hack.patch
new file mode 100644 (file)
index 0000000..43decb0
--- /dev/null
@@ -0,0 +1,48 @@
+Index: linux-2.6.35.8/arch/mips/mm/cache.c
+===================================================================
+--- linux-2.6.35.8.orig/arch/mips/mm/cache.c   2010-10-29 06:52:43.000000000 +0200
++++ linux-2.6.35.8/arch/mips/mm/cache.c        2010-11-01 11:38:06.000000000 +0100
+@@ -52,6 +52,8 @@
+ void (*_dma_cache_inv)(unsigned long start, unsigned long size);
+ EXPORT_SYMBOL(_dma_cache_wback_inv);
++EXPORT_SYMBOL(_dma_cache_wback);
++EXPORT_SYMBOL(_dma_cache_inv);
+ #endif /* CONFIG_DMA_NONCOHERENT */
+Index: linux-2.6.35.8/net/atm/proc.c
+===================================================================
+--- linux-2.6.35.8.orig/net/atm/proc.c 2010-10-29 06:52:43.000000000 +0200
++++ linux-2.6.35.8/net/atm/proc.c      2010-11-01 11:38:36.000000000 +0100
+@@ -153,7 +153,7 @@
+ static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc)
+ {
+       static const char *const class_name[] = {
+-              "off", "UBR", "CBR", "VBR", "ABR"};
++              "off","UBR","CBR","NTR-VBR","ABR","ANY","RT-VBR","UBR+","GFR" };
+       static const char *const aal_name[] = {
+               "---",  "1",    "2",    "3/4",  /*  0- 3 */
+               "???",  "5",    "???",  "???",  /*  4- 7 */
+Index: linux-2.6.35.8/net/atm/common.c
+===================================================================
+--- linux-2.6.35.8.orig/net/atm/common.c       2010-10-29 06:52:43.000000000 +0200
++++ linux-2.6.35.8/net/atm/common.c    2010-11-01 11:39:17.000000000 +0100
+@@ -60,11 +60,17 @@
+       write_unlock_irq(&vcc_sklist_lock);
+ }
++struct sk_buff* (*ifx_atm_alloc_tx)(struct atm_vcc *, unsigned int) = NULL;
++EXPORT_SYMBOL(ifx_atm_alloc_tx);
++
+ static struct sk_buff *alloc_tx(struct atm_vcc *vcc, unsigned int size)
+ {
+       struct sk_buff *skb;
+       struct sock *sk = sk_atm(vcc);
++      if (ifx_atm_alloc_tx != NULL)
++              return ifx_atm_alloc_tx(vcc, size);
++
+       if (sk_wmem_alloc_get(sk) && !atm_may_send(vcc, size)) {
+               pr_debug("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n",
+                        sk_wmem_alloc_get(sk), size, sk->sk_sndbuf);