diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-04 22:36:58 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-04 22:36:58 -0400 |
| commit | 7e20ef030dde0e52dd5a57220ee82fa9facbea4e (patch) | |
| tree | 5006db4f85a2d7be2777748aaff2966e79dddc6f /include/linux/netdevice.h | |
| parent | a3d52136ee8f7399859f9a0824470fd49b1d1a00 (diff) | |
| parent | 07d939677166cc4f000c767196872a9becc2697b (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (49 commits)
[SCTP]: Set assoc_id correctly during INIT collision.
[SCTP]: Re-order SCTP initializations to avoid race with sctp_rcv()
[SCTP]: Fix the SO_REUSEADDR handling to be similar to TCP.
[SCTP]: Verify all destination ports in sctp_connectx.
[XFRM] SPD info TLV aggregation
[XFRM] SAD info TLV aggregationx
[AF_RXRPC]: Sort out MTU handling.
[AF_IUCV/IUCV] : Add missing section annotations
[AF_IUCV]: Implementation of a skb backlog queue
[NETLINK]: Remove bogus BUG_ON
[IPV6]: Some cleanups in include/net/ipv6.h
[TCP]: zero out rx_opt in tcp_disconnect()
[BNX2]: Fix TSO problem with small MSS.
[NET]: Rework dev_base via list_head (v3)
[TCP] Highspeed: Limited slow-start is nowadays in tcp_slow_start
[BNX2]: Update version and reldate.
[BNX2]: Print bus information for PCIE devices.
[BNX2]: Add 1-shot MSI handler for 5709.
[BNX2]: Restructure PHY event handling.
[BNX2]: Add indirect spinlock.
...
Diffstat (limited to 'include/linux/netdevice.h')
| -rw-r--r-- | include/linux/netdevice.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ac0c92b1e002..30446222b396 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -304,7 +304,7 @@ struct net_device | |||
| 304 | 304 | ||
| 305 | unsigned long state; | 305 | unsigned long state; |
| 306 | 306 | ||
| 307 | struct net_device *next; | 307 | struct list_head dev_list; |
| 308 | 308 | ||
| 309 | /* The device initialization function. Called only once. */ | 309 | /* The device initialization function. Called only once. */ |
| 310 | int (*init)(struct net_device *dev); | 310 | int (*init)(struct net_device *dev); |
| @@ -575,13 +575,36 @@ struct packet_type { | |||
| 575 | #include <linux/notifier.h> | 575 | #include <linux/notifier.h> |
| 576 | 576 | ||
| 577 | extern struct net_device loopback_dev; /* The loopback */ | 577 | extern struct net_device loopback_dev; /* The loopback */ |
| 578 | extern struct net_device *dev_base; /* All devices */ | 578 | extern struct list_head dev_base_head; /* All devices */ |
| 579 | extern rwlock_t dev_base_lock; /* Device list lock */ | 579 | extern rwlock_t dev_base_lock; /* Device list lock */ |
| 580 | 580 | ||
| 581 | #define for_each_netdev(d) \ | ||
| 582 | list_for_each_entry(d, &dev_base_head, dev_list) | ||
| 583 | #define for_each_netdev_safe(d, n) \ | ||
| 584 | list_for_each_entry_safe(d, n, &dev_base_head, dev_list) | ||
| 585 | #define for_each_netdev_continue(d) \ | ||
| 586 | list_for_each_entry_continue(d, &dev_base_head, dev_list) | ||
| 587 | #define net_device_entry(lh) list_entry(lh, struct net_device, dev_list) | ||
| 588 | |||
| 589 | static inline struct net_device *next_net_device(struct net_device *dev) | ||
| 590 | { | ||
| 591 | struct list_head *lh; | ||
| 592 | |||
| 593 | lh = dev->dev_list.next; | ||
| 594 | return lh == &dev_base_head ? NULL : net_device_entry(lh); | ||
| 595 | } | ||
| 596 | |||
| 597 | static inline struct net_device *first_net_device(void) | ||
| 598 | { | ||
| 599 | return list_empty(&dev_base_head) ? NULL : | ||
| 600 | net_device_entry(dev_base_head.next); | ||
| 601 | } | ||
| 602 | |||
| 581 | extern int netdev_boot_setup_check(struct net_device *dev); | 603 | extern int netdev_boot_setup_check(struct net_device *dev); |
| 582 | extern unsigned long netdev_boot_base(const char *prefix, int unit); | 604 | extern unsigned long netdev_boot_base(const char *prefix, int unit); |
| 583 | extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); | 605 | extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); |
| 584 | extern struct net_device *dev_getfirstbyhwtype(unsigned short type); | 606 | extern struct net_device *dev_getfirstbyhwtype(unsigned short type); |
| 607 | extern struct net_device *__dev_getfirstbyhwtype(unsigned short type); | ||
| 585 | extern void dev_add_pack(struct packet_type *pt); | 608 | extern void dev_add_pack(struct packet_type *pt); |
| 586 | extern void dev_remove_pack(struct packet_type *pt); | 609 | extern void dev_remove_pack(struct packet_type *pt); |
| 587 | extern void __dev_remove_pack(struct packet_type *pt); | 610 | extern void __dev_remove_pack(struct packet_type *pt); |
