X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/bb927c1777b9510a88f45d9e8e0435053716b726..adde7768a2eab2950a7628319ec832c63a00ff03:/target/linux/generic-2.4/patches/226-atm_br2684.patch diff --git a/target/linux/generic-2.4/patches/226-atm_br2684.patch b/target/linux/generic-2.4/patches/226-atm_br2684.patch index 3b01533cd..9ec555ed3 100644 --- a/target/linux/generic-2.4/patches/226-atm_br2684.patch +++ b/target/linux/generic-2.4/patches/226-atm_br2684.patch @@ -1,20 +1,8 @@ -diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c ---- linux.old/net/atm/br2684.c 2004-08-08 01:26:06.000000000 +0200 -+++ linux.new/net/atm/br2684.c 2005-11-13 00:04:15.000000000 +0100 -@@ -16,12 +16,9 @@ - #include - #include - #include --#include --#include - - #include - --#include "common.h" - #include "ipcommon.h" - - /* -@@ -55,36 +52,57 @@ +Index: linux-2.4.35.4/net/atm/br2684.c +=================================================================== +--- linux-2.4.35.4.orig/net/atm/br2684.c ++++ linux-2.4.35.4/net/atm/br2684.c +@@ -55,36 +55,55 @@ static void skb_debug(const struct sk_bu #define skb_debug(skb) do {} while (0) #endif @@ -46,8 +34,6 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c e_llc = BR2684_ENCAPS_LLC, }; -+ -+ struct br2684_vcc { - struct atm_vcc *atmvcc; + struct atm_vcc *atmvcc; @@ -78,7 +64,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c struct net_device_stats stats; int mac_was_set; }; -@@ -173,24 +197,84 @@ +@@ -173,24 +192,84 @@ static int br2684_xmit_vcc(struct sk_buf } skb = skb2; } @@ -174,7 +160,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c atomic_add(skb->truesize, &atmvcc->sk->wmem_alloc); ATM_SKB(skb)->atm_options = atmvcc->atm_options; brdev->stats.tx_packets++; -@@ -428,18 +512,39 @@ +@@ -428,18 +507,39 @@ static void br2684_push(struct atm_vcc * atm_return(atmvcc, skb->truesize); DPRINTK("skb from brdev %p\n", brdev); if (brvcc->encaps == e_llc) { @@ -219,7 +205,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c } else { plen = PADLEN + ETH_HLEN; /* pad, dstmac,srcmac, ethtype */ /* first 2 chars should be 0 */ -@@ -448,13 +553,14 @@ +@@ -448,13 +548,14 @@ static void br2684_push(struct atm_vcc * dev_kfree_skb(skb); return; } @@ -235,7 +221,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c #ifdef FASTER_VERSION /* FIXME: tcpdump shows that pointer to mac header is 2 bytes earlier, than should be. What else should I set? */ -@@ -465,30 +571,29 @@ +@@ -465,30 +566,29 @@ static void br2684_push(struct atm_vcc * skb->protocol = ((u16 *) skb->data)[-1]; #else /* some protocols might require this: */ skb->protocol = br_type_trans(skb, &brdev->net_dev); @@ -273,7 +259,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c netif_rx(skb); } -@@ -525,10 +630,10 @@ +@@ -525,10 +625,10 @@ Note: we do not have explicit unassign, err = -EEXIST; goto error; } @@ -288,7 +274,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c err = -EINVAL; goto error; } -@@ -554,18 +659,21 @@ +@@ -554,18 +654,21 @@ Note: we do not have explicit unassign, brvcc->atmvcc = atmvcc; atmvcc->user_back = brvcc; brvcc->encaps = (enum br2684_encaps) be.encaps; @@ -311,7 +297,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c write_unlock_irq(&devs_lock); MOD_DEC_USE_COUNT; return err; -@@ -608,12 +717,25 @@ +@@ -608,12 +711,25 @@ static int br2684_create(unsigned long a if (ni.ifname[0] != '\0') { memcpy(brdev->net_dev.name, ni.ifname, @@ -340,7 +326,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c brdev->mac_was_set = 0; #ifdef FASTER_VERSION my_eth_header = brdev->net_dev.hard_header; -@@ -677,12 +799,11 @@ +@@ -677,12 +793,11 @@ static int br2684_ioctl(struct atm_vcc * err = br2684_setfilt(atmvcc, arg); MOD_DEC_USE_COUNT; return err; @@ -354,7 +340,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c /* Never put more than 256 bytes in at once */ static int br2684_proc_engine(loff_t pos, char *buf) { -@@ -692,52 +813,62 @@ +@@ -692,52 +807,62 @@ static int br2684_proc_engine(loff_t pos list_for_each(lhd, &br2684_devs) { brdev = list_entry_brdev(lhd); if (pos-- == 0) @@ -442,7 +428,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c page = get_free_page(GFP_KERNEL); if (!page) return -ENOMEM; -@@ -746,7 +877,7 @@ +@@ -746,7 +871,7 @@ static ssize_t br2684_proc_read(struct f left = count; read_lock(&devs_lock); for (;;) { @@ -451,7 +437,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c if (x == 0) break; if (x > left) -@@ -761,12 +892,11 @@ +@@ -761,12 +886,11 @@ static ssize_t br2684_proc_read(struct f } len += x; left -= x; @@ -465,7 +451,7 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c if (len > 0 && copy_to_user(buf, (char *) page, len)) len = -EFAULT; free_page(page); -@@ -774,34 +904,32 @@ +@@ -774,23 +898,20 @@ static ssize_t br2684_proc_read(struct f } static struct file_operations br2684_proc_operations = { @@ -475,9 +461,6 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c extern struct proc_dir_entry *atm_proc_root; /* from proc.c */ -#endif /* CONFIG_PROC_FS */ -+ -+extern int (*br2684_ioctl_hook) (struct atm_vcc *, unsigned int, -+ unsigned long); /* the following avoids some spurious warnings from the compiler */ #define UNUSED __attribute__((unused)) @@ -490,36 +473,35 @@ diff -Nur linux.old/net/atm/br2684.c linux.new/net/atm/br2684.c return -ENOMEM; p->proc_fops = &br2684_proc_operations; -#endif /* CONFIG_PROC_FS */ -- br2684_ioctl_set(br2684_ioctl); -+ br2684_ioctl_hook = br2684_ioctl; + br2684_ioctl_set(br2684_ioctl); return 0; } - - static void __exit UNUSED br2684_exit(void) +@@ -799,9 +920,7 @@ static void __exit UNUSED br2684_exit(vo { struct br2684_dev *brdev; -- br2684_ioctl_set(NULL); + br2684_ioctl_set(NULL); -#ifdef CONFIG_PROC_FS -+ br2684_ioctl_hook = NULL; remove_proc_entry("br2684", atm_proc_root); -#endif /* CONFIG_PROC_FS */ while (!list_empty(&br2684_devs)) { brdev = list_entry_brdev(br2684_devs.next); unregister_netdev(&brdev->net_dev); -diff -Nur linux.old/net/atm/common.c linux.new/net/atm/common.c ---- linux.old/net/atm/common.c 2004-02-18 14:36:32.000000000 +0100 -+++ linux.new/net/atm/common.c 2005-11-13 00:46:11.000000000 +0100 -@@ -158,6 +158,7 @@ +Index: linux-2.4.35.4/net/atm/common.c +=================================================================== +--- linux-2.4.35.4.orig/net/atm/common.c ++++ linux-2.4.35.4/net/atm/common.c +@@ -158,6 +158,7 @@ void br2684_ioctl_set(int (*hook)(struct } #ifdef CONFIG_ATM_BR2684_MODULE EXPORT_SYMBOL(br2684_ioctl_set); +EXPORT_SYMBOL(br2684_ioctl_hook); #endif #endif - -diff -Nur linux.old/include/linux/atmbr2684.h linux.new/include/linux/atmbr2684.h ---- linux.old/include/linux/atmbr2684.h 2005-11-13 00:28:19.000000000 +0100 -+++ linux.new/include/linux/atmbr2684.h 2005-11-13 00:06:42.000000000 +0100 + +Index: linux-2.4.35.4/include/linux/atmbr2684.h +=================================================================== +--- linux-2.4.35.4.orig/include/linux/atmbr2684.h ++++ linux-2.4.35.4/include/linux/atmbr2684.h @@ -3,6 +3,7 @@ #include @@ -557,7 +539,7 @@ diff -Nur linux.old/include/linux/atmbr2684.h linux.new/include/linux/atmbr2684. }; /* -@@ -68,16 +78,17 @@ +@@ -68,16 +78,17 @@ struct br2684_if_spec { * is per-backend specific */ struct atm_backend_br2684 { @@ -584,7 +566,7 @@ diff -Nur linux.old/include/linux/atmbr2684.h linux.new/include/linux/atmbr2684. }; /* -@@ -95,7 +106,12 @@ +@@ -95,7 +106,12 @@ struct br2684_filter_set { struct br2684_filter filter; };