aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX2
-rw-r--r--Documentation/DocBook/kernel-api.tmpl2
-rw-r--r--Documentation/atomic_ops.txt3
-rw-r--r--Documentation/cdrom/ide-cd18
-rw-r--r--Documentation/cgroups.txt66
-rw-r--r--Documentation/controllers/memory.txt38
-rw-r--r--Documentation/cpusets.txt2
-rw-r--r--Documentation/debugging-via-ohci1394.txt17
-rw-r--r--Documentation/feature-removal-schedule.txt22
-rw-r--r--Documentation/gpio.txt16
-rw-r--r--Documentation/hwmon/adt747379
-rw-r--r--Documentation/hwmon/coretemp6
-rw-r--r--Documentation/i2c/busses/i2c-i8013
-rw-r--r--Documentation/ide/00-INDEX12
-rw-r--r--Documentation/ide/ide.txt (renamed from Documentation/ide.txt)69
-rw-r--r--Documentation/ja_JP/stable_kernel_rules.txt106
-rw-r--r--Documentation/kernel-parameters.txt8
-rw-r--r--Documentation/kprobes.txt243
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt63
-rw-r--r--Documentation/lguest/lguest.c7
-rw-r--r--Documentation/memory-barriers.txt2
-rw-r--r--Documentation/pci.txt6
-rw-r--r--Documentation/power/devices.txt13
-rw-r--r--Documentation/scheduler/sched-stats.txt2
-rw-r--r--Documentation/scsi/ChangeLog.arcmsr6
-rw-r--r--Documentation/stable_kernel_rules.txt7
-rw-r--r--Documentation/thermal/sysfs-api.txt22
-rw-r--r--Documentation/usb/usb-help.txt8
-rw-r--r--Documentation/vm/slabinfo.c2
-rw-r--r--Documentation/vm/slub.txt4
30 files changed, 362 insertions, 492 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.
184ia64/ 184ia64/
185 - directory with info about Linux on Intel 64 bit architecture. 185 - directory with info about Linux on Intel 64 bit architecture.
186ide.txt
187 - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS).
188infiniband/ 186infiniband/
189 - directory with documents concerning Linux InfiniBand support. 187 - directory with documents concerning Linux InfiniBand support.
190initrd.txt 188initrd.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
186returns non zero. If v is equal to u then it returns zero. This is done as 186returns non zero. If v is equal to u then it returns zero. This is done as
187an atomic operation. 187an atomic operation.
188 188
189atomic_add_unless requires explicit memory barriers around the operation. 189atomic_add_unless requires explicit memory barriers around the operation
190unless it fails (returns 0).
190 191
191atomic_inc_not_zero, equivalent to atomic_add_unless(v, 1, 0) 192atomic_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
470. The ide-cd relies on the ide disk driver. See 470. 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
511. Make sure that the ide and ide-cd drivers are compiled into the 511. 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
692. You should also ensure that the iso9660 filesystem is either 692. 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
994. Boot the system. If the drive is recognized, you should see a 994. Boot the system. If the drive is recognized, you should see a
@@ -201,7 +201,7 @@ TEST
201This section discusses some common problems encountered when trying to 201This section discusses some common problems encountered when trying to
202use the driver, and some possible solutions. Note that if you are 202use the driver, and some possible solutions. Note that if you are
203experiencing problems, you should probably also review 203experiencing problems, you should probably also review
204Documentation/ide.txt for current information about the underlying 204Documentation/ide/ide.txt for current information about the underlying
205IDE support code. Some of these items apply only to earlier versions 205IDE support code. Some of these items apply only to earlier versions
206of the driver, but are mentioned here for completeness. 206of the driver, but are mentioned here for completeness.
207 207
@@ -211,7 +211,7 @@ from the driver.
211a. Drive is not detected during booting. 211a. 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:
284. Questions 284. Questions
29 29
301. Control Groups 301. Control Groups
31========== 31=================
32 32
331.1 What are cgroups ? 331.1 What are cgroups ?
34---------------------- 34----------------------
@@ -143,10 +143,10 @@ proliferation of such cgroups.
143 143
144Also lets say that the administrator would like to give enhanced network 144Also lets say that the administrator would like to give enhanced network
145access temporarily to a student's browser (since it is night and the user 145access temporarily to a student's browser (since it is night and the user
146wants to do online gaming :) OR give one of the students simulation 146wants to do online gaming :)) OR give one of the students simulation
147apps enhanced CPU power, 147apps enhanced CPU power,
148 148
149With ability to write pids directly to resource classes, its just a 149With ability to write pids directly to resource classes, it's just a
150matter of : 150matter 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
227containing the following files describing that cgroup: 227containing 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
232Other subsystems such as cpusets may add additional files in each 235Other subsystems such as cpusets may add additional files in each
233cgroup dir 236cgroup dir.
234 237
235New cgroups are created using the mkdir system call or shell 238New cgroups are created using the mkdir system call or shell
236command. The properties of a cgroup, such as its flags, are 239command. The properties of a cgroup, such as its flags, are
@@ -257,7 +260,7 @@ performance.
257To allow access from a cgroup to the css_sets (and hence tasks) 260To allow access from a cgroup to the css_sets (and hence tasks)
258that comprise it, a set of cg_cgroup_link objects form a lattice; 261that comprise it, a set of cg_cgroup_link objects form a lattice;
259each cg_cgroup_link is linked into a list of cg_cgroup_links for 262each cg_cgroup_link is linked into a list of cg_cgroup_links for
260a single cgroup on its cont_link_list field, and a list of 263a single cgroup on its cgrp_link_list field, and a list of
261cg_cgroup_links for a single css_set on its cg_link_list. 264cg_cgroup_links for a single css_set on its cg_link_list.
262 265
263Thus the set of tasks in a cgroup can be listed by iterating over 266Thus 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.
2711.4 What does notify_on_release do ? 2741.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
277If the notify_on_release flag is enabled (1) in a cgroup, then 277If the notify_on_release flag is enabled (1) in a cgroup, then
278whenever the last task in the cgroup leaves (exits or attaches to 278whenever the last task in the cgroup leaves (exits or attaches to
279some other cgroup) and the last child cgroup of that cgroup 279some 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
361In this directory you can find several files: 361In this directory you can find several files:
362# ls 362# ls
363notify_on_release release_agent tasks 363notify_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
366Now attach your shell to this cgroup: 366Now 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.
404Other fields in the cgroup_subsys object include: 404Other 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
421Each cgroup object created by the system has an array of pointers, 415Each cgroup object created by the system has an array of pointers,
422indexed by subsystem id; this pointer is entirely managed by the 416indexed by subsystem id; this pointer is entirely managed by the
@@ -434,8 +428,6 @@ situation.
434See kernel/cgroup.c for more details. 428See kernel/cgroup.c for more details.
435 429
436Subsystems can take/release the cgroup_mutex via the functions 430Subsystems can take/release the cgroup_mutex via the functions
437cgroup_lock()/cgroup_unlock(), and can
438take/release the callback_mutex via the functions
439cgroup_lock()/cgroup_unlock(). 431cgroup_lock()/cgroup_unlock().
440 432
441Accessing a task's cgroup pointer may be done in the following ways: 433Accessing 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
4463.3 Subsystem API 4383.3 Subsystem API
447-------------------------- 439-----------------
448 440
449Each subsystem should: 441Each subsystem should:
450 442
@@ -455,7 +447,8 @@ Each subsystem may export the following methods. The only mandatory
455methods are create/destroy. Any others that are null are presumed to 447methods are create/destroy. Any others that are null are presumed to
456be successful no-ops. 448be successful no-ops.
457 449
458struct cgroup_subsys_state *create(struct cgroup *cont) 450struct 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
461Called to create a subsystem state object for a cgroup. The 454Called 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
470it's the root of the hierarchy) and may be an appropriate place for 463it's the root of the hierarchy) and may be an appropriate place for
471initialization code. 464initialization code.
472 465
473void destroy(struct cgroup *cont) 466void destroy(struct cgroup_subsys *ss, struct cgroup *cgrp)
474(cgroup_mutex held by caller) 467(cgroup_mutex held by caller)
475 468
476The cgroup system is about to destroy the passed cgroup; the subsystem 469The 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
481newly-created cgroup if an error occurs after this subsystem's 474newly-created cgroup if an error occurs after this subsystem's
482create() method has been called for the new cgroup). 475create() method has been called for the new cgroup).
483 476
484int can_attach(struct cgroup_subsys *ss, struct cgroup *cont, 477void pre_destroy(struct cgroup_subsys *ss, struct cgroup *cgrp);
478(cgroup_mutex held by caller)
479
480Called before checking the reference count on each subsystem. This may
481be useful for subsystems which have some extra references even if
482there are not tasks in the cgroup.
483
484int 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
492called on a fork. If this method returns 0 (success) then this should 492called on a fork. If this method returns 0 (success) then this should
493remain valid while the caller holds cgroup_mutex. 493remain valid while the caller holds cgroup_mutex.
494 494
495void attach(struct cgroup_subsys *ss, struct cgroup *cont, 495void 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
498Called after the task has been attached to the cgroup, to allow any 498Called after the task has been attached to the cgroup, to allow any
499post-attachment activity that requires memory allocations or blocking. 499post-attachment activity that requires memory allocations or blocking.
@@ -505,9 +505,9 @@ registration for all existing tasks.
505 505
506void exit(struct cgroup_subsys *ss, struct task_struct *task) 506void exit(struct cgroup_subsys *ss, struct task_struct *task)
507 507
508Called during task exit 508Called during task exit.
509 509
510int populate(struct cgroup_subsys *ss, struct cgroup *cont) 510int populate(struct cgroup_subsys *ss, struct cgroup *cgrp)
511 511
512Called after creation of a cgroup to allow a subsystem to populate 512Called after creation of a cgroup to allow a subsystem to populate
513the cgroup directory with file entries. The subsystem should make 513the cgroup directory with file entries. The subsystem should make
@@ -516,7 +516,7 @@ include/linux/cgroup.h for details). Note that although this
516method can return an error code, the error code is currently not 516method can return an error code, the error code is currently not
517always handled well. 517always handled well.
518 518
519void post_clone(struct cgroup_subsys *ss, struct cgroup *cont) 519void post_clone(struct cgroup_subsys *ss, struct cgroup *cgrp)
520 520
521Called at the end of cgroup_clone() to do any paramater 521Called at the end of cgroup_clone() to do any paramater
522initialization which might be required before a task could attach. For 522initialization 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 @@
1Memory Controller 1Memory Resource Controller
2
3NOTE: The Memory Resource Controller has been generically been referred
4to as the memory controller in this document. Do not confuse memory controller
5used here with the memory controller that is used in hardware.
2 6
3Salient features 7Salient features
4 8
@@ -152,7 +156,7 @@ The memory controller uses the following hierarchy
152 156
153a. Enable CONFIG_CGROUPS 157a. Enable CONFIG_CGROUPS
154b. Enable CONFIG_RESOURCE_COUNTERS 158b. Enable CONFIG_RESOURCE_COUNTERS
155c. Enable CONFIG_CGROUP_MEM_CONT 159c. Enable CONFIG_CGROUP_MEM_RES_CTLR
156 160
1571. Prepare the cgroups 1611. Prepare the cgroups
158# mkdir -p /cgroups 162# mkdir -p /cgroups
@@ -164,20 +168,20 @@ c. Enable CONFIG_CGROUP_MEM_CONT
164 168
165Since now we're in the 0 cgroup, 169Since now we're in the 0 cgroup,
166We can alter the memory limit: 170We 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
169NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo, 173NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo,
170mega or gigabytes. 174mega or gigabytes.
171 175
172# cat /cgroups/0/memory.limit_in_bytes 176# cat /cgroups/0/memory.limit_in_bytes
1734194304 Bytes 1774194304
174 178
175NOTE: The interface has now changed to display the usage in bytes 179NOTE: The interface has now changed to display the usage in bytes
176instead of pages 180instead of pages
177 181
178We can check the usage: 182We can check the usage:
179# cat /cgroups/0/memory.usage_in_bytes 183# cat /cgroups/0/memory.usage_in_bytes
1801216512 Bytes 1841216512
181 185
182A successful write to this file does not guarantee a successful set of 186A successful write to this file does not guarantee a successful set of
183this limit to the value written into the file. This can be due to a 187this 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
185availability of memory on the system. The user is required to re-read 189availability of memory on the system. The user is required to re-read
186this file after a write to guarantee the value committed by the kernel. 190this 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
1904096 Bytes 1944096
191 195
192The memory.failcnt field gives the number of times that the cgroup limit was 196The memory.failcnt field gives the number of times that the cgroup limit was
193exceeded. 197exceeded.
@@ -197,7 +201,7 @@ caches, RSS and Active pages/Inactive pages are shown.
197 201
198The memory.force_empty gives an interface to drop *all* charges by force. 202The 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
202will drop all charges in cgroup. Currently, this is maintained for test. 206will 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
233tasks have migrated away from it. Such charges are automatically dropped at 237tasks have migrated away from it. Such charges are automatically dropped at
234rmdir() if there are no tasks. 238rmdir() if there are no tasks.
235 239
2364.4 Choosing what to account -- Page Cache (unmapped) vs RSS (mapped)?
237
238The type of memory accounted by the cgroup can be limited to just
239mapped pages by writing "1" to memory.control_type field
240
241echo -n 1 > memory.control_type
242
2435. TODO 2405. TODO
244 241
2451. Add support for accounting huge pages (as a separate controller) 2421. Add support for accounting huge pages (as a separate controller)
@@ -262,18 +259,19 @@ References
2623. Emelianov, Pavel. Resource controllers based on process cgroups 2593. 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
2644. Emelianov, Pavel. RSS controller based on process cgroups (v2) 2614. 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
2665. Emelianov, Pavel. RSS controller based on process cgroups (v3) 2635. 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
2686. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/ 2656. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/
2697. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control 2667. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control
270 subsystem (v3), http://lwn.net/Articles/235534/ 267 subsystem (v3), http://lwn.net/Articles/235534/
2718. Singh, Balbir. RSS controller V2 test results (lmbench), 2688. 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
2739. Singh, Balbir. RSS controller V2 AIM9 results 2709. 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
27510. Singh, Balbir. Memory controller v6 results, 27210. 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
27711. Singh, Balbir. Memory controller v6, http://lkml.org/lkml/2007/8/17/69 27411. Singh, Balbir. Memory controller introduction (v6),
275 http://lkml.org/lkml/2007/8/17/69
27812. Corbet, Jonathan, Controlling memory use in cgroups, 27612. 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.
209The cpus and mems files in the root (top_cpuset) cpuset are 209The cpus and mems files in the root (top_cpuset) cpuset are
210read-only. The cpus file automatically tracks the value of 210read-only. The cpus file automatically tracks the value of
211cpu_online_map using a CPU hotplug notifier, and the mems file 211cpu_online_map using a CPU hotplug notifier, and the mems file
212automatically tracks the value of node_states[N_MEMORY]--i.e., 212automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,
213nodes with memory--using the cpuset_track_online_nodes() hook. 213nodes 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).
36Drivers 36Drivers
37------- 37-------
38 38
39The OHCI-1394 drivers in drivers/firewire and drivers/ieee1394 initialize 39The ohci1394 driver in drivers/ieee1394 initializes the OHCI-1394 controllers
40the OHCI-1394 controllers to a working state and can be used to enable 40to a working state and enables physical DMA by default for all remote nodes.
41physical DMA. By default you only have to load the driver, and physical 41This can be turned off by ohci1394's module parameter phys_dma=0.
42DMA access will be granted to all remote nodes, but it can be turned off 42
43when using the ohci1394 driver. 43The alternative firewire-ohci driver in drivers/firewire uses filtered physical
44 44DMA, hence is not yet suitable for remote debugging.
45Because these drivers depend on the PCI enumeration to be completed, an 45
46initialization routine which can runs pretty early (long before console_init(), 46Because ohci1394 depends on the PCI enumeration to be completed, an
47initialization routine which runs pretty early (long before console_init()
47which makes the printk buffer appear on the console can be called) was written. 48which makes the printk buffer appear on the console can be called) was written.
48 49
49To activate it, enable CONFIG_PROVIDE_OHCI1394_DMA_INIT (Kernel hacking menu: 50To 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
175What: ide-tape driver
176When: July 2008
177Files: drivers/ide/ide-tape.c
178Why: This driver might not have any users anymore and maintaining it for no
179 reason is an effort no one wants to make.
180Who: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>, Borislav Petkov
181 <petkovbb@googlemail.com>
182
183---------------------------
184
175What: libata spindown skipping and warning 185What: libata spindown skipping and warning
176When: Dec 2008 186When: Dec 2008
177Why: Some halt(8) implementations synchronize caches for and spin 187Why: 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.
308Who: David S. Miller <davem@davemloft.net> 318Who: David S. Miller <davem@davemloft.net>
319
320---------------------------
321
322What: init_mm export
323When: 2.6.26
324Why: 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.
330Who: 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
3This provides an overview of GPIO access conventions on Linux. 3This provides an overview of GPIO access conventions on Linux.
4 4
5These calls use the gpio_* naming prefix. No other calls should use that
6prefix, or the related __gpio_* prefix.
7
5 8
6What is a GPIO? 9What is a GPIO?
7=============== 10===============
@@ -69,11 +72,13 @@ in this document, but drivers acting as clients to the GPIO interface must
69not care how it's implemented.) 72not care how it's implemented.)
70 73
71That said, if the convention is supported on their platform, drivers should 74That said, if the convention is supported on their platform, drivers should
72use it when possible. Platforms should declare GENERIC_GPIO support in 75use it when possible. Platforms must declare GENERIC_GPIO support in their
73Kconfig (boolean true), which multi-platform drivers can depend on when 76Kconfig (boolean true), and provide an <asm/gpio.h> file. Drivers that can't
74using the include file: 77work without standard GPIO calls should have Kconfig entries which depend
78on GENERIC_GPIO. The GPIO calls are available, either as "real code" or as
79optimized-away stubs, when drivers use the include file:
75 80
76 #include <asm/gpio.h> 81 #include <linux/gpio.h>
77 82
78If you stick to this convention then it'll be easier for other developers to 83If you stick to this convention then it'll be easier for other developers to
79see what your code is doing, and help maintain it. 84see what your code is doing, and help maintain it.
@@ -316,6 +321,9 @@ pulldowns integrated on some platforms. Not all platforms support them,
316or support them in the same way; and any given board might use external 321or support them in the same way; and any given board might use external
317pullups (or pulldowns) so that the on-chip ones should not be used. 322pullups (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.)
324Likewise drive strength (2 mA vs 20 mA) and voltage (1.8V vs 3.3V) is a
325platform-specific issue, as are models like (not) having a one-to-one
326correspondence between configurable pins and GPIOs.
319 327
320There are other system-specific mechanisms that are not specified here, 328There are other system-specific mechanisms that are not specified here,
321like the aforementioned options for input de-glitching and wire-OR output. 329like 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 @@
1Kernel driver adt7473
2======================
3
4Supported 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
10Author: Darrick J. Wong
11
12Description
13-----------
14
15This driver implements support for the Analog Devices ADT7473 chip family.
16
17The LM85 uses the 2-wire interface compatible with the SMBUS 2.0
18specification. Using an analog to digital converter it measures three (3)
19temperatures and two (2) voltages. It has three (3) 16-bit counters for
20measuring fan speed. There are three (3) PWM outputs that can be used
21to control fan speed.
22
23A sophisticated control system for the PWM outputs is designed into the
24LM85 that allows fan speed to be adjusted automatically based on any of the
25three temperature sensors. Each PWM output is individually adjustable and
26programmable. Once configured, the ADT7473 will adjust the PWM outputs in
27response to the measured temperatures without further host intervention.
28This feature can also be disabled for manual control of the PWM's.
29
30Each of the measured inputs (voltage, temperature, fan speed) has
31corresponding high/low limit values. The ADT7473 will signal an ALARM if
32any measured value exceeds either limit.
33
34The ADT7473 samples all inputs continuously. The driver will not read
35the registers more often than once every other second. Further,
36configuration data is only read once per minute.
37
38Special Features
39----------------
40
41The ADT7473 have a 10-bit ADC and can therefore measure temperatures
42with 0.25 degC resolution. Temperature readings can be configured either
43for twos complement format or "Offset 64" format, wherein 63 is subtracted
44from the raw value to get the temperature value.
45
46The Analog Devices datasheet is very detailed and describes a procedure for
47determining an optimal configuration for the automatic PWM control.
48
49Hardware Configurations
50-----------------------
51
52The ADT7473 chips have an optional SMBALERT output that can be used to
53signal the chipset in case a limit is exceeded or the temperature sensors
54fail. Individual sensor interrupts can be masked so they won't trigger
55SMBALERT. The SMBALERT output if configured replaces the PWM2 function.
56
57Configuration Notes
58-------------------
59
60Besides 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
67point1: Set the pwm speed at a lower temperature bound.
68point2: Set the pwm speed at a higher temperature bound.
69
70The ADT7473 will scale the pwm between the lower and higher pwm speed when
71the temperature is between the two temperature boundaries. PWM values range
72from 0 (off) to 255 (full speed).
73
74Notes
75-----
76
77The NVIDIA binary driver presents an ADT7473 chip via an on-card i2c bus.
78Unfortunately, they fail to set the i2c adapter class, so this driver may
79fail 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
4Supported chips: 4Supported 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
11Author: Rudolf Marek 12Author: Rudolf Marek
12 13
@@ -25,7 +26,8 @@ may be raised, if the temperature grows enough (more than TjMax) to trigger
25the Out-Of-Spec bit. Following table summarizes the exported sysfs files: 26the Out-Of-Spec bit. Following table summarizes the exported sysfs files:
26 27
27temp1_input - Core temperature (in millidegrees Celsius). 28temp1_input - Core temperature (in millidegrees Celsius).
28temp1_crit - Maximum junction temperature (in millidegrees Celsius). 29temp1_max - All cooling devices should be turned on (on Core2).
30temp1_crit - Maximum junction temperature (in millidegrees Celsius).
29temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. 31temp1_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.
31temp1_label - Contains string "Core X", where X is processor 33temp1_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
19Authors: 20Authors:
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 @@
100-INDEX
2 - this file
3ChangeLog.ide-cd.1994-2004
4 - ide-cd changelog
5ChangeLog.ide-floppy.1996-2002
6 - ide-floppy changelog
7ChangeLog.ide-tape.1995-2002
8 - ide-tape changelog
9ide-tape.txt
10 - info on the IDE ATAPI streaming tape driver
11ide.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
54This is the multiple IDE interface driver, as evolved from hd.c. 54This is the multiple IDE interface driver, as evolved from hd.c.
55 55
56It supports up to 9 IDE interfaces per default, on one or more IRQs (usually 56It supports up to 9 IDE interfaces per default, on one or more IRQs (usually
5714 & 15). There can be up to two drives per interface, as per the ATA-6 spec. 5714 & 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
312IDE ATAPI streaming tape driver
313-------------------------------
314
315This driver is a part of the Linux ide driver and works in co-operation
316with linux/drivers/block/ide.c.
317
318The driver, in co-operation with ide.c, basically traverses the
319request-list for the block device interface. The character device
320interface, on the other hand, creates new requests, adds them
321to the request-list of the block device, and waits for their completion.
322
323Pipelined operation mode is now supported on both reads and writes.
324
325The block device major and minor numbers are determined from the
326tape's relative position in the ide interfaces, as explained in ide.c.
327
328The 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
337Run /dev/MAKEDEV to create the above entries.
338
339The general magnetic tape commands compatible interface, as defined by
340include/linux/mtio.h, is accessible through the character device.
341
342General ide driver configuration options, such as the interrupt-unmask
343flag, can be configured by issuing an ioctl to the block device interface,
344as any other ide device.
345
346Our own ide-tape ioctl's can be issued to either the block device or
347the character device interface.
348
349Maximal throughput with minimal bus load will usually be achieved in the
350following 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
359Some Terminology 310Some Terminology
360---------------- 311----------------
361IDE = Integrated Drive Electronics, meaning that each drive has a built-in 312IDE = 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)
11file at first. 11file at first.
12 12
13================================== 13==================================
14ãÂÂãÂ΋¯ã 14ãã‚Œã¯ã
15linux-2.6.24/Documentation/stable_kernel_rules.txt 15linux-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.
192The Kprobes API includes a "register" function and an "unregister" 192The Kprobes API includes a "register" function and an "unregister"
193function for each type of probe. Here are terse, mini-man-page 193function for each type of probe. Here are terse, mini-man-page
194specifications for these functions and the associated probe handlers 194specifications for these functions and the associated probe handlers
195that you'll write. See the latter half of this document for examples. 195that you'll write. See the files in the samples/kprobes/ sub-directory
196for examples.
196 197
1974.1 register_kprobe 1984.1 register_kprobe
198 199
@@ -420,249 +421,15 @@ e. Watchpoint probes (which fire on data references).
420 421
4218. Kprobes Example 4228. Kprobes Example
422 423
423Here's a sample kernel module showing the use of kprobes to dump a 424See samples/kprobes/kprobe_example.c
424stack 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*/
433static struct kprobe kp;
434
435/*kprobe pre_handler: called just before the probed instruction is executed*/
436int 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*/
445void 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 */
455int 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
463static 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
480static void __exit kprobe_exit(void)
481{
482 unregister_kprobe(&kp);
483 printk("kprobe unregistered\n");
484}
485
486module_init(kprobe_init)
487module_exit(kprobe_exit)
488MODULE_LICENSE("GPL");
489----- cut here -----
490
491You can build the kernel module, kprobe-example.ko, using the following
492Makefile:
493----- cut here -----
494obj-m := kprobe-example.o
495KDIR := /lib/modules/$(shell uname -r)/build
496PWD := $(shell pwd)
497default:
498 $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
499clean:
500 rm -f *.mod.c *.ko *.o
501----- cut here -----
502
503$ make
504$ su -
505...
506# insmod kprobe-example.ko
507
508You will see the trace data in /var/log/messages and on the console
509whenever do_fork() is invoked to create a new process.
510 425
5119. Jprobes Example 4269. Jprobes Example
512 427
513Here's a sample kernel module showing the use of jprobes to dump 428See samples/kprobes/jprobe_example.c
514the 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 */
530long 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
542static struct jprobe my_jprobe = {
543 .entry = jdo_fork
544};
545
546static 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
560static void __exit jprobe_exit(void)
561{
562 unregister_jprobe(&my_jprobe);
563 printk("jprobe unregistered\n");
564}
565
566module_init(jprobe_init)
567module_exit(jprobe_exit)
568MODULE_LICENSE("GPL");
569----- cut here -----
570
571Build and insert the kernel module as shown in the above kprobe
572example. You will see the trace data in /var/log/messages and on
573the console whenever do_fork() is invoked to create a new process.
574(Some messages may be suppressed if syslogd is configured to
575eliminate duplicate messages.)
576 429
57710. Kretprobes Example 43010. Kretprobes Example
578 431
579Here's a sample kernel module showing the use of return probes to 432See samples/kprobes/kretprobe_example.c
580report 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 */
589struct my_data {
590 ktime_t entry_stamp;
591};
592
593static const char *probed_func = "sys_open";
594
595/* Timestamp function entry. */
596static 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. */
611static 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
627static 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
634static 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
647static 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
656module_init(kretprobe_init)
657module_exit(kretprobe_exit)
658MODULE_LICENSE("GPL");
659----- cut here -----
660
661Build and insert the kernel module as shown in the above kprobe
662example. You will see the trace data in /var/log/messages and on the
663console whenever sys_open() returns a negative value. (Some messages
664may be suppressed if syslogd is configured to eliminate duplicate
665messages.)
666 433
667For additional information on Kprobes, refer to the following URLs: 434For additional information on Kprobes, refer to the following URLs:
668http://www-106.ibm.com/developerworks/library/l-kprobes.html?ca=dgr-lnxw42Kprobe 435http://www-106.ibm.com/developerworks/library/l-kprobes.html?ca=dgr-lnxw42Kprobe
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
160procfs: /proc/acpi/ibm/hotkey 160procfs: /proc/acpi/ibm/hotkey
161sysfs device attribute: hotkey_* 161sysfs device attribute: hotkey_*
162 162
163In a ThinkPad, the ACPI HKEY handler is responsible for comunicating 163In a ThinkPad, the ACPI HKEY handler is responsible for communicating
164some important events and also keyboard hot key presses to the operating 164some important events and also keyboard hot key presses to the operating
165system. Enabling the hotkey functionality of thinkpad-acpi signals the 165system. Enabling the hotkey functionality of thinkpad-acpi signals the
166firmware that such a driver is present, and modifies how the ThinkPad 166firmware 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
193modified do anything. Not all hot keys can be individually controlled 193modified do anything. Not all hot keys can be individually controlled
194by the mask. Some models do not support the mask at all, and in those 194by the mask. Some models do not support the mask at all, and in those
195models, hot keys cannot be controlled individually. The behaviour of 195models, hot keys cannot be controlled individually. The behaviour of
196the mask is, therefore, higly dependent on the ThinkPad model. 196the mask is, therefore, highly dependent on the ThinkPad model.
197 197
198Note that unmasking some keys prevents their default behavior. For 198Note that unmasking some keys prevents their default behavior. For
199example, if Fn+F5 is unmasked, that key will no longer enable/disable 199example, 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
3940x1004 0x03 FN+F4 Sleep button (ACPI sleep button 4010x1004 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
4050x1005 0x04 FN+F5 Radio. Enables/disables 4120x1005 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
4140x1006 0x05 FN+F6 - 4210x1006 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
4190x1008 0x07 FN+F8 IBM: toggle screen expand 4260x1008 0x07 FN+F8 IBM: toggle screen expand
420 Lenovo: configure ultranav 427 Lenovo: configure UltraNav
421 428
4220x1009 0x08 FN+F9 - 4290x1009 0x08 FN+F9 -
423 .. .. .. 430 .. .. ..
@@ -447,7 +454,7 @@ event code Key Notes
4470x1011 0x10 FN+END Brightness down. See brightness 4540x1011 0x10 FN+END Brightness down. See brightness
448 up for details. 455 up for details.
449 456
4500x1012 0x11 FN+PGUP Thinklight toggle. This key is 4570x1012 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
4720x1018 0x17 THINKPAD Thinkpad/Access IBM/Lenovo key 4790x1018 0x17 THINKPAD ThinkPad/Access IBM/Lenovo key
473 480
4740x1019 0x18 unknown 4810x1019 0x18 unknown
475.. .. .. 482.. .. ..
@@ -488,9 +495,17 @@ If a key is mapped to KEY_UNKNOWN, it generates an input event that
488includes an scan code. If a key is mapped to anything else, it will 495includes an scan code. If a key is mapped to anything else, it will
489generate input device EV_KEY events. 496generate input device EV_KEY events.
490 497
498In addition to the EV_KEY events, thinkpad-acpi may also issue EV_SW
499events for switches:
500
501SW_RADIO T60 and later hardare rfkill rocker switch
502SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A
503
491Non hot-key ACPI HKEY event map: 504Non hot-key ACPI HKEY event map:
4920x5001 Lid closed 5050x5001 Lid closed
4930x5002 Lid opened 5060x5002 Lid opened
5070x5009 Tablet swivel: switched to tablet mode
5080x500A Tablet swivel: switched to normal mode
4940x7000 Radio Switch may have changed state 5090x7000 Radio Switch may have changed state
495 510
496The above events are not propagated by the driver, except for legacy 511The 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
5060x3003 Bay ejection (see 0x2x05) complete, can sleep again 5210x3003 Bay ejection (see 0x2x05) complete, can sleep again
5070x4003 Undocked (see 0x2x04), can sleep again 5220x4003 Undocked (see 0x2x04), can sleep again
5080x5009 Tablet swivel: switched to tablet mode 5230x500B Tablet pen inserted into its storage bay
5090x500A Tablet swivel: switched to normal mode
5100x500B Tablet pen insterted into its storage bay
5110x500C Tablet pen removed from its storage bay 5240x500C Tablet pen removed from its storage bay
5120x5010 Brightness level changed (newer Lenovo BIOSes) 5250x5010 Brightness level changed (newer Lenovo BIOSes)
513 526
@@ -539,7 +552,7 @@ sysfs (it is read-only).
539If the hotkey_report_mode module parameter is set to 1 or 2, it cannot 552If the hotkey_report_mode module parameter is set to 1 or 2, it cannot
540be changed later through sysfs (any writes will return -EPERM to signal 553be changed later through sysfs (any writes will return -EPERM to signal
541that hotkey_report_mode was locked. On 2.6.23 and later, where 554that hotkey_report_mode was locked. On 2.6.23 and later, where
542hotkey_report_mode cannot be changed at all, writes will return -EACES). 555hotkey_report_mode cannot be changed at all, writes will return -EACCES).
543 556
544hotkey_report_mode set to 1 makes the driver export through the procfs 557hotkey_report_mode set to 1 makes the driver export through the procfs
545ACPI event interface all hot key presses (which are *also* sent to the 558ACPI 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
590Video output control -- /proc/acpi/ibm/video 603Video 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
801The cmos command interface is prone to firmware split-brain problems, as 814The cmos command interface is prone to firmware split-brain problems, as
802in newer ThinkPads it is just a compatibility layer. Do not use it, it is 815in 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,
1024EC and CMOS. To select which one should be used, use the 1037EC and CMOS. To select which one should be used, use the
1025brightness_mode module parameter: brightness_mode=1 selects EC mode, 1038brightness_mode module parameter: brightness_mode=1 selects EC mode,
1026brightness_mode=2 selects CMOS mode, brightness_mode=3 selects both EC 1039brightness_mode=2 selects CMOS mode, brightness_mode=3 selects both EC
1027and CMOS. The driver tries to autodetect which interface to use. 1040and CMOS. The driver tries to auto-detect which interface to use.
1028 1041
1029When display backlight brightness controls are available through the 1042When display backlight brightness controls are available through the
1030standard ACPI interface, it is best to use it instead of this direct 1043standard ACPI interface, it is best to use it instead of this direct
@@ -1266,8 +1279,8 @@ experimental=1 parameter when loading the module.
1266This feature shows the presence and current state of a W-WAN (Sierra 1279This feature shows the presence and current state of a W-WAN (Sierra
1267Wireless EV-DO) device. 1280Wireless EV-DO) device.
1268 1281
1269It was tested on a Lenovo Thinkpad X60. It should probably work on other 1282It was tested on a Lenovo ThinkPad X60. It should probably work on other
1270Thinkpad models which come with this module installed. 1283ThinkPad models which come with this module installed.
1271 1284
1272Procfs notes: 1285Procfs 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
1292Multiple Commands, Module Parameters 1305Multiple Commands, Module Parameters
@@ -1309,7 +1322,7 @@ Enabling debugging output
1309The module takes a debug parameter which can be used to selectively 1322The module takes a debug parameter which can be used to selectively
1310enable various classes of debugging output, for example: 1323enable various classes of debugging output, for example:
1311 1324
1312 modprobe ibm_acpi debug=0xffff 1325 modprobe thinkpad_acpi debug=0xffff
1313 1326
1314will enable all debugging output classes. It takes a bitmask, so 1327will enable all debugging output classes. It takes a bitmask, so
1315to enable more than one output class, just add their values. 1328to 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).
13580x020101: Marker for thinkpad-acpi with hot key NVRAM polling 13710x020101: 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
125The ID table is an array of struct pci_device_id entries ending with an 125The ID table is an array of struct pci_device_id entries ending with an
126all-zero entry. Each entry consists of: 126all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred
127method 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
331To enter "standby" (ACPI S1) or "Suspend to RAM" (STR, ACPI S3) states, or 334To enter "standby" (ACPI S1) or "Suspend to RAM" (STR, ACPI S3) states, or
332the similarly named APM states, only PM_EVENT_SUSPEND is used; for "Suspend 335the similarly named APM states, only PM_EVENT_SUSPEND is used; the other event
333to Disk" (STD, hibernate, ACPI S4), all of those event codes are used. 336codes are used for hibernation ("Suspend to Disk", STD, ACPI S4).
334 337
335There's also PM_EVENT_ON, a value which never appears as a suspend event 338There's also PM_EVENT_ON, a value which never appears as a suspend event
336but is sometimes used to record the "not suspended" device state. 339but 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----------------
145schedstats also adds a new /proc/<pid/schedstat file to include some of 145schedstats also adds a new /proc/<pid>/schedstat file to include some of
146the same information on a per-process level. There are three fields in 146the same information on a per-process level. There are three fields in
147this file correlating for that process to: 147this 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
23Procedure for submitting patches to the -stable tree: 24Procedure 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
148temp Current temperature as reported by thermal zone (sensor) 148temp 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
165trip_point_[0-*]_temp The temperature above which trip point will be fired 165trip_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
198max_state The maximum permissible cooling state of this cooling device. 198max_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 @@
1usb-help.txt 1usb-help.txt
22000-July-12 22008-Mar-7
3 3
4For USB help other than the readme files that are located in 4For USB help other than the readme files that are located in
5Documentation/usb/*, see the following: 5Documentation/usb/*, see the following:
@@ -10,9 +10,7 @@ Linux-USB project: http://www.linux-usb.org
10Linux USB Guide: http://linux-usb.sourceforge.net 10Linux USB Guide: http://linux-usb.sourceforge.net
11Linux-USB device overview (working devices and drivers): 11Linux-USB device overview (working devices and drivers):
12 http://www.qbik.ch/usb/devices/ 12 http://www.qbik.ch/usb/devices/
13 13
14The Linux-USB mailing lists are: 14The 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
51Trying to find an issue in the dentry cache? Try 51Trying to find an issue in the dentry cache? Try
52 52
53 slub_debug=,dentry_cache 53 slub_debug=,dentry
54 54
55to only enable debugging on the dentry cache. 55to only enable debugging on the dentry cache.
56 56
57Red zoning and tracking may realign the slab. We can just apply sanity checks 57Red zoning and tracking may realign the slab. We can just apply sanity checks
58to the dentry cache with 58to the dentry cache with
59 59
60 slub_debug=F,dentry_cache 60 slub_debug=F,dentry
61 61
62In case you forgot to enable debugging on the kernel command line: It is 62In case you forgot to enable debugging on the kernel command line: It is
63possible to enable debugging manually when the kernel is up. Look at the 63possible to enable debugging manually when the kernel is up. Look at the