summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2003-05-11 23:17:18 -0700
committerDavid S. Miller <davem@nuts.ninka.net>2003-05-11 23:17:18 -0700
commitc7286343586b84dfabed7f4cf26303213386573e (patch)
tree654be0f7e8300edfb1390a70fbd7ce915b54cb5e /include/linux
parenta269756ea19369713deaa3894e1423cd1e7e257b (diff)
[NET]: Network packet type using RCU.
* packet type converted from linked list to list_macro * writer lock replaced with spin lock, readers use RCU * add __dev_remove_pack for callers that cant sleep. * af_packet changes to handle and sleeping requirements, and possible races that could cause.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/netdevice.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 080084cc3afc..9ebb267411df 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -456,7 +456,7 @@ struct packet_type
int (*func) (struct sk_buff *, struct net_device *,
struct packet_type *);
void *data; /* Private to the packet type */
- struct packet_type *next;
+ struct list_head list;
};
@@ -472,6 +472,7 @@ extern int netdev_boot_setup_check(struct net_device *dev);
extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr);
extern void dev_add_pack(struct packet_type *pt);
extern void dev_remove_pack(struct packet_type *pt);
+extern void __dev_remove_pack(struct packet_type *pt);
extern int dev_get(const char *name);
extern struct net_device *dev_get_by_flags(unsigned short flags,
unsigned short mask);