more changes on original files
[linux-2.4.git] / Documentation / networking / netdevices.txt
1
2 Network Devices, the Kernel, and You!
3
4
5 Introduction
6 ============
7 The following is a random collection of documentation regarding
8 network devices.
9
10
11
12 struct net_device synchronization rules
13 =======================================
14 dev->open:
15         Synchronization: rtnl_lock() semaphore.
16         Context: process
17
18 dev->stop:
19         Synchronization: rtnl_lock() semaphore.
20         Context: process
21         Note1: netif_running() is guaranteed false
22         Note2: dev->poll() is guaranteed to be stopped
23
24 dev->do_ioctl:
25         Synchronization: rtnl_lock() semaphore.
26         Context: process
27
28 dev->get_stats:
29         Synchronization: dev_base_lock rwlock.
30         Context: nominally process, but don't sleep inside an rwlock
31
32 dev->hard_start_xmit:
33         Synchronization: dev->xmit_lock spinlock.
34         Context: BHs disabled
35         Notes: netif_queue_stopped() is guaranteed false
36
37 dev->tx_timeout:
38         Synchronization: dev->xmit_lock spinlock.
39         Context: BHs disabled
40         Notes: netif_queue_stopped() is guaranteed true
41
42 dev->set_multicast_list:
43         Synchronization: dev->xmit_lock spinlock.
44         Context: BHs disabled
45
46 dev->poll:
47         Synchronization: __LINK_STATE_RX_SCHED bit in dev->state.  See
48                 dev_close code and comments in net/core/dev.c for more info.
49         Context: softirq
50