diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-07-30 18:14:15 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-07-30 18:14:15 -0400 |
commit | a670fcb43f01a67ef56176afc76e5d43d128b25c (patch) | |
tree | 09c9411c78a33ff980e9ea871bc7686e7589abbf /Documentation | |
parent | 327309e899662b482c58cf25f574513d38b5788c (diff) | |
parent | b0825488a642cadcf39709961dde61440cb0731c (diff) |
/spare/repo/netdev-2.6 branch 'master'
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/Changes | 1 | ||||
-rw-r--r-- | Documentation/dontdiff | 2 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 4 | ||||
-rw-r--r-- | Documentation/filesystems/inotify.txt | 77 | ||||
-rw-r--r-- | Documentation/filesystems/ntfs.txt | 29 | ||||
-rw-r--r-- | Documentation/infiniband/core_locking.txt | 114 | ||||
-rw-r--r-- | Documentation/infiniband/user_mad.txt | 53 | ||||
-rw-r--r-- | Documentation/pcmcia/driver-changes.txt | 9 | ||||
-rw-r--r-- | Documentation/scsi/scsi_mid_low_api.txt | 15 | ||||
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 44 | ||||
-rw-r--r-- | Documentation/stable_api_nonsense.txt | 2 | ||||
-rw-r--r-- | Documentation/stable_kernel_rules.txt | 58 | ||||
-rw-r--r-- | Documentation/x86_64/boot-options.txt | 10 |
13 files changed, 325 insertions, 93 deletions
diff --git a/Documentation/Changes b/Documentation/Changes index dfec7569d450..5eaab0441d76 100644 --- a/Documentation/Changes +++ b/Documentation/Changes | |||
@@ -65,6 +65,7 @@ o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version | |||
65 | o nfs-utils 1.0.5 # showmount --version | 65 | o nfs-utils 1.0.5 # showmount --version |
66 | o procps 3.2.0 # ps --version | 66 | o procps 3.2.0 # ps --version |
67 | o oprofile 0.9 # oprofiled --version | 67 | o oprofile 0.9 # oprofiled --version |
68 | o udev 058 # udevinfo -V | ||
68 | 69 | ||
69 | Kernel compilation | 70 | Kernel compilation |
70 | ================== | 71 | ================== |
diff --git a/Documentation/dontdiff b/Documentation/dontdiff index d4fda25db868..b974cf595d01 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff | |||
@@ -41,6 +41,7 @@ COPYING | |||
41 | CREDITS | 41 | CREDITS |
42 | CVS | 42 | CVS |
43 | ChangeSet | 43 | ChangeSet |
44 | Image | ||
44 | Kerntypes | 45 | Kerntypes |
45 | MODS.txt | 46 | MODS.txt |
46 | Module.symvers | 47 | Module.symvers |
@@ -103,6 +104,7 @@ logo_*.c | |||
103 | logo_*_clut224.c | 104 | logo_*_clut224.c |
104 | logo_*_mono.c | 105 | logo_*_mono.c |
105 | lxdialog | 106 | lxdialog |
107 | mach-types.h | ||
106 | make_times_h | 108 | make_times_h |
107 | map | 109 | map |
108 | maui_boot.h | 110 | maui_boot.h |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 12dde43fe657..8b1430b46655 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -103,11 +103,11 @@ Who: Jody McIntyre <scjody@steamballoon.com> | |||
103 | --------------------------- | 103 | --------------------------- |
104 | 104 | ||
105 | What: register_serial/unregister_serial | 105 | What: register_serial/unregister_serial |
106 | When: December 2005 | 106 | When: September 2005 |
107 | Why: This interface does not allow serial ports to be registered against | 107 | Why: This interface does not allow serial ports to be registered against |
108 | a struct device, and as such does not allow correct power management | 108 | a struct device, and as such does not allow correct power management |
109 | of such ports. 8250-based ports should use serial8250_register_port | 109 | of such ports. 8250-based ports should use serial8250_register_port |
110 | and serial8250_unregister_port instead. | 110 | and serial8250_unregister_port, or platform devices instead. |
111 | Who: Russell King <rmk@arm.linux.org.uk> | 111 | Who: Russell King <rmk@arm.linux.org.uk> |
112 | 112 | ||
113 | --------------------------- | 113 | --------------------------- |
diff --git a/Documentation/filesystems/inotify.txt b/Documentation/filesystems/inotify.txt index 2c716041f578..6d501903f68e 100644 --- a/Documentation/filesystems/inotify.txt +++ b/Documentation/filesystems/inotify.txt | |||
@@ -1,18 +1,22 @@ | |||
1 | inotify | 1 | inotify |
2 | a powerful yet simple file change notification system | 2 | a powerful yet simple file change notification system |
3 | 3 | ||
4 | 4 | ||
5 | 5 | ||
6 | Document started 15 Mar 2005 by Robert Love <rml@novell.com> | 6 | Document started 15 Mar 2005 by Robert Love <rml@novell.com> |
7 | 7 | ||
8 | |||
8 | (i) User Interface | 9 | (i) User Interface |
9 | 10 | ||
10 | Inotify is controlled by a set of three sys calls | 11 | Inotify is controlled by a set of three system calls and normal file I/O on a |
12 | returned file descriptor. | ||
11 | 13 | ||
12 | First step in using inotify is to initialise an inotify instance | 14 | First step in using inotify is to initialise an inotify instance: |
13 | 15 | ||
14 | int fd = inotify_init (); | 16 | int fd = inotify_init (); |
15 | 17 | ||
18 | Each instance is associated with a unique, ordered queue. | ||
19 | |||
16 | Change events are managed by "watches". A watch is an (object,mask) pair where | 20 | Change events are managed by "watches". A watch is an (object,mask) pair where |
17 | the object is a file or directory and the mask is a bit mask of one or more | 21 | the object is a file or directory and the mask is a bit mask of one or more |
18 | inotify events that the application wishes to receive. See <linux/inotify.h> | 22 | inotify events that the application wishes to receive. See <linux/inotify.h> |
@@ -22,43 +26,52 @@ Watches are added via a path to the file. | |||
22 | 26 | ||
23 | Watches on a directory will return events on any files inside of the directory. | 27 | Watches on a directory will return events on any files inside of the directory. |
24 | 28 | ||
25 | Adding a watch is simple, | 29 | Adding a watch is simple: |
26 | 30 | ||
27 | int wd = inotify_add_watch (fd, path, mask); | 31 | int wd = inotify_add_watch (fd, path, mask); |
28 | 32 | ||
29 | You can add a large number of files via something like | 33 | Where "fd" is the return value from inotify_init(), path is the path to the |
30 | 34 | object to watch, and mask is the watch mask (see <linux/inotify.h>). | |
31 | for each file to watch { | ||
32 | int wd = inotify_add_watch (fd, file, mask); | ||
33 | } | ||
34 | 35 | ||
35 | You can update an existing watch in the same manner, by passing in a new mask. | 36 | You can update an existing watch in the same manner, by passing in a new mask. |
36 | 37 | ||
37 | An existing watch is removed via the INOTIFY_IGNORE ioctl, for example | 38 | An existing watch is removed via |
38 | 39 | ||
39 | inotify_rm_watch (fd, wd); | 40 | int ret = inotify_rm_watch (fd, wd); |
40 | 41 | ||
41 | Events are provided in the form of an inotify_event structure that is read(2) | 42 | Events are provided in the form of an inotify_event structure that is read(2) |
42 | from a inotify instance fd. The filename is of dynamic length and follows the | 43 | from a given inotify instance. The filename is of dynamic length and follows |
43 | struct. It is of size len. The filename is padded with null bytes to ensure | 44 | the struct. It is of size len. The filename is padded with null bytes to |
44 | proper alignment. This padding is reflected in len. | 45 | ensure proper alignment. This padding is reflected in len. |
45 | 46 | ||
46 | You can slurp multiple events by passing a large buffer, for example | 47 | You can slurp multiple events by passing a large buffer, for example |
47 | 48 | ||
48 | size_t len = read (fd, buf, BUF_LEN); | 49 | size_t len = read (fd, buf, BUF_LEN); |
49 | 50 | ||
50 | Will return as many events as are available and fit in BUF_LEN. | 51 | Where "buf" is a pointer to an array of "inotify_event" structures at least |
52 | BUF_LEN bytes in size. The above example will return as many events as are | ||
53 | available and fit in BUF_LEN. | ||
51 | 54 | ||
52 | each inotify instance fd is also select()- and poll()-able. | 55 | Each inotify instance fd is also select()- and poll()-able. |
53 | 56 | ||
54 | You can find the size of the current event queue via the FIONREAD ioctl. | 57 | You can find the size of the current event queue via the standard FIONREAD |
58 | ioctl on the fd returned by inotify_init(). | ||
55 | 59 | ||
56 | All watches are destroyed and cleaned up on close. | 60 | All watches are destroyed and cleaned up on close. |
57 | 61 | ||
58 | 62 | ||
59 | (ii) Internal Kernel Implementation | 63 | (ii) |
64 | |||
65 | Prototypes: | ||
66 | |||
67 | int inotify_init (void); | ||
68 | int inotify_add_watch (int fd, const char *path, __u32 mask); | ||
69 | int inotify_rm_watch (int fd, __u32 mask); | ||
70 | |||
60 | 71 | ||
61 | Each open inotify instance is associated with an inotify_device structure. | 72 | (iii) Internal Kernel Implementation |
73 | |||
74 | Each inotify instance is associated with an inotify_device structure. | ||
62 | 75 | ||
63 | Each watch is associated with an inotify_watch structure. Watches are chained | 76 | Each watch is associated with an inotify_watch structure. Watches are chained |
64 | off of each associated device and each associated inode. | 77 | off of each associated device and each associated inode. |
@@ -66,7 +79,7 @@ off of each associated device and each associated inode. | |||
66 | See fs/inotify.c for the locking and lifetime rules. | 79 | See fs/inotify.c for the locking and lifetime rules. |
67 | 80 | ||
68 | 81 | ||
69 | (iii) Rationale | 82 | (iv) Rationale |
70 | 83 | ||
71 | Q: What is the design decision behind not tying the watch to the open fd of | 84 | Q: What is the design decision behind not tying the watch to the open fd of |
72 | the watched object? | 85 | the watched object? |
@@ -75,9 +88,9 @@ A: Watches are associated with an open inotify device, not an open file. | |||
75 | This solves the primary problem with dnotify: keeping the file open pins | 88 | This solves the primary problem with dnotify: keeping the file open pins |
76 | the file and thus, worse, pins the mount. Dnotify is therefore infeasible | 89 | the file and thus, worse, pins the mount. Dnotify is therefore infeasible |
77 | for use on a desktop system with removable media as the media cannot be | 90 | for use on a desktop system with removable media as the media cannot be |
78 | unmounted. | 91 | unmounted. Watching a file should not require that it be open. |
79 | 92 | ||
80 | Q: What is the design decision behind using an-fd-per-device as opposed to | 93 | Q: What is the design decision behind using an-fd-per-instance as opposed to |
81 | an fd-per-watch? | 94 | an fd-per-watch? |
82 | 95 | ||
83 | A: An fd-per-watch quickly consumes more file descriptors than are allowed, | 96 | A: An fd-per-watch quickly consumes more file descriptors than are allowed, |
@@ -86,8 +99,8 @@ A: An fd-per-watch quickly consumes more file descriptors than are allowed, | |||
86 | can use epoll, but requiring both is a silly and extraneous requirement. | 99 | can use epoll, but requiring both is a silly and extraneous requirement. |
87 | A watch consumes less memory than an open file, separating the number | 100 | A watch consumes less memory than an open file, separating the number |
88 | spaces is thus sensible. The current design is what user-space developers | 101 | spaces is thus sensible. The current design is what user-space developers |
89 | want: Users initialize inotify, once, and add n watches, requiring but one fd | 102 | want: Users initialize inotify, once, and add n watches, requiring but one |
90 | and no twiddling with fd limits. Initializing an inotify instance two | 103 | fd and no twiddling with fd limits. Initializing an inotify instance two |
91 | thousand times is silly. If we can implement user-space's preferences | 104 | thousand times is silly. If we can implement user-space's preferences |
92 | cleanly--and we can, the idr layer makes stuff like this trivial--then we | 105 | cleanly--and we can, the idr layer makes stuff like this trivial--then we |
93 | should. | 106 | should. |
@@ -111,9 +124,6 @@ A: An fd-per-watch quickly consumes more file descriptors than are allowed, | |||
111 | example, love it. Trust me, I asked. It is not a surprise: Who'd want | 124 | example, love it. Trust me, I asked. It is not a surprise: Who'd want |
112 | to manage and block on 1000 fd's via select? | 125 | to manage and block on 1000 fd's via select? |
113 | 126 | ||
114 | - You'd have to manage the fd's, as an example: Call close() when you | ||
115 | received a delete event. | ||
116 | |||
117 | - No way to get out of band data. | 127 | - No way to get out of band data. |
118 | 128 | ||
119 | - 1024 is still too low. ;-) | 129 | - 1024 is still too low. ;-) |
@@ -122,6 +132,11 @@ A: An fd-per-watch quickly consumes more file descriptors than are allowed, | |||
122 | scales to 1000s of directories, juggling 1000s of fd's just does not seem | 132 | scales to 1000s of directories, juggling 1000s of fd's just does not seem |
123 | the right interface. It is too heavy. | 133 | the right interface. It is too heavy. |
124 | 134 | ||
135 | Additionally, it _is_ possible to more than one instance and | ||
136 | juggle more than one queue and thus more than one associated fd. There | ||
137 | need not be a one-fd-per-process mapping; it is one-fd-per-queue and a | ||
138 | process can easily want more than one queue. | ||
139 | |||
125 | Q: Why the system call approach? | 140 | Q: Why the system call approach? |
126 | 141 | ||
127 | A: The poor user-space interface is the second biggest problem with dnotify. | 142 | A: The poor user-space interface is the second biggest problem with dnotify. |
@@ -131,8 +146,6 @@ A: The poor user-space interface is the second biggest problem with dnotify. | |||
131 | Obtaining the fd and managing the watches could have been done either via a | 146 | Obtaining the fd and managing the watches could have been done either via a |
132 | device file or a family of new system calls. We decided to implement a | 147 | device file or a family of new system calls. We decided to implement a |
133 | family of system calls because that is the preffered approach for new kernel | 148 | family of system calls because that is the preffered approach for new kernel |
134 | features and it means our user interface requirements. | 149 | interfaces. The only real difference was whether we wanted to use open(2) |
135 | 150 | and ioctl(2) or a couple of new system calls. System calls beat ioctls. | |
136 | Additionally, it _is_ possible to more than one instance and | ||
137 | juggle more than one queue and thus more than one associated fd. | ||
138 | 151 | ||
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index f89b440fad1d..eef4aca0c753 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt | |||
@@ -21,7 +21,7 @@ Overview | |||
21 | ======== | 21 | ======== |
22 | 22 | ||
23 | Linux-NTFS comes with a number of user-space programs known as ntfsprogs. | 23 | Linux-NTFS comes with a number of user-space programs known as ntfsprogs. |
24 | These include mkntfs, a full-featured ntfs file system format utility, | 24 | These include mkntfs, a full-featured ntfs filesystem format utility, |
25 | ntfsundelete used for recovering files that were unintentionally deleted | 25 | ntfsundelete used for recovering files that were unintentionally deleted |
26 | from an NTFS volume and ntfsresize which is used to resize an NTFS partition. | 26 | from an NTFS volume and ntfsresize which is used to resize an NTFS partition. |
27 | See the web site for more information. | 27 | See the web site for more information. |
@@ -149,7 +149,14 @@ case_sensitive=<BOOL> If case_sensitive is specified, treat all file names as | |||
149 | name, if it exists. If case_sensitive, you will need | 149 | name, if it exists. If case_sensitive, you will need |
150 | to provide the correct case of the short file name. | 150 | to provide the correct case of the short file name. |
151 | 151 | ||
152 | errors=opt What to do when critical file system errors are found. | 152 | disable_sparse=<BOOL> If disable_sparse is specified, creation of sparse |
153 | regions, i.e. holes, inside files is disabled for the | ||
154 | volume (for the duration of this mount only). By | ||
155 | default, creation of sparse regions is enabled, which | ||
156 | is consistent with the behaviour of traditional Unix | ||
157 | filesystems. | ||
158 | |||
159 | errors=opt What to do when critical filesystem errors are found. | ||
153 | Following values can be used for "opt": | 160 | Following values can be used for "opt": |
154 | continue: DEFAULT, try to clean-up as much as | 161 | continue: DEFAULT, try to clean-up as much as |
155 | possible, e.g. marking a corrupt inode as | 162 | possible, e.g. marking a corrupt inode as |
@@ -432,6 +439,24 @@ ChangeLog | |||
432 | 439 | ||
433 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | 440 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. |
434 | 441 | ||
442 | 2.1.23: | ||
443 | - Stamp the user space journal, aka transaction log, aka $UsnJrnl, if | ||
444 | it is present and active thus telling Windows and applications using | ||
445 | the transaction log that changes can have happened on the volume | ||
446 | which are not recorded in $UsnJrnl. | ||
447 | - Detect the case when Windows has been hibernated (suspended to disk) | ||
448 | and if this is the case do not allow (re)mounting read-write to | ||
449 | prevent data corruption when you boot back into the suspended | ||
450 | Windows session. | ||
451 | - Implement extension of resident files using the normal file write | ||
452 | code paths, i.e. most very small files can be extended to be a little | ||
453 | bit bigger but not by much. | ||
454 | - Add new mount option "disable_sparse". (See list of mount options | ||
455 | above for details.) | ||
456 | - Improve handling of ntfs volumes with errors and strange boot sectors | ||
457 | in particular. | ||
458 | - Fix various bugs including a nasty deadlock that appeared in recent | ||
459 | kernels (around 2.6.11-2.6.12 timeframe). | ||
435 | 2.1.22: | 460 | 2.1.22: |
436 | - Improve handling of ntfs volumes with errors. | 461 | - Improve handling of ntfs volumes with errors. |
437 | - Fix various bugs and race conditions. | 462 | - Fix various bugs and race conditions. |
diff --git a/Documentation/infiniband/core_locking.txt b/Documentation/infiniband/core_locking.txt new file mode 100644 index 000000000000..e1678542279a --- /dev/null +++ b/Documentation/infiniband/core_locking.txt | |||
@@ -0,0 +1,114 @@ | |||
1 | INFINIBAND MIDLAYER LOCKING | ||
2 | |||
3 | This guide is an attempt to make explicit the locking assumptions | ||
4 | made by the InfiniBand midlayer. It describes the requirements on | ||
5 | both low-level drivers that sit below the midlayer and upper level | ||
6 | protocols that use the midlayer. | ||
7 | |||
8 | Sleeping and interrupt context | ||
9 | |||
10 | With the following exceptions, a low-level driver implementation of | ||
11 | all of the methods in struct ib_device may sleep. The exceptions | ||
12 | are any methods from the list: | ||
13 | |||
14 | create_ah | ||
15 | modify_ah | ||
16 | query_ah | ||
17 | destroy_ah | ||
18 | bind_mw | ||
19 | post_send | ||
20 | post_recv | ||
21 | poll_cq | ||
22 | req_notify_cq | ||
23 | map_phys_fmr | ||
24 | |||
25 | which may not sleep and must be callable from any context. | ||
26 | |||
27 | The corresponding functions exported to upper level protocol | ||
28 | consumers: | ||
29 | |||
30 | ib_create_ah | ||
31 | ib_modify_ah | ||
32 | ib_query_ah | ||
33 | ib_destroy_ah | ||
34 | ib_bind_mw | ||
35 | ib_post_send | ||
36 | ib_post_recv | ||
37 | ib_req_notify_cq | ||
38 | ib_map_phys_fmr | ||
39 | |||
40 | are therefore safe to call from any context. | ||
41 | |||
42 | In addition, the function | ||
43 | |||
44 | ib_dispatch_event | ||
45 | |||
46 | used by low-level drivers to dispatch asynchronous events through | ||
47 | the midlayer is also safe to call from any context. | ||
48 | |||
49 | Reentrancy | ||
50 | |||
51 | All of the methods in struct ib_device exported by a low-level | ||
52 | driver must be fully reentrant. The low-level driver is required to | ||
53 | perform all synchronization necessary to maintain consistency, even | ||
54 | if multiple function calls using the same object are run | ||
55 | simultaneously. | ||
56 | |||
57 | The IB midlayer does not perform any serialization of function calls. | ||
58 | |||
59 | Because low-level drivers are reentrant, upper level protocol | ||
60 | consumers are not required to perform any serialization. However, | ||
61 | some serialization may be required to get sensible results. For | ||
62 | example, a consumer may safely call ib_poll_cq() on multiple CPUs | ||
63 | simultaneously. However, the ordering of the work completion | ||
64 | information between different calls of ib_poll_cq() is not defined. | ||
65 | |||
66 | Callbacks | ||
67 | |||
68 | A low-level driver must not perform a callback directly from the | ||
69 | same callchain as an ib_device method call. For example, it is not | ||
70 | allowed for a low-level driver to call a consumer's completion event | ||
71 | handler directly from its post_send method. Instead, the low-level | ||
72 | driver should defer this callback by, for example, scheduling a | ||
73 | tasklet to perform the callback. | ||
74 | |||
75 | The low-level driver is responsible for ensuring that multiple | ||
76 | completion event handlers for the same CQ are not called | ||
77 | simultaneously. The driver must guarantee that only one CQ event | ||
78 | handler for a given CQ is running at a time. In other words, the | ||
79 | following situation is not allowed: | ||
80 | |||
81 | CPU1 CPU2 | ||
82 | |||
83 | low-level driver -> | ||
84 | consumer CQ event callback: | ||
85 | /* ... */ | ||
86 | ib_req_notify_cq(cq, ...); | ||
87 | low-level driver -> | ||
88 | /* ... */ consumer CQ event callback: | ||
89 | /* ... */ | ||
90 | return from CQ event handler | ||
91 | |||
92 | The context in which completion event and asynchronous event | ||
93 | callbacks run is not defined. Depending on the low-level driver, it | ||
94 | may be process context, softirq context, or interrupt context. | ||
95 | Upper level protocol consumers may not sleep in a callback. | ||
96 | |||
97 | Hot-plug | ||
98 | |||
99 | A low-level driver announces that a device is ready for use by | ||
100 | consumers when it calls ib_register_device(), all initialization | ||
101 | must be complete before this call. The device must remain usable | ||
102 | until the driver's call to ib_unregister_device() has returned. | ||
103 | |||
104 | A low-level driver must call ib_register_device() and | ||
105 | ib_unregister_device() from process context. It must not hold any | ||
106 | semaphores that could cause deadlock if a consumer calls back into | ||
107 | the driver across these calls. | ||
108 | |||
109 | An upper level protocol consumer may begin using an IB device as | ||
110 | soon as the add method of its struct ib_client is called for that | ||
111 | device. A consumer must finish all cleanup and free all resources | ||
112 | relating to a device before returning from the remove method. | ||
113 | |||
114 | A consumer is permitted to sleep in its add and remove methods. | ||
diff --git a/Documentation/infiniband/user_mad.txt b/Documentation/infiniband/user_mad.txt index cae0c83f1ee9..750fe5e80ebc 100644 --- a/Documentation/infiniband/user_mad.txt +++ b/Documentation/infiniband/user_mad.txt | |||
@@ -28,13 +28,37 @@ Creating MAD agents | |||
28 | 28 | ||
29 | Receiving MADs | 29 | Receiving MADs |
30 | 30 | ||
31 | MADs are received using read(). The buffer passed to read() must be | 31 | MADs are received using read(). The receive side now supports |
32 | large enough to hold at least one struct ib_user_mad. For example: | 32 | RMPP. The buffer passed to read() must be at least one |
33 | 33 | struct ib_user_mad + 256 bytes. For example: | |
34 | struct ib_user_mad mad; | 34 | |
35 | ret = read(fd, &mad, sizeof mad); | 35 | If the buffer passed is not large enough to hold the received |
36 | if (ret != sizeof mad) | 36 | MAD (RMPP), the errno is set to ENOSPC and the length of the |
37 | buffer needed is set in mad.length. | ||
38 | |||
39 | Example for normal MAD (non RMPP) reads: | ||
40 | struct ib_user_mad *mad; | ||
41 | mad = malloc(sizeof *mad + 256); | ||
42 | ret = read(fd, mad, sizeof *mad + 256); | ||
43 | if (ret != sizeof mad + 256) { | ||
44 | perror("read"); | ||
45 | free(mad); | ||
46 | } | ||
47 | |||
48 | Example for RMPP reads: | ||
49 | struct ib_user_mad *mad; | ||
50 | mad = malloc(sizeof *mad + 256); | ||
51 | ret = read(fd, mad, sizeof *mad + 256); | ||
52 | if (ret == -ENOSPC)) { | ||
53 | length = mad.length; | ||
54 | free(mad); | ||
55 | mad = malloc(sizeof *mad + length); | ||
56 | ret = read(fd, mad, sizeof *mad + length); | ||
57 | } | ||
58 | if (ret < 0) { | ||
37 | perror("read"); | 59 | perror("read"); |
60 | free(mad); | ||
61 | } | ||
38 | 62 | ||
39 | In addition to the actual MAD contents, the other struct ib_user_mad | 63 | In addition to the actual MAD contents, the other struct ib_user_mad |
40 | fields will be filled in with information on the received MAD. For | 64 | fields will be filled in with information on the received MAD. For |
@@ -50,18 +74,21 @@ Sending MADs | |||
50 | 74 | ||
51 | MADs are sent using write(). The agent ID for sending should be | 75 | MADs are sent using write(). The agent ID for sending should be |
52 | filled into the id field of the MAD, the destination LID should be | 76 | filled into the id field of the MAD, the destination LID should be |
53 | filled into the lid field, and so on. For example: | 77 | filled into the lid field, and so on. The send side does support |
78 | RMPP so arbitrary length MAD can be sent. For example: | ||
79 | |||
80 | struct ib_user_mad *mad; | ||
54 | 81 | ||
55 | struct ib_user_mad mad; | 82 | mad = malloc(sizeof *mad + mad_length); |
56 | 83 | ||
57 | /* fill in mad.data */ | 84 | /* fill in mad->data */ |
58 | 85 | ||
59 | mad.id = my_agent; /* req.id from agent registration */ | 86 | mad->hdr.id = my_agent; /* req.id from agent registration */ |
60 | mad.lid = my_dest; /* in network byte order... */ | 87 | mad->hdr.lid = my_dest; /* in network byte order... */ |
61 | /* etc. */ | 88 | /* etc. */ |
62 | 89 | ||
63 | ret = write(fd, &mad, sizeof mad); | 90 | ret = write(fd, &mad, sizeof *mad + mad_length); |
64 | if (ret != sizeof mad) | 91 | if (ret != sizeof *mad + mad_length) |
65 | perror("write"); | 92 | perror("write"); |
66 | 93 | ||
67 | Setting IsSM Capability Bit | 94 | Setting IsSM Capability Bit |
diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt index 59ccc63838c1..403e7b4dcdd4 100644 --- a/Documentation/pcmcia/driver-changes.txt +++ b/Documentation/pcmcia/driver-changes.txt | |||
@@ -56,3 +56,12 @@ This file details changes in 2.6 which affect PCMCIA card driver authors: | |||
56 | memory regions in-use. The name argument should be a pointer to | 56 | memory regions in-use. The name argument should be a pointer to |
57 | your driver name. Eg, for pcnet_cs, name should point to the | 57 | your driver name. Eg, for pcnet_cs, name should point to the |
58 | string "pcnet_cs". | 58 | string "pcnet_cs". |
59 | |||
60 | * CardServices is gone | ||
61 | CardServices() in 2.4 is just a big switch statement to call various | ||
62 | services. In 2.6, all of those entry points are exported and called | ||
63 | directly (except for pcmcia_report_error(), just use cs_error() instead). | ||
64 | |||
65 | * struct pcmcia_driver | ||
66 | You need to use struct pcmcia_driver and pcmcia_{un,}register_driver | ||
67 | instead of {un,}register_pccard_driver | ||
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index da176c95d0fb..7536823c0cb1 100644 --- a/Documentation/scsi/scsi_mid_low_api.txt +++ b/Documentation/scsi/scsi_mid_low_api.txt | |||
@@ -388,7 +388,6 @@ Summary: | |||
388 | scsi_remove_device - detach and remove a SCSI device | 388 | scsi_remove_device - detach and remove a SCSI device |
389 | scsi_remove_host - detach and remove all SCSI devices owned by host | 389 | scsi_remove_host - detach and remove all SCSI devices owned by host |
390 | scsi_report_bus_reset - report scsi _bus_ reset observed | 390 | scsi_report_bus_reset - report scsi _bus_ reset observed |
391 | scsi_set_device - place device reference in host structure | ||
392 | scsi_track_queue_full - track successive QUEUE_FULL events | 391 | scsi_track_queue_full - track successive QUEUE_FULL events |
393 | scsi_unblock_requests - allow further commands to be queued to given host | 392 | scsi_unblock_requests - allow further commands to be queued to given host |
394 | scsi_unregister - [calls scsi_host_put()] | 393 | scsi_unregister - [calls scsi_host_put()] |
@@ -741,20 +740,6 @@ void scsi_report_bus_reset(struct Scsi_Host * shost, int channel) | |||
741 | 740 | ||
742 | 741 | ||
743 | /** | 742 | /** |
744 | * scsi_set_device - place device reference in host structure | ||
745 | * @shost: a pointer to a scsi host instance | ||
746 | * @pdev: pointer to device instance to assign | ||
747 | * | ||
748 | * Returns nothing | ||
749 | * | ||
750 | * Might block: no | ||
751 | * | ||
752 | * Defined in: include/scsi/scsi_host.h . | ||
753 | **/ | ||
754 | void scsi_set_device(struct Scsi_Host * shost, struct device * dev) | ||
755 | |||
756 | |||
757 | /** | ||
758 | * scsi_track_queue_full - track successive QUEUE_FULL events on given | 743 | * scsi_track_queue_full - track successive QUEUE_FULL events on given |
759 | * device to determine if and when there is a need | 744 | * device to determine if and when there is a need |
760 | * to adjust the queue depth on the device. | 745 | * to adjust the queue depth on the device. |
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 104a994b8289..a18ecb92b356 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -636,11 +636,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
636 | 3stack-digout 3-jack in back, a HP out and a SPDIF out | 636 | 3stack-digout 3-jack in back, a HP out and a SPDIF out |
637 | 5stack 5-jack in back, 2-jack in front | 637 | 5stack 5-jack in back, 2-jack in front |
638 | 5stack-digout 5-jack in back, 2-jack in front, a SPDIF out | 638 | 5stack-digout 5-jack in back, 2-jack in front, a SPDIF out |
639 | 6stack 6-jack in back, 2-jack in front | ||
640 | 6stack-digout 6-jack with a SPDIF out | ||
639 | w810 3-jack | 641 | w810 3-jack |
640 | z71v 3-jack (HP shared SPDIF) | 642 | z71v 3-jack (HP shared SPDIF) |
641 | asus 3-jack | 643 | asus 3-jack |
642 | uniwill 3-jack | 644 | uniwill 3-jack |
643 | F1734 2-jack | 645 | F1734 2-jack |
646 | test for testing/debugging purpose, almost all controls can be | ||
647 | adjusted. Appearing only when compiled with | ||
648 | $CONFIG_SND_DEBUG=y | ||
644 | 649 | ||
645 | CMI9880 | 650 | CMI9880 |
646 | minimal 3-jack in back | 651 | minimal 3-jack in back |
@@ -1054,6 +1059,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1054 | 1059 | ||
1055 | The power-management is supported. | 1060 | The power-management is supported. |
1056 | 1061 | ||
1062 | Module snd-pxa2xx-ac97 (on arm only) | ||
1063 | ------------------------------------ | ||
1064 | |||
1065 | Module for AC97 driver for the Intel PXA2xx chip | ||
1066 | |||
1067 | For ARM architecture only. | ||
1068 | |||
1057 | Module snd-rme32 | 1069 | Module snd-rme32 |
1058 | ---------------- | 1070 | ---------------- |
1059 | 1071 | ||
@@ -1173,6 +1185,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1173 | 1185 | ||
1174 | Module supports up to 8 cards. | 1186 | Module supports up to 8 cards. |
1175 | 1187 | ||
1188 | Module snd-sun-dbri (on sparc only) | ||
1189 | ----------------------------------- | ||
1190 | |||
1191 | Module for DBRI sound chips found on Sparcs. | ||
1192 | |||
1193 | Module supports up to 8 cards. | ||
1194 | |||
1176 | Module snd-wavefront | 1195 | Module snd-wavefront |
1177 | -------------------- | 1196 | -------------------- |
1178 | 1197 | ||
@@ -1371,7 +1390,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1371 | Module snd-vxpocket | 1390 | Module snd-vxpocket |
1372 | ------------------- | 1391 | ------------------- |
1373 | 1392 | ||
1374 | Module for Digigram VX-Pocket VX2 PCMCIA card. | 1393 | Module for Digigram VX-Pocket VX2 and 440 PCMCIA cards. |
1375 | 1394 | ||
1376 | ibl - Capture IBL size. (default = 0, minimum size) | 1395 | ibl - Capture IBL size. (default = 0, minimum size) |
1377 | 1396 | ||
@@ -1391,29 +1410,6 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1391 | 1410 | ||
1392 | Note: the driver is build only when CONFIG_ISA is set. | 1411 | Note: the driver is build only when CONFIG_ISA is set. |
1393 | 1412 | ||
1394 | Module snd-vxp440 | ||
1395 | ----------------- | ||
1396 | |||
1397 | Module for Digigram VX-Pocket 440 PCMCIA card. | ||
1398 | |||
1399 | ibl - Capture IBL size. (default = 0, minimum size) | ||
1400 | |||
1401 | Module supports up to 8 cards. The module is compiled only when | ||
1402 | PCMCIA is supported on kernel. | ||
1403 | |||
1404 | To activate the driver via the card manager, you'll need to set | ||
1405 | up /etc/pcmcia/vxp440.conf. See the sound/pcmcia/vx/vxp440.c. | ||
1406 | |||
1407 | When the driver is compiled as a module and the hotplug firmware | ||
1408 | is supported, the firmware data is loaded via hotplug automatically. | ||
1409 | Install the necessary firmware files in alsa-firmware package. | ||
1410 | When no hotplug fw loader is available, you need to load the | ||
1411 | firmware via vxloader utility in alsa-tools package. | ||
1412 | |||
1413 | About capture IBL, see the description of snd-vx222 module. | ||
1414 | |||
1415 | Note: the driver is build only when CONFIG_ISA is set. | ||
1416 | |||
1417 | Module snd-ymfpci | 1413 | Module snd-ymfpci |
1418 | ----------------- | 1414 | ----------------- |
1419 | 1415 | ||
diff --git a/Documentation/stable_api_nonsense.txt b/Documentation/stable_api_nonsense.txt index 3cea13875277..f39c9d714db3 100644 --- a/Documentation/stable_api_nonsense.txt +++ b/Documentation/stable_api_nonsense.txt | |||
@@ -132,7 +132,7 @@ to extra work for the USB developers. Since all Linux USB developers do | |||
132 | their work on their own time, asking programmers to do extra work for no | 132 | their work on their own time, asking programmers to do extra work for no |
133 | gain, for free, is not a possibility. | 133 | gain, for free, is not a possibility. |
134 | 134 | ||
135 | Security issues are also a very important for Linux. When a | 135 | Security issues are also very important for Linux. When a |
136 | security issue is found, it is fixed in a very short amount of time. A | 136 | security issue is found, it is fixed in a very short amount of time. A |
137 | number of times this has caused internal kernel interfaces to be | 137 | number of times this has caused internal kernel interfaces to be |
138 | reworked to prevent the security problem from occurring. When this | 138 | reworked to prevent the security problem from occurring. When this |
diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt new file mode 100644 index 000000000000..2c81305090df --- /dev/null +++ b/Documentation/stable_kernel_rules.txt | |||
@@ -0,0 +1,58 @@ | |||
1 | Everything you ever wanted to know about Linux 2.6 -stable releases. | ||
2 | |||
3 | Rules on what kind of patches are accepted, and what ones are not, into | ||
4 | the "-stable" tree: | ||
5 | |||
6 | - It must be obviously correct and tested. | ||
7 | - It can not bigger than 100 lines, with context. | ||
8 | - It must fix only one thing. | ||
9 | - It must fix a real bug that bothers people (not a, "This could be a | ||
10 | problem..." type thing.) | ||
11 | - It must fix a problem that causes a build error (but not for things | ||
12 | marked CONFIG_BROKEN), an oops, a hang, data corruption, a real | ||
13 | security issue, or some "oh, that's not good" issue. In short, | ||
14 | something critical. | ||
15 | - No "theoretical race condition" issues, unless an explanation of how | ||
16 | the race can be exploited. | ||
17 | - It can not contain any "trivial" fixes in it (spelling changes, | ||
18 | whitespace cleanups, etc.) | ||
19 | - It must be accepted by the relevant subsystem maintainer. | ||
20 | - It must follow Documentation/SubmittingPatches rules. | ||
21 | |||
22 | |||
23 | Procedure for submitting patches to the -stable tree: | ||
24 | |||
25 | - Send the patch, after verifying that it follows the above rules, to | ||
26 | stable@kernel.org. | ||
27 | - The sender will receive an ack when the patch has been accepted into | ||
28 | the queue, or a nak if the patch is rejected. This response might | ||
29 | take a few days, according to the developer's schedules. | ||
30 | - If accepted, the patch will be added to the -stable queue, for review | ||
31 | by other developers. | ||
32 | - Security patches should not be sent to this alias, but instead to the | ||
33 | documented security@kernel.org. | ||
34 | |||
35 | |||
36 | Review cycle: | ||
37 | |||
38 | - When the -stable maintainers decide for a review cycle, the patches | ||
39 | will be sent to the review committee, and the maintainer of the | ||
40 | affected area of the patch (unless the submitter is the maintainer of | ||
41 | the area) and CC: to the linux-kernel mailing list. | ||
42 | - The review committee has 48 hours in which to ack or nak the patch. | ||
43 | - If the patch is rejected by a member of the committee, or linux-kernel | ||
44 | members object to the patch, bringing up issues that the maintainers | ||
45 | and members did not realize, the patch will be dropped from the | ||
46 | queue. | ||
47 | - At the end of the review cycle, the acked patches will be added to | ||
48 | the latest -stable release, and a new -stable release will happen. | ||
49 | - Security patches will be accepted into the -stable tree directly from | ||
50 | the security kernel team, and not go through the normal review cycle. | ||
51 | Contact the kernel security team for more details on this procedure. | ||
52 | |||
53 | |||
54 | Review committe: | ||
55 | |||
56 | - This will be made up of a number of kernel developers who have | ||
57 | volunteered for this task, and a few that haven't. | ||
58 | |||
diff --git a/Documentation/x86_64/boot-options.txt b/Documentation/x86_64/boot-options.txt index b9e6be00cadf..476c0c22fbb7 100644 --- a/Documentation/x86_64/boot-options.txt +++ b/Documentation/x86_64/boot-options.txt | |||
@@ -47,7 +47,7 @@ Timing | |||
47 | notsc | 47 | notsc |
48 | Don't use the CPU time stamp counter to read the wall time. | 48 | Don't use the CPU time stamp counter to read the wall time. |
49 | This can be used to work around timing problems on multiprocessor systems | 49 | This can be used to work around timing problems on multiprocessor systems |
50 | with not properly synchronized CPUs. Only useful with a SMP kernel | 50 | with not properly synchronized CPUs. |
51 | 51 | ||
52 | report_lost_ticks | 52 | report_lost_ticks |
53 | Report when timer interrupts are lost because some code turned off | 53 | Report when timer interrupts are lost because some code turned off |
@@ -74,6 +74,9 @@ Idle loop | |||
74 | event. This will make the CPUs eat a lot more power, but may be useful | 74 | event. This will make the CPUs eat a lot more power, but may be useful |
75 | to get slightly better performance in multiprocessor benchmarks. It also | 75 | to get slightly better performance in multiprocessor benchmarks. It also |
76 | makes some profiling using performance counters more accurate. | 76 | makes some profiling using performance counters more accurate. |
77 | Please note that on systems with MONITOR/MWAIT support (like Intel EM64T | ||
78 | CPUs) this option has no performance advantage over the normal idle loop. | ||
79 | It may also interact badly with hyperthreading. | ||
77 | 80 | ||
78 | Rebooting | 81 | Rebooting |
79 | 82 | ||
@@ -178,6 +181,5 @@ Debugging | |||
178 | Misc | 181 | Misc |
179 | 182 | ||
180 | noreplacement Don't replace instructions with more appropiate ones | 183 | noreplacement Don't replace instructions with more appropiate ones |
181 | for the CPU. This may be useful on asymmetric MP systems | 184 | for the CPU. This may be useful on asymmetric MP systems |
182 | where some CPU have less capabilities than the others. | 185 | where some CPU have less capabilities than the others. |
183 | |||