diff options
Diffstat (limited to 'Documentation')
31 files changed, 364 insertions, 494 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 30b327a116ea..042073f656e5 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -183,8 +183,6 @@ i386/ | |||
183 | - directory with info about Linux on Intel 32 bit architecture. | 183 | - directory with info about Linux on Intel 32 bit architecture. |
184 | ia64/ | 184 | ia64/ |
185 | - directory with info about Linux on Intel 64 bit architecture. | 185 | - directory with info about Linux on Intel 64 bit architecture. |
186 | ide.txt | ||
187 | - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). | ||
188 | infiniband/ | 186 | infiniband/ |
189 | - directory with documents concerning Linux InfiniBand support. | 187 | - directory with documents concerning Linux InfiniBand support. |
190 | initrd.txt | 188 | initrd.txt |
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl index f31601e8bd89..dc0f30c3e571 100644 --- a/Documentation/DocBook/kernel-api.tmpl +++ b/Documentation/DocBook/kernel-api.tmpl | |||
@@ -361,12 +361,14 @@ X!Edrivers/pnp/system.c | |||
361 | <chapter id="blkdev"> | 361 | <chapter id="blkdev"> |
362 | <title>Block Devices</title> | 362 | <title>Block Devices</title> |
363 | !Eblock/blk-core.c | 363 | !Eblock/blk-core.c |
364 | !Iblock/blk-core.c | ||
364 | !Eblock/blk-map.c | 365 | !Eblock/blk-map.c |
365 | !Iblock/blk-sysfs.c | 366 | !Iblock/blk-sysfs.c |
366 | !Eblock/blk-settings.c | 367 | !Eblock/blk-settings.c |
367 | !Eblock/blk-exec.c | 368 | !Eblock/blk-exec.c |
368 | !Eblock/blk-barrier.c | 369 | !Eblock/blk-barrier.c |
369 | !Eblock/blk-tag.c | 370 | !Eblock/blk-tag.c |
371 | !Iblock/blk-tag.c | ||
370 | </chapter> | 372 | </chapter> |
371 | 373 | ||
372 | <chapter id="chrdev"> | 374 | <chapter id="chrdev"> |
diff --git a/Documentation/atomic_ops.txt b/Documentation/atomic_ops.txt index f20c10c2858f..4ef245010457 100644 --- a/Documentation/atomic_ops.txt +++ b/Documentation/atomic_ops.txt | |||
@@ -186,7 +186,8 @@ If the atomic value v is not equal to u, this function adds a to v, and | |||
186 | returns non zero. If v is equal to u then it returns zero. This is done as | 186 | returns non zero. If v is equal to u then it returns zero. This is done as |
187 | an atomic operation. | 187 | an atomic operation. |
188 | 188 | ||
189 | atomic_add_unless requires explicit memory barriers around the operation. | 189 | atomic_add_unless requires explicit memory barriers around the operation |
190 | unless it fails (returns 0). | ||
190 | 191 | ||
191 | atomic_inc_not_zero, equivalent to atomic_add_unless(v, 1, 0) | 192 | atomic_inc_not_zero, equivalent to atomic_add_unless(v, 1, 0) |
192 | 193 | ||
diff --git a/Documentation/cdrom/ide-cd b/Documentation/cdrom/ide-cd index 29721bfcde12..91c0dcc6fa5c 100644 --- a/Documentation/cdrom/ide-cd +++ b/Documentation/cdrom/ide-cd | |||
@@ -45,7 +45,7 @@ This driver provides the following features: | |||
45 | --------------- | 45 | --------------- |
46 | 46 | ||
47 | 0. The ide-cd relies on the ide disk driver. See | 47 | 0. The ide-cd relies on the ide disk driver. See |
48 | Documentation/ide.txt for up-to-date information on the ide | 48 | Documentation/ide/ide.txt for up-to-date information on the ide |
49 | driver. | 49 | driver. |
50 | 50 | ||
51 | 1. Make sure that the ide and ide-cd drivers are compiled into the | 51 | 1. Make sure that the ide and ide-cd drivers are compiled into the |
@@ -64,7 +64,7 @@ This driver provides the following features: | |||
64 | 64 | ||
65 | Depending on what type of IDE interface you have, you may need to | 65 | Depending on what type of IDE interface you have, you may need to |
66 | specify additional configuration options. See | 66 | specify additional configuration options. See |
67 | Documentation/ide.txt. | 67 | Documentation/ide/ide.txt. |
68 | 68 | ||
69 | 2. You should also ensure that the iso9660 filesystem is either | 69 | 2. You should also ensure that the iso9660 filesystem is either |
70 | compiled into the kernel or available as a loadable module. You | 70 | compiled into the kernel or available as a loadable module. You |
@@ -84,7 +84,7 @@ This driver provides the following features: | |||
84 | on the primary IDE interface are called `hda' and `hdb', | 84 | on the primary IDE interface are called `hda' and `hdb', |
85 | respectively. The drives on the secondary interface are called | 85 | respectively. The drives on the secondary interface are called |
86 | `hdc' and `hdd'. (Interfaces at other locations get other letters | 86 | `hdc' and `hdd'. (Interfaces at other locations get other letters |
87 | in the third position; see Documentation/ide.txt.) | 87 | in the third position; see Documentation/ide/ide.txt.) |
88 | 88 | ||
89 | If you want your CDROM drive to be found automatically by the | 89 | If you want your CDROM drive to be found automatically by the |
90 | driver, you should make sure your IDE interface uses either the | 90 | driver, you should make sure your IDE interface uses either the |
@@ -93,7 +93,7 @@ This driver provides the following features: | |||
93 | be jumpered as `master'. (If for some reason you cannot configure | 93 | be jumpered as `master'. (If for some reason you cannot configure |
94 | your system in this manner, you can probably still use the driver. | 94 | your system in this manner, you can probably still use the driver. |
95 | You may have to pass extra configuration information to the kernel | 95 | You may have to pass extra configuration information to the kernel |
96 | when you boot, however. See Documentation/ide.txt for more | 96 | when you boot, however. See Documentation/ide/ide.txt for more |
97 | information.) | 97 | information.) |
98 | 98 | ||
99 | 4. Boot the system. If the drive is recognized, you should see a | 99 | 4. Boot the system. If the drive is recognized, you should see a |
@@ -201,7 +201,7 @@ TEST | |||
201 | This section discusses some common problems encountered when trying to | 201 | This section discusses some common problems encountered when trying to |
202 | use the driver, and some possible solutions. Note that if you are | 202 | use the driver, and some possible solutions. Note that if you are |
203 | experiencing problems, you should probably also review | 203 | experiencing problems, you should probably also review |
204 | Documentation/ide.txt for current information about the underlying | 204 | Documentation/ide/ide.txt for current information about the underlying |
205 | IDE support code. Some of these items apply only to earlier versions | 205 | IDE support code. Some of these items apply only to earlier versions |
206 | of the driver, but are mentioned here for completeness. | 206 | of the driver, but are mentioned here for completeness. |
207 | 207 | ||
@@ -211,7 +211,7 @@ from the driver. | |||
211 | a. Drive is not detected during booting. | 211 | a. Drive is not detected during booting. |
212 | 212 | ||
213 | - Review the configuration instructions above and in | 213 | - Review the configuration instructions above and in |
214 | Documentation/ide.txt, and check how your hardware is | 214 | Documentation/ide/ide.txt, and check how your hardware is |
215 | configured. | 215 | configured. |
216 | 216 | ||
217 | - If your drive is the only device on an IDE interface, it should | 217 | - If your drive is the only device on an IDE interface, it should |
@@ -219,7 +219,7 @@ a. Drive is not detected during booting. | |||
219 | 219 | ||
220 | - If your IDE interface is not at the standard addresses of 0x170 | 220 | - If your IDE interface is not at the standard addresses of 0x170 |
221 | or 0x1f0, you'll need to explicitly inform the driver using a | 221 | or 0x1f0, you'll need to explicitly inform the driver using a |
222 | lilo option. See Documentation/ide.txt. (This feature was | 222 | lilo option. See Documentation/ide/ide.txt. (This feature was |
223 | added around kernel version 1.3.30.) | 223 | added around kernel version 1.3.30.) |
224 | 224 | ||
225 | - If the autoprobing is not finding your drive, you can tell the | 225 | - If the autoprobing is not finding your drive, you can tell the |
@@ -245,7 +245,7 @@ a. Drive is not detected during booting. | |||
245 | Support for some interfaces needing extra initialization is | 245 | Support for some interfaces needing extra initialization is |
246 | provided in later 1.3.x kernels. You may need to turn on | 246 | provided in later 1.3.x kernels. You may need to turn on |
247 | additional kernel configuration options to get them to work; | 247 | additional kernel configuration options to get them to work; |
248 | see Documentation/ide.txt. | 248 | see Documentation/ide/ide.txt. |
249 | 249 | ||
250 | Even if support is not available for your interface, you may be | 250 | Even if support is not available for your interface, you may be |
251 | able to get it to work with the following procedure. First boot | 251 | able to get it to work with the following procedure. First boot |
@@ -299,7 +299,7 @@ c. System hangups. | |||
299 | be worked around by specifying the `serialize' option when | 299 | be worked around by specifying the `serialize' option when |
300 | booting. Recent kernels should be able to detect the need for | 300 | booting. Recent kernels should be able to detect the need for |
301 | this automatically in most cases, but the detection is not | 301 | this automatically in most cases, but the detection is not |
302 | foolproof. See Documentation/ide.txt for more information | 302 | foolproof. See Documentation/ide/ide.txt for more information |
303 | about the `serialize' option and the CMD640B. | 303 | about the `serialize' option and the CMD640B. |
304 | 304 | ||
305 | - Note that many MS-DOS CDROM drivers will work with such buggy | 305 | - Note that many MS-DOS CDROM drivers will work with such buggy |
diff --git a/Documentation/cgroups.txt b/Documentation/cgroups.txt index 42d7c4cb39cd..31d12e21ff8a 100644 --- a/Documentation/cgroups.txt +++ b/Documentation/cgroups.txt | |||
@@ -28,7 +28,7 @@ CONTENTS: | |||
28 | 4. Questions | 28 | 4. Questions |
29 | 29 | ||
30 | 1. Control Groups | 30 | 1. Control Groups |
31 | ========== | 31 | ================= |
32 | 32 | ||
33 | 1.1 What are cgroups ? | 33 | 1.1 What are cgroups ? |
34 | ---------------------- | 34 | ---------------------- |
@@ -143,10 +143,10 @@ proliferation of such cgroups. | |||
143 | 143 | ||
144 | Also lets say that the administrator would like to give enhanced network | 144 | Also lets say that the administrator would like to give enhanced network |
145 | access temporarily to a student's browser (since it is night and the user | 145 | access temporarily to a student's browser (since it is night and the user |
146 | wants to do online gaming :) OR give one of the students simulation | 146 | wants to do online gaming :)) OR give one of the students simulation |
147 | apps enhanced CPU power, | 147 | apps enhanced CPU power, |
148 | 148 | ||
149 | With ability to write pids directly to resource classes, its just a | 149 | With ability to write pids directly to resource classes, it's just a |
150 | matter of : | 150 | matter of : |
151 | 151 | ||
152 | # echo pid > /mnt/network/<new_class>/tasks | 152 | # echo pid > /mnt/network/<new_class>/tasks |
@@ -227,10 +227,13 @@ Each cgroup is represented by a directory in the cgroup file system | |||
227 | containing the following files describing that cgroup: | 227 | containing the following files describing that cgroup: |
228 | 228 | ||
229 | - tasks: list of tasks (by pid) attached to that cgroup | 229 | - tasks: list of tasks (by pid) attached to that cgroup |
230 | - notify_on_release flag: run /sbin/cgroup_release_agent on exit? | 230 | - releasable flag: cgroup currently removeable? |
231 | - notify_on_release flag: run the release agent on exit? | ||
232 | - release_agent: the path to use for release notifications (this file | ||
233 | exists in the top cgroup only) | ||
231 | 234 | ||
232 | Other subsystems such as cpusets may add additional files in each | 235 | Other subsystems such as cpusets may add additional files in each |
233 | cgroup dir | 236 | cgroup dir. |
234 | 237 | ||
235 | New cgroups are created using the mkdir system call or shell | 238 | New cgroups are created using the mkdir system call or shell |
236 | command. The properties of a cgroup, such as its flags, are | 239 | command. The properties of a cgroup, such as its flags, are |
@@ -257,7 +260,7 @@ performance. | |||
257 | To allow access from a cgroup to the css_sets (and hence tasks) | 260 | To allow access from a cgroup to the css_sets (and hence tasks) |
258 | that comprise it, a set of cg_cgroup_link objects form a lattice; | 261 | that comprise it, a set of cg_cgroup_link objects form a lattice; |
259 | each cg_cgroup_link is linked into a list of cg_cgroup_links for | 262 | each cg_cgroup_link is linked into a list of cg_cgroup_links for |
260 | a single cgroup on its cont_link_list field, and a list of | 263 | a single cgroup on its cgrp_link_list field, and a list of |
261 | cg_cgroup_links for a single css_set on its cg_link_list. | 264 | cg_cgroup_links for a single css_set on its cg_link_list. |
262 | 265 | ||
263 | Thus the set of tasks in a cgroup can be listed by iterating over | 266 | Thus the set of tasks in a cgroup can be listed by iterating over |
@@ -271,9 +274,6 @@ for cgroups, with a minimum of additional kernel code. | |||
271 | 1.4 What does notify_on_release do ? | 274 | 1.4 What does notify_on_release do ? |
272 | ------------------------------------ | 275 | ------------------------------------ |
273 | 276 | ||
274 | *** notify_on_release is disabled in the current patch set. It will be | ||
275 | *** reactivated in a future patch in a less-intrusive manner | ||
276 | |||
277 | If the notify_on_release flag is enabled (1) in a cgroup, then | 277 | If the notify_on_release flag is enabled (1) in a cgroup, then |
278 | whenever the last task in the cgroup leaves (exits or attaches to | 278 | whenever the last task in the cgroup leaves (exits or attaches to |
279 | some other cgroup) and the last child cgroup of that cgroup | 279 | some other cgroup) and the last child cgroup of that cgroup |
@@ -360,8 +360,8 @@ Now you want to do something with this cgroup. | |||
360 | 360 | ||
361 | In this directory you can find several files: | 361 | In this directory you can find several files: |
362 | # ls | 362 | # ls |
363 | notify_on_release release_agent tasks | 363 | notify_on_release releasable tasks |
364 | (plus whatever files are added by the attached subsystems) | 364 | (plus whatever files added by the attached subsystems) |
365 | 365 | ||
366 | Now attach your shell to this cgroup: | 366 | Now attach your shell to this cgroup: |
367 | # /bin/echo $$ > tasks | 367 | # /bin/echo $$ > tasks |
@@ -404,19 +404,13 @@ with a subsystem id which will be assigned by the cgroup system. | |||
404 | Other fields in the cgroup_subsys object include: | 404 | Other fields in the cgroup_subsys object include: |
405 | 405 | ||
406 | - subsys_id: a unique array index for the subsystem, indicating which | 406 | - subsys_id: a unique array index for the subsystem, indicating which |
407 | entry in cgroup->subsys[] this subsystem should be | 407 | entry in cgroup->subsys[] this subsystem should be managing. |
408 | managing. Initialized by cgroup_register_subsys(); prior to this | ||
409 | it should be initialized to -1 | ||
410 | 408 | ||
411 | - hierarchy: an index indicating which hierarchy, if any, this | 409 | - name: should be initialized to a unique subsystem name. Should be |
412 | subsystem is currently attached to. If this is -1, then the | 410 | no longer than MAX_CGROUP_TYPE_NAMELEN. |
413 | subsystem is not attached to any hierarchy, and all tasks should be | ||
414 | considered to be members of the subsystem's top_cgroup. It should | ||
415 | be initialized to -1. | ||
416 | 411 | ||
417 | - name: should be initialized to a unique subsystem name prior to | 412 | - early_init: indicate if the subsystem needs early initialization |
418 | calling cgroup_register_subsystem. Should be no longer than | 413 | at system boot. |
419 | MAX_CGROUP_TYPE_NAMELEN | ||
420 | 414 | ||
421 | Each cgroup object created by the system has an array of pointers, | 415 | Each cgroup object created by the system has an array of pointers, |
422 | indexed by subsystem id; this pointer is entirely managed by the | 416 | indexed by subsystem id; this pointer is entirely managed by the |
@@ -434,8 +428,6 @@ situation. | |||
434 | See kernel/cgroup.c for more details. | 428 | See kernel/cgroup.c for more details. |
435 | 429 | ||
436 | Subsystems can take/release the cgroup_mutex via the functions | 430 | Subsystems can take/release the cgroup_mutex via the functions |
437 | cgroup_lock()/cgroup_unlock(), and can | ||
438 | take/release the callback_mutex via the functions | ||
439 | cgroup_lock()/cgroup_unlock(). | 431 | cgroup_lock()/cgroup_unlock(). |
440 | 432 | ||
441 | Accessing a task's cgroup pointer may be done in the following ways: | 433 | Accessing a task's cgroup pointer may be done in the following ways: |
@@ -444,7 +436,7 @@ Accessing a task's cgroup pointer may be done in the following ways: | |||
444 | - inside an rcu_read_lock() section via rcu_dereference() | 436 | - inside an rcu_read_lock() section via rcu_dereference() |
445 | 437 | ||
446 | 3.3 Subsystem API | 438 | 3.3 Subsystem API |
447 | -------------------------- | 439 | ----------------- |
448 | 440 | ||
449 | Each subsystem should: | 441 | Each subsystem should: |
450 | 442 | ||
@@ -455,7 +447,8 @@ Each subsystem may export the following methods. The only mandatory | |||
455 | methods are create/destroy. Any others that are null are presumed to | 447 | methods are create/destroy. Any others that are null are presumed to |
456 | be successful no-ops. | 448 | be successful no-ops. |
457 | 449 | ||
458 | struct cgroup_subsys_state *create(struct cgroup *cont) | 450 | struct cgroup_subsys_state *create(struct cgroup_subsys *ss, |
451 | struct cgroup *cgrp) | ||
459 | (cgroup_mutex held by caller) | 452 | (cgroup_mutex held by caller) |
460 | 453 | ||
461 | Called to create a subsystem state object for a cgroup. The | 454 | Called to create a subsystem state object for a cgroup. The |
@@ -470,7 +463,7 @@ identified by the passed cgroup object having a NULL parent (since | |||
470 | it's the root of the hierarchy) and may be an appropriate place for | 463 | it's the root of the hierarchy) and may be an appropriate place for |
471 | initialization code. | 464 | initialization code. |
472 | 465 | ||
473 | void destroy(struct cgroup *cont) | 466 | void destroy(struct cgroup_subsys *ss, struct cgroup *cgrp) |
474 | (cgroup_mutex held by caller) | 467 | (cgroup_mutex held by caller) |
475 | 468 | ||
476 | The cgroup system is about to destroy the passed cgroup; the subsystem | 469 | The cgroup system is about to destroy the passed cgroup; the subsystem |
@@ -481,7 +474,14 @@ cgroup->parent is still valid. (Note - can also be called for a | |||
481 | newly-created cgroup if an error occurs after this subsystem's | 474 | newly-created cgroup if an error occurs after this subsystem's |
482 | create() method has been called for the new cgroup). | 475 | create() method has been called for the new cgroup). |
483 | 476 | ||
484 | int can_attach(struct cgroup_subsys *ss, struct cgroup *cont, | 477 | void pre_destroy(struct cgroup_subsys *ss, struct cgroup *cgrp); |
478 | (cgroup_mutex held by caller) | ||
479 | |||
480 | Called before checking the reference count on each subsystem. This may | ||
481 | be useful for subsystems which have some extra references even if | ||
482 | there are not tasks in the cgroup. | ||
483 | |||
484 | int can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp, | ||
485 | struct task_struct *task) | 485 | struct task_struct *task) |
486 | (cgroup_mutex held by caller) | 486 | (cgroup_mutex held by caller) |
487 | 487 | ||
@@ -492,8 +492,8 @@ unspecified task can be moved into the cgroup. Note that this isn't | |||
492 | called on a fork. If this method returns 0 (success) then this should | 492 | called on a fork. If this method returns 0 (success) then this should |
493 | remain valid while the caller holds cgroup_mutex. | 493 | remain valid while the caller holds cgroup_mutex. |
494 | 494 | ||
495 | void attach(struct cgroup_subsys *ss, struct cgroup *cont, | 495 | void attach(struct cgroup_subsys *ss, struct cgroup *cgrp, |
496 | struct cgroup *old_cont, struct task_struct *task) | 496 | struct cgroup *old_cgrp, struct task_struct *task) |
497 | 497 | ||
498 | Called after the task has been attached to the cgroup, to allow any | 498 | Called after the task has been attached to the cgroup, to allow any |
499 | post-attachment activity that requires memory allocations or blocking. | 499 | post-attachment activity that requires memory allocations or blocking. |
@@ -505,9 +505,9 @@ registration for all existing tasks. | |||
505 | 505 | ||
506 | void exit(struct cgroup_subsys *ss, struct task_struct *task) | 506 | void exit(struct cgroup_subsys *ss, struct task_struct *task) |
507 | 507 | ||
508 | Called during task exit | 508 | Called during task exit. |
509 | 509 | ||
510 | int populate(struct cgroup_subsys *ss, struct cgroup *cont) | 510 | int populate(struct cgroup_subsys *ss, struct cgroup *cgrp) |
511 | 511 | ||
512 | Called after creation of a cgroup to allow a subsystem to populate | 512 | Called after creation of a cgroup to allow a subsystem to populate |
513 | the cgroup directory with file entries. The subsystem should make | 513 | the cgroup directory with file entries. The subsystem should make |
@@ -516,7 +516,7 @@ include/linux/cgroup.h for details). Note that although this | |||
516 | method can return an error code, the error code is currently not | 516 | method can return an error code, the error code is currently not |
517 | always handled well. | 517 | always handled well. |
518 | 518 | ||
519 | void post_clone(struct cgroup_subsys *ss, struct cgroup *cont) | 519 | void post_clone(struct cgroup_subsys *ss, struct cgroup *cgrp) |
520 | 520 | ||
521 | Called at the end of cgroup_clone() to do any paramater | 521 | Called at the end of cgroup_clone() to do any paramater |
522 | initialization which might be required before a task could attach. For | 522 | initialization which might be required before a task could attach. For |
diff --git a/Documentation/controllers/memory.txt b/Documentation/controllers/memory.txt index b5bbea92a61a..866b9cd9a959 100644 --- a/Documentation/controllers/memory.txt +++ b/Documentation/controllers/memory.txt | |||
@@ -1,4 +1,8 @@ | |||
1 | Memory Controller | 1 | Memory Resource Controller |
2 | |||
3 | NOTE: The Memory Resource Controller has been generically been referred | ||
4 | to as the memory controller in this document. Do not confuse memory controller | ||
5 | used here with the memory controller that is used in hardware. | ||
2 | 6 | ||
3 | Salient features | 7 | Salient features |
4 | 8 | ||
@@ -152,7 +156,7 @@ The memory controller uses the following hierarchy | |||
152 | 156 | ||
153 | a. Enable CONFIG_CGROUPS | 157 | a. Enable CONFIG_CGROUPS |
154 | b. Enable CONFIG_RESOURCE_COUNTERS | 158 | b. Enable CONFIG_RESOURCE_COUNTERS |
155 | c. Enable CONFIG_CGROUP_MEM_CONT | 159 | c. Enable CONFIG_CGROUP_MEM_RES_CTLR |
156 | 160 | ||
157 | 1. Prepare the cgroups | 161 | 1. Prepare the cgroups |
158 | # mkdir -p /cgroups | 162 | # mkdir -p /cgroups |
@@ -164,20 +168,20 @@ c. Enable CONFIG_CGROUP_MEM_CONT | |||
164 | 168 | ||
165 | Since now we're in the 0 cgroup, | 169 | Since now we're in the 0 cgroup, |
166 | We can alter the memory limit: | 170 | We can alter the memory limit: |
167 | # echo -n 4M > /cgroups/0/memory.limit_in_bytes | 171 | # echo 4M > /cgroups/0/memory.limit_in_bytes |
168 | 172 | ||
169 | NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo, | 173 | NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo, |
170 | mega or gigabytes. | 174 | mega or gigabytes. |
171 | 175 | ||
172 | # cat /cgroups/0/memory.limit_in_bytes | 176 | # cat /cgroups/0/memory.limit_in_bytes |
173 | 4194304 Bytes | 177 | 4194304 |
174 | 178 | ||
175 | NOTE: The interface has now changed to display the usage in bytes | 179 | NOTE: The interface has now changed to display the usage in bytes |
176 | instead of pages | 180 | instead of pages |
177 | 181 | ||
178 | We can check the usage: | 182 | We can check the usage: |
179 | # cat /cgroups/0/memory.usage_in_bytes | 183 | # cat /cgroups/0/memory.usage_in_bytes |
180 | 1216512 Bytes | 184 | 1216512 |
181 | 185 | ||
182 | A successful write to this file does not guarantee a successful set of | 186 | A successful write to this file does not guarantee a successful set of |
183 | this limit to the value written into the file. This can be due to a | 187 | this limit to the value written into the file. This can be due to a |
@@ -185,9 +189,9 @@ number of factors, such as rounding up to page boundaries or the total | |||
185 | availability of memory on the system. The user is required to re-read | 189 | availability of memory on the system. The user is required to re-read |
186 | this file after a write to guarantee the value committed by the kernel. | 190 | this file after a write to guarantee the value committed by the kernel. |
187 | 191 | ||
188 | # echo -n 1 > memory.limit_in_bytes | 192 | # echo 1 > memory.limit_in_bytes |
189 | # cat memory.limit_in_bytes | 193 | # cat memory.limit_in_bytes |
190 | 4096 Bytes | 194 | 4096 |
191 | 195 | ||
192 | The memory.failcnt field gives the number of times that the cgroup limit was | 196 | The memory.failcnt field gives the number of times that the cgroup limit was |
193 | exceeded. | 197 | exceeded. |
@@ -197,7 +201,7 @@ caches, RSS and Active pages/Inactive pages are shown. | |||
197 | 201 | ||
198 | The memory.force_empty gives an interface to drop *all* charges by force. | 202 | The memory.force_empty gives an interface to drop *all* charges by force. |
199 | 203 | ||
200 | # echo -n 1 > memory.force_empty | 204 | # echo 1 > memory.force_empty |
201 | 205 | ||
202 | will drop all charges in cgroup. Currently, this is maintained for test. | 206 | will drop all charges in cgroup. Currently, this is maintained for test. |
203 | 207 | ||
@@ -233,13 +237,6 @@ cgroup might have some charge associated with it, even though all | |||
233 | tasks have migrated away from it. Such charges are automatically dropped at | 237 | tasks have migrated away from it. Such charges are automatically dropped at |
234 | rmdir() if there are no tasks. | 238 | rmdir() if there are no tasks. |
235 | 239 | ||
236 | 4.4 Choosing what to account -- Page Cache (unmapped) vs RSS (mapped)? | ||
237 | |||
238 | The type of memory accounted by the cgroup can be limited to just | ||
239 | mapped pages by writing "1" to memory.control_type field | ||
240 | |||
241 | echo -n 1 > memory.control_type | ||
242 | |||
243 | 5. TODO | 240 | 5. TODO |
244 | 241 | ||
245 | 1. Add support for accounting huge pages (as a separate controller) | 242 | 1. Add support for accounting huge pages (as a separate controller) |
@@ -262,18 +259,19 @@ References | |||
262 | 3. Emelianov, Pavel. Resource controllers based on process cgroups | 259 | 3. Emelianov, Pavel. Resource controllers based on process cgroups |
263 | http://lkml.org/lkml/2007/3/6/198 | 260 | http://lkml.org/lkml/2007/3/6/198 |
264 | 4. Emelianov, Pavel. RSS controller based on process cgroups (v2) | 261 | 4. Emelianov, Pavel. RSS controller based on process cgroups (v2) |
265 | http://lkml.org/lkml/2007/4/9/74 | 262 | http://lkml.org/lkml/2007/4/9/78 |
266 | 5. Emelianov, Pavel. RSS controller based on process cgroups (v3) | 263 | 5. Emelianov, Pavel. RSS controller based on process cgroups (v3) |
267 | http://lkml.org/lkml/2007/5/30/244 | 264 | http://lkml.org/lkml/2007/5/30/244 |
268 | 6. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/ | 265 | 6. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/ |
269 | 7. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control | 266 | 7. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control |
270 | subsystem (v3), http://lwn.net/Articles/235534/ | 267 | subsystem (v3), http://lwn.net/Articles/235534/ |
271 | 8. Singh, Balbir. RSS controller V2 test results (lmbench), | 268 | 8. Singh, Balbir. RSS controller v2 test results (lmbench), |
272 | http://lkml.org/lkml/2007/5/17/232 | 269 | http://lkml.org/lkml/2007/5/17/232 |
273 | 9. Singh, Balbir. RSS controller V2 AIM9 results | 270 | 9. Singh, Balbir. RSS controller v2 AIM9 results |
274 | http://lkml.org/lkml/2007/5/18/1 | 271 | http://lkml.org/lkml/2007/5/18/1 |
275 | 10. Singh, Balbir. Memory controller v6 results, | 272 | 10. Singh, Balbir. Memory controller v6 test results, |
276 | http://lkml.org/lkml/2007/8/19/36 | 273 | http://lkml.org/lkml/2007/8/19/36 |
277 | 11. Singh, Balbir. Memory controller v6, http://lkml.org/lkml/2007/8/17/69 | 274 | 11. Singh, Balbir. Memory controller introduction (v6), |
275 | http://lkml.org/lkml/2007/8/17/69 | ||
278 | 12. Corbet, Jonathan, Controlling memory use in cgroups, | 276 | 12. Corbet, Jonathan, Controlling memory use in cgroups, |
279 | http://lwn.net/Articles/243795/ | 277 | http://lwn.net/Articles/243795/ |
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt index 43db6fe12814..ad2bb3b3acc1 100644 --- a/Documentation/cpusets.txt +++ b/Documentation/cpusets.txt | |||
@@ -209,7 +209,7 @@ and name space for cpusets, with a minimum of additional kernel code. | |||
209 | The cpus and mems files in the root (top_cpuset) cpuset are | 209 | The cpus and mems files in the root (top_cpuset) cpuset are |
210 | read-only. The cpus file automatically tracks the value of | 210 | read-only. The cpus file automatically tracks the value of |
211 | cpu_online_map using a CPU hotplug notifier, and the mems file | 211 | cpu_online_map using a CPU hotplug notifier, and the mems file |
212 | automatically tracks the value of node_states[N_MEMORY]--i.e., | 212 | automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e., |
213 | nodes with memory--using the cpuset_track_online_nodes() hook. | 213 | nodes with memory--using the cpuset_track_online_nodes() hook. |
214 | 214 | ||
215 | 215 | ||
diff --git a/Documentation/debugging-via-ohci1394.txt b/Documentation/debugging-via-ohci1394.txt index de4804e8b396..c360d4e91b48 100644 --- a/Documentation/debugging-via-ohci1394.txt +++ b/Documentation/debugging-via-ohci1394.txt | |||
@@ -36,14 +36,15 @@ available (notebooks) or too slow for extensive debug information (like ACPI). | |||
36 | Drivers | 36 | Drivers |
37 | ------- | 37 | ------- |
38 | 38 | ||
39 | The OHCI-1394 drivers in drivers/firewire and drivers/ieee1394 initialize | 39 | The ohci1394 driver in drivers/ieee1394 initializes the OHCI-1394 controllers |
40 | the OHCI-1394 controllers to a working state and can be used to enable | 40 | to a working state and enables physical DMA by default for all remote nodes. |
41 | physical DMA. By default you only have to load the driver, and physical | 41 | This can be turned off by ohci1394's module parameter phys_dma=0. |
42 | DMA access will be granted to all remote nodes, but it can be turned off | 42 | |
43 | when using the ohci1394 driver. | 43 | The alternative firewire-ohci driver in drivers/firewire uses filtered physical |
44 | 44 | DMA, hence is not yet suitable for remote debugging. | |
45 | Because these drivers depend on the PCI enumeration to be completed, an | 45 | |
46 | initialization routine which can runs pretty early (long before console_init(), | 46 | Because ohci1394 depends on the PCI enumeration to be completed, an |
47 | initialization routine which runs pretty early (long before console_init() | ||
47 | which makes the printk buffer appear on the console can be called) was written. | 48 | which makes the printk buffer appear on the console can be called) was written. |
48 | 49 | ||
49 | To activate it, enable CONFIG_PROVIDE_OHCI1394_DMA_INIT (Kernel hacking menu: | 50 | To activate it, enable CONFIG_PROVIDE_OHCI1394_DMA_INIT (Kernel hacking menu: |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 4d3aa519eadf..c1d1fd0c299b 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -172,6 +172,16 @@ Who: Len Brown <len.brown@intel.com> | |||
172 | 172 | ||
173 | --------------------------- | 173 | --------------------------- |
174 | 174 | ||
175 | What: ide-tape driver | ||
176 | When: July 2008 | ||
177 | Files: drivers/ide/ide-tape.c | ||
178 | Why: This driver might not have any users anymore and maintaining it for no | ||
179 | reason is an effort no one wants to make. | ||
180 | Who: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>, Borislav Petkov | ||
181 | <petkovbb@googlemail.com> | ||
182 | |||
183 | --------------------------- | ||
184 | |||
175 | What: libata spindown skipping and warning | 185 | What: libata spindown skipping and warning |
176 | When: Dec 2008 | 186 | When: Dec 2008 |
177 | Why: Some halt(8) implementations synchronize caches for and spin | 187 | Why: Some halt(8) implementations synchronize caches for and spin |
@@ -306,3 +316,15 @@ Why: Largely unmaintained and almost entirely unused. File system | |||
306 | is largely pointless as without a lot of work only the most | 316 | is largely pointless as without a lot of work only the most |
307 | trivial of Solaris binaries can work with the emulation code. | 317 | trivial of Solaris binaries can work with the emulation code. |
308 | Who: David S. Miller <davem@davemloft.net> | 318 | Who: David S. Miller <davem@davemloft.net> |
319 | |||
320 | --------------------------- | ||
321 | |||
322 | What: init_mm export | ||
323 | When: 2.6.26 | ||
324 | Why: Not used in-tree. The current out-of-tree users used it to | ||
325 | work around problems in the CPA code which should be resolved | ||
326 | by now. One usecase was described to provide verification code | ||
327 | of the CPA operation. That's a good idea in general, but such | ||
328 | code / infrastructure should be in the kernel and not in some | ||
329 | out-of-tree driver. | ||
330 | Who: Thomas Gleixner <tglx@linutronix.de> | ||
diff --git a/Documentation/gpio.txt b/Documentation/gpio.txt index 8da724e2a0ff..54630095aa3c 100644 --- a/Documentation/gpio.txt +++ b/Documentation/gpio.txt | |||
@@ -2,6 +2,9 @@ GPIO Interfaces | |||
2 | 2 | ||
3 | This provides an overview of GPIO access conventions on Linux. | 3 | This provides an overview of GPIO access conventions on Linux. |
4 | 4 | ||
5 | These calls use the gpio_* naming prefix. No other calls should use that | ||
6 | prefix, or the related __gpio_* prefix. | ||
7 | |||
5 | 8 | ||
6 | What is a GPIO? | 9 | What is a GPIO? |
7 | =============== | 10 | =============== |
@@ -69,11 +72,13 @@ in this document, but drivers acting as clients to the GPIO interface must | |||
69 | not care how it's implemented.) | 72 | not care how it's implemented.) |
70 | 73 | ||
71 | That said, if the convention is supported on their platform, drivers should | 74 | That said, if the convention is supported on their platform, drivers should |
72 | use it when possible. Platforms should declare GENERIC_GPIO support in | 75 | use it when possible. Platforms must declare GENERIC_GPIO support in their |
73 | Kconfig (boolean true), which multi-platform drivers can depend on when | 76 | Kconfig (boolean true), and provide an <asm/gpio.h> file. Drivers that can't |
74 | using the include file: | 77 | work without standard GPIO calls should have Kconfig entries which depend |
78 | on GENERIC_GPIO. The GPIO calls are available, either as "real code" or as | ||
79 | optimized-away stubs, when drivers use the include file: | ||
75 | 80 | ||
76 | #include <asm/gpio.h> | 81 | #include <linux/gpio.h> |
77 | 82 | ||
78 | If you stick to this convention then it'll be easier for other developers to | 83 | If you stick to this convention then it'll be easier for other developers to |
79 | see what your code is doing, and help maintain it. | 84 | see what your code is doing, and help maintain it. |
@@ -316,6 +321,9 @@ pulldowns integrated on some platforms. Not all platforms support them, | |||
316 | or support them in the same way; and any given board might use external | 321 | or support them in the same way; and any given board might use external |
317 | pullups (or pulldowns) so that the on-chip ones should not be used. | 322 | pullups (or pulldowns) so that the on-chip ones should not be used. |
318 | (When a circuit needs 5 kOhm, on-chip 100 kOhm resistors won't do.) | 323 | (When a circuit needs 5 kOhm, on-chip 100 kOhm resistors won't do.) |
324 | Likewise drive strength (2 mA vs 20 mA) and voltage (1.8V vs 3.3V) is a | ||
325 | platform-specific issue, as are models like (not) having a one-to-one | ||
326 | correspondence between configurable pins and GPIOs. | ||
319 | 327 | ||
320 | There are other system-specific mechanisms that are not specified here, | 328 | There are other system-specific mechanisms that are not specified here, |
321 | like the aforementioned options for input de-glitching and wire-OR output. | 329 | like the aforementioned options for input de-glitching and wire-OR output. |
diff --git a/Documentation/hwmon/adt7473 b/Documentation/hwmon/adt7473 new file mode 100644 index 000000000000..22d8b19046ab --- /dev/null +++ b/Documentation/hwmon/adt7473 | |||
@@ -0,0 +1,79 @@ | |||
1 | Kernel driver adt7473 | ||
2 | ====================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Analog Devices ADT7473 | ||
6 | Prefix: 'adt7473' | ||
7 | Addresses scanned: I2C 0x2C, 0x2D, 0x2E | ||
8 | Datasheet: Publicly available at the Analog Devices website | ||
9 | |||
10 | Author: Darrick J. Wong | ||
11 | |||
12 | Description | ||
13 | ----------- | ||
14 | |||
15 | This driver implements support for the Analog Devices ADT7473 chip family. | ||
16 | |||
17 | The LM85 uses the 2-wire interface compatible with the SMBUS 2.0 | ||
18 | specification. Using an analog to digital converter it measures three (3) | ||
19 | temperatures and two (2) voltages. It has three (3) 16-bit counters for | ||
20 | measuring fan speed. There are three (3) PWM outputs that can be used | ||
21 | to control fan speed. | ||
22 | |||
23 | A sophisticated control system for the PWM outputs is designed into the | ||
24 | LM85 that allows fan speed to be adjusted automatically based on any of the | ||
25 | three temperature sensors. Each PWM output is individually adjustable and | ||
26 | programmable. Once configured, the ADT7473 will adjust the PWM outputs in | ||
27 | response to the measured temperatures without further host intervention. | ||
28 | This feature can also be disabled for manual control of the PWM's. | ||
29 | |||
30 | Each of the measured inputs (voltage, temperature, fan speed) has | ||
31 | corresponding high/low limit values. The ADT7473 will signal an ALARM if | ||
32 | any measured value exceeds either limit. | ||
33 | |||
34 | The ADT7473 samples all inputs continuously. The driver will not read | ||
35 | the registers more often than once every other second. Further, | ||
36 | configuration data is only read once per minute. | ||
37 | |||
38 | Special Features | ||
39 | ---------------- | ||
40 | |||
41 | The ADT7473 have a 10-bit ADC and can therefore measure temperatures | ||
42 | with 0.25 degC resolution. Temperature readings can be configured either | ||
43 | for twos complement format or "Offset 64" format, wherein 63 is subtracted | ||
44 | from the raw value to get the temperature value. | ||
45 | |||
46 | The Analog Devices datasheet is very detailed and describes a procedure for | ||
47 | determining an optimal configuration for the automatic PWM control. | ||
48 | |||
49 | Hardware Configurations | ||
50 | ----------------------- | ||
51 | |||
52 | The ADT7473 chips have an optional SMBALERT output that can be used to | ||
53 | signal the chipset in case a limit is exceeded or the temperature sensors | ||
54 | fail. Individual sensor interrupts can be masked so they won't trigger | ||
55 | SMBALERT. The SMBALERT output if configured replaces the PWM2 function. | ||
56 | |||
57 | Configuration Notes | ||
58 | ------------------- | ||
59 | |||
60 | Besides standard interfaces driver adds the following: | ||
61 | |||
62 | * PWM Control | ||
63 | |||
64 | * pwm#_auto_point1_pwm and pwm#_auto_point1_temp and | ||
65 | * pwm#_auto_point2_pwm and pwm#_auto_point2_temp - | ||
66 | |||
67 | point1: Set the pwm speed at a lower temperature bound. | ||
68 | point2: Set the pwm speed at a higher temperature bound. | ||
69 | |||
70 | The ADT7473 will scale the pwm between the lower and higher pwm speed when | ||
71 | the temperature is between the two temperature boundaries. PWM values range | ||
72 | from 0 (off) to 255 (full speed). | ||
73 | |||
74 | Notes | ||
75 | ----- | ||
76 | |||
77 | The NVIDIA binary driver presents an ADT7473 chip via an on-card i2c bus. | ||
78 | Unfortunately, they fail to set the i2c adapter class, so this driver may | ||
79 | fail to find the chip until the nvidia driver is patched. | ||
diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp index 170bf862437b..dbbe6c7025b0 100644 --- a/Documentation/hwmon/coretemp +++ b/Documentation/hwmon/coretemp | |||
@@ -4,9 +4,10 @@ Kernel driver coretemp | |||
4 | Supported chips: | 4 | Supported chips: |
5 | * All Intel Core family | 5 | * All Intel Core family |
6 | Prefix: 'coretemp' | 6 | Prefix: 'coretemp' |
7 | CPUID: family 0x6, models 0xe, 0xf, 0x16 | 7 | CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17 |
8 | Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual | 8 | Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual |
9 | Volume 3A: System Programming Guide | 9 | Volume 3A: System Programming Guide |
10 | http://softwarecommunity.intel.com/Wiki/Mobility/720.htm | ||
10 | 11 | ||
11 | Author: Rudolf Marek | 12 | Author: Rudolf Marek |
12 | 13 | ||
@@ -25,7 +26,8 @@ may be raised, if the temperature grows enough (more than TjMax) to trigger | |||
25 | the Out-Of-Spec bit. Following table summarizes the exported sysfs files: | 26 | the Out-Of-Spec bit. Following table summarizes the exported sysfs files: |
26 | 27 | ||
27 | temp1_input - Core temperature (in millidegrees Celsius). | 28 | temp1_input - Core temperature (in millidegrees Celsius). |
28 | temp1_crit - Maximum junction temperature (in millidegrees Celsius). | 29 | temp1_max - All cooling devices should be turned on (on Core2). |
30 | temp1_crit - Maximum junction temperature (in millidegrees Celsius). | ||
29 | temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. | 31 | temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. |
30 | Correct CPU operation is no longer guaranteed. | 32 | Correct CPU operation is no longer guaranteed. |
31 | temp1_label - Contains string "Core X", where X is processor | 33 | temp1_label - Contains string "Core X", where X is processor |
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index 3bd958360159..c31e0291e167 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -12,8 +12,9 @@ Supported adapters: | |||
12 | * Intel 82801G (ICH7) | 12 | * Intel 82801G (ICH7) |
13 | * Intel 631xESB/632xESB (ESB2) | 13 | * Intel 631xESB/632xESB (ESB2) |
14 | * Intel 82801H (ICH8) | 14 | * Intel 82801H (ICH8) |
15 | * Intel ICH9 | 15 | * Intel 82801I (ICH9) |
16 | * Intel Tolapai | 16 | * Intel Tolapai |
17 | * Intel ICH10 | ||
17 | Datasheets: Publicly available at the Intel website | 18 | Datasheets: Publicly available at the Intel website |
18 | 19 | ||
19 | Authors: | 20 | Authors: |
diff --git a/Documentation/ide/00-INDEX b/Documentation/ide/00-INDEX new file mode 100644 index 000000000000..d6b778842b75 --- /dev/null +++ b/Documentation/ide/00-INDEX | |||
@@ -0,0 +1,12 @@ | |||
1 | 00-INDEX | ||
2 | - this file | ||
3 | ChangeLog.ide-cd.1994-2004 | ||
4 | - ide-cd changelog | ||
5 | ChangeLog.ide-floppy.1996-2002 | ||
6 | - ide-floppy changelog | ||
7 | ChangeLog.ide-tape.1995-2002 | ||
8 | - ide-tape changelog | ||
9 | ide-tape.txt | ||
10 | - info on the IDE ATAPI streaming tape driver | ||
11 | ide.txt | ||
12 | - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). | ||
diff --git a/Documentation/ide.txt b/Documentation/ide/ide.txt index 94e2e3b9e77f..e3b3425328b6 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide/ide.txt | |||
@@ -3,11 +3,11 @@ | |||
3 | 3 | ||
4 | ============================================================================== | 4 | ============================================================================== |
5 | 5 | ||
6 | 6 | ||
7 | The hdparm utility can be used to control various IDE features on a | 7 | The hdparm utility can be used to control various IDE features on a |
8 | running system. It is packaged separately. Please Look for it on popular | 8 | running system. It is packaged separately. Please Look for it on popular |
9 | linux FTP sites. | 9 | linux FTP sites. |
10 | 10 | ||
11 | 11 | ||
12 | 12 | ||
13 | *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! | 13 | *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! |
@@ -51,7 +51,7 @@ Common pitfalls: | |||
51 | 51 | ||
52 | ================================================================================ | 52 | ================================================================================ |
53 | 53 | ||
54 | This is the multiple IDE interface driver, as evolved from hd.c. | 54 | This is the multiple IDE interface driver, as evolved from hd.c. |
55 | 55 | ||
56 | It supports up to 9 IDE interfaces per default, on one or more IRQs (usually | 56 | It supports up to 9 IDE interfaces per default, on one or more IRQs (usually |
57 | 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. | 57 | 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. |
@@ -215,17 +215,17 @@ Summary of ide driver parameters for kernel command line | |||
215 | -------------------------------------------------------- | 215 | -------------------------------------------------------- |
216 | 216 | ||
217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". | 217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". |
218 | 218 | ||
219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". | 219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". |
220 | 220 | ||
221 | "hdx=noprobe" : drive may be present, but do not probe for it | 221 | "hdx=noprobe" : drive may be present, but do not probe for it |
222 | 222 | ||
223 | "hdx=none" : drive is NOT present, ignore cmos and do not probe | 223 | "hdx=none" : drive is NOT present, ignore cmos and do not probe |
224 | 224 | ||
225 | "hdx=nowerr" : ignore the WRERR_STAT bit on this drive | 225 | "hdx=nowerr" : ignore the WRERR_STAT bit on this drive |
226 | 226 | ||
227 | "hdx=cdrom" : drive is present, and is a cdrom drive | 227 | "hdx=cdrom" : drive is present, and is a cdrom drive |
228 | 228 | ||
229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry | 229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry |
230 | 230 | ||
231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) | 231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) |
@@ -258,12 +258,10 @@ Summary of ide driver parameters for kernel command line | |||
258 | As for VLB, it is safest to not specify it. | 258 | As for VLB, it is safest to not specify it. |
259 | Bigger values are safer than smaller ones. | 259 | Bigger values are safer than smaller ones. |
260 | 260 | ||
261 | "idex=noprobe" : do not attempt to access/use this interface | ||
262 | |||
263 | "idex=base" : probe for an interface at the addr specified, | 261 | "idex=base" : probe for an interface at the addr specified, |
264 | where "base" is usually 0x1f0 or 0x170 | 262 | where "base" is usually 0x1f0 or 0x170 |
265 | and "ctl" is assumed to be "base"+0x206 | 263 | and "ctl" is assumed to be "base"+0x206 |
266 | 264 | ||
267 | "idex=base,ctl" : specify both base and ctl | 265 | "idex=base,ctl" : specify both base and ctl |
268 | 266 | ||
269 | "idex=base,ctl,irq" : specify base, ctl, and irq number | 267 | "idex=base,ctl,irq" : specify base, ctl, and irq number |
@@ -274,7 +272,7 @@ Summary of ide driver parameters for kernel command line | |||
274 | to take effect. | 272 | to take effect. |
275 | 273 | ||
276 | "idex=four" : four drives on idex and ide(x^1) share same ports | 274 | "idex=four" : four drives on idex and ide(x^1) share same ports |
277 | 275 | ||
278 | "idex=reset" : reset interface after probe | 276 | "idex=reset" : reset interface after probe |
279 | 277 | ||
280 | "idex=ata66" : informs the interface that it has an 80c cable | 278 | "idex=ata66" : informs the interface that it has an 80c cable |
@@ -309,53 +307,6 @@ are detected automatically). | |||
309 | 307 | ||
310 | ================================================================================ | 308 | ================================================================================ |
311 | 309 | ||
312 | IDE ATAPI streaming tape driver | ||
313 | ------------------------------- | ||
314 | |||
315 | This driver is a part of the Linux ide driver and works in co-operation | ||
316 | with linux/drivers/block/ide.c. | ||
317 | |||
318 | The driver, in co-operation with ide.c, basically traverses the | ||
319 | request-list for the block device interface. The character device | ||
320 | interface, on the other hand, creates new requests, adds them | ||
321 | to the request-list of the block device, and waits for their completion. | ||
322 | |||
323 | Pipelined operation mode is now supported on both reads and writes. | ||
324 | |||
325 | The block device major and minor numbers are determined from the | ||
326 | tape's relative position in the ide interfaces, as explained in ide.c. | ||
327 | |||
328 | The character device interface consists of the following devices: | ||
329 | |||
330 | ht0 major 37, minor 0 first IDE tape, rewind on close. | ||
331 | ht1 major 37, minor 1 second IDE tape, rewind on close. | ||
332 | ... | ||
333 | nht0 major 37, minor 128 first IDE tape, no rewind on close. | ||
334 | nht1 major 37, minor 129 second IDE tape, no rewind on close. | ||
335 | ... | ||
336 | |||
337 | Run /dev/MAKEDEV to create the above entries. | ||
338 | |||
339 | The general magnetic tape commands compatible interface, as defined by | ||
340 | include/linux/mtio.h, is accessible through the character device. | ||
341 | |||
342 | General ide driver configuration options, such as the interrupt-unmask | ||
343 | flag, can be configured by issuing an ioctl to the block device interface, | ||
344 | as any other ide device. | ||
345 | |||
346 | Our own ide-tape ioctl's can be issued to either the block device or | ||
347 | the character device interface. | ||
348 | |||
349 | Maximal throughput with minimal bus load will usually be achieved in the | ||
350 | following scenario: | ||
351 | |||
352 | 1. ide-tape is operating in the pipelined operation mode. | ||
353 | 2. No buffering is performed by the user backup program. | ||
354 | |||
355 | |||
356 | |||
357 | ================================================================================ | ||
358 | |||
359 | Some Terminology | 310 | Some Terminology |
360 | ---------------- | 311 | ---------------- |
361 | IDE = Integrated Drive Electronics, meaning that each drive has a built-in | 312 | IDE = Integrated Drive Electronics, meaning that each drive has a built-in |
diff --git a/Documentation/ja_JP/stable_kernel_rules.txt b/Documentation/ja_JP/stable_kernel_rules.txt index 17d87519e468..b3ffe870de33 100644 --- a/Documentation/ja_JP/stable_kernel_rules.txt +++ b/Documentation/ja_JP/stable_kernel_rules.txt | |||
@@ -11,69 +11,69 @@ comment or update of this file, please try to update Original(English) | |||
11 | file at first. | 11 | file at first. |
12 | 12 | ||
13 | ================================== | 13 | ================================== |
14 | ã“れã¯〠| 14 | ã“ã‚Œã¯ã€ |
15 | linux-2.6.24/Documentation/stable_kernel_rules.txt | 15 | linux-2.6.24/Documentation/stable_kernel_rules.txt |
16 | ã®和訳ã§ã™。 | 16 | ã®å’Œè¨³ã§ã™ã€‚ |
17 | 17 | ||
18 | 翻訳団体: JF プãƒÂジェクト < http://www.linux.or.jp/JF/ > | 18 | 翻訳団体: JF プãƒã‚¸ã‚§ã‚¯ãƒˆ < http://www.linux.or.jp/JF/ > |
19 | 翻訳日: 2007/12/30 | 19 | 翻訳日: 2007/12/30 |
20 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> | 20 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> |
21 | æ ¡æ£者: æ¦井伸光ã•んã€Â<takei at webmasters dot gr dot jp> | 21 | æ ¡æ£è€…: æ¦äº•ä¼¸å…‰ã•ã‚“ã€<takei at webmasters dot gr dot jp> |
22 | ã‹ãÂÂã“ã•ん (Seiji Kaneko) <skaneko at a2 dot mbn dot or dot jp> | 22 | ã‹ãã“ã•ã‚“ (Seiji Kaneko) <skaneko at a2 dot mbn dot or dot jp> |
23 | å°Â林 雅典ã•ん (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> | 23 | å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> |
24 | 野å£ã•ん (Kenji Noguchi) <tokyo246 at gmail dot com> | 24 | 野å£ã•ã‚“ (Kenji Noguchi) <tokyo246 at gmail dot com> |
25 | 神宮信太郎ã•ん <jin at libjingu dot jp> | 25 | 神宮信太郎ã•ã‚“ <jin at libjingu dot jp> |
26 | ================================== | 26 | ================================== |
27 | 27 | ||
28 | ãšã£ã¨知りãŸã‹ã£ãŸ Linux 2.6 -stable リリースã®全㦠| 28 | ãšã£ã¨çŸ¥ã‚ŠãŸã‹ã£ãŸ Linux 2.6 -stable リリースã®å…¨ã¦ |
29 | 29 | ||
30 | "-stable" ツリーã«ã©ã®よã†ãª種類ã®パッãƒÂãÂΌÂ—ã‘入れられるã‹ã€Âã©ã®よã†ãª | 30 | "-stable" ツリーã«ã©ã®ã‚ˆã†ãªç¨®é¡žã®ãƒ‘ッãƒãŒå—ã‘入れられるã‹ã€ã©ã®ã‚ˆã†ãª |
31 | もã®ãÂΌÂ—ã‘入れられãªã„ã‹ã€Âã«ã¤ã„ã¦ã®è¦Â則- | 31 | ã‚‚ã®ãŒå—ã‘入れられãªã„ã‹ã€ã«ã¤ã„ã¦ã®è¦å‰‡- |
32 | 32 | ||
33 | - 明らã‹ã«æ£ã—ãÂÂã€Âテストã•れã¦ã„るもã®ã§ãªã‘れã°ãªらãªã„。 | 33 | - 明らã‹ã«æ£ã—ãã€ãƒ†ã‚¹ãƒˆã•ã‚Œã¦ã„ã‚‹ã‚‚ã®ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„。 |
34 | - 文脈(変更行ã®å‰Â後)をå«ã‚Â㦠100 行より大ãÂÂãÂÂã¦ã¯ã„ã‘ãªã„。 | 34 | - 文脈(変更行ã®å‰å¾Œ)ã‚’å«ã‚㦠100 行より大ããã¦ã¯ã„ã‘ãªã„。 |
35 | - ãŸã 一個ã®ã“ã¨ã ã‘を修æ£ã—ã¦ã„るã¹ãÂÂ。 | 35 | - ãŸã 一個ã®ã“ã¨ã ã‘ã‚’ä¿®æ£ã—ã¦ã„ã‚‹ã¹ã。 |
36 | - 皆を悩ã¾ãÂ݋¦ã„る本物ã®ãƒÂグを修æ£ã—ãªã‘れã°ãªらãªã„。("ã“れã¯ãƒÂグ㧠| 36 | - 皆を悩ã¾ã›ã¦ã„る本物ã®ãƒã‚°ã‚’ä¿®æ£ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。("ã“ã‚Œã¯ãƒã‚°ã§ |
37 | ã‚るã‹もã—れãªã„ãÂÂŒ..." ã®よã†ãªもã®ã§ã¯ãªã„) | 37 | ã‚ã‚‹ã‹ã‚‚ã—ã‚Œãªã„ãŒ..." ã®ã‚ˆã†ãªã‚‚ã®ã§ã¯ãªã„) |
38 | - ビルドエラー(CONFIG_BROKENã«ãªã£ã¦ã„るもã®を除ãÂÂ), oops, ãƒÂングã€Âデー | 38 | - ビルドエラー(CONFIG_BROKENã«ãªã£ã¦ã„ã‚‹ã‚‚ã®ã‚’除ã), oops, ãƒãƒ³ã‚°ã€ãƒ‡ãƒ¼ |
39 | タ破壊ã€Âç¾実ã®セã‚Âュリティå•Â題ã€ÂãÂÂã®他 "ã‚ã‚ã€Âã“れã¯ダメã ãÂÂ"ã¨ã„ㆠ| 39 | ã‚¿ç ´å£Šã€ç¾å®Ÿã®ã‚»ã‚ュリティå•é¡Œã€ãã®ä»– "ã‚ã‚ã€ã“ã‚Œã¯ãƒ€ãƒ¡ã ã"ã¨ã„ㆠ|
40 | よã†ãªもã®を修æ£ã—ãªã‘れã°ãªらãªã„。çŸÂãÂÂ言ãˆã°ã€Âé‡Â大ãªå•Â題。 | 40 | よã†ãªã‚‚ã®ã‚’ä¿®æ£ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。çŸã言ãˆã°ã€é‡å¤§ãªå•é¡Œã€‚ |
41 | - ã©ã®よã†ã«競åˆ状態ãŒ発生ã™るã‹ã®説明も一緒ã«書ã‹れã¦ã„ãªã„é™Âり〠| 41 | - ã©ã®ã‚ˆã†ã«ç«¶åˆçŠ¶æ…‹ãŒç™ºç”Ÿã™ã‚‹ã‹ã®èª¬æ˜Žã‚‚一緒ã«æ›¸ã‹ã‚Œã¦ã„ãªã„é™ã‚Šã€ |
42 | "ç†論的ã«ã¯競åˆ状態ã«ãªる"よã†ãªもã®ã¯ä¸Âå¯。 | 42 | "ç†è«–çš„ã«ã¯ç«¶åˆçŠ¶æ…‹ã«ãªã‚‹"よã†ãªã‚‚ã®ã¯ä¸å¯ã€‚ |
43 | - ã„ã‹ãªる些細ãª修æ£もå«ã‚Âるã“ã¨ã¯ã§ãÂÂãªã„。(スペルã®修æ£ã€Â空白ã®クリー | 43 | - ã„ã‹ãªã‚‹äº›ç´°ãªä¿®æ£ã‚‚å«ã‚ã‚‹ã“ã¨ã¯ã§ããªã„。(スペルã®ä¿®æ£ã€ç©ºç™½ã®ã‚¯ãƒªãƒ¼ |
44 | ンアップãªã©) | 44 | ンアップãªã©) |
45 | - 対応ã™るサブシステムメンテナãÂΌÂ—ã‘入れãŸもã®ã§ãªã‘れã°ãªらãªã„。 | 45 | - 対応ã™ã‚‹ã‚µãƒ–システムメンテナãŒå—ã‘入れãŸã‚‚ã®ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„。 |
46 | - Documentation/SubmittingPatches ã®è¦Â則ã«従ã£ãŸもã®ã§ãªã‘れã°ãªらãªã„。 | 46 | - Documentation/SubmittingPatches ã®è¦å‰‡ã«å¾“ã£ãŸã‚‚ã®ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„。 |
47 | 47 | ||
48 | -stable ツリーã«パッãƒÂをé€Â付ã™る手続ãÂÂ- | 48 | -stable ツリーã«ãƒ‘ッãƒã‚’é€ä»˜ã™ã‚‹æ‰‹ç¶šã- |
49 | 49 | ||
50 | - 上記ã®è¦Â則ã«従ã£ã¦ã„るã‹を確èªÂã—ãŸ後ã«ã€Âstable@kernel.org ã«パッム| 50 | - 上記ã®è¦å‰‡ã«å¾“ã£ã¦ã„ã‚‹ã‹ã‚’確èªã—ãŸå¾Œã«ã€stable@kernel.org ã«ãƒ‘ッム|
51 | をé€Âる。 | 51 | ã‚’é€ã‚‹ã€‚ |
52 | - é€Â信者ã¯パッãƒÂãÂŒã‚Âューã«å—ã‘付ã‘られãŸ際ã«ã¯ ACK をã€Âå´下ã•れãŸ場åˆ | 52 | - é€ä¿¡è€…ã¯ãƒ‘ッãƒãŒã‚ューã«å—ã‘付ã‘られãŸéš›ã«ã¯ ACK ã‚’ã€å´ä¸‹ã•ã‚ŒãŸå ´åˆ |
53 | ã«ã¯ NAK をå—ã‘å–る。ã“ã®åÂÂ応ã¯開発者ãŸã¡ã®スケジュールã«よã£ã¦ã€Â数 | 53 | ã«ã¯ NAK ã‚’å—ã‘å–る。ã“ã®åå¿œã¯é–‹ç™ºè€…ãŸã¡ã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚ˆã£ã¦ã€æ•° |
54 | 日ã‹ã‹る場åˆãÂ΋‚る。 | 54 | æ—¥ã‹ã‹ã‚‹å ´åˆãŒã‚る。 |
55 | - もã—å—ã‘å–られãŸらã€ÂパッãƒÂã¯他ã®開発者ãŸã¡ã®レビューã®ãŸã‚Âã« | 55 | - ã‚‚ã—å—ã‘å–られãŸã‚‰ã€ãƒ‘ッãƒã¯ä»–ã®é–‹ç™ºè€…ãŸã¡ã®ãƒ¬ãƒ“ューã®ãŸã‚ã« |
56 | -stable ã‚Âューã«追加ã•れる。 | 56 | -stable ã‚ューã«è¿½åŠ ã•ã‚Œã‚‹ã€‚ |
57 | - セã‚ÂュリティパッãƒÂã¯ã“ã®エイリアス (stable@kernel.org) ã«é€Âられるã¹ | 57 | - ã‚»ã‚ュリティパッãƒã¯ã“ã®ã‚¨ã‚¤ãƒªã‚¢ã‚¹ (stable@kernel.org) ã«é€ã‚‰ã‚Œã‚‹ã¹ |
58 | ãÂÂã§ã¯ãªãÂÂã€Â代ã‚Âりã« security@kernel.org ã®アドレスã«é€Âられる。 | 58 | ãã§ã¯ãªãã€ä»£ã‚ã‚Šã« security@kernel.org ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ã‚‰ã‚Œã‚‹ã€‚ |
59 | 59 | ||
60 | レビューサイクル- | 60 | レビューサイクル- |
61 | 61 | ||
62 | - -stable メンテナãŒレビューサイクルを決ã‚Âるã¨ãÂÂã€ÂパッãƒÂã¯レビュー委 | 62 | - -stable メンテナãŒãƒ¬ãƒ“ューサイクルを決ã‚ã‚‹ã¨ãã€ãƒ‘ッãƒã¯ãƒ¬ãƒ“ュー委 |
63 | 員会ã¨パッãƒÂãŒ影響ã™る領域ã®メンテナ(æÂÂ供者ãÂ΋ÂÂã®領域ã®メンテナã§無 | 63 | 員会ã¨ãƒ‘ッãƒãŒå½±éŸ¿ã™ã‚‹é ˜åŸŸã®ãƒ¡ãƒ³ãƒ†ãƒŠ(æ供者ãŒãã®é ˜åŸŸã®ãƒ¡ãƒ³ãƒ†ãƒŠã§ç„¡ |
64 | ã„é™Âり)ã«é€Âられã€Âlinux-kernel メーリングリストã«CCã•れる。 | 64 | ã„é™ã‚Š)ã«é€ã‚‰ã‚Œã€linux-kernel メーリングリストã«CCã•ã‚Œã‚‹ã€‚ |
65 | - レビュー委員会㯠48時間ã®間ã« ACK ã‹ NAK を出ã™。 | 65 | - レビュー委員会㯠48時間ã®é–“ã« ACK ã‹ NAK を出ã™ã€‚ |
66 | - もã—パッãƒÂãŒ委員会ã®メンãƒÂã‹らå´下れるã‹ã€Âメンテナé”やメンãƒÂãŒ気付 | 66 | - ã‚‚ã—パッãƒãŒå§”員会ã®ãƒ¡ãƒ³ãƒã‹ã‚‰å´ä¸‹ã•ã‚Œã‚‹ã‹ã€ãƒ¡ãƒ³ãƒ†ãƒŠé”やメンãƒãŒæ°—付 |
67 | ã‹ãªã‹ã£ãŸå•Â題ãÂŒæŒÂã¡ã‚ãŒりã€Âlinux-kernel メンãƒÂãŒパッãƒÂã«異è°を唱㈠| 67 | ã‹ãªã‹ã£ãŸå•é¡ŒãŒæŒã¡ã‚ãŒã‚Šã€linux-kernel メンãƒãŒãƒ‘ッãƒã«ç•°è°ã‚’唱㈠|
68 | ãŸ場åˆã«ã¯ã€ÂパッãƒÂã¯ã‚Âューã‹ら削除ã•れる。 | 68 | ãŸå ´åˆã«ã¯ã€ãƒ‘ッãƒã¯ã‚ューã‹ã‚‰å‰Šé™¤ã•ã‚Œã‚‹ã€‚ |
69 | - レビューサイクルã®最後ã«ã€ÂACK をå—ã‘ãŸパッãƒÂã¯最新ã® -stable リリー | 69 | - レビューサイクルã®æœ€å¾Œã«ã€ACK ã‚’å—ã‘ãŸãƒ‘ッãƒã¯æœ€æ–°ã® -stable リリー |
70 | スã«追加ã•れã€ÂãÂÂã®後ã«新ã—ã„ -stable リリースãŒ行ã‚Âれる。 | 70 | スã«è¿½åŠ ã•ã‚Œã€ãã®å¾Œã«æ–°ã—ã„ -stable リリースãŒè¡Œã‚れる。 |
71 | - セã‚ÂュリティパッãƒÂã¯ã€Â通常ã®レビューサイクルを通らãšã€Âセã‚Âュリティ | 71 | - ã‚»ã‚ュリティパッãƒã¯ã€é€šå¸¸ã®ãƒ¬ãƒ“ューサイクルを通らãšã€ã‚»ã‚ュリティ |
72 | カーãƒÂルãƒÂームã‹ら直接 -stable ツリーã«å—ã‘付ã‘られる。 | 72 | カーãƒãƒ«ãƒãƒ¼ãƒ ã‹ã‚‰ç›´æŽ¥ -stable ツリーã«å—ã‘付ã‘られる。 |
73 | ã“ã®手続ãÂÂã®詳細ã«ã¤ã„ã¦ã¯ kernel security ãƒÂームã«å•Âã„åˆã‚Âã›るã“ã¨。 | 73 | ã“ã®æ‰‹ç¶šãã®è©³ç´°ã«ã¤ã„ã¦ã¯ kernel security ãƒãƒ¼ãƒ ã«å•ã„åˆã‚ã›ã‚‹ã“ã¨ã€‚ |
74 | 74 | ||
75 | レビュー委員会- | 75 | レビュー委員会- |
76 | 76 | ||
77 | - ã“ã®委員会ã¯ã€Âã“ã®タスクã«ã¤ã„ã¦活動ã™る多ãÂÂã®ボランティアã¨ã€Â少数ã® | 77 | - ã“ã®å§”員会ã¯ã€ã“ã®ã‚¿ã‚¹ã‚¯ã«ã¤ã„ã¦æ´»å‹•ã™ã‚‹å¤šãã®ãƒœãƒ©ãƒ³ãƒ†ã‚£ã‚¢ã¨ã€å°‘æ•°ã® |
78 | éžボランティアã®カーãƒÂル開発者éÂӋ§構æˆÂã•れã¦ã„る。 | 78 | éžãƒœãƒ©ãƒ³ãƒ†ã‚£ã‚¢ã®ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºè€…é”ã§æ§‹æˆã•ã‚Œã¦ã„る。 |
79 | 79 | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9a5b6658c65e..533e67febf81 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -712,7 +712,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
712 | Format: <cyl>,<head>,<sect> | 712 | Format: <cyl>,<head>,<sect> |
713 | 713 | ||
714 | hd?= [HW] (E)IDE subsystem | 714 | hd?= [HW] (E)IDE subsystem |
715 | hd?lun= See Documentation/ide.txt. | 715 | hd?lun= See Documentation/ide/ide.txt. |
716 | 716 | ||
717 | highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact | 717 | highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact |
718 | size of <nn>. This works even on boxes that have no | 718 | size of <nn>. This works even on boxes that have no |
@@ -766,14 +766,14 @@ and is between 256 and 4096 characters. It is defined in the file | |||
766 | 766 | ||
767 | ide= [HW] (E)IDE subsystem | 767 | ide= [HW] (E)IDE subsystem |
768 | Format: ide=nodma or ide=doubler or ide=reverse | 768 | Format: ide=nodma or ide=doubler or ide=reverse |
769 | See Documentation/ide.txt. | 769 | See Documentation/ide/ide.txt. |
770 | 770 | ||
771 | ide?= [HW] (E)IDE subsystem | 771 | ide?= [HW] (E)IDE subsystem |
772 | Format: ide?=noprobe or chipset specific parameters. | 772 | Format: ide?=noprobe or chipset specific parameters. |
773 | See Documentation/ide.txt. | 773 | See Documentation/ide/ide.txt. |
774 | 774 | ||
775 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed | 775 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed |
776 | See Documentation/ide.txt. | 776 | See Documentation/ide/ide.txt. |
777 | 777 | ||
778 | idle= [X86] | 778 | idle= [X86] |
779 | Format: idle=poll or idle=mwait | 779 | Format: idle=poll or idle=mwait |
diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt index 83f515c2905a..be89f393274f 100644 --- a/Documentation/kprobes.txt +++ b/Documentation/kprobes.txt | |||
@@ -192,7 +192,8 @@ code mapping. | |||
192 | The Kprobes API includes a "register" function and an "unregister" | 192 | The Kprobes API includes a "register" function and an "unregister" |
193 | function for each type of probe. Here are terse, mini-man-page | 193 | function for each type of probe. Here are terse, mini-man-page |
194 | specifications for these functions and the associated probe handlers | 194 | specifications for these functions and the associated probe handlers |
195 | that you'll write. See the latter half of this document for examples. | 195 | that you'll write. See the files in the samples/kprobes/ sub-directory |
196 | for examples. | ||
196 | 197 | ||
197 | 4.1 register_kprobe | 198 | 4.1 register_kprobe |
198 | 199 | ||
@@ -420,249 +421,15 @@ e. Watchpoint probes (which fire on data references). | |||
420 | 421 | ||
421 | 8. Kprobes Example | 422 | 8. Kprobes Example |
422 | 423 | ||
423 | Here's a sample kernel module showing the use of kprobes to dump a | 424 | See samples/kprobes/kprobe_example.c |
424 | stack trace and selected i386 registers when do_fork() is called. | ||
425 | ----- cut here ----- | ||
426 | /*kprobe_example.c*/ | ||
427 | #include <linux/kernel.h> | ||
428 | #include <linux/module.h> | ||
429 | #include <linux/kprobes.h> | ||
430 | #include <linux/sched.h> | ||
431 | |||
432 | /*For each probe you need to allocate a kprobe structure*/ | ||
433 | static struct kprobe kp; | ||
434 | |||
435 | /*kprobe pre_handler: called just before the probed instruction is executed*/ | ||
436 | int handler_pre(struct kprobe *p, struct pt_regs *regs) | ||
437 | { | ||
438 | printk("pre_handler: p->addr=0x%p, eip=%lx, eflags=0x%lx\n", | ||
439 | p->addr, regs->eip, regs->eflags); | ||
440 | dump_stack(); | ||
441 | return 0; | ||
442 | } | ||
443 | |||
444 | /*kprobe post_handler: called after the probed instruction is executed*/ | ||
445 | void handler_post(struct kprobe *p, struct pt_regs *regs, unsigned long flags) | ||
446 | { | ||
447 | printk("post_handler: p->addr=0x%p, eflags=0x%lx\n", | ||
448 | p->addr, regs->eflags); | ||
449 | } | ||
450 | |||
451 | /* fault_handler: this is called if an exception is generated for any | ||
452 | * instruction within the pre- or post-handler, or when Kprobes | ||
453 | * single-steps the probed instruction. | ||
454 | */ | ||
455 | int handler_fault(struct kprobe *p, struct pt_regs *regs, int trapnr) | ||
456 | { | ||
457 | printk("fault_handler: p->addr=0x%p, trap #%dn", | ||
458 | p->addr, trapnr); | ||
459 | /* Return 0 because we don't handle the fault. */ | ||
460 | return 0; | ||
461 | } | ||
462 | |||
463 | static int __init kprobe_init(void) | ||
464 | { | ||
465 | int ret; | ||
466 | kp.pre_handler = handler_pre; | ||
467 | kp.post_handler = handler_post; | ||
468 | kp.fault_handler = handler_fault; | ||
469 | kp.symbol_name = "do_fork"; | ||
470 | |||
471 | ret = register_kprobe(&kp); | ||
472 | if (ret < 0) { | ||
473 | printk("register_kprobe failed, returned %d\n", ret); | ||
474 | return ret; | ||
475 | } | ||
476 | printk("kprobe registered\n"); | ||
477 | return 0; | ||
478 | } | ||
479 | |||
480 | static void __exit kprobe_exit(void) | ||
481 | { | ||
482 | unregister_kprobe(&kp); | ||
483 | printk("kprobe unregistered\n"); | ||
484 | } | ||
485 | |||
486 | module_init(kprobe_init) | ||
487 | module_exit(kprobe_exit) | ||
488 | MODULE_LICENSE("GPL"); | ||
489 | ----- cut here ----- | ||
490 | |||
491 | You can build the kernel module, kprobe-example.ko, using the following | ||
492 | Makefile: | ||
493 | ----- cut here ----- | ||
494 | obj-m := kprobe-example.o | ||
495 | KDIR := /lib/modules/$(shell uname -r)/build | ||
496 | PWD := $(shell pwd) | ||
497 | default: | ||
498 | $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules | ||
499 | clean: | ||
500 | rm -f *.mod.c *.ko *.o | ||
501 | ----- cut here ----- | ||
502 | |||
503 | $ make | ||
504 | $ su - | ||
505 | ... | ||
506 | # insmod kprobe-example.ko | ||
507 | |||
508 | You will see the trace data in /var/log/messages and on the console | ||
509 | whenever do_fork() is invoked to create a new process. | ||
510 | 425 | ||
511 | 9. Jprobes Example | 426 | 9. Jprobes Example |
512 | 427 | ||
513 | Here's a sample kernel module showing the use of jprobes to dump | 428 | See samples/kprobes/jprobe_example.c |
514 | the arguments of do_fork(). | ||
515 | ----- cut here ----- | ||
516 | /*jprobe-example.c */ | ||
517 | #include <linux/kernel.h> | ||
518 | #include <linux/module.h> | ||
519 | #include <linux/fs.h> | ||
520 | #include <linux/uio.h> | ||
521 | #include <linux/kprobes.h> | ||
522 | |||
523 | /* | ||
524 | * Jumper probe for do_fork. | ||
525 | * Mirror principle enables access to arguments of the probed routine | ||
526 | * from the probe handler. | ||
527 | */ | ||
528 | |||
529 | /* Proxy routine having the same arguments as actual do_fork() routine */ | ||
530 | long jdo_fork(unsigned long clone_flags, unsigned long stack_start, | ||
531 | struct pt_regs *regs, unsigned long stack_size, | ||
532 | int __user * parent_tidptr, int __user * child_tidptr) | ||
533 | { | ||
534 | printk("jprobe: clone_flags=0x%lx, stack_size=0x%lx, regs=0x%p\n", | ||
535 | clone_flags, stack_size, regs); | ||
536 | /* Always end with a call to jprobe_return(). */ | ||
537 | jprobe_return(); | ||
538 | /*NOTREACHED*/ | ||
539 | return 0; | ||
540 | } | ||
541 | |||
542 | static struct jprobe my_jprobe = { | ||
543 | .entry = jdo_fork | ||
544 | }; | ||
545 | |||
546 | static int __init jprobe_init(void) | ||
547 | { | ||
548 | int ret; | ||
549 | my_jprobe.kp.symbol_name = "do_fork"; | ||
550 | |||
551 | if ((ret = register_jprobe(&my_jprobe)) <0) { | ||
552 | printk("register_jprobe failed, returned %d\n", ret); | ||
553 | return -1; | ||
554 | } | ||
555 | printk("Planted jprobe at %p, handler addr %p\n", | ||
556 | my_jprobe.kp.addr, my_jprobe.entry); | ||
557 | return 0; | ||
558 | } | ||
559 | |||
560 | static void __exit jprobe_exit(void) | ||
561 | { | ||
562 | unregister_jprobe(&my_jprobe); | ||
563 | printk("jprobe unregistered\n"); | ||
564 | } | ||
565 | |||
566 | module_init(jprobe_init) | ||
567 | module_exit(jprobe_exit) | ||
568 | MODULE_LICENSE("GPL"); | ||
569 | ----- cut here ----- | ||
570 | |||
571 | Build and insert the kernel module as shown in the above kprobe | ||
572 | example. You will see the trace data in /var/log/messages and on | ||
573 | the console whenever do_fork() is invoked to create a new process. | ||
574 | (Some messages may be suppressed if syslogd is configured to | ||
575 | eliminate duplicate messages.) | ||
576 | 429 | ||
577 | 10. Kretprobes Example | 430 | 10. Kretprobes Example |
578 | 431 | ||
579 | Here's a sample kernel module showing the use of return probes to | 432 | See samples/kprobes/kretprobe_example.c |
580 | report failed calls to sys_open(). | ||
581 | ----- cut here ----- | ||
582 | /*kretprobe-example.c*/ | ||
583 | #include <linux/kernel.h> | ||
584 | #include <linux/module.h> | ||
585 | #include <linux/kprobes.h> | ||
586 | #include <linux/ktime.h> | ||
587 | |||
588 | /* per-instance private data */ | ||
589 | struct my_data { | ||
590 | ktime_t entry_stamp; | ||
591 | }; | ||
592 | |||
593 | static const char *probed_func = "sys_open"; | ||
594 | |||
595 | /* Timestamp function entry. */ | ||
596 | static int entry_handler(struct kretprobe_instance *ri, struct pt_regs *regs) | ||
597 | { | ||
598 | struct my_data *data; | ||
599 | |||
600 | if(!current->mm) | ||
601 | return 1; /* skip kernel threads */ | ||
602 | |||
603 | data = (struct my_data *)ri->data; | ||
604 | data->entry_stamp = ktime_get(); | ||
605 | return 0; | ||
606 | } | ||
607 | |||
608 | /* If the probed function failed, log the return value and duration. | ||
609 | * Duration may turn out to be zero consistently, depending upon the | ||
610 | * granularity of time accounting on the platform. */ | ||
611 | static int return_handler(struct kretprobe_instance *ri, struct pt_regs *regs) | ||
612 | { | ||
613 | int retval = regs_return_value(regs); | ||
614 | struct my_data *data = (struct my_data *)ri->data; | ||
615 | s64 delta; | ||
616 | ktime_t now; | ||
617 | |||
618 | if (retval < 0) { | ||
619 | now = ktime_get(); | ||
620 | delta = ktime_to_ns(ktime_sub(now, data->entry_stamp)); | ||
621 | printk("%s: return val = %d (duration = %lld ns)\n", | ||
622 | probed_func, retval, delta); | ||
623 | } | ||
624 | return 0; | ||
625 | } | ||
626 | |||
627 | static struct kretprobe my_kretprobe = { | ||
628 | .handler = return_handler, | ||
629 | .entry_handler = entry_handler, | ||
630 | .data_size = sizeof(struct my_data), | ||
631 | .maxactive = 20, /* probe up to 20 instances concurrently */ | ||
632 | }; | ||
633 | |||
634 | static int __init kretprobe_init(void) | ||
635 | { | ||
636 | int ret; | ||
637 | my_kretprobe.kp.symbol_name = (char *)probed_func; | ||
638 | |||
639 | if ((ret = register_kretprobe(&my_kretprobe)) < 0) { | ||
640 | printk("register_kretprobe failed, returned %d\n", ret); | ||
641 | return -1; | ||
642 | } | ||
643 | printk("Kretprobe active on %s\n", my_kretprobe.kp.symbol_name); | ||
644 | return 0; | ||
645 | } | ||
646 | |||
647 | static void __exit kretprobe_exit(void) | ||
648 | { | ||
649 | unregister_kretprobe(&my_kretprobe); | ||
650 | printk("kretprobe unregistered\n"); | ||
651 | /* nmissed > 0 suggests that maxactive was set too low. */ | ||
652 | printk("Missed probing %d instances of %s\n", | ||
653 | my_kretprobe.nmissed, probed_func); | ||
654 | } | ||
655 | |||
656 | module_init(kretprobe_init) | ||
657 | module_exit(kretprobe_exit) | ||
658 | MODULE_LICENSE("GPL"); | ||
659 | ----- cut here ----- | ||
660 | |||
661 | Build and insert the kernel module as shown in the above kprobe | ||
662 | example. You will see the trace data in /var/log/messages and on the | ||
663 | console whenever sys_open() returns a negative value. (Some messages | ||
664 | may be suppressed if syslogd is configured to eliminate duplicate | ||
665 | messages.) | ||
666 | 433 | ||
667 | For additional information on Kprobes, refer to the following URLs: | 434 | For additional information on Kprobes, refer to the following URLs: |
668 | http://www-106.ibm.com/developerworks/library/l-kprobes.html?ca=dgr-lnxw42Kprobe | 435 | http://www-106.ibm.com/developerworks/library/l-kprobes.html?ca=dgr-lnxw42Kprobe |
diff --git a/Documentation/laptops/acer-wmi.txt b/Documentation/laptops/acer-wmi.txt index b06696329cff..23df051dbf69 100644 --- a/Documentation/laptops/acer-wmi.txt +++ b/Documentation/laptops/acer-wmi.txt | |||
@@ -48,7 +48,7 @@ DSDT. | |||
48 | 48 | ||
49 | To send me the DSDT, as root/sudo: | 49 | To send me the DSDT, as root/sudo: |
50 | 50 | ||
51 | cat /sys/firmware/acpi/DSDT > dsdt | 51 | cat /sys/firmware/acpi/tables/DSDT > dsdt |
52 | 52 | ||
53 | And send me the resulting 'dsdt' file. | 53 | And send me the resulting 'dsdt' file. |
54 | 54 | ||
@@ -169,7 +169,7 @@ can be added to acer-wmi. | |||
169 | 169 | ||
170 | The LED is exposed through the LED subsystem, and can be found in: | 170 | The LED is exposed through the LED subsystem, and can be found in: |
171 | 171 | ||
172 | /sys/devices/platform/acer-wmi/leds/acer-mail:green/ | 172 | /sys/devices/platform/acer-wmi/leds/acer-wmi::mail/ |
173 | 173 | ||
174 | The mail LED is autodetected, so if you don't have one, the LED device won't | 174 | The mail LED is autodetected, so if you don't have one, the LED device won't |
175 | be registered. | 175 | be registered. |
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 6c2477754a2a..76cb428435da 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -160,7 +160,7 @@ Hot keys | |||
160 | procfs: /proc/acpi/ibm/hotkey | 160 | procfs: /proc/acpi/ibm/hotkey |
161 | sysfs device attribute: hotkey_* | 161 | sysfs device attribute: hotkey_* |
162 | 162 | ||
163 | In a ThinkPad, the ACPI HKEY handler is responsible for comunicating | 163 | In a ThinkPad, the ACPI HKEY handler is responsible for communicating |
164 | some important events and also keyboard hot key presses to the operating | 164 | some important events and also keyboard hot key presses to the operating |
165 | system. Enabling the hotkey functionality of thinkpad-acpi signals the | 165 | system. Enabling the hotkey functionality of thinkpad-acpi signals the |
166 | firmware that such a driver is present, and modifies how the ThinkPad | 166 | firmware that such a driver is present, and modifies how the ThinkPad |
@@ -193,7 +193,7 @@ Not all bits in the mask can be modified. Not all bits that can be | |||
193 | modified do anything. Not all hot keys can be individually controlled | 193 | modified do anything. Not all hot keys can be individually controlled |
194 | by the mask. Some models do not support the mask at all, and in those | 194 | by the mask. Some models do not support the mask at all, and in those |
195 | models, hot keys cannot be controlled individually. The behaviour of | 195 | models, hot keys cannot be controlled individually. The behaviour of |
196 | the mask is, therefore, higly dependent on the ThinkPad model. | 196 | the mask is, therefore, highly dependent on the ThinkPad model. |
197 | 197 | ||
198 | Note that unmasking some keys prevents their default behavior. For | 198 | Note that unmasking some keys prevents their default behavior. For |
199 | example, if Fn+F5 is unmasked, that key will no longer enable/disable | 199 | example, if Fn+F5 is unmasked, that key will no longer enable/disable |
@@ -288,7 +288,7 @@ sysfs notes: | |||
288 | in ACPI event mode, volume up/down/mute are reported as | 288 | in ACPI event mode, volume up/down/mute are reported as |
289 | separate events, but this behaviour may be corrected in | 289 | separate events, but this behaviour may be corrected in |
290 | future releases of this driver, in which case the | 290 | future releases of this driver, in which case the |
291 | ThinkPad volume mixer user interface semanthics will be | 291 | ThinkPad volume mixer user interface semantics will be |
292 | enforced. | 292 | enforced. |
293 | 293 | ||
294 | hotkey_poll_freq: | 294 | hotkey_poll_freq: |
@@ -306,13 +306,20 @@ sysfs notes: | |||
306 | The recommended polling frequency is 10Hz. | 306 | The recommended polling frequency is 10Hz. |
307 | 307 | ||
308 | hotkey_radio_sw: | 308 | hotkey_radio_sw: |
309 | if the ThinkPad has a hardware radio switch, this | 309 | If the ThinkPad has a hardware radio switch, this |
310 | attribute will read 0 if the switch is in the "radios | 310 | attribute will read 0 if the switch is in the "radios |
311 | disabled" postition, and 1 if the switch is in the | 311 | disabled" position, and 1 if the switch is in the |
312 | "radios enabled" position. | 312 | "radios enabled" position. |
313 | 313 | ||
314 | This attribute has poll()/select() support. | 314 | This attribute has poll()/select() support. |
315 | 315 | ||
316 | hotkey_tablet_mode: | ||
317 | If the ThinkPad has tablet capabilities, this attribute | ||
318 | will read 0 if the ThinkPad is in normal mode, and | ||
319 | 1 if the ThinkPad is in tablet mode. | ||
320 | |||
321 | This attribute has poll()/select() support. | ||
322 | |||
316 | hotkey_report_mode: | 323 | hotkey_report_mode: |
317 | Returns the state of the procfs ACPI event report mode | 324 | Returns the state of the procfs ACPI event report mode |
318 | filter for hot keys. If it is set to 1 (the default), | 325 | filter for hot keys. If it is set to 1 (the default), |
@@ -339,7 +346,7 @@ sysfs notes: | |||
339 | wakeup_hotunplug_complete: | 346 | wakeup_hotunplug_complete: |
340 | Set to 1 if the system was waken up because of an | 347 | Set to 1 if the system was waken up because of an |
341 | undock or bay ejection request, and that request | 348 | undock or bay ejection request, and that request |
342 | was sucessfully completed. At this point, it might | 349 | was successfully completed. At this point, it might |
343 | be useful to send the system back to sleep, at the | 350 | be useful to send the system back to sleep, at the |
344 | user's choice. Refer to HKEY events 0x4003 and | 351 | user's choice. Refer to HKEY events 0x4003 and |
345 | 0x3003, below. | 352 | 0x3003, below. |
@@ -392,7 +399,7 @@ event code Key Notes | |||
392 | Lenovo: battery | 399 | Lenovo: battery |
393 | 400 | ||
394 | 0x1004 0x03 FN+F4 Sleep button (ACPI sleep button | 401 | 0x1004 0x03 FN+F4 Sleep button (ACPI sleep button |
395 | semanthics, i.e. sleep-to-RAM). | 402 | semantics, i.e. sleep-to-RAM). |
396 | It is always generate some kind | 403 | It is always generate some kind |
397 | of event, either the hot key | 404 | of event, either the hot key |
398 | event or a ACPI sleep button | 405 | event or a ACPI sleep button |
@@ -403,12 +410,12 @@ event code Key Notes | |||
403 | time passes. | 410 | time passes. |
404 | 411 | ||
405 | 0x1005 0x04 FN+F5 Radio. Enables/disables | 412 | 0x1005 0x04 FN+F5 Radio. Enables/disables |
406 | the internal BlueTooth hardware | 413 | the internal Bluetooth hardware |
407 | and W-WAN card if left in control | 414 | and W-WAN card if left in control |
408 | of the firmware. Does not affect | 415 | of the firmware. Does not affect |
409 | the WLAN card. | 416 | the WLAN card. |
410 | Should be used to turn on/off all | 417 | Should be used to turn on/off all |
411 | radios (bluetooth+W-WAN+WLAN), | 418 | radios (Bluetooth+W-WAN+WLAN), |
412 | really. | 419 | really. |
413 | 420 | ||
414 | 0x1006 0x05 FN+F6 - | 421 | 0x1006 0x05 FN+F6 - |
@@ -417,7 +424,7 @@ event code Key Notes | |||
417 | Do you feel lucky today? | 424 | Do you feel lucky today? |
418 | 425 | ||
419 | 0x1008 0x07 FN+F8 IBM: toggle screen expand | 426 | 0x1008 0x07 FN+F8 IBM: toggle screen expand |
420 | Lenovo: configure ultranav | 427 | Lenovo: configure UltraNav |
421 | 428 | ||
422 | 0x1009 0x08 FN+F9 - | 429 | 0x1009 0x08 FN+F9 - |
423 | .. .. .. | 430 | .. .. .. |
@@ -447,7 +454,7 @@ event code Key Notes | |||
447 | 0x1011 0x10 FN+END Brightness down. See brightness | 454 | 0x1011 0x10 FN+END Brightness down. See brightness |
448 | up for details. | 455 | up for details. |
449 | 456 | ||
450 | 0x1012 0x11 FN+PGUP Thinklight toggle. This key is | 457 | 0x1012 0x11 FN+PGUP ThinkLight toggle. This key is |
451 | always handled by the firmware, | 458 | always handled by the firmware, |
452 | even when unmasked. | 459 | even when unmasked. |
453 | 460 | ||
@@ -469,7 +476,7 @@ event code Key Notes | |||
469 | key is always handled by the | 476 | key is always handled by the |
470 | firmware, even when unmasked. | 477 | firmware, even when unmasked. |
471 | 478 | ||
472 | 0x1018 0x17 THINKPAD Thinkpad/Access IBM/Lenovo key | 479 | 0x1018 0x17 THINKPAD ThinkPad/Access IBM/Lenovo key |
473 | 480 | ||
474 | 0x1019 0x18 unknown | 481 | 0x1019 0x18 unknown |
475 | .. .. .. | 482 | .. .. .. |
@@ -488,9 +495,17 @@ If a key is mapped to KEY_UNKNOWN, it generates an input event that | |||
488 | includes an scan code. If a key is mapped to anything else, it will | 495 | includes an scan code. If a key is mapped to anything else, it will |
489 | generate input device EV_KEY events. | 496 | generate input device EV_KEY events. |
490 | 497 | ||
498 | In addition to the EV_KEY events, thinkpad-acpi may also issue EV_SW | ||
499 | events for switches: | ||
500 | |||
501 | SW_RADIO T60 and later hardare rfkill rocker switch | ||
502 | SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A | ||
503 | |||
491 | Non hot-key ACPI HKEY event map: | 504 | Non hot-key ACPI HKEY event map: |
492 | 0x5001 Lid closed | 505 | 0x5001 Lid closed |
493 | 0x5002 Lid opened | 506 | 0x5002 Lid opened |
507 | 0x5009 Tablet swivel: switched to tablet mode | ||
508 | 0x500A Tablet swivel: switched to normal mode | ||
494 | 0x7000 Radio Switch may have changed state | 509 | 0x7000 Radio Switch may have changed state |
495 | 510 | ||
496 | The above events are not propagated by the driver, except for legacy | 511 | The above events are not propagated by the driver, except for legacy |
@@ -505,9 +520,7 @@ The above events are never propagated by the driver. | |||
505 | 520 | ||
506 | 0x3003 Bay ejection (see 0x2x05) complete, can sleep again | 521 | 0x3003 Bay ejection (see 0x2x05) complete, can sleep again |
507 | 0x4003 Undocked (see 0x2x04), can sleep again | 522 | 0x4003 Undocked (see 0x2x04), can sleep again |
508 | 0x5009 Tablet swivel: switched to tablet mode | 523 | 0x500B Tablet pen inserted into its storage bay |
509 | 0x500A Tablet swivel: switched to normal mode | ||
510 | 0x500B Tablet pen insterted into its storage bay | ||
511 | 0x500C Tablet pen removed from its storage bay | 524 | 0x500C Tablet pen removed from its storage bay |
512 | 0x5010 Brightness level changed (newer Lenovo BIOSes) | 525 | 0x5010 Brightness level changed (newer Lenovo BIOSes) |
513 | 526 | ||
@@ -539,7 +552,7 @@ sysfs (it is read-only). | |||
539 | If the hotkey_report_mode module parameter is set to 1 or 2, it cannot | 552 | If the hotkey_report_mode module parameter is set to 1 or 2, it cannot |
540 | be changed later through sysfs (any writes will return -EPERM to signal | 553 | be changed later through sysfs (any writes will return -EPERM to signal |
541 | that hotkey_report_mode was locked. On 2.6.23 and later, where | 554 | that hotkey_report_mode was locked. On 2.6.23 and later, where |
542 | hotkey_report_mode cannot be changed at all, writes will return -EACES). | 555 | hotkey_report_mode cannot be changed at all, writes will return -EACCES). |
543 | 556 | ||
544 | hotkey_report_mode set to 1 makes the driver export through the procfs | 557 | hotkey_report_mode set to 1 makes the driver export through the procfs |
545 | ACPI event interface all hot key presses (which are *also* sent to the | 558 | ACPI event interface all hot key presses (which are *also* sent to the |
@@ -584,7 +597,7 @@ Sysfs notes: | |||
584 | 0: disables Bluetooth / Bluetooth is disabled | 597 | 0: disables Bluetooth / Bluetooth is disabled |
585 | 1: enables Bluetooth / Bluetooth is enabled. | 598 | 1: enables Bluetooth / Bluetooth is enabled. |
586 | 599 | ||
587 | Note: this interface will be probably be superseeded by the | 600 | Note: this interface will be probably be superseded by the |
588 | generic rfkill class, so it is NOT to be considered stable yet. | 601 | generic rfkill class, so it is NOT to be considered stable yet. |
589 | 602 | ||
590 | Video output control -- /proc/acpi/ibm/video | 603 | Video output control -- /proc/acpi/ibm/video |
@@ -791,12 +804,12 @@ on the X40 (tpb is the ThinkPad Buttons utility): | |||
791 | 1 - Related to "Volume up" key press | 804 | 1 - Related to "Volume up" key press |
792 | 2 - Related to "Mute on" key press | 805 | 2 - Related to "Mute on" key press |
793 | 3 - Related to "Access IBM" key press | 806 | 3 - Related to "Access IBM" key press |
794 | 4 - Related to "LCD brightness up" key pess | 807 | 4 - Related to "LCD brightness up" key press |
795 | 5 - Related to "LCD brightness down" key press | 808 | 5 - Related to "LCD brightness down" key press |
796 | 11 - Related to "toggle screen expansion" key press/function | 809 | 11 - Related to "toggle screen expansion" key press/function |
797 | 12 - Related to "ThinkLight on" | 810 | 12 - Related to "ThinkLight on" |
798 | 13 - Related to "ThinkLight off" | 811 | 13 - Related to "ThinkLight off" |
799 | 14 - Related to "ThinkLight" key press (toggle thinklight) | 812 | 14 - Related to "ThinkLight" key press (toggle ThinkLight) |
800 | 813 | ||
801 | The cmos command interface is prone to firmware split-brain problems, as | 814 | The cmos command interface is prone to firmware split-brain problems, as |
802 | in newer ThinkPads it is just a compatibility layer. Do not use it, it is | 815 | in newer ThinkPads it is just a compatibility layer. Do not use it, it is |
@@ -1024,7 +1037,7 @@ There are two interfaces to the firmware for direct brightness control, | |||
1024 | EC and CMOS. To select which one should be used, use the | 1037 | EC and CMOS. To select which one should be used, use the |
1025 | brightness_mode module parameter: brightness_mode=1 selects EC mode, | 1038 | brightness_mode module parameter: brightness_mode=1 selects EC mode, |
1026 | brightness_mode=2 selects CMOS mode, brightness_mode=3 selects both EC | 1039 | brightness_mode=2 selects CMOS mode, brightness_mode=3 selects both EC |
1027 | and CMOS. The driver tries to autodetect which interface to use. | 1040 | and CMOS. The driver tries to auto-detect which interface to use. |
1028 | 1041 | ||
1029 | When display backlight brightness controls are available through the | 1042 | When display backlight brightness controls are available through the |
1030 | standard ACPI interface, it is best to use it instead of this direct | 1043 | standard ACPI interface, it is best to use it instead of this direct |
@@ -1266,8 +1279,8 @@ experimental=1 parameter when loading the module. | |||
1266 | This feature shows the presence and current state of a W-WAN (Sierra | 1279 | This feature shows the presence and current state of a W-WAN (Sierra |
1267 | Wireless EV-DO) device. | 1280 | Wireless EV-DO) device. |
1268 | 1281 | ||
1269 | It was tested on a Lenovo Thinkpad X60. It should probably work on other | 1282 | It was tested on a Lenovo ThinkPad X60. It should probably work on other |
1270 | Thinkpad models which come with this module installed. | 1283 | ThinkPad models which come with this module installed. |
1271 | 1284 | ||
1272 | Procfs notes: | 1285 | Procfs notes: |
1273 | 1286 | ||
@@ -1286,7 +1299,7 @@ Sysfs notes: | |||
1286 | 0: disables WWAN card / WWAN card is disabled | 1299 | 0: disables WWAN card / WWAN card is disabled |
1287 | 1: enables WWAN card / WWAN card is enabled. | 1300 | 1: enables WWAN card / WWAN card is enabled. |
1288 | 1301 | ||
1289 | Note: this interface will be probably be superseeded by the | 1302 | Note: this interface will be probably be superseded by the |
1290 | generic rfkill class, so it is NOT to be considered stable yet. | 1303 | generic rfkill class, so it is NOT to be considered stable yet. |
1291 | 1304 | ||
1292 | Multiple Commands, Module Parameters | 1305 | Multiple Commands, Module Parameters |
@@ -1309,7 +1322,7 @@ Enabling debugging output | |||
1309 | The module takes a debug parameter which can be used to selectively | 1322 | The module takes a debug parameter which can be used to selectively |
1310 | enable various classes of debugging output, for example: | 1323 | enable various classes of debugging output, for example: |
1311 | 1324 | ||
1312 | modprobe ibm_acpi debug=0xffff | 1325 | modprobe thinkpad_acpi debug=0xffff |
1313 | 1326 | ||
1314 | will enable all debugging output classes. It takes a bitmask, so | 1327 | will enable all debugging output classes. It takes a bitmask, so |
1315 | to enable more than one output class, just add their values. | 1328 | to enable more than one output class, just add their values. |
@@ -1356,7 +1369,7 @@ Sysfs interface changelog: | |||
1356 | NVRAM is compiled out by the user because it is | 1369 | NVRAM is compiled out by the user because it is |
1357 | unneeded/undesired in the first place). | 1370 | unneeded/undesired in the first place). |
1358 | 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling | 1371 | 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling |
1359 | and proper hotkey_mask semanthics (version 8 of the | 1372 | and proper hotkey_mask semantics (version 8 of the |
1360 | NVRAM polling patch). Some development snapshots of | 1373 | NVRAM polling patch). Some development snapshots of |
1361 | 0.18 had an earlier version that did strange things | 1374 | 0.18 had an earlier version that did strange things |
1362 | to hotkey_mask. | 1375 | to hotkey_mask. |
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index 0f23d67f958f..bec5a32e4095 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
@@ -486,9 +486,12 @@ static void concat(char *dst, char *args[]) | |||
486 | unsigned int i, len = 0; | 486 | unsigned int i, len = 0; |
487 | 487 | ||
488 | for (i = 0; args[i]; i++) { | 488 | for (i = 0; args[i]; i++) { |
489 | if (i) { | ||
490 | strcat(dst+len, " "); | ||
491 | len++; | ||
492 | } | ||
489 | strcpy(dst+len, args[i]); | 493 | strcpy(dst+len, args[i]); |
490 | strcat(dst+len, " "); | 494 | len += strlen(args[i]); |
491 | len += strlen(args[i]) + 1; | ||
492 | } | 495 | } |
493 | /* In case it's empty. */ | 496 | /* In case it's empty. */ |
494 | dst[len] = '\0'; | 497 | dst[len] = '\0'; |
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 4e17beba2379..1f506f7830ec 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -1493,7 +1493,7 @@ explicit lock operations, described later). These include: | |||
1493 | atomic_dec_and_test(); | 1493 | atomic_dec_and_test(); |
1494 | atomic_sub_and_test(); | 1494 | atomic_sub_and_test(); |
1495 | atomic_add_negative(); | 1495 | atomic_add_negative(); |
1496 | atomic_add_unless(); | 1496 | atomic_add_unless(); /* when succeeds (returns 1) */ |
1497 | test_and_set_bit(); | 1497 | test_and_set_bit(); |
1498 | test_and_clear_bit(); | 1498 | test_and_clear_bit(); |
1499 | test_and_change_bit(); | 1499 | test_and_change_bit(); |
diff --git a/Documentation/pci.txt b/Documentation/pci.txt index 72b20c639596..d2c2e6e2b224 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt | |||
@@ -123,7 +123,8 @@ initialization with a pointer to a structure describing the driver | |||
123 | 123 | ||
124 | 124 | ||
125 | The ID table is an array of struct pci_device_id entries ending with an | 125 | The ID table is an array of struct pci_device_id entries ending with an |
126 | all-zero entry. Each entry consists of: | 126 | all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred |
127 | method of declaring the table. Each entry consists of: | ||
127 | 128 | ||
128 | vendor,device Vendor and device ID to match (or PCI_ANY_ID) | 129 | vendor,device Vendor and device ID to match (or PCI_ANY_ID) |
129 | 130 | ||
@@ -191,7 +192,8 @@ Tips on when/where to use the above attributes: | |||
191 | 192 | ||
192 | o Do not mark the struct pci_driver. | 193 | o Do not mark the struct pci_driver. |
193 | 194 | ||
194 | o The ID table array should be marked __devinitdata. | 195 | o The ID table array should be marked __devinitconst; this is done |
196 | automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE(). | ||
195 | 197 | ||
196 | o The probe() and remove() functions should be marked __devinit | 198 | o The probe() and remove() functions should be marked __devinit |
197 | and __devexit respectively. All initialization functions | 199 | and __devexit respectively. All initialization functions |
diff --git a/Documentation/power/devices.txt b/Documentation/power/devices.txt index c53d26361919..461e4f1dbec4 100644 --- a/Documentation/power/devices.txt +++ b/Documentation/power/devices.txt | |||
@@ -310,9 +310,12 @@ used with suspend-to-disk: | |||
310 | PM_EVENT_SUSPEND -- quiesce the driver and put hardware into a low-power | 310 | PM_EVENT_SUSPEND -- quiesce the driver and put hardware into a low-power |
311 | state. When used with system sleep states like "suspend-to-RAM" or | 311 | state. When used with system sleep states like "suspend-to-RAM" or |
312 | "standby", the upcoming resume() call will often be able to rely on | 312 | "standby", the upcoming resume() call will often be able to rely on |
313 | state kept in hardware, or issue system wakeup events. When used | 313 | state kept in hardware, or issue system wakeup events. |
314 | instead with suspend-to-disk, few devices support this capability; | 314 | |
315 | most are completely powered off. | 315 | PM_EVENT_HIBERNATE -- Put hardware into a low-power state and enable wakeup |
316 | events as appropriate. It is only used with hibernation | ||
317 | (suspend-to-disk) and few devices are able to wake up the system from | ||
318 | this state; most are completely powered off. | ||
316 | 319 | ||
317 | PM_EVENT_FREEZE -- quiesce the driver, but don't necessarily change into | 320 | PM_EVENT_FREEZE -- quiesce the driver, but don't necessarily change into |
318 | any low power mode. A system snapshot is about to be taken, often | 321 | any low power mode. A system snapshot is about to be taken, often |
@@ -329,8 +332,8 @@ used with suspend-to-disk: | |||
329 | wakeup events nor DMA are allowed. | 332 | wakeup events nor DMA are allowed. |
330 | 333 | ||
331 | To enter "standby" (ACPI S1) or "Suspend to RAM" (STR, ACPI S3) states, or | 334 | To enter "standby" (ACPI S1) or "Suspend to RAM" (STR, ACPI S3) states, or |
332 | the similarly named APM states, only PM_EVENT_SUSPEND is used; for "Suspend | 335 | the similarly named APM states, only PM_EVENT_SUSPEND is used; the other event |
333 | to Disk" (STD, hibernate, ACPI S4), all of those event codes are used. | 336 | codes are used for hibernation ("Suspend to Disk", STD, ACPI S4). |
334 | 337 | ||
335 | There's also PM_EVENT_ON, a value which never appears as a suspend event | 338 | There's also PM_EVENT_ON, a value which never appears as a suspend event |
336 | but is sometimes used to record the "not suspended" device state. | 339 | but is sometimes used to record the "not suspended" device state. |
diff --git a/Documentation/scheduler/sched-stats.txt b/Documentation/scheduler/sched-stats.txt index 442e14d35dea..01e69404ee5e 100644 --- a/Documentation/scheduler/sched-stats.txt +++ b/Documentation/scheduler/sched-stats.txt | |||
@@ -142,7 +142,7 @@ of idleness (idle, busy, and newly idle): | |||
142 | 142 | ||
143 | /proc/<pid>/schedstat | 143 | /proc/<pid>/schedstat |
144 | ---------------- | 144 | ---------------- |
145 | schedstats also adds a new /proc/<pid/schedstat file to include some of | 145 | schedstats also adds a new /proc/<pid>/schedstat file to include some of |
146 | the same information on a per-process level. There are three fields in | 146 | the same information on a per-process level. There are three fields in |
147 | this file correlating for that process to: | 147 | this file correlating for that process to: |
148 | 1) time spent on the cpu | 148 | 1) time spent on the cpu |
diff --git a/Documentation/scsi/ChangeLog.arcmsr b/Documentation/scsi/ChangeLog.arcmsr index de2bcacfa870..038a3e6ecaa4 100644 --- a/Documentation/scsi/ChangeLog.arcmsr +++ b/Documentation/scsi/ChangeLog.arcmsr | |||
@@ -109,4 +109,10 @@ | |||
109 | ** 8.replace pci_alloc_consistent()/pci_free_consistent() with kmalloc()/kfree() in arcmsr_iop_message_xfer() | 109 | ** 8.replace pci_alloc_consistent()/pci_free_consistent() with kmalloc()/kfree() in arcmsr_iop_message_xfer() |
110 | ** 9. fix the release of dma memory for type B in arcmsr_free_ccb_pool() | 110 | ** 9. fix the release of dma memory for type B in arcmsr_free_ccb_pool() |
111 | ** 10.fix the arcmsr_polling_hbb_ccbdone() | 111 | ** 10.fix the arcmsr_polling_hbb_ccbdone() |
112 | ** 1.20.00.15 02/27/2008 Erich Chen & Nick Cheng | ||
113 | ** 1.arcmsr_iop_message_xfer() is called from atomic context under the | ||
114 | ** queuecommand scsi_host_template handler. James Bottomley pointed out | ||
115 | ** that the current GFP_KERNEL|GFP_DMA flags are wrong: firstly we are in | ||
116 | ** atomic context, secondly this memory is not used for DMA. | ||
117 | ** Also removed some unneeded casts. Thanks to Daniel Drake <dsd@gentoo.org> | ||
112 | ************************************************************************** | 118 | ************************************************************************** |
diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt index c815c5206e84..4cfc78835bc1 100644 --- a/Documentation/stable_kernel_rules.txt +++ b/Documentation/stable_kernel_rules.txt | |||
@@ -16,8 +16,9 @@ Rules on what kind of patches are accepted, and which ones are not, into the | |||
16 | race can be exploited is also provided. | 16 | race can be exploited is also provided. |
17 | - It cannot contain any "trivial" fixes in it (spelling changes, | 17 | - It cannot contain any "trivial" fixes in it (spelling changes, |
18 | whitespace cleanups, etc). | 18 | whitespace cleanups, etc). |
19 | - It must be accepted by the relevant subsystem maintainer. | ||
20 | - It must follow the Documentation/SubmittingPatches rules. | 19 | - It must follow the Documentation/SubmittingPatches rules. |
20 | - It or an equivalent fix must already exist in Linus' tree. Quote the | ||
21 | respective commit ID in Linus' tree in your patch submission to -stable. | ||
21 | 22 | ||
22 | 23 | ||
23 | Procedure for submitting patches to the -stable tree: | 24 | Procedure for submitting patches to the -stable tree: |
@@ -28,7 +29,9 @@ Procedure for submitting patches to the -stable tree: | |||
28 | queue, or a NAK if the patch is rejected. This response might take a few | 29 | queue, or a NAK if the patch is rejected. This response might take a few |
29 | days, according to the developer's schedules. | 30 | days, according to the developer's schedules. |
30 | - If accepted, the patch will be added to the -stable queue, for review by | 31 | - If accepted, the patch will be added to the -stable queue, for review by |
31 | other developers. | 32 | other developers and by the relevant subsystem maintainer. |
33 | - If the stable@kernel.org address is added to a patch, when it goes into | ||
34 | Linus's tree it will automatically be emailed to the stable team. | ||
32 | - Security patches should not be sent to this alias, but instead to the | 35 | - Security patches should not be sent to this alias, but instead to the |
33 | documented security@kernel.org address. | 36 | documented security@kernel.org address. |
34 | 37 | ||
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt index ba9c2da5a8c2..d9f28be75403 100644 --- a/Documentation/thermal/sysfs-api.txt +++ b/Documentation/thermal/sysfs-api.txt | |||
@@ -143,10 +143,10 @@ type Strings which represent the thermal zone type. | |||
143 | This is given by thermal zone driver as part of registration. | 143 | This is given by thermal zone driver as part of registration. |
144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device | 144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device |
145 | RO | 145 | RO |
146 | Optional | 146 | Required |
147 | 147 | ||
148 | temp Current temperature as reported by thermal zone (sensor) | 148 | temp Current temperature as reported by thermal zone (sensor) |
149 | Unit: degree Celsius | 149 | Unit: millidegree Celsius |
150 | RO | 150 | RO |
151 | Required | 151 | Required |
152 | 152 | ||
@@ -163,7 +163,7 @@ mode One of the predefined values in [kernel, user] | |||
163 | charge of the thermal management. | 163 | charge of the thermal management. |
164 | 164 | ||
165 | trip_point_[0-*]_temp The temperature above which trip point will be fired | 165 | trip_point_[0-*]_temp The temperature above which trip point will be fired |
166 | Unit: degree Celsius | 166 | Unit: millidegree Celsius |
167 | RO | 167 | RO |
168 | Optional | 168 | Optional |
169 | 169 | ||
@@ -193,7 +193,7 @@ type String which represents the type of device | |||
193 | eg. For memory controller device on intel_menlow platform: | 193 | eg. For memory controller device on intel_menlow platform: |
194 | this should be "Memory controller" | 194 | this should be "Memory controller" |
195 | RO | 195 | RO |
196 | Optional | 196 | Required |
197 | 197 | ||
198 | max_state The maximum permissible cooling state of this cooling device. | 198 | max_state The maximum permissible cooling state of this cooling device. |
199 | RO | 199 | RO |
@@ -219,16 +219,16 @@ the sys I/F structure will be built like this: | |||
219 | 219 | ||
220 | |thermal_zone1: | 220 | |thermal_zone1: |
221 | |-----type: ACPI thermal zone | 221 | |-----type: ACPI thermal zone |
222 | |-----temp: 37 | 222 | |-----temp: 37000 |
223 | |-----mode: kernel | 223 | |-----mode: kernel |
224 | |-----trip_point_0_temp: 100 | 224 | |-----trip_point_0_temp: 100000 |
225 | |-----trip_point_0_type: critical | 225 | |-----trip_point_0_type: critical |
226 | |-----trip_point_1_temp: 80 | 226 | |-----trip_point_1_temp: 80000 |
227 | |-----trip_point_1_type: passive | 227 | |-----trip_point_1_type: passive |
228 | |-----trip_point_2_temp: 70 | 228 | |-----trip_point_2_temp: 70000 |
229 | |-----trip_point_2_type: active[0] | 229 | |-----trip_point_2_type: active0 |
230 | |-----trip_point_3_temp: 60 | 230 | |-----trip_point_3_temp: 60000 |
231 | |-----trip_point_3_type: active[1] | 231 | |-----trip_point_3_type: active1 |
232 | |-----cdev0: --->/sys/class/thermal/cooling_device0 | 232 | |-----cdev0: --->/sys/class/thermal/cooling_device0 |
233 | |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ | 233 | |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ |
234 | |-----cdev1: --->/sys/class/thermal/cooling_device3 | 234 | |-----cdev1: --->/sys/class/thermal/cooling_device3 |
diff --git a/Documentation/usb/usb-help.txt b/Documentation/usb/usb-help.txt index a7408593829f..4273ca2b86ba 100644 --- a/Documentation/usb/usb-help.txt +++ b/Documentation/usb/usb-help.txt | |||
@@ -1,5 +1,5 @@ | |||
1 | usb-help.txt | 1 | usb-help.txt |
2 | 2000-July-12 | 2 | 2008-Mar-7 |
3 | 3 | ||
4 | For USB help other than the readme files that are located in | 4 | For USB help other than the readme files that are located in |
5 | Documentation/usb/*, see the following: | 5 | Documentation/usb/*, see the following: |
@@ -10,9 +10,7 @@ Linux-USB project: http://www.linux-usb.org | |||
10 | Linux USB Guide: http://linux-usb.sourceforge.net | 10 | Linux USB Guide: http://linux-usb.sourceforge.net |
11 | Linux-USB device overview (working devices and drivers): | 11 | Linux-USB device overview (working devices and drivers): |
12 | http://www.qbik.ch/usb/devices/ | 12 | http://www.qbik.ch/usb/devices/ |
13 | 13 | ||
14 | The Linux-USB mailing lists are: | 14 | The Linux-USB mailing list is at linux-usb@vger.kernel.org |
15 | linux-usb-users@lists.sourceforge.net for general user help | ||
16 | linux-usb-devel@lists.sourceforge.net for developer discussions | ||
17 | 15 | ||
18 | ### | 16 | ### |
diff --git a/Documentation/vm/slabinfo.c b/Documentation/vm/slabinfo.c index 7123fee708ca..22d7e3e4d60c 100644 --- a/Documentation/vm/slabinfo.c +++ b/Documentation/vm/slabinfo.c | |||
@@ -1123,7 +1123,7 @@ void read_slab_dir(void) | |||
1123 | char *t; | 1123 | char *t; |
1124 | int count; | 1124 | int count; |
1125 | 1125 | ||
1126 | if (chdir("/sys/kernel/slab")) | 1126 | if (chdir("/sys/kernel/slab") && chdir("/sys/slab")) |
1127 | fatal("SYSFS support for SLUB not active\n"); | 1127 | fatal("SYSFS support for SLUB not active\n"); |
1128 | 1128 | ||
1129 | dir = opendir("."); | 1129 | dir = opendir("."); |
diff --git a/Documentation/vm/slub.txt b/Documentation/vm/slub.txt index dcf8bcf846d6..7c13f22a0c9e 100644 --- a/Documentation/vm/slub.txt +++ b/Documentation/vm/slub.txt | |||
@@ -50,14 +50,14 @@ F.e. in order to boot just with sanity checks and red zoning one would specify: | |||
50 | 50 | ||
51 | Trying to find an issue in the dentry cache? Try | 51 | Trying to find an issue in the dentry cache? Try |
52 | 52 | ||
53 | slub_debug=,dentry_cache | 53 | slub_debug=,dentry |
54 | 54 | ||
55 | to only enable debugging on the dentry cache. | 55 | to only enable debugging on the dentry cache. |
56 | 56 | ||
57 | Red zoning and tracking may realign the slab. We can just apply sanity checks | 57 | Red zoning and tracking may realign the slab. We can just apply sanity checks |
58 | to the dentry cache with | 58 | to the dentry cache with |
59 | 59 | ||
60 | slub_debug=F,dentry_cache | 60 | slub_debug=F,dentry |
61 | 61 | ||
62 | In case you forgot to enable debugging on the kernel command line: It is | 62 | In case you forgot to enable debugging on the kernel command line: It is |
63 | possible to enable debugging manually when the kernel is up. Look at the | 63 | possible to enable debugging manually when the kernel is up. Look at the |