add bridging performance patch from linksys source
authorFelix Fietkau <nbd@openwrt.org>
Fri, 8 Jul 2005 17:56:54 +0000 (17:56 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 8 Jul 2005 17:56:54 +0000 (17:56 +0000)
SVN-Revision: 1380

openwrt/target/linux/linux-2.4/patches/generic/112-bridging_performance.patch [new file with mode: 0644]

diff --git a/openwrt/target/linux/linux-2.4/patches/generic/112-bridging_performance.patch b/openwrt/target/linux/linux-2.4/patches/generic/112-bridging_performance.patch
new file mode 100644 (file)
index 0000000..c5d8634
--- /dev/null
@@ -0,0 +1,22 @@
+--- linux.old/net/core/dev.c   2005-07-05 16:42:36.000000000 +0200
++++ linux.dev/net/core/dev.c   2005-07-08 19:32:46.000000000 +0200
+@@ -1289,6 +1289,19 @@
+       local_irq_save(flags);
+       netdev_rx_stat[this_cpu].total++;
++
++#ifdef CONFIG_BRIDGE
++      /* Optimisation for framebursting (allow interleaving of pkts by
++       * immediately processing the rx pkt instead of Qing the pkt and deferring
++       * the processing). Only optimise for bridging and guard against non
++       * TASKLET based netif_rx calls.
++       */
++      if (!in_irq() && (skb->dev->br_port != NULL) && br_handle_frame_hook != NULL) {
++              local_irq_restore(flags);
++              return netif_receive_skb(skb);
++      }
++#endif                
++      
+       if (queue->input_pkt_queue.qlen <= netdev_max_backlog) {
+               if (queue->input_pkt_queue.qlen) {
+                       if (queue->throttle)