+
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
-@@ -109,6 +109,129 @@
+@@ -109,6 +109,129 @@ config EQUALIZER
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
select CRC32
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
-@@ -144,6 +144,7 @@
+@@ -144,6 +144,7 @@ obj-$(CONFIG_SLHC) += slhc.o
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
obj-$(CONFIG_DUMMY) += dummy.o
#define HAVE_ALLOC_SKB /* For the drivers to know */
#define HAVE_ALIGNABLE_SKB /* Ditto 8) */
-@@ -272,6 +275,9 @@
+@@ -272,6 +275,9 @@ struct sk_buff {
* first. This is owned by whoever has the skb queued ATM.
*/
char cb[48];
unsigned int len,
data_len;
-@@ -302,6 +308,9 @@
+@@ -302,6 +308,9 @@ struct sk_buff {
struct nf_conntrack *nfct;
struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
-@@ -321,6 +330,9 @@
+@@ -321,6 +330,9 @@ struct sk_buff {
__u8 do_not_encrypt:1;
#endif
/* 0/13/14 bit hole */
#ifdef CONFIG_NET_DMA
dma_cookie_t dma_cookie;
-@@ -353,6 +365,12 @@
+@@ -353,6 +365,12 @@ struct sk_buff {
#include <asm/system.h>
extern void kfree_skb(struct sk_buff *skb);
extern void __kfree_skb(struct sk_buff *skb);
extern struct sk_buff *__alloc_skb(unsigned int size,
-@@ -1633,6 +1651,10 @@
+@@ -1633,6 +1651,10 @@ static inline void __nf_copy(struct sk_b
dst->nfct_reasm = src->nfct_reasm;
nf_conntrack_get_reasm(src->nfct_reasm);
#endif
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
-@@ -1624,7 +1627,11 @@
+@@ -1624,7 +1627,11 @@ int dev_hard_start_xmit(struct sk_buff *
struct netdev_queue *txq)
{
if (likely(!skb->next)) {
dev_queue_xmit_nit(skb, dev);
if (netif_needs_gso(dev, skb)) {
-@@ -1715,8 +1722,7 @@
+@@ -1715,8 +1722,7 @@ static u16 simple_tx_hash(struct net_dev
return (u16) (((u64) hash * dev->real_num_tx_queues) >> 32);
}
{
u16 queue_index = 0;
-@@ -1728,6 +1734,7 @@
+@@ -1728,6 +1734,7 @@ static struct netdev_queue *dev_pick_tx(
skb_set_queue_mapping(skb, queue_index);
return netdev_get_tx_queue(dev, queue_index);
}
* dev_queue_xmit - transmit a buffer
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -915,6 +915,7 @@
+@@ -915,6 +915,7 @@ extern int dev_alloc_name(struct net_de
extern int dev_open(struct net_device *dev);
extern int dev_close(struct net_device *dev);
extern void dev_disable_lro(struct net_device *dev);
+
--- a/include/net/netfilter/nf_queue.h
+++ b/include/net/netfilter/nf_queue.h
-@@ -13,6 +13,12 @@
+@@ -13,6 +13,12 @@ struct nf_queue_entry {
struct net_device *indev;
struct net_device *outdev;
int (*okfn)(struct sk_buff *);
};
#define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry))
-@@ -30,5 +36,11 @@
+@@ -30,5 +36,11 @@ extern int nf_unregister_queue_handler(i
const struct nf_queue_handler *qh);
extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
struct pipe_buffer *buf)
-@@ -88,6 +91,80 @@
+@@ -88,6 +91,80 @@ static int sock_pipe_buf_steal(struct pi
return 1;
}
/* Pipe buffer operations for a socket. */
static struct pipe_buf_operations sock_pipe_buf_ops = {
-@@ -362,6 +439,15 @@
+@@ -362,6 +439,15 @@ static void skb_release_all(struct sk_bu
WARN_ON(in_irq());
skb->destructor(skb);
}
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
nf_conntrack_put(skb->nfct);
nf_conntrack_put_reasm(skb->nfct_reasm);
-@@ -424,6 +510,9 @@
+@@ -424,6 +510,9 @@ static void __copy_skb_header(struct sk_
new->sp = secpath_get(old->sp);
#endif
memcpy(new->cb, old->cb, sizeof(old->cb));
new->csum_start = old->csum_start;
new->csum_offset = old->csum_offset;
new->local_df = old->local_df;
-@@ -2326,6 +2415,13 @@
+@@ -2326,6 +2415,13 @@ void __init skb_init(void)
0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
NULL);
/**
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -342,6 +342,18 @@
+@@ -342,6 +342,18 @@ config NETFILTER_XT_TARGET_DSCP
To compile it as a module, choose M here. If unsure, say N.
depends on NETFILTER_XTABLES
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -42,6 +42,7 @@
+@@ -42,6 +42,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMARK) += xt_CONNMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -20,6 +20,26 @@
+@@ -20,6 +20,26 @@ static const struct nf_queue_handler *qu
static DEFINE_MUTEX(queue_handler_mutex);
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
int nf_register_queue_handler(int pf, const struct nf_queue_handler *qh)
-@@ -80,7 +100,7 @@
+@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
}
EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
{
/* Release those devices we held, or Alexey will kill me. */
if (entry->indev)
-@@ -100,6 +120,7 @@
+@@ -100,6 +120,7 @@ static void nf_queue_entry_release_refs(
/* Drop reference to owner of hook which queued us. */
module_put(entry->elem->owner);
}
/*
* Any packet that leaves via this function must come back
-@@ -121,12 +142,26 @@
+@@ -121,12 +142,26 @@ static int __nf_queue(struct sk_buff *sk
#endif
const struct nf_afinfo *afinfo;
const struct nf_queue_handler *qh;
goto err_unlock;
afinfo = nf_get_afinfo(pf);
-@@ -145,6 +180,10 @@
+@@ -145,6 +180,10 @@ static int __nf_queue(struct sk_buff *sk
.indev = indev,
.outdev = outdev,
.okfn = okfn,
};
/* If it's going away, ignore hook. */
-@@ -170,8 +209,19 @@
+@@ -170,8 +209,19 @@ static int __nf_queue(struct sk_buff *sk
}
#endif
afinfo->saveroute(skb, entry);
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -165,7 +165,7 @@
+@@ -165,7 +165,7 @@ config NF_CONNTRACK_FTP
config NF_CONNTRACK_H323
tristate "H.323 protocol support"
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
-@@ -455,7 +455,7 @@
+@@ -455,7 +455,7 @@ config NETFILTER_XT_TARGET_CONNSECMARK
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'
+#endif /* _NETFILTER_MIME_H */
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
-@@ -23,6 +23,7 @@
+@@ -23,6 +23,7 @@ obj-$(CONFIG_NF_NAT_AMANDA) += nf_nat_am
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
obj-$(CONFIG_NF_NAT_IRC) += nf_nat_irc.o
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -278,6 +278,16 @@
+@@ -278,6 +278,16 @@ config NF_CONNTRACK_TFTP
To compile it as a module, choose M here. If unsure, say N.
depends on NF_CONNTRACK
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -33,6 +33,7 @@
+@@ -33,6 +33,7 @@ obj-$(CONFIG_NF_CONNTRACK_PPTP) += nf_co
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
obj-$(CONFIG_NF_CONNTRACK_TFTP) += nf_conntrack_tftp.o
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
-@@ -270,6 +270,11 @@
+@@ -270,6 +270,11 @@ config NF_NAT_IRC
depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
default NF_NAT && NF_CONNTRACK_IRC
static int debug;
/* initially all NULL */
static struct usb_serial *serial_table[SERIAL_TTY_MINORS];
-@@ -835,7 +836,7 @@ int usb_serial_probe(struct usb_interfac
+@@ -856,7 +857,7 @@ int usb_serial_probe(struct usb_interfac
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
-@@ -1255,3 +1256,5 @@ MODULE_LICENSE("GPL");
+@@ -1292,3 +1293,5 @@ MODULE_LICENSE("GPL");
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
+
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
-@@ -109,6 +109,129 @@
+@@ -109,6 +109,129 @@ config EQUALIZER
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
select CRC32
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
-@@ -148,6 +148,7 @@
+@@ -148,6 +148,7 @@ obj-$(CONFIG_SLHC) += slhc.o
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
obj-$(CONFIG_DUMMY) += dummy.o
#define HAVE_ALLOC_SKB /* For the drivers to know */
#define HAVE_ALIGNABLE_SKB /* Ditto 8) */
-@@ -278,6 +281,9 @@
+@@ -278,6 +281,9 @@ struct sk_buff {
* first. This is owned by whoever has the skb queued ATM.
*/
char cb[48];
unsigned int len,
data_len;
-@@ -308,6 +314,9 @@
+@@ -308,6 +314,9 @@ struct sk_buff {
struct nf_conntrack *nfct;
struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
-@@ -327,6 +336,9 @@
+@@ -327,6 +336,9 @@ struct sk_buff {
__u8 do_not_encrypt:1;
#endif
/* 0/13/14 bit hole */
#ifdef CONFIG_NET_DMA
dma_cookie_t dma_cookie;
-@@ -367,6 +379,12 @@
+@@ -367,6 +379,12 @@ extern void skb_dma_unmap(struct device
enum dma_data_direction dir);
#endif
extern void kfree_skb(struct sk_buff *skb);
extern void __kfree_skb(struct sk_buff *skb);
extern struct sk_buff *__alloc_skb(unsigned int size,
-@@ -1804,6 +1822,10 @@
+@@ -1804,6 +1822,10 @@ static inline void __nf_copy(struct sk_b
dst->nfct_reasm = src->nfct_reasm;
nf_conntrack_get_reasm(src->nfct_reasm);
#endif
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
-@@ -1655,7 +1658,11 @@
+@@ -1655,7 +1658,11 @@ int dev_hard_start_xmit(struct sk_buff *
struct netdev_queue *txq)
{
if (likely(!skb->next)) {
dev_queue_xmit_nit(skb, dev);
if (netif_needs_gso(dev, skb)) {
-@@ -1746,8 +1753,7 @@
+@@ -1746,8 +1753,7 @@ static u16 simple_tx_hash(struct net_dev
return (u16) (((u64) hash * dev->real_num_tx_queues) >> 32);
}
{
u16 queue_index = 0;
-@@ -1759,6 +1765,7 @@
+@@ -1759,6 +1765,7 @@ static struct netdev_queue *dev_pick_tx(
skb_set_queue_mapping(skb, queue_index);
return netdev_get_tx_queue(dev, queue_index);
}
* dev_queue_xmit - transmit a buffer
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -950,6 +950,7 @@
+@@ -950,6 +950,7 @@ extern int dev_alloc_name(struct net_de
extern int dev_open(struct net_device *dev);
extern int dev_close(struct net_device *dev);
extern void dev_disable_lro(struct net_device *dev);
+
--- a/include/net/netfilter/nf_queue.h
+++ b/include/net/netfilter/nf_queue.h
-@@ -13,6 +13,12 @@
+@@ -13,6 +13,12 @@ struct nf_queue_entry {
struct net_device *indev;
struct net_device *outdev;
int (*okfn)(struct sk_buff *);
};
#define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry))
-@@ -30,5 +36,11 @@
+@@ -30,5 +36,11 @@ extern int nf_unregister_queue_handler(u
const struct nf_queue_handler *qh);
extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
struct pipe_buffer *buf)
-@@ -88,6 +91,80 @@
+@@ -88,6 +91,80 @@ static int sock_pipe_buf_steal(struct pi
return 1;
}
/* Pipe buffer operations for a socket. */
static struct pipe_buf_operations sock_pipe_buf_ops = {
-@@ -381,6 +458,15 @@
+@@ -381,6 +458,15 @@ static void skb_release_head_state(struc
WARN_ON(in_irq());
skb->destructor(skb);
}
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
nf_conntrack_put(skb->nfct);
nf_conntrack_put_reasm(skb->nfct_reasm);
-@@ -493,6 +579,9 @@
+@@ -493,6 +579,9 @@ static void __copy_skb_header(struct sk_
new->sp = secpath_get(old->sp);
#endif
memcpy(new->cb, old->cb, sizeof(old->cb));
new->csum_start = old->csum_start;
new->csum_offset = old->csum_offset;
new->local_df = old->local_df;
-@@ -2397,6 +2486,13 @@
+@@ -2397,6 +2486,13 @@ void __init skb_init(void)
0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
NULL);
/**
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -357,6 +357,18 @@
+@@ -357,6 +357,18 @@ config NETFILTER_XT_TARGET_DSCP
To compile it as a module, choose M here. If unsure, say N.
default m if NETFILTER_ADVANCED=n
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -45,6 +45,7 @@
+@@ -45,6 +45,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMARK) += xt_CONNMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -20,6 +20,26 @@
+@@ -20,6 +20,26 @@ static const struct nf_queue_handler *qu
static DEFINE_MUTEX(queue_handler_mutex);
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
-@@ -80,7 +100,7 @@
+@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
}
EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
{
/* Release those devices we held, or Alexey will kill me. */
if (entry->indev)
-@@ -100,6 +120,7 @@
+@@ -100,6 +120,7 @@ static void nf_queue_entry_release_refs(
/* Drop reference to owner of hook which queued us. */
module_put(entry->elem->owner);
}
/*
* Any packet that leaves via this function must come back
-@@ -121,12 +142,26 @@
+@@ -121,12 +142,26 @@ static int __nf_queue(struct sk_buff *sk
#endif
const struct nf_afinfo *afinfo;
const struct nf_queue_handler *qh;
goto err_unlock;
afinfo = nf_get_afinfo(pf);
-@@ -145,6 +180,10 @@
+@@ -145,6 +180,10 @@ static int __nf_queue(struct sk_buff *sk
.indev = indev,
.outdev = outdev,
.okfn = okfn,
};
/* If it's going away, ignore hook. */
-@@ -170,8 +209,19 @@
+@@ -170,8 +209,19 @@ static int __nf_queue(struct sk_buff *sk
}
#endif
afinfo->saveroute(skb, entry);
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -160,7 +160,6 @@
+@@ -160,7 +160,6 @@ config NF_CONNTRACK_FTP
config NF_CONNTRACK_H323
tristate "H.323 protocol support"
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
-@@ -467,7 +466,6 @@
+@@ -467,7 +466,6 @@ config NETFILTER_XT_TARGET_SECMARK
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'
+#endif /* _NETFILTER_MIME_H */
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
-@@ -26,6 +26,7 @@
+@@ -26,6 +26,7 @@ obj-$(CONFIG_NF_NAT_AMANDA) += nf_nat_am
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
obj-$(CONFIG_NF_NAT_IRC) += nf_nat_irc.o
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -267,6 +267,16 @@
+@@ -267,6 +267,16 @@ config NF_CONNTRACK_TFTP
To compile it as a module, choose M here. If unsure, say N.
select NETFILTER_NETLINK
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -33,6 +33,7 @@
+@@ -33,6 +33,7 @@ obj-$(CONFIG_NF_CONNTRACK_PPTP) += nf_co
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
obj-$(CONFIG_NF_CONNTRACK_TFTP) += nf_conntrack_tftp.o
obj-$(CONFIG_NETFILTER_TPROXY) += nf_tproxy_core.o
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
-@@ -257,6 +257,11 @@
+@@ -257,6 +257,11 @@ config NF_NAT_IRC
depends on NF_CONNTRACK && NF_NAT
default NF_NAT && NF_CONNTRACK_IRC
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1256,11 +1256,18 @@ static inline int skb_network_offset(con
+@@ -1270,11 +1270,18 @@ static inline int skb_network_offset(con
*
* Various parts of the networking layer expect at least 16 bytes of
* headroom, you should not reduce this.
extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
static inline void __skb_trim(struct sk_buff *skb, unsigned int len)
-@@ -1350,9 +1357,9 @@ static inline void __skb_queue_purge(str
+@@ -1364,9 +1371,9 @@ static inline void __skb_queue_purge(str
static inline struct sk_buff *__dev_alloc_skb(unsigned int length,
gfp_t gfp_mask)
{
return skb;
}
-@@ -1425,7 +1432,7 @@ static inline int __skb_cow(struct sk_bu
+@@ -1439,7 +1446,7 @@ static inline int __skb_cow(struct sk_bu
delta = headroom - skb_headroom(skb);
if (delta || cloned)
}
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
-@@ -243,9 +243,9 @@ struct sk_buff *__netdev_alloc_skb(struc
+@@ -320,9 +320,9 @@ struct sk_buff *__netdev_alloc_skb(struc
int node = dev->dev.parent ? dev_to_node(dev->dev.parent) : -1;
struct sk_buff *skb;
arch/mips/kernel/unaligned.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
-diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
-index bf4c4a9..67bd626 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -482,19 +482,19 @@ fault:
}
asmlinkage void do_ade(struct pt_regs *regs)
---
-1.6.0.6
-
+
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
-@@ -110,6 +110,129 @@
+@@ -110,6 +110,129 @@ config EQUALIZER
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
select CRC32
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
-@@ -150,6 +150,7 @@
+@@ -150,6 +150,7 @@ obj-$(CONFIG_SLHC) += slhc.o
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
obj-$(CONFIG_DUMMY) += dummy.o
#define HAVE_ALLOC_SKB /* For the drivers to know */
#define HAVE_ALIGNABLE_SKB /* Ditto 8) */
-@@ -282,6 +285,9 @@
+@@ -282,6 +285,9 @@ struct sk_buff {
* first. This is owned by whoever has the skb queued ATM.
*/
char cb[48];
unsigned int len,
data_len;
-@@ -312,6 +318,9 @@
+@@ -312,6 +318,9 @@ struct sk_buff {
struct nf_conntrack *nfct;
struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
-@@ -332,6 +341,9 @@
+@@ -332,6 +341,9 @@ struct sk_buff {
__u8 requeue:1;
#endif
/* 0/13/14 bit hole */
#ifdef CONFIG_NET_DMA
dma_cookie_t dma_cookie;
-@@ -372,6 +384,12 @@
+@@ -372,6 +384,12 @@ extern void skb_dma_unmap(struct device
enum dma_data_direction dir);
#endif
extern void kfree_skb(struct sk_buff *skb);
extern void __kfree_skb(struct sk_buff *skb);
extern struct sk_buff *__alloc_skb(unsigned int size,
-@@ -1844,6 +1862,10 @@
+@@ -1844,6 +1862,10 @@ static inline void __nf_copy(struct sk_b
dst->nfct_reasm = src->nfct_reasm;
nf_conntrack_get_reasm(src->nfct_reasm);
#endif
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
-@@ -1671,7 +1674,11 @@
+@@ -1671,7 +1674,11 @@ int dev_hard_start_xmit(struct sk_buff *
prefetch(&dev->netdev_ops->ndo_start_xmit);
if (likely(!skb->next)) {
dev_queue_xmit_nit(skb, dev);
if (netif_needs_gso(dev, skb)) {
-@@ -1762,8 +1769,7 @@
+@@ -1762,8 +1769,7 @@ static u16 simple_tx_hash(struct net_dev
return (u16) (((u64) hash * dev->real_num_tx_queues) >> 32);
}
{
const struct net_device_ops *ops = dev->netdev_ops;
u16 queue_index = 0;
-@@ -1776,6 +1782,7 @@
+@@ -1776,6 +1782,7 @@ static struct netdev_queue *dev_pick_tx(
skb_set_queue_mapping(skb, queue_index);
return netdev_get_tx_queue(dev, queue_index);
}
* dev_queue_xmit - transmit a buffer
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1071,6 +1071,7 @@
+@@ -1071,6 +1071,7 @@ extern int dev_alloc_name(struct net_de
extern int dev_open(struct net_device *dev);
extern int dev_close(struct net_device *dev);
extern void dev_disable_lro(struct net_device *dev);
+
--- a/include/net/netfilter/nf_queue.h
+++ b/include/net/netfilter/nf_queue.h
-@@ -13,6 +13,12 @@
+@@ -13,6 +13,12 @@ struct nf_queue_entry {
struct net_device *indev;
struct net_device *outdev;
int (*okfn)(struct sk_buff *);
};
#define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry))
-@@ -30,5 +36,11 @@
+@@ -30,5 +36,11 @@ extern int nf_unregister_queue_handler(u
const struct nf_queue_handler *qh);
extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
struct pipe_buffer *buf)
-@@ -88,6 +91,80 @@
+@@ -88,6 +91,80 @@ static int sock_pipe_buf_steal(struct pi
return 1;
}
/* Pipe buffer operations for a socket. */
static struct pipe_buf_operations sock_pipe_buf_ops = {
-@@ -381,6 +458,15 @@
+@@ -381,6 +458,15 @@ static void skb_release_head_state(struc
WARN_ON(in_irq());
skb->destructor(skb);
}
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
nf_conntrack_put(skb->nfct);
nf_conntrack_put_reasm(skb->nfct_reasm);
-@@ -493,6 +579,9 @@
+@@ -493,6 +579,9 @@ static void __copy_skb_header(struct sk_
new->sp = secpath_get(old->sp);
#endif
memcpy(new->cb, old->cb, sizeof(old->cb));
new->csum_start = old->csum_start;
new->csum_offset = old->csum_offset;
new->local_df = old->local_df;
-@@ -2664,6 +2753,13 @@
+@@ -2664,6 +2753,13 @@ void __init skb_init(void)
0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
NULL);
/**
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -357,6 +357,18 @@
+@@ -357,6 +357,18 @@ config NETFILTER_XT_TARGET_DSCP
To compile it as a module, choose M here. If unsure, say N.
default m if NETFILTER_ADVANCED=n
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -45,6 +45,7 @@
+@@ -45,6 +45,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMARK) += xt_CONNMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -20,6 +20,26 @@
+@@ -20,6 +20,26 @@ static const struct nf_queue_handler *qu
static DEFINE_MUTEX(queue_handler_mutex);
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
-@@ -80,7 +100,7 @@
+@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
}
EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
{
/* Release those devices we held, or Alexey will kill me. */
if (entry->indev)
-@@ -100,6 +120,7 @@
+@@ -100,6 +120,7 @@ static void nf_queue_entry_release_refs(
/* Drop reference to owner of hook which queued us. */
module_put(entry->elem->owner);
}
/*
* Any packet that leaves via this function must come back
-@@ -121,12 +142,26 @@
+@@ -121,12 +142,26 @@ static int __nf_queue(struct sk_buff *sk
#endif
const struct nf_afinfo *afinfo;
const struct nf_queue_handler *qh;
goto err_unlock;
afinfo = nf_get_afinfo(pf);
-@@ -145,6 +180,10 @@
+@@ -145,6 +180,10 @@ static int __nf_queue(struct sk_buff *sk
.indev = indev,
.outdev = outdev,
.okfn = okfn,
};
/* If it's going away, ignore hook. */
-@@ -170,8 +209,19 @@
+@@ -170,8 +209,19 @@ static int __nf_queue(struct sk_buff *sk
}
#endif
afinfo->saveroute(skb, entry);
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -160,7 +160,6 @@
+@@ -160,7 +160,6 @@ config NF_CONNTRACK_FTP
config NF_CONNTRACK_H323
tristate "H.323 protocol support"
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
-@@ -466,7 +465,6 @@
+@@ -466,7 +465,6 @@ config NETFILTER_XT_TARGET_SECMARK
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'
+#endif /* _NETFILTER_MIME_H */
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
-@@ -26,6 +26,7 @@
+@@ -26,6 +26,7 @@ obj-$(CONFIG_NF_NAT_AMANDA) += nf_nat_am
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
obj-$(CONFIG_NF_NAT_IRC) += nf_nat_irc.o
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -267,6 +267,16 @@
+@@ -267,6 +267,16 @@ config NF_CONNTRACK_TFTP
To compile it as a module, choose M here. If unsure, say N.
select NETFILTER_NETLINK
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -33,6 +33,7 @@
+@@ -33,6 +33,7 @@ obj-$(CONFIG_NF_CONNTRACK_PPTP) += nf_co
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
obj-$(CONFIG_NF_CONNTRACK_TFTP) += nf_conntrack_tftp.o
obj-$(CONFIG_NETFILTER_TPROXY) += nf_tproxy_core.o
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
-@@ -257,6 +257,11 @@
+@@ -257,6 +257,11 @@ config NF_NAT_IRC
depends on NF_CONNTRACK && NF_NAT
default NF_NAT && NF_CONNTRACK_IRC
---- linux-2.6.29.2/fs/binfmt_elf.c 2009-04-27 19:37:11.000000000 +0200
-+++ linux-2.6.29.2.new/fs/binfmt_elf.c 2009-05-06 16:05:32.000000000 +0200
-@@ -1211,7 +1211,7 @@
+--- a/fs/binfmt_elf.c
++++ b/fs/binfmt_elf.c
+@@ -1211,7 +1211,7 @@ static unsigned long vma_dump_size(struc
if (FILTER(ELF_HEADERS) &&
vma->vm_pgoff == 0 && (vma->vm_flags & VM_READ)) {
u32 __user *header = (u32 __user *) vma->vm_start;
static int debug;
/* initially all NULL */
static struct usb_serial *serial_table[SERIAL_TTY_MINORS];
-@@ -840,7 +841,7 @@ int usb_serial_probe(struct usb_interfac
+@@ -861,7 +862,7 @@ int usb_serial_probe(struct usb_interfac
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
-@@ -1269,3 +1270,5 @@ MODULE_LICENSE("GPL");
+@@ -1306,3 +1307,5 @@ MODULE_LICENSE("GPL");
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
{
--- a/kernel/exit.c
+++ b/kernel/exit.c
-@@ -521,6 +521,7 @@ struct files_struct *get_files_struct(st
+@@ -516,6 +516,7 @@ struct files_struct *get_files_struct(st
return files;
}
void put_files_struct(struct files_struct *files)
{
-@@ -540,6 +541,7 @@ void put_files_struct(struct files_struc
+@@ -535,6 +536,7 @@ void put_files_struct(struct files_struc
free_fdtable(fdt);
}
}