Commit b7617a50 authored by David S. Miller's avatar David S. Miller

Merge nuts.ninka.net:/disk1/davem/BK/network-2.5

into nuts.ninka.net:/disk1/davem/BK/net-2.5
parents 3cd77e0c fd1dc88c
...@@ -888,7 +888,7 @@ rlb_initialize(struct bonding *bond) ...@@ -888,7 +888,7 @@ rlb_initialize(struct bonding *bond)
pk_type->type = __constant_htons(ETH_P_ARP); pk_type->type = __constant_htons(ETH_P_ARP);
pk_type->dev = bond->device; pk_type->dev = bond->device;
pk_type->func = rlb_arp_recv; pk_type->func = rlb_arp_recv;
pk_type->data = (void*)1; /* understand shared skbs */ pk_type->data = PKT_CAN_SHARE_SKB;
dev_add_pack(pk_type); dev_add_pack(pk_type);
......
...@@ -955,7 +955,7 @@ static void bond_register_lacpdu(struct bonding *bond) ...@@ -955,7 +955,7 @@ static void bond_register_lacpdu(struct bonding *bond)
pk_type->type = PKT_TYPE_LACPDU; pk_type->type = PKT_TYPE_LACPDU;
pk_type->dev = bond->device; pk_type->dev = bond->device;
pk_type->func = bond_3ad_lacpdu_recv; pk_type->func = bond_3ad_lacpdu_recv;
pk_type->data = (void*)1; /* understand shared skbs */ pk_type->data = PKT_CAN_SHARE_SKB;
dev_add_pack(pk_type); dev_add_pack(pk_type);
} }
......
...@@ -468,13 +468,13 @@ static int pppoe_disc_rcv(struct sk_buff *skb, ...@@ -468,13 +468,13 @@ static int pppoe_disc_rcv(struct sk_buff *skb,
static struct packet_type pppoes_ptype = { static struct packet_type pppoes_ptype = {
.type = __constant_htons(ETH_P_PPP_SES), .type = __constant_htons(ETH_P_PPP_SES),
.func = pppoe_rcv, .func = pppoe_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
static struct packet_type pppoed_ptype = { static struct packet_type pppoed_ptype = {
.type = __constant_htons(ETH_P_PPP_DISC), .type = __constant_htons(ETH_P_PPP_DISC),
.func = pppoe_disc_rcv, .func = pppoe_disc_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
/*********************************************************************** /***********************************************************************
......
...@@ -283,7 +283,7 @@ static struct packet_type hdlc_packet_type = ...@@ -283,7 +283,7 @@ static struct packet_type hdlc_packet_type =
{ {
.type = __constant_htons(ETH_P_HDLC), .type = __constant_htons(ETH_P_HDLC),
.func = hdlc_rcv, .func = hdlc_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
......
...@@ -1454,7 +1454,7 @@ static int sppp_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_t ...@@ -1454,7 +1454,7 @@ static int sppp_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_t
struct packet_type sppp_packet_type = { struct packet_type sppp_packet_type = {
.type = __constant_htons(ETH_P_WAN_PPP), .type = __constant_htons(ETH_P_WAN_PPP),
.func = sppp_rcv, .func = sppp_rcv,
.data = (void*)1, /* must be non-NULL to indicate 'new' protocol */ .data = PKT_CAN_SHARE_SKB,
}; };
static char banner[] __initdata = static char banner[] __initdata =
......
...@@ -477,6 +477,7 @@ struct net_device ...@@ -477,6 +477,7 @@ struct net_device
*/ */
#define SET_NETDEV_DEV(net, pdev) ((net)->class_dev.dev = (pdev)) #define SET_NETDEV_DEV(net, pdev) ((net)->class_dev.dev = (pdev))
#define PKT_CAN_SHARE_SKB ((void*)1)
struct packet_type struct packet_type
{ {
......
...@@ -19,11 +19,6 @@ enum ip_nat_manip_type ...@@ -19,11 +19,6 @@ enum ip_nat_manip_type
#define HOOK2MANIP(hooknum) ((hooknum) != NF_IP_POST_ROUTING && (hooknum) != NF_IP_LOCAL_IN) #define HOOK2MANIP(hooknum) ((hooknum) != NF_IP_POST_ROUTING && (hooknum) != NF_IP_LOCAL_IN)
#endif #endif
/* 2.3.19 (I hope) will define this in linux/netfilter_ipv4.h. */
#ifndef SO_ORIGINAL_DST
#define SO_ORIGINAL_DST 80
#endif
#define IP_NAT_RANGE_MAP_IPS 1 #define IP_NAT_RANGE_MAP_IPS 1
#define IP_NAT_RANGE_PROTO_SPECIFIED 2 #define IP_NAT_RANGE_PROTO_SPECIFIED 2
/* Used internally by get_unique_tuple(). */ /* Used internally by get_unique_tuple(). */
......
...@@ -67,7 +67,7 @@ unsigned short vlan_default_dev_flags = 1; ...@@ -67,7 +67,7 @@ unsigned short vlan_default_dev_flags = 1;
static struct packet_type vlan_packet_type = { static struct packet_type vlan_packet_type = {
.type = __constant_htons(ETH_P_8021Q), .type = __constant_htons(ETH_P_8021Q),
.func = vlan_skb_recv, /* VLAN receive method */ .func = vlan_skb_recv, /* VLAN receive method */
.data = (void *)1, /* understands shared skb */ .data = PKT_CAN_SHARE_SKB,
}; };
/* End of global variables definitions. */ /* End of global variables definitions. */
......
...@@ -1872,13 +1872,13 @@ static struct notifier_block ddp_notifier = { ...@@ -1872,13 +1872,13 @@ static struct notifier_block ddp_notifier = {
struct packet_type ltalk_packet_type = { struct packet_type ltalk_packet_type = {
.type = __constant_htons(ETH_P_LOCALTALK), .type = __constant_htons(ETH_P_LOCALTALK),
.func = ltalk_rcv, .func = ltalk_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
struct packet_type ppptalk_packet_type = { struct packet_type ppptalk_packet_type = {
.type = __constant_htons(ETH_P_PPPTALK), .type = __constant_htons(ETH_P_PPPTALK),
.func = atalk_rcv, .func = atalk_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
static unsigned char ddp_snap_id[] = { 0x08, 0x00, 0x07, 0x80, 0x9B }; static unsigned char ddp_snap_id[] = { 0x08, 0x00, 0x07, 0x80, 0x9B };
......
...@@ -1978,7 +1978,7 @@ static struct packet_type ax25_packet_type = { ...@@ -1978,7 +1978,7 @@ static struct packet_type ax25_packet_type = {
.type = __constant_htons(ETH_P_AX25), .type = __constant_htons(ETH_P_AX25),
.dev = NULL, /* All devices */ .dev = NULL, /* All devices */
.func = ax25_kiss_rcv, .func = ax25_kiss_rcv,
.data = (void *) 1 .data = PKT_CAN_SHARE_SKB,
}; };
static struct notifier_block ax25_dev_notifier = { static struct notifier_block ax25_dev_notifier = {
......
...@@ -109,10 +109,6 @@ ...@@ -109,10 +109,6 @@
#include <linux/wireless.h> /* Note : will define WIRELESS_EXT */ #include <linux/wireless.h> /* Note : will define WIRELESS_EXT */
#include <net/iw_handler.h> #include <net/iw_handler.h>
#endif /* CONFIG_NET_RADIO */ #endif /* CONFIG_NET_RADIO */
#ifdef CONFIG_PLIP
extern int plip_init(void);
#endif
#include <asm/current.h> #include <asm/current.h>
/* This define, if set, will randomly drop a packet when congestion /* This define, if set, will randomly drop a packet when congestion
...@@ -233,7 +229,7 @@ void dev_add_pack(struct packet_type *pt) ...@@ -233,7 +229,7 @@ void dev_add_pack(struct packet_type *pt)
spin_lock_bh(&ptype_lock); spin_lock_bh(&ptype_lock);
#ifdef CONFIG_NET_FASTROUTE #ifdef CONFIG_NET_FASTROUTE
/* Hack to detect packet socket */ /* Hack to detect packet socket */
if (pt->data && (long)(pt->data) != 1) { if (pt->data && pt->data != PKT_CAN_SHARE_SKB) {
netdev_fastroute_obstacles++; netdev_fastroute_obstacles++;
dev_clear_fastroute(pt->dev); dev_clear_fastroute(pt->dev);
} }
...@@ -281,7 +277,7 @@ void __dev_remove_pack(struct packet_type *pt) ...@@ -281,7 +277,7 @@ void __dev_remove_pack(struct packet_type *pt)
list_for_each_entry(pt1, head, list) { list_for_each_entry(pt1, head, list) {
if (pt == pt1) { if (pt == pt1) {
#ifdef CONFIG_NET_FASTROUTE #ifdef CONFIG_NET_FASTROUTE
if (pt->data) if (pt->data && pt->data != PKT_CAN_SHARE_SKB)
netdev_fastroute_obstacles--; netdev_fastroute_obstacles--;
#endif #endif
list_del_rcu(&pt->list); list_del_rcu(&pt->list);
......
...@@ -2081,7 +2081,7 @@ static struct packet_type dn_dix_packet_type = { ...@@ -2081,7 +2081,7 @@ static struct packet_type dn_dix_packet_type = {
.type = __constant_htons(ETH_P_DNA_RT), .type = __constant_htons(ETH_P_DNA_RT),
.dev = NULL, /* All devices */ .dev = NULL, /* All devices */
.func = dn_route_rcv, .func = dn_route_rcv,
.data = (void*)1, .data = PKT_CAN_SHARE_SKB,
}; };
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
......
...@@ -1108,7 +1108,7 @@ void arp_ifdown(struct net_device *dev) ...@@ -1108,7 +1108,7 @@ void arp_ifdown(struct net_device *dev)
static struct packet_type arp_packet_type = { static struct packet_type arp_packet_type = {
.type = __constant_htons(ETH_P_ARP), .type = __constant_htons(ETH_P_ARP),
.func = arp_rcv, .func = arp_rcv,
.data = (void*) 1, /* understand shared skbs */ .data = PKT_CAN_SHARE_SKB,
}; };
static int arp_proc_init(void); static int arp_proc_init(void);
......
...@@ -271,13 +271,17 @@ static struct ip_tunnel * ipgre_tunnel_locate(struct ip_tunnel_parm *parms, int ...@@ -271,13 +271,17 @@ static struct ip_tunnel * ipgre_tunnel_locate(struct ip_tunnel_parm *parms, int
} }
dev = alloc_netdev(sizeof(*t), name, ipgre_tunnel_setup); dev = alloc_netdev(sizeof(*t), name, ipgre_tunnel_setup);
if (!dev)
return NULL;
dev->init = ipgre_tunnel_init;
if (register_netdevice(dev) < 0) { if (register_netdevice(dev) < 0) {
kfree(dev); kfree(dev);
goto failed; goto failed;
} }
nt = dev->priv; nt = dev->priv;
dev->init = ipgre_tunnel_init;
nt->parms = *parms; nt->parms = *parms;
dev_hold(dev); dev_hold(dev);
......
...@@ -1299,7 +1299,7 @@ static struct packet_type ip_packet_type = ...@@ -1299,7 +1299,7 @@ static struct packet_type ip_packet_type =
.type = __constant_htons(ETH_P_IP), .type = __constant_htons(ETH_P_IP),
.dev = NULL, /* All devices */ .dev = NULL, /* All devices */
.func = ip_rcv, .func = ip_rcv,
.data = (void*)1, .data = PKT_CAN_SHARE_SKB,
}; };
/* /*
......
...@@ -62,7 +62,7 @@ static struct packet_type ipv6_packet_type = ...@@ -62,7 +62,7 @@ static struct packet_type ipv6_packet_type =
.type = __constant_htons(ETH_P_IPV6), .type = __constant_htons(ETH_P_IPV6),
.dev = NULL, /* All devices */ .dev = NULL, /* All devices */
.func = ipv6_rcv, .func = ipv6_rcv,
.data = (void*)1, .data = PKT_CAN_SHARE_SKB,
}; };
/* /*
......
...@@ -1920,13 +1920,13 @@ SOCKOPS_WRAP(ipx_dgram, PF_IPX); ...@@ -1920,13 +1920,13 @@ SOCKOPS_WRAP(ipx_dgram, PF_IPX);
static struct packet_type ipx_8023_packet_type = { static struct packet_type ipx_8023_packet_type = {
.type = __constant_htons(ETH_P_802_3), .type = __constant_htons(ETH_P_802_3),
.func = ipx_rcv, .func = ipx_rcv,
.data = (void *)1, /* yap, I understand shared skbs :-) */ .data = PKT_CAN_SHARE_SKB,
}; };
static struct packet_type ipx_dix_packet_type = { static struct packet_type ipx_dix_packet_type = {
.type = __constant_htons(ETH_P_IPX), .type = __constant_htons(ETH_P_IPX),
.func = ipx_rcv, .func = ipx_rcv,
.data = (void *)1, /* yap, I understand shared skbs :-) */ .data = PKT_CAN_SHARE_SKB,
}; };
static struct notifier_block ipx_dev_notifier = { static struct notifier_block ipx_dev_notifier = {
......
...@@ -191,7 +191,7 @@ static struct packet_type irda_packet_type = ...@@ -191,7 +191,7 @@ static struct packet_type irda_packet_type =
.type = __constant_htons(ETH_P_IRDA), .type = __constant_htons(ETH_P_IRDA),
.dev = NULL, /* Wildcard : All devices */ .dev = NULL, /* Wildcard : All devices */
.func = irlap_driver_rcv, /* Packet type handler irlap_frame.c */ .func = irlap_driver_rcv, /* Packet type handler irlap_frame.c */
.data = (void*) 1, /* Understand shared skbs */ .data = PKT_CAN_SHARE_SKB,
//.next = NULL, //.next = NULL,
}; };
......
...@@ -140,13 +140,13 @@ void llc_sap_close(struct llc_sap *sap) ...@@ -140,13 +140,13 @@ void llc_sap_close(struct llc_sap *sap)
static struct packet_type llc_packet_type = { static struct packet_type llc_packet_type = {
.type = __constant_htons(ETH_P_802_2), .type = __constant_htons(ETH_P_802_2),
.func = llc_rcv, .func = llc_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
static struct packet_type llc_tr_packet_type = { static struct packet_type llc_tr_packet_type = {
.type = __constant_htons(ETH_P_TR_802_2), .type = __constant_htons(ETH_P_TR_802_2),
.func = llc_rcv, .func = llc_rcv,
.data = (void *)1, .data = PKT_CAN_SHARE_SKB,
}; };
static int __init llc_init(void) static int __init llc_init(void)
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/if_arp.h> #include <linux/if_arp.h>
#include <linux/if_tr.h> #include <linux/if_tr.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/trdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
#include <net/llc.h> #include <net/llc.h>
#include <net/llc_pdu.h> #include <net/llc_pdu.h>
......
...@@ -416,7 +416,6 @@ void qdisc_destroy(struct Qdisc *qdisc) ...@@ -416,7 +416,6 @@ void qdisc_destroy(struct Qdisc *qdisc)
dev = qdisc->dev; dev = qdisc->dev;
#ifdef CONFIG_NET_SCHED
if (dev) { if (dev) {
struct Qdisc *q, **qp; struct Qdisc *q, **qp;
for (qp = &qdisc->dev->qdisc_list; (q=*qp) != NULL; qp = &q->next) { for (qp = &qdisc->dev->qdisc_list; (q=*qp) != NULL; qp = &q->next) {
...@@ -428,7 +427,6 @@ void qdisc_destroy(struct Qdisc *qdisc) ...@@ -428,7 +427,6 @@ void qdisc_destroy(struct Qdisc *qdisc)
} }
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
qdisc_kill_estimator(&qdisc->stats); qdisc_kill_estimator(&qdisc->stats);
#endif
#endif #endif
if (ops->reset) if (ops->reset)
ops->reset(qdisc); ops->reset(qdisc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment