Changeset 11324


Ignore:
Timestamp:
2008-06-02T11:10:48+02:00 (9 years ago)
Author:
kaloz
Message:
  • add a prerelease IMQ patch for 2.6.25
  • reenable IMQ in the kernel config
  • resync patches
Location:
trunk/target/linux/generic-2.6
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic-2.6/config-2.6.25

    r11229 r11324  
    470470# CONFIG_IKCONFIG is not set 
    471471# CONFIG_IKCONFIG_PROC is not set 
    472 # CONFIG_IMQ is not set 
     472CONFIG_IMQ=m 
    473473# CONFIG_IMQ_BEHAVIOR_AA is not set 
    474474# CONFIG_IMQ_BEHAVIOR_AB is not set 
  • trunk/target/linux/generic-2.6/patches-2.6.25/150-netfilter_imq.patch

    r11296 r11324  
    11--- /dev/null 
    22+++ b/drivers/net/imq.c 
    3 @@ -0,0 +1,409 @@ 
     3@@ -0,0 +1,410 @@ 
    44+/* 
    55+ *             Pseudo-driver for the intermediate queue device. 
     
    6767+#include <linux/imq.h> 
    6868+#include <net/pkt_sched.h> 
     69+#include <net/netfilter/nf_queue.h> 
    6970+ 
    7071+extern int qdisc_restart1(struct net_device *dev); 
     
    138139+static void imq_skb_destructor(struct sk_buff *skb) 
    139140+{ 
    140 +       struct nf_info *info = skb->nf_info; 
     141+       struct nf_queue_entry *info = skb->nf_queue_entry; 
    141142+ 
    142143+       if (info) { 
     
    160161+ 
    161162+       dev->trans_start = jiffies; 
    162 +       nf_reinject(skb, skb->nf_info, NF_ACCEPT); 
     163+       nf_reinject(skb->nf_queue_entry, NF_ACCEPT); 
    163164+       return 0; 
    164165+} 
    165166+ 
    166 +static int imq_nf_queue(struct sk_buff *skb, struct nf_info *info, unsigned queue_num, void *data) 
     167+static int imq_nf_queue(struct nf_queue_entry *info, unsigned queue_num) 
    167168+{ 
    168169+       struct net_device *dev; 
     
    170171+       struct sk_buff *skb2 = NULL; 
    171172+       struct Qdisc *q; 
    172 +       unsigned int index = skb->imq_flags&IMQ_F_IFMASK; 
     173+       unsigned int index = info->skb->imq_flags&IMQ_F_IFMASK; 
    173174+       int ret = -1; 
    174175+ 
     
    178179+       dev = imq_devs + index; 
    179180+       if (!(dev->flags & IFF_UP)) { 
    180 +               skb->imq_flags = 0; 
    181 +               nf_reinject(skb, info, NF_ACCEPT); 
     181+               info->skb->imq_flags = 0; 
     182+               nf_reinject(info, NF_ACCEPT); 
    182183+               return 0; 
    183184+       } 
    184185+       dev->last_rx = jiffies; 
    185186+ 
    186 +       if (skb->destructor) { 
    187 +               skb2 = skb; 
    188 +               skb = skb_clone(skb, GFP_ATOMIC); 
    189 +               if (!skb) 
     187+       if (info->skb->destructor) { 
     188+               skb2 = info->skb; 
     189+               info->skb = skb_clone(info->skb, GFP_ATOMIC); 
     190+               if (!info->skb) 
    190191+                       return -1; 
    191192+       } 
    192 +       skb->nf_info = info; 
     193+       info->skb->nf_queue_entry = info; 
    193194+ 
    194195+       stats = (struct net_device_stats *)dev->priv; 
    195 +       stats->rx_bytes+= skb->len; 
     196+       stats->rx_bytes+= info->skb->len; 
    196197+       stats->rx_packets++; 
    197198+ 
     
    199200+       q = dev->qdisc; 
    200201+       if (q->enqueue) { 
    201 +               q->enqueue(skb_get(skb), q); 
    202 +               if (skb_shared(skb)) { 
    203 +                       skb->destructor = imq_skb_destructor; 
    204 +                       kfree_skb(skb); 
     202+               q->enqueue(skb_get(info->skb), q); 
     203+               if (skb_shared(info->skb)) { 
     204+                       info->skb->destructor = imq_skb_destructor; 
     205+                       kfree_skb(info->skb); 
    205206+                       ret = 0; 
    206207+               } 
     
    215216+ 
    216217+       if (skb2) 
    217 +               kfree_skb(ret ? skb : skb2); 
     218+               kfree_skb(ret ? info->skb : skb2); 
    218219+ 
    219220+       return ret; 
     
    397398+    .exit = imq_exit_module, 
    398399+}; 
    399 + 
     400+  
    400401+static int __init imq_init(void) 
    401402+{ 
     
    594595 #endif 
    595596+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) 
    596 +       unsigned char           imq_flags; 
    597 +       struct nf_info          *nf_info; 
     597+       unsigned char                   imq_flags; 
     598+       struct nf_queue_entry   *nf_queue_entry; 
    598599+#endif 
    599600 #ifdef CONFIG_BRIDGE_NETFILTER 
     
    606607+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) 
    607608+       dst->imq_flags = src->imq_flags; 
    608 +       dst->nf_info = src->nf_info; 
     609+       dst->nf_queue_entry = src->nf_queue_entry; 
    609610+#endif 
    610611 #ifdef CONFIG_BRIDGE_NETFILTER 
     
    710711--- a/net/ipv4/netfilter/Kconfig 
    711712+++ b/net/ipv4/netfilter/Kconfig 
    712 @@ -315,6 +315,17 @@ 
     713@@ -145,6 +145,17 @@ 
    713714  
    714715          To compile it as a module, choose M here.  If unsure, say N. 
     
    716717+config IP_NF_TARGET_IMQ 
    717718+       tristate "IMQ target support" 
    718 +       depends on IP_NF_MANGLE && IMQ 
     719+       depends on IP_NF_MANGLE 
    719720+       help 
    720721+         This option adds a `IMQ' target which is used to specify if and 
     
    725726+         To compile it as a module, choose M here.  If unsure, say N. 
    726727+ 
    727  config IP_NF_TARGET_ECN 
    728         tristate "ECN target support" 
    729         depends on IP_NF_MANGLE 
     728 config IP_NF_TARGET_REJECT 
     729        tristate "REJECT target support" 
     730        depends on IP_NF_FILTER 
    730731--- a/net/ipv4/netfilter/Makefile 
    731732+++ b/net/ipv4/netfilter/Makefile 
     
    840841--- a/net/sched/sch_generic.c 
    841842+++ b/net/sched/sch_generic.c 
    842 @@ -182,6 +182,13 @@ 
     843@@ -182,6 +182,12 @@ 
    843844        return ret; 
    844845 } 
     
    848849+       return qdisc_restart(dev); 
    849850+} 
    850 + 
    851851+EXPORT_SYMBOL(qdisc_restart1); 
    852852+ 
  • trunk/target/linux/generic-2.6/patches-2.6.25/190-netfilter_rtsp.patch

    r11296 r11324  
    334334--- a/net/ipv4/netfilter/Kconfig 
    335335+++ b/net/ipv4/netfilter/Kconfig 
    336 @@ -277,6 +277,11 @@ 
     336@@ -288,6 +288,11 @@ 
    337337        depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT 
    338338        default NF_NAT && NF_CONNTRACK_IRC 
Note: See TracChangeset for help on using the changeset viewer.