parent
b7ae5e7b7c
commit
cec852c087
@ -1,38 +0,0 @@ |
||||
--- a/drivers/usb/serial/pl2303.c
|
||||
+++ b/drivers/usb/serial/pl2303.c
|
||||
@@ -78,6 +78,11 @@ static struct usb_device_id id_table []
|
||||
{ USB_DEVICE(RADIOSHACK_VENDOR_ID, RADIOSHACK_PRODUCT_ID) },
|
||||
{ USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) },
|
||||
{ USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) },
|
||||
+ { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) },
|
||||
+ { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) },
|
||||
+ { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) },
|
||||
+ { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) },
|
||||
+ { USB_DEVICE(NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID) },
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
||||
--- a/drivers/usb/serial/pl2303.h
|
||||
+++ b/drivers/usb/serial/pl2303.h
|
||||
@@ -41,3 +41,21 @@
|
||||
|
||||
#define SITECOM_VENDOR_ID 0x6189
|
||||
#define SITECOM_PRODUCT_ID 0x2068
|
||||
+
|
||||
+/* Alcatel OT535/735 USB cable */
|
||||
+#define ALCATEL_VENDOR_ID 0x11f7
|
||||
+#define ALCATEL_PRODUCT_ID 0x02df
|
||||
+
|
||||
+/* Samsung I330 phone cradle */
|
||||
+#define SAMSUNG_VENDOR_ID 0x04e8
|
||||
+#define SAMSUNG_PRODUCT_ID 0x8001
|
||||
+
|
||||
+#define SIEMENS_VENDOR_ID 0x11f5
|
||||
+#define SIEMENS_PRODUCT_ID_X65 0x0003
|
||||
+
|
||||
+#define SYNTECH_VENDOR_ID 0x0745
|
||||
+#define SYNTECH_PRODUCT_ID 0x0001
|
||||
+
|
||||
+/* Nokia CA-42 Cable */
|
||||
+#define NOKIA_CA42_VENDOR_ID 0x078b
|
||||
+#define NOKIA_CA42_PRODUCT_ID 0x1234
|
@ -1,116 +0,0 @@ |
||||
--- /dev/null
|
||||
+++ b/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
|
||||
@@ -0,0 +1,8 @@
|
||||
+#ifndef _IPT_CLASSIFY_H
|
||||
+#define _IPT_CLASSIFY_H
|
||||
+
|
||||
+struct ipt_classify_target_info {
|
||||
+ u_int32_t priority;
|
||||
+};
|
||||
+
|
||||
+#endif /*_IPT_CLASSIFY_H */
|
||||
--- a/net/ipv4/netfilter/Config.in
|
||||
+++ b/net/ipv4/netfilter/Config.in
|
||||
@@ -171,6 +171,7 @@ if [ "$CONFIG_IP_NF_IPTABLES" != "n" ];
|
||||
dep_tristate ' DSCP target support' CONFIG_IP_NF_TARGET_DSCP $CONFIG_IP_NF_MANGLE
|
||||
|
||||
dep_tristate ' MARK target support' CONFIG_IP_NF_TARGET_MARK $CONFIG_IP_NF_MANGLE
|
||||
+ dep_tristate ' CLASSIFY target support (EXPERIMENTAL)' CONFIG_IP_NF_TARGET_CLASSIFY $CONFIG_IP_NF_MANGLE
|
||||
dep_tristate ' IMQ target support' CONFIG_IP_NF_TARGET_IMQ $CONFIG_IP_NF_MANGLE
|
||||
fi
|
||||
if [ "$CONFIG_IP_NF_CONNTRACK_MARK" != "n" ]; then
|
||||
--- /dev/null
|
||||
+++ b/net/ipv4/netfilter/ipt_CLASSIFY.c
|
||||
@@ -0,0 +1,82 @@
|
||||
+/*
|
||||
+ * This is a module which is used for setting the skb->priority field
|
||||
+ * of an skb for qdisc classification.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/skbuff.h>
|
||||
+#include <linux/ip.h>
|
||||
+#include <net/checksum.h>
|
||||
+
|
||||
+#include <linux/netfilter_ipv4/ip_tables.h>
|
||||
+#include <linux/netfilter_ipv4/ipt_CLASSIFY.h>
|
||||
+
|
||||
+MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
|
||||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_DESCRIPTION("iptables qdisc classification target module");
|
||||
+
|
||||
+static unsigned int
|
||||
+target(struct sk_buff **pskb,
|
||||
+ unsigned int hooknum,
|
||||
+ const struct net_device *in,
|
||||
+ const struct net_device *out,
|
||||
+ const void *targinfo,
|
||||
+ void *userinfo)
|
||||
+{
|
||||
+ const struct ipt_classify_target_info *clinfo = targinfo;
|
||||
+
|
||||
+ if((*pskb)->priority != clinfo->priority) {
|
||||
+ (*pskb)->priority = clinfo->priority;
|
||||
+ (*pskb)->nfcache |= NFC_ALTERED;
|
||||
+ }
|
||||
+
|
||||
+ return IPT_CONTINUE;
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+checkentry(const char *tablename,
|
||||
+ const struct ipt_entry *e,
|
||||
+ void *targinfo,
|
||||
+ unsigned int targinfosize,
|
||||
+ unsigned int hook_mask)
|
||||
+{
|
||||
+ if (targinfosize != IPT_ALIGN(sizeof(struct ipt_classify_target_info))){
|
||||
+ printk(KERN_ERR "CLASSIFY: invalid size (%u != %u).\n",
|
||||
+ targinfosize,
|
||||
+ IPT_ALIGN(sizeof(struct ipt_classify_target_info)));
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (hook_mask & ~(1 << NF_IP_POST_ROUTING)) {
|
||||
+ printk(KERN_ERR "CLASSIFY: only valid in POST_ROUTING.\n");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (strcmp(tablename, "mangle") != 0) {
|
||||
+ printk(KERN_WARNING "CLASSIFY: can only be called from "
|
||||
+ "\"mangle\" table, not \"%s\".\n",
|
||||
+ tablename);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static struct ipt_target ipt_classify_reg
|
||||
+= { { NULL, NULL }, "CLASSIFY", target, checkentry, NULL, THIS_MODULE };
|
||||
+
|
||||
+static int __init init(void)
|
||||
+{
|
||||
+ if (ipt_register_target(&ipt_classify_reg))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void __exit fini(void)
|
||||
+{
|
||||
+ ipt_unregister_target(&ipt_classify_reg);
|
||||
+}
|
||||
+
|
||||
+module_init(init);
|
||||
+module_exit(fini);
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -133,6 +133,7 @@ obj-$(CONFIG_IP_NF_MATCH_LAYER7) += ipt_
|
||||
|
||||
# targets
|
||||
obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
|
||||
+obj-$(CONFIG_IP_NF_TARGET_CLASSIFY) += ipt_CLASSIFY.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_MIRROR) += ipt_MIRROR.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
|
@ -1,63 +0,0 @@ |
||||
--- a/include/linux/mii.h
|
||||
+++ b/include/linux/mii.h
|
||||
@@ -9,7 +9,6 @@
|
||||
#define __LINUX_MII_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
-#include <linux/if.h>
|
||||
|
||||
/* Generic MII registers. */
|
||||
|
||||
@@ -104,6 +103,19 @@
|
||||
#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */
|
||||
#define NWAYTEST_RESV2 0xfe00 /* Unused... */
|
||||
|
||||
+/* This structure is used in all SIOCxMIIxxx ioctl calls */
|
||||
+struct mii_ioctl_data {
|
||||
+ __u16 phy_id;
|
||||
+ __u16 reg_num;
|
||||
+ __u16 val_in;
|
||||
+ __u16 val_out;
|
||||
+};
|
||||
+
|
||||
+#ifdef __KERNEL__
|
||||
+
|
||||
+#include <linux/if.h>
|
||||
+
|
||||
+struct ethtool_cmd;
|
||||
|
||||
struct mii_if_info {
|
||||
int phy_id;
|
||||
@@ -119,9 +131,6 @@ struct mii_if_info {
|
||||
void (*mdio_write) (struct net_device *dev, int phy_id, int location, int val);
|
||||
};
|
||||
|
||||
-struct ethtool_cmd;
|
||||
-struct mii_ioctl_data;
|
||||
-
|
||||
extern int mii_link_ok (struct mii_if_info *mii);
|
||||
extern int mii_nway_restart (struct mii_if_info *mii);
|
||||
extern int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd);
|
||||
@@ -136,15 +145,6 @@ extern int generic_mii_ioctl(struct mii_
|
||||
|
||||
|
||||
|
||||
-/* This structure is used in all SIOCxMIIxxx ioctl calls */
|
||||
-struct mii_ioctl_data {
|
||||
- u16 phy_id;
|
||||
- u16 reg_num;
|
||||
- u16 val_in;
|
||||
- u16 val_out;
|
||||
-};
|
||||
-
|
||||
-
|
||||
static inline struct mii_ioctl_data *if_mii(struct ifreq *rq)
|
||||
{
|
||||
return (struct mii_ioctl_data *) &rq->ifr_ifru;
|
||||
@@ -202,5 +202,5 @@ static inline unsigned int mii_duplex (u
|
||||
return 0;
|
||||
}
|
||||
|
||||
-
|
||||
+#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_MII_H__ */
|
@ -1,26 +0,0 @@ |
||||
Backport of:
|
||||
|
||||
From: David S. Miller <davem@davemloft.net>
|
||||
Date: Fri, 9 May 2008 06:40:26 +0000 (-0700)
|
||||
Subject: sit: Add missing kfree_skb() on pskb_may_pull() failure.
|
||||
X-Git-Tag: v2.6.26-rc2~19^2
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=36ca34cc3b8335eb1fe8bd9a1d0a2592980c3f02
|
||||
|
||||
sit: Add missing kfree_skb() on pskb_may_pull() failure.
|
||||
|
||||
Noticed by Paul Marks <paul@pmarks.net>.
|
||||
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
--- a/net/ipv6/sit.c
|
||||
+++ b/net/ipv6/sit.c
|
||||
@@ -410,9 +410,9 @@ int ipip6_rcv(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PROT_UNREACH, 0);
|
||||
- kfree_skb(skb);
|
||||
read_unlock(&ipip6_lock);
|
||||
out:
|
||||
+ kfree_skb(skb);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in new issue