diff options
Diffstat (limited to 'Documentation')
28 files changed, 142 insertions, 420 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 30b327a116ea..fc8e7c7d182f 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -183,8 +183,6 @@ i386/ | |||
183 | - directory with info about Linux on Intel 32 bit architecture. | 183 | - directory with info about Linux on Intel 32 bit architecture. |
184 | ia64/ | 184 | ia64/ |
185 | - directory with info about Linux on Intel 64 bit architecture. | 185 | - directory with info about Linux on Intel 64 bit architecture. |
186 | ide.txt | ||
187 | - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). | ||
188 | infiniband/ | 186 | infiniband/ |
189 | - directory with documents concerning Linux InfiniBand support. | 187 | - directory with documents concerning Linux InfiniBand support. |
190 | initrd.txt | 188 | initrd.txt |
@@ -227,8 +225,6 @@ kprobes.txt | |||
227 | - documents the kernel probes debugging feature. | 225 | - documents the kernel probes debugging feature. |
228 | kref.txt | 226 | kref.txt |
229 | - docs on adding reference counters (krefs) to kernel objects. | 227 | - docs on adding reference counters (krefs) to kernel objects. |
230 | laptop-mode.txt | ||
231 | - how to conserve battery power using laptop-mode. | ||
232 | laptops/ | 228 | laptops/ |
233 | - directory with laptop related info and laptop driver documentation. | 229 | - directory with laptop related info and laptop driver documentation. |
234 | ldm.txt | 230 | ldm.txt |
@@ -303,12 +299,8 @@ pcmcia/ | |||
303 | - info on the Linux PCMCIA driver. | 299 | - info on the Linux PCMCIA driver. |
304 | pi-futex.txt | 300 | pi-futex.txt |
305 | - documentation on lightweight PI-futexes. | 301 | - documentation on lightweight PI-futexes. |
306 | pm.txt | ||
307 | - info on Linux power management support. | ||
308 | pnp.txt | 302 | pnp.txt |
309 | - Linux Plug and Play documentation. | 303 | - Linux Plug and Play documentation. |
310 | power_supply_class.txt | ||
311 | - Tells userspace about battery, UPS, AC or DC power supply properties | ||
312 | power/ | 304 | power/ |
313 | - directory with info on Linux PCI power management. | 305 | - directory with info on Linux PCI power management. |
314 | powerpc/ | 306 | powerpc/ |
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/acpi/dsdt-override.txt b/Documentation/acpi/dsdt-override.txt index 5008f256a2db..febbb1ba4d23 100644 --- a/Documentation/acpi/dsdt-override.txt +++ b/Documentation/acpi/dsdt-override.txt | |||
@@ -1,15 +1,7 @@ | |||
1 | Linux supports two methods of overriding the BIOS DSDT: | 1 | Linux supports a method of overriding the BIOS DSDT: |
2 | 2 | ||
3 | CONFIG_ACPI_CUSTOM_DSDT builds the image into the kernel. | 3 | CONFIG_ACPI_CUSTOM_DSDT builds the image into the kernel. |
4 | 4 | ||
5 | CONFIG_ACPI_CUSTOM_DSDT_INITRD adds the image to the initrd. | 5 | When to use this method is described in detail on the |
6 | |||
7 | When to use these methods is described in detail on the | ||
8 | Linux/ACPI home page: | 6 | Linux/ACPI home page: |
9 | http://www.lesswatts.org/projects/acpi/overridingDSDT.php | 7 | http://www.lesswatts.org/projects/acpi/overridingDSDT.php |
10 | |||
11 | Note that if both options are used, the DSDT supplied | ||
12 | by the INITRD method takes precedence. | ||
13 | |||
14 | Documentation/initramfs-add-dsdt.sh is provided for convenience | ||
15 | for use with the CONFIG_ACPI_CUSTOM_DSDT_INITRD method. | ||
diff --git a/Documentation/acpi/initramfs-add-dsdt.sh b/Documentation/acpi/initramfs-add-dsdt.sh deleted file mode 100755 index 17ef6e838e14..000000000000 --- a/Documentation/acpi/initramfs-add-dsdt.sh +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | # Adds a DSDT file to the initrd (if it's an initramfs) | ||
3 | # first argument is the name of archive | ||
4 | # second argument is the name of the file to add | ||
5 | # The file will be copied as /DSDT.aml | ||
6 | |||
7 | # 20060126: fix "Premature end of file" with some old cpio (Roland Robic) | ||
8 | # 20060205: this time it should really work | ||
9 | |||
10 | # check the arguments | ||
11 | if [ $# -ne 2 ]; then | ||
12 | program_name=$(basename $0) | ||
13 | echo "\ | ||
14 | $program_name: too few arguments | ||
15 | Usage: $program_name initrd-name.img DSDT-to-add.aml | ||
16 | Adds a DSDT file to an initrd (in initramfs format) | ||
17 | |||
18 | initrd-name.img: filename of the initrd in initramfs format | ||
19 | DSDT-to-add.aml: filename of the DSDT file to add | ||
20 | " 1>&2 | ||
21 | exit 1 | ||
22 | fi | ||
23 | |||
24 | # we should check it's an initramfs | ||
25 | |||
26 | tempcpio=$(mktemp -d) | ||
27 | # cleanup on exit, hangup, interrupt, quit, termination | ||
28 | trap 'rm -rf $tempcpio' 0 1 2 3 15 | ||
29 | |||
30 | # extract the archive | ||
31 | gunzip -c "$1" > "$tempcpio"/initramfs.cpio || exit 1 | ||
32 | |||
33 | # copy the DSDT file at the root of the directory so that we can call it "/DSDT.aml" | ||
34 | cp -f "$2" "$tempcpio"/DSDT.aml | ||
35 | |||
36 | # add the file | ||
37 | cd "$tempcpio" | ||
38 | (echo DSDT.aml | cpio --quiet -H newc -o -A -O "$tempcpio"/initramfs.cpio) || exit 1 | ||
39 | cd "$OLDPWD" | ||
40 | |||
41 | # re-compress the archive | ||
42 | gzip -c "$tempcpio"/initramfs.cpio > "$1" | ||
43 | |||
diff --git a/Documentation/cdrom/ide-cd b/Documentation/cdrom/ide-cd index 29721bfcde12..91c0dcc6fa5c 100644 --- a/Documentation/cdrom/ide-cd +++ b/Documentation/cdrom/ide-cd | |||
@@ -45,7 +45,7 @@ This driver provides the following features: | |||
45 | --------------- | 45 | --------------- |
46 | 46 | ||
47 | 0. The ide-cd relies on the ide disk driver. See | 47 | 0. The ide-cd relies on the ide disk driver. See |
48 | Documentation/ide.txt for up-to-date information on the ide | 48 | Documentation/ide/ide.txt for up-to-date information on the ide |
49 | driver. | 49 | driver. |
50 | 50 | ||
51 | 1. Make sure that the ide and ide-cd drivers are compiled into the | 51 | 1. Make sure that the ide and ide-cd drivers are compiled into the |
@@ -64,7 +64,7 @@ This driver provides the following features: | |||
64 | 64 | ||
65 | Depending on what type of IDE interface you have, you may need to | 65 | Depending on what type of IDE interface you have, you may need to |
66 | specify additional configuration options. See | 66 | specify additional configuration options. See |
67 | Documentation/ide.txt. | 67 | Documentation/ide/ide.txt. |
68 | 68 | ||
69 | 2. You should also ensure that the iso9660 filesystem is either | 69 | 2. You should also ensure that the iso9660 filesystem is either |
70 | compiled into the kernel or available as a loadable module. You | 70 | compiled into the kernel or available as a loadable module. You |
@@ -84,7 +84,7 @@ This driver provides the following features: | |||
84 | on the primary IDE interface are called `hda' and `hdb', | 84 | on the primary IDE interface are called `hda' and `hdb', |
85 | respectively. The drives on the secondary interface are called | 85 | respectively. The drives on the secondary interface are called |
86 | `hdc' and `hdd'. (Interfaces at other locations get other letters | 86 | `hdc' and `hdd'. (Interfaces at other locations get other letters |
87 | in the third position; see Documentation/ide.txt.) | 87 | in the third position; see Documentation/ide/ide.txt.) |
88 | 88 | ||
89 | If you want your CDROM drive to be found automatically by the | 89 | If you want your CDROM drive to be found automatically by the |
90 | driver, you should make sure your IDE interface uses either the | 90 | driver, you should make sure your IDE interface uses either the |
@@ -93,7 +93,7 @@ This driver provides the following features: | |||
93 | be jumpered as `master'. (If for some reason you cannot configure | 93 | be jumpered as `master'. (If for some reason you cannot configure |
94 | your system in this manner, you can probably still use the driver. | 94 | your system in this manner, you can probably still use the driver. |
95 | You may have to pass extra configuration information to the kernel | 95 | You may have to pass extra configuration information to the kernel |
96 | when you boot, however. See Documentation/ide.txt for more | 96 | when you boot, however. See Documentation/ide/ide.txt for more |
97 | information.) | 97 | information.) |
98 | 98 | ||
99 | 4. Boot the system. If the drive is recognized, you should see a | 99 | 4. Boot the system. If the drive is recognized, you should see a |
@@ -201,7 +201,7 @@ TEST | |||
201 | This section discusses some common problems encountered when trying to | 201 | This section discusses some common problems encountered when trying to |
202 | use the driver, and some possible solutions. Note that if you are | 202 | use the driver, and some possible solutions. Note that if you are |
203 | experiencing problems, you should probably also review | 203 | experiencing problems, you should probably also review |
204 | Documentation/ide.txt for current information about the underlying | 204 | Documentation/ide/ide.txt for current information about the underlying |
205 | IDE support code. Some of these items apply only to earlier versions | 205 | IDE support code. Some of these items apply only to earlier versions |
206 | of the driver, but are mentioned here for completeness. | 206 | of the driver, but are mentioned here for completeness. |
207 | 207 | ||
@@ -211,7 +211,7 @@ from the driver. | |||
211 | a. Drive is not detected during booting. | 211 | a. Drive is not detected during booting. |
212 | 212 | ||
213 | - Review the configuration instructions above and in | 213 | - Review the configuration instructions above and in |
214 | Documentation/ide.txt, and check how your hardware is | 214 | Documentation/ide/ide.txt, and check how your hardware is |
215 | configured. | 215 | configured. |
216 | 216 | ||
217 | - If your drive is the only device on an IDE interface, it should | 217 | - If your drive is the only device on an IDE interface, it should |
@@ -219,7 +219,7 @@ a. Drive is not detected during booting. | |||
219 | 219 | ||
220 | - If your IDE interface is not at the standard addresses of 0x170 | 220 | - If your IDE interface is not at the standard addresses of 0x170 |
221 | or 0x1f0, you'll need to explicitly inform the driver using a | 221 | or 0x1f0, you'll need to explicitly inform the driver using a |
222 | lilo option. See Documentation/ide.txt. (This feature was | 222 | lilo option. See Documentation/ide/ide.txt. (This feature was |
223 | added around kernel version 1.3.30.) | 223 | added around kernel version 1.3.30.) |
224 | 224 | ||
225 | - If the autoprobing is not finding your drive, you can tell the | 225 | - If the autoprobing is not finding your drive, you can tell the |
@@ -245,7 +245,7 @@ a. Drive is not detected during booting. | |||
245 | Support for some interfaces needing extra initialization is | 245 | Support for some interfaces needing extra initialization is |
246 | provided in later 1.3.x kernels. You may need to turn on | 246 | provided in later 1.3.x kernels. You may need to turn on |
247 | additional kernel configuration options to get them to work; | 247 | additional kernel configuration options to get them to work; |
248 | see Documentation/ide.txt. | 248 | see Documentation/ide/ide.txt. |
249 | 249 | ||
250 | Even if support is not available for your interface, you may be | 250 | Even if support is not available for your interface, you may be |
251 | able to get it to work with the following procedure. First boot | 251 | able to get it to work with the following procedure. First boot |
@@ -299,7 +299,7 @@ c. System hangups. | |||
299 | be worked around by specifying the `serialize' option when | 299 | be worked around by specifying the `serialize' option when |
300 | booting. Recent kernels should be able to detect the need for | 300 | booting. Recent kernels should be able to detect the need for |
301 | this automatically in most cases, but the detection is not | 301 | this automatically in most cases, but the detection is not |
302 | foolproof. See Documentation/ide.txt for more information | 302 | foolproof. See Documentation/ide/ide.txt for more information |
303 | about the `serialize' option and the CMD640B. | 303 | about the `serialize' option and the CMD640B. |
304 | 304 | ||
305 | - Note that many MS-DOS CDROM drivers will work with such buggy | 305 | - Note that many MS-DOS CDROM drivers will work with such buggy |
diff --git a/Documentation/controllers/memory.txt b/Documentation/controllers/memory.txt index 6015347b41e2..866b9cd9a959 100644 --- a/Documentation/controllers/memory.txt +++ b/Documentation/controllers/memory.txt | |||
@@ -1,4 +1,8 @@ | |||
1 | Memory Controller | 1 | Memory Resource Controller |
2 | |||
3 | NOTE: The Memory Resource Controller has been generically been referred | ||
4 | to as the memory controller in this document. Do not confuse memory controller | ||
5 | used here with the memory controller that is used in hardware. | ||
2 | 6 | ||
3 | Salient features | 7 | Salient features |
4 | 8 | ||
@@ -152,7 +156,7 @@ The memory controller uses the following hierarchy | |||
152 | 156 | ||
153 | a. Enable CONFIG_CGROUPS | 157 | a. Enable CONFIG_CGROUPS |
154 | b. Enable CONFIG_RESOURCE_COUNTERS | 158 | b. Enable CONFIG_RESOURCE_COUNTERS |
155 | c. Enable CONFIG_CGROUP_MEM_CONT | 159 | c. Enable CONFIG_CGROUP_MEM_RES_CTLR |
156 | 160 | ||
157 | 1. Prepare the cgroups | 161 | 1. Prepare the cgroups |
158 | # mkdir -p /cgroups | 162 | # mkdir -p /cgroups |
@@ -164,7 +168,7 @@ c. Enable CONFIG_CGROUP_MEM_CONT | |||
164 | 168 | ||
165 | Since now we're in the 0 cgroup, | 169 | Since now we're in the 0 cgroup, |
166 | We can alter the memory limit: | 170 | We can alter the memory limit: |
167 | # echo -n 4M > /cgroups/0/memory.limit_in_bytes | 171 | # echo 4M > /cgroups/0/memory.limit_in_bytes |
168 | 172 | ||
169 | NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo, | 173 | NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo, |
170 | mega or gigabytes. | 174 | mega or gigabytes. |
@@ -185,7 +189,7 @@ number of factors, such as rounding up to page boundaries or the total | |||
185 | availability of memory on the system. The user is required to re-read | 189 | availability of memory on the system. The user is required to re-read |
186 | this file after a write to guarantee the value committed by the kernel. | 190 | this file after a write to guarantee the value committed by the kernel. |
187 | 191 | ||
188 | # echo -n 1 > memory.limit_in_bytes | 192 | # echo 1 > memory.limit_in_bytes |
189 | # cat memory.limit_in_bytes | 193 | # cat memory.limit_in_bytes |
190 | 4096 | 194 | 4096 |
191 | 195 | ||
@@ -197,7 +201,7 @@ caches, RSS and Active pages/Inactive pages are shown. | |||
197 | 201 | ||
198 | The memory.force_empty gives an interface to drop *all* charges by force. | 202 | The memory.force_empty gives an interface to drop *all* charges by force. |
199 | 203 | ||
200 | # echo -n 1 > memory.force_empty | 204 | # echo 1 > memory.force_empty |
201 | 205 | ||
202 | will drop all charges in cgroup. Currently, this is maintained for test. | 206 | will drop all charges in cgroup. Currently, this is maintained for test. |
203 | 207 | ||
diff --git a/Documentation/debugging-via-ohci1394.txt b/Documentation/debugging-via-ohci1394.txt index de4804e8b396..c360d4e91b48 100644 --- a/Documentation/debugging-via-ohci1394.txt +++ b/Documentation/debugging-via-ohci1394.txt | |||
@@ -36,14 +36,15 @@ available (notebooks) or too slow for extensive debug information (like ACPI). | |||
36 | Drivers | 36 | Drivers |
37 | ------- | 37 | ------- |
38 | 38 | ||
39 | The OHCI-1394 drivers in drivers/firewire and drivers/ieee1394 initialize | 39 | The ohci1394 driver in drivers/ieee1394 initializes the OHCI-1394 controllers |
40 | the OHCI-1394 controllers to a working state and can be used to enable | 40 | to a working state and enables physical DMA by default for all remote nodes. |
41 | physical DMA. By default you only have to load the driver, and physical | 41 | This can be turned off by ohci1394's module parameter phys_dma=0. |
42 | DMA access will be granted to all remote nodes, but it can be turned off | 42 | |
43 | when using the ohci1394 driver. | 43 | The alternative firewire-ohci driver in drivers/firewire uses filtered physical |
44 | 44 | DMA, hence is not yet suitable for remote debugging. | |
45 | Because these drivers depend on the PCI enumeration to be completed, an | 45 | |
46 | initialization routine which can runs pretty early (long before console_init(), | 46 | Because ohci1394 depends on the PCI enumeration to be completed, an |
47 | initialization routine which runs pretty early (long before console_init() | ||
47 | which makes the printk buffer appear on the console can be called) was written. | 48 | which makes the printk buffer appear on the console can be called) was written. |
48 | 49 | ||
49 | To activate it, enable CONFIG_PROVIDE_OHCI1394_DMA_INIT (Kernel hacking menu: | 50 | To activate it, enable CONFIG_PROVIDE_OHCI1394_DMA_INIT (Kernel hacking menu: |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 7279595b96c3..9119d037c2ce 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -172,6 +172,16 @@ Who: Len Brown <len.brown@intel.com> | |||
172 | 172 | ||
173 | --------------------------- | 173 | --------------------------- |
174 | 174 | ||
175 | What: ide-tape driver | ||
176 | When: July 2008 | ||
177 | Files: drivers/ide/ide-tape.c | ||
178 | Why: This driver might not have any users anymore and maintaining it for no | ||
179 | reason is an effort no one wants to make. | ||
180 | Who: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>, Borislav Petkov | ||
181 | <petkovbb@googlemail.com> | ||
182 | |||
183 | --------------------------- | ||
184 | |||
175 | What: libata spindown skipping and warning | 185 | What: libata spindown skipping and warning |
176 | When: Dec 2008 | 186 | When: Dec 2008 |
177 | Why: Some halt(8) implementations synchronize caches for and spin | 187 | Why: Some halt(8) implementations synchronize caches for and spin |
@@ -279,3 +289,15 @@ Why: Largely unmaintained and almost entirely unused. File system | |||
279 | is largely pointless as without a lot of work only the most | 289 | is largely pointless as without a lot of work only the most |
280 | trivial of Solaris binaries can work with the emulation code. | 290 | trivial of Solaris binaries can work with the emulation code. |
281 | Who: David S. Miller <davem@davemloft.net> | 291 | Who: David S. Miller <davem@davemloft.net> |
292 | |||
293 | --------------------------- | ||
294 | |||
295 | What: init_mm export | ||
296 | When: 2.6.26 | ||
297 | Why: Not used in-tree. The current out-of-tree users used it to | ||
298 | work around problems in the CPA code which should be resolved | ||
299 | by now. One usecase was described to provide verification code | ||
300 | of the CPA operation. That's a good idea in general, but such | ||
301 | code / infrastructure should be in the kernel and not in some | ||
302 | out-of-tree driver. | ||
303 | Who: Thomas Gleixner <tglx@linutronix.de> | ||
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 5681e2fa1496..518ebe609e2b 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1506,13 +1506,13 @@ laptop_mode | |||
1506 | ----------- | 1506 | ----------- |
1507 | 1507 | ||
1508 | laptop_mode is a knob that controls "laptop mode". All the things that are | 1508 | laptop_mode is a knob that controls "laptop mode". All the things that are |
1509 | controlled by this knob are discussed in Documentation/laptop-mode.txt. | 1509 | controlled by this knob are discussed in Documentation/laptops/laptop-mode.txt. |
1510 | 1510 | ||
1511 | block_dump | 1511 | block_dump |
1512 | ---------- | 1512 | ---------- |
1513 | 1513 | ||
1514 | block_dump enables block I/O debugging when set to a nonzero value. More | 1514 | block_dump enables block I/O debugging when set to a nonzero value. More |
1515 | information on block I/O debugging is in Documentation/laptop-mode.txt. | 1515 | information on block I/O debugging is in Documentation/laptops/laptop-mode.txt. |
1516 | 1516 | ||
1517 | swap_token_timeout | 1517 | swap_token_timeout |
1518 | ------------------ | 1518 | ------------------ |
diff --git a/Documentation/gpio.txt b/Documentation/gpio.txt index 8da724e2a0ff..54630095aa3c 100644 --- a/Documentation/gpio.txt +++ b/Documentation/gpio.txt | |||
@@ -2,6 +2,9 @@ GPIO Interfaces | |||
2 | 2 | ||
3 | This provides an overview of GPIO access conventions on Linux. | 3 | This provides an overview of GPIO access conventions on Linux. |
4 | 4 | ||
5 | These calls use the gpio_* naming prefix. No other calls should use that | ||
6 | prefix, or the related __gpio_* prefix. | ||
7 | |||
5 | 8 | ||
6 | What is a GPIO? | 9 | What is a GPIO? |
7 | =============== | 10 | =============== |
@@ -69,11 +72,13 @@ in this document, but drivers acting as clients to the GPIO interface must | |||
69 | not care how it's implemented.) | 72 | not care how it's implemented.) |
70 | 73 | ||
71 | That said, if the convention is supported on their platform, drivers should | 74 | That said, if the convention is supported on their platform, drivers should |
72 | use it when possible. Platforms should declare GENERIC_GPIO support in | 75 | use it when possible. Platforms must declare GENERIC_GPIO support in their |
73 | Kconfig (boolean true), which multi-platform drivers can depend on when | 76 | Kconfig (boolean true), and provide an <asm/gpio.h> file. Drivers that can't |
74 | using the include file: | 77 | work without standard GPIO calls should have Kconfig entries which depend |
78 | on GENERIC_GPIO. The GPIO calls are available, either as "real code" or as | ||
79 | optimized-away stubs, when drivers use the include file: | ||
75 | 80 | ||
76 | #include <asm/gpio.h> | 81 | #include <linux/gpio.h> |
77 | 82 | ||
78 | If you stick to this convention then it'll be easier for other developers to | 83 | If you stick to this convention then it'll be easier for other developers to |
79 | see what your code is doing, and help maintain it. | 84 | see what your code is doing, and help maintain it. |
@@ -316,6 +321,9 @@ pulldowns integrated on some platforms. Not all platforms support them, | |||
316 | or support them in the same way; and any given board might use external | 321 | or support them in the same way; and any given board might use external |
317 | pullups (or pulldowns) so that the on-chip ones should not be used. | 322 | pullups (or pulldowns) so that the on-chip ones should not be used. |
318 | (When a circuit needs 5 kOhm, on-chip 100 kOhm resistors won't do.) | 323 | (When a circuit needs 5 kOhm, on-chip 100 kOhm resistors won't do.) |
324 | Likewise drive strength (2 mA vs 20 mA) and voltage (1.8V vs 3.3V) is a | ||
325 | platform-specific issue, as are models like (not) having a one-to-one | ||
326 | correspondence between configurable pins and GPIOs. | ||
319 | 327 | ||
320 | There are other system-specific mechanisms that are not specified here, | 328 | There are other system-specific mechanisms that are not specified here, |
321 | like the aforementioned options for input de-glitching and wire-OR output. | 329 | like the aforementioned options for input de-glitching and wire-OR output. |
diff --git a/Documentation/ide/00-INDEX b/Documentation/ide/00-INDEX new file mode 100644 index 000000000000..d6b778842b75 --- /dev/null +++ b/Documentation/ide/00-INDEX | |||
@@ -0,0 +1,12 @@ | |||
1 | 00-INDEX | ||
2 | - this file | ||
3 | ChangeLog.ide-cd.1994-2004 | ||
4 | - ide-cd changelog | ||
5 | ChangeLog.ide-floppy.1996-2002 | ||
6 | - ide-floppy changelog | ||
7 | ChangeLog.ide-tape.1995-2002 | ||
8 | - ide-tape changelog | ||
9 | ide-tape.txt | ||
10 | - info on the IDE ATAPI streaming tape driver | ||
11 | ide.txt | ||
12 | - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). | ||
diff --git a/Documentation/ide.txt b/Documentation/ide/ide.txt index 94e2e3b9e77f..e3b3425328b6 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide/ide.txt | |||
@@ -3,11 +3,11 @@ | |||
3 | 3 | ||
4 | ============================================================================== | 4 | ============================================================================== |
5 | 5 | ||
6 | 6 | ||
7 | The hdparm utility can be used to control various IDE features on a | 7 | The hdparm utility can be used to control various IDE features on a |
8 | running system. It is packaged separately. Please Look for it on popular | 8 | running system. It is packaged separately. Please Look for it on popular |
9 | linux FTP sites. | 9 | linux FTP sites. |
10 | 10 | ||
11 | 11 | ||
12 | 12 | ||
13 | *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! | 13 | *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! |
@@ -51,7 +51,7 @@ Common pitfalls: | |||
51 | 51 | ||
52 | ================================================================================ | 52 | ================================================================================ |
53 | 53 | ||
54 | This is the multiple IDE interface driver, as evolved from hd.c. | 54 | This is the multiple IDE interface driver, as evolved from hd.c. |
55 | 55 | ||
56 | It supports up to 9 IDE interfaces per default, on one or more IRQs (usually | 56 | It supports up to 9 IDE interfaces per default, on one or more IRQs (usually |
57 | 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. | 57 | 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. |
@@ -215,17 +215,17 @@ Summary of ide driver parameters for kernel command line | |||
215 | -------------------------------------------------------- | 215 | -------------------------------------------------------- |
216 | 216 | ||
217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". | 217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". |
218 | 218 | ||
219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". | 219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". |
220 | 220 | ||
221 | "hdx=noprobe" : drive may be present, but do not probe for it | 221 | "hdx=noprobe" : drive may be present, but do not probe for it |
222 | 222 | ||
223 | "hdx=none" : drive is NOT present, ignore cmos and do not probe | 223 | "hdx=none" : drive is NOT present, ignore cmos and do not probe |
224 | 224 | ||
225 | "hdx=nowerr" : ignore the WRERR_STAT bit on this drive | 225 | "hdx=nowerr" : ignore the WRERR_STAT bit on this drive |
226 | 226 | ||
227 | "hdx=cdrom" : drive is present, and is a cdrom drive | 227 | "hdx=cdrom" : drive is present, and is a cdrom drive |
228 | 228 | ||
229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry | 229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry |
230 | 230 | ||
231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) | 231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) |
@@ -258,12 +258,10 @@ Summary of ide driver parameters for kernel command line | |||
258 | As for VLB, it is safest to not specify it. | 258 | As for VLB, it is safest to not specify it. |
259 | Bigger values are safer than smaller ones. | 259 | Bigger values are safer than smaller ones. |
260 | 260 | ||
261 | "idex=noprobe" : do not attempt to access/use this interface | ||
262 | |||
263 | "idex=base" : probe for an interface at the addr specified, | 261 | "idex=base" : probe for an interface at the addr specified, |
264 | where "base" is usually 0x1f0 or 0x170 | 262 | where "base" is usually 0x1f0 or 0x170 |
265 | and "ctl" is assumed to be "base"+0x206 | 263 | and "ctl" is assumed to be "base"+0x206 |
266 | 264 | ||
267 | "idex=base,ctl" : specify both base and ctl | 265 | "idex=base,ctl" : specify both base and ctl |
268 | 266 | ||
269 | "idex=base,ctl,irq" : specify base, ctl, and irq number | 267 | "idex=base,ctl,irq" : specify base, ctl, and irq number |
@@ -274,7 +272,7 @@ Summary of ide driver parameters for kernel command line | |||
274 | to take effect. | 272 | to take effect. |
275 | 273 | ||
276 | "idex=four" : four drives on idex and ide(x^1) share same ports | 274 | "idex=four" : four drives on idex and ide(x^1) share same ports |
277 | 275 | ||
278 | "idex=reset" : reset interface after probe | 276 | "idex=reset" : reset interface after probe |
279 | 277 | ||
280 | "idex=ata66" : informs the interface that it has an 80c cable | 278 | "idex=ata66" : informs the interface that it has an 80c cable |
@@ -309,53 +307,6 @@ are detected automatically). | |||
309 | 307 | ||
310 | ================================================================================ | 308 | ================================================================================ |
311 | 309 | ||
312 | IDE ATAPI streaming tape driver | ||
313 | ------------------------------- | ||
314 | |||
315 | This driver is a part of the Linux ide driver and works in co-operation | ||
316 | with linux/drivers/block/ide.c. | ||
317 | |||
318 | The driver, in co-operation with ide.c, basically traverses the | ||
319 | request-list for the block device interface. The character device | ||
320 | interface, on the other hand, creates new requests, adds them | ||
321 | to the request-list of the block device, and waits for their completion. | ||
322 | |||
323 | Pipelined operation mode is now supported on both reads and writes. | ||
324 | |||
325 | The block device major and minor numbers are determined from the | ||
326 | tape's relative position in the ide interfaces, as explained in ide.c. | ||
327 | |||
328 | The character device interface consists of the following devices: | ||
329 | |||
330 | ht0 major 37, minor 0 first IDE tape, rewind on close. | ||
331 | ht1 major 37, minor 1 second IDE tape, rewind on close. | ||
332 | ... | ||
333 | nht0 major 37, minor 128 first IDE tape, no rewind on close. | ||
334 | nht1 major 37, minor 129 second IDE tape, no rewind on close. | ||
335 | ... | ||
336 | |||
337 | Run /dev/MAKEDEV to create the above entries. | ||
338 | |||
339 | The general magnetic tape commands compatible interface, as defined by | ||
340 | include/linux/mtio.h, is accessible through the character device. | ||
341 | |||
342 | General ide driver configuration options, such as the interrupt-unmask | ||
343 | flag, can be configured by issuing an ioctl to the block device interface, | ||
344 | as any other ide device. | ||
345 | |||
346 | Our own ide-tape ioctl's can be issued to either the block device or | ||
347 | the character device interface. | ||
348 | |||
349 | Maximal throughput with minimal bus load will usually be achieved in the | ||
350 | following scenario: | ||
351 | |||
352 | 1. ide-tape is operating in the pipelined operation mode. | ||
353 | 2. No buffering is performed by the user backup program. | ||
354 | |||
355 | |||
356 | |||
357 | ================================================================================ | ||
358 | |||
359 | Some Terminology | 310 | Some Terminology |
360 | ---------------- | 311 | ---------------- |
361 | IDE = Integrated Drive Electronics, meaning that each drive has a built-in | 312 | IDE = Integrated Drive Electronics, meaning that each drive has a built-in |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9a5b6658c65e..622f7849edb9 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -138,7 +138,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
138 | strict -- Be less tolerant of platforms that are not | 138 | strict -- Be less tolerant of platforms that are not |
139 | strictly ACPI specification compliant. | 139 | strictly ACPI specification compliant. |
140 | 140 | ||
141 | See also Documentation/pm.txt, pci=noacpi | 141 | See also Documentation/power/pm.txt, pci=noacpi |
142 | 142 | ||
143 | acpi_apic_instance= [ACPI, IOAPIC] | 143 | acpi_apic_instance= [ACPI, IOAPIC] |
144 | Format: <int> | 144 | Format: <int> |
@@ -177,9 +177,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
177 | 177 | ||
178 | acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT | 178 | acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT |
179 | 179 | ||
180 | acpi_no_initrd_override [KNL,ACPI] | ||
181 | Disable loading custom ACPI tables from the initramfs | ||
182 | |||
183 | acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS | 180 | acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS |
184 | Format: To spoof as Windows 98: ="Microsoft Windows" | 181 | Format: To spoof as Windows 98: ="Microsoft Windows" |
185 | 182 | ||
@@ -712,7 +709,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
712 | Format: <cyl>,<head>,<sect> | 709 | Format: <cyl>,<head>,<sect> |
713 | 710 | ||
714 | hd?= [HW] (E)IDE subsystem | 711 | hd?= [HW] (E)IDE subsystem |
715 | hd?lun= See Documentation/ide.txt. | 712 | hd?lun= See Documentation/ide/ide.txt. |
716 | 713 | ||
717 | highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact | 714 | 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 | 715 | size of <nn>. This works even on boxes that have no |
@@ -766,14 +763,14 @@ and is between 256 and 4096 characters. It is defined in the file | |||
766 | 763 | ||
767 | ide= [HW] (E)IDE subsystem | 764 | ide= [HW] (E)IDE subsystem |
768 | Format: ide=nodma or ide=doubler or ide=reverse | 765 | Format: ide=nodma or ide=doubler or ide=reverse |
769 | See Documentation/ide.txt. | 766 | See Documentation/ide/ide.txt. |
770 | 767 | ||
771 | ide?= [HW] (E)IDE subsystem | 768 | ide?= [HW] (E)IDE subsystem |
772 | Format: ide?=noprobe or chipset specific parameters. | 769 | Format: ide?=noprobe or chipset specific parameters. |
773 | See Documentation/ide.txt. | 770 | See Documentation/ide/ide.txt. |
774 | 771 | ||
775 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed | 772 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed |
776 | See Documentation/ide.txt. | 773 | See Documentation/ide/ide.txt. |
777 | 774 | ||
778 | idle= [X86] | 775 | idle= [X86] |
779 | Format: idle=poll or idle=mwait | 776 | Format: idle=poll or idle=mwait |
diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt index 83f515c2905a..be89f393274f 100644 --- a/Documentation/kprobes.txt +++ b/Documentation/kprobes.txt | |||
@@ -192,7 +192,8 @@ code mapping. | |||
192 | The Kprobes API includes a "register" function and an "unregister" | 192 | The Kprobes API includes a "register" function and an "unregister" |
193 | function for each type of probe. Here are terse, mini-man-page | 193 | function for each type of probe. Here are terse, mini-man-page |
194 | specifications for these functions and the associated probe handlers | 194 | specifications for these functions and the associated probe handlers |
195 | that you'll write. See the latter half of this document for examples. | 195 | that you'll write. See the files in the samples/kprobes/ sub-directory |
196 | for examples. | ||
196 | 197 | ||
197 | 4.1 register_kprobe | 198 | 4.1 register_kprobe |
198 | 199 | ||
@@ -420,249 +421,15 @@ e. Watchpoint probes (which fire on data references). | |||
420 | 421 | ||
421 | 8. Kprobes Example | 422 | 8. Kprobes Example |
422 | 423 | ||
423 | Here's a sample kernel module showing the use of kprobes to dump a | 424 | See samples/kprobes/kprobe_example.c |
424 | stack trace and selected i386 registers when do_fork() is called. | ||
425 | ----- cut here ----- | ||
426 | /*kprobe_example.c*/ | ||
427 | #include <linux/kernel.h> | ||
428 | #include <linux/module.h> | ||
429 | #include <linux/kprobes.h> | ||
430 | #include <linux/sched.h> | ||
431 | |||
432 | /*For each probe you need to allocate a kprobe structure*/ | ||
433 | static struct kprobe kp; | ||
434 | |||
435 | /*kprobe pre_handler: called just before the probed instruction is executed*/ | ||
436 | int handler_pre(struct kprobe *p, struct pt_regs *regs) | ||
437 | { | ||
438 | printk("pre_handler: p->addr=0x%p, eip=%lx, eflags=0x%lx\n", | ||
439 | p->addr, regs->eip, regs->eflags); | ||
440 | dump_stack(); | ||
441 | return 0; | ||
442 | } | ||
443 | |||
444 | /*kprobe post_handler: called after the probed instruction is executed*/ | ||
445 | void handler_post(struct kprobe *p, struct pt_regs *regs, unsigned long flags) | ||
446 | { | ||
447 | printk("post_handler: p->addr=0x%p, eflags=0x%lx\n", | ||
448 | p->addr, regs->eflags); | ||
449 | } | ||
450 | |||
451 | /* fault_handler: this is called if an exception is generated for any | ||
452 | * instruction within the pre- or post-handler, or when Kprobes | ||
453 | * single-steps the probed instruction. | ||
454 | */ | ||
455 | int handler_fault(struct kprobe *p, struct pt_regs *regs, int trapnr) | ||
456 | { | ||
457 | printk("fault_handler: p->addr=0x%p, trap #%dn", | ||
458 | p->addr, trapnr); | ||
459 | /* Return 0 because we don't handle the fault. */ | ||
460 | return 0; | ||
461 | } | ||
462 | |||
463 | static int __init kprobe_init(void) | ||
464 | { | ||
465 | int ret; | ||
466 | kp.pre_handler = handler_pre; | ||
467 | kp.post_handler = handler_post; | ||
468 | kp.fault_handler = handler_fault; | ||
469 | kp.symbol_name = "do_fork"; | ||
470 | |||
471 | ret = register_kprobe(&kp); | ||
472 | if (ret < 0) { | ||
473 | printk("register_kprobe failed, returned %d\n", ret); | ||
474 | return ret; | ||
475 | } | ||
476 | printk("kprobe registered\n"); | ||
477 | return 0; | ||
478 | } | ||
479 | |||
480 | static void __exit kprobe_exit(void) | ||
481 | { | ||
482 | unregister_kprobe(&kp); | ||
483 | printk("kprobe unregistered\n"); | ||
484 | } | ||
485 | |||
486 | module_init(kprobe_init) | ||
487 | module_exit(kprobe_exit) | ||
488 | MODULE_LICENSE("GPL"); | ||
489 | ----- cut here ----- | ||
490 | |||
491 | You can build the kernel module, kprobe-example.ko, using the following | ||
492 | Makefile: | ||
493 | ----- cut here ----- | ||
494 | obj-m := kprobe-example.o | ||
495 | KDIR := /lib/modules/$(shell uname -r)/build | ||
496 | PWD := $(shell pwd) | ||
497 | default: | ||
498 | $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules | ||
499 | clean: | ||
500 | rm -f *.mod.c *.ko *.o | ||
501 | ----- cut here ----- | ||
502 | |||
503 | $ make | ||
504 | $ su - | ||
505 | ... | ||
506 | # insmod kprobe-example.ko | ||
507 | |||
508 | You will see the trace data in /var/log/messages and on the console | ||
509 | whenever do_fork() is invoked to create a new process. | ||
510 | 425 | ||
511 | 9. Jprobes Example | 426 | 9. Jprobes Example |
512 | 427 | ||
513 | Here's a sample kernel module showing the use of jprobes to dump | 428 | See samples/kprobes/jprobe_example.c |
514 | the arguments of do_fork(). | ||
515 | ----- cut here ----- | ||
516 | /*jprobe-example.c */ | ||
517 | #include <linux/kernel.h> | ||
518 | #include <linux/module.h> | ||
519 | #include <linux/fs.h> | ||
520 | #include <linux/uio.h> | ||
521 | #include <linux/kprobes.h> | ||
522 | |||
523 | /* | ||
524 | * Jumper probe for do_fork. | ||
525 | * Mirror principle enables access to arguments of the probed routine | ||
526 | * from the probe handler. | ||
527 | */ | ||
528 | |||
529 | /* Proxy routine having the same arguments as actual do_fork() routine */ | ||
530 | long jdo_fork(unsigned long clone_flags, unsigned long stack_start, | ||
531 | struct pt_regs *regs, unsigned long stack_size, | ||
532 | int __user * parent_tidptr, int __user * child_tidptr) | ||
533 | { | ||
534 | printk("jprobe: clone_flags=0x%lx, stack_size=0x%lx, regs=0x%p\n", | ||
535 | clone_flags, stack_size, regs); | ||
536 | /* Always end with a call to jprobe_return(). */ | ||
537 | jprobe_return(); | ||
538 | /*NOTREACHED*/ | ||
539 | return 0; | ||
540 | } | ||
541 | |||
542 | static struct jprobe my_jprobe = { | ||
543 | .entry = jdo_fork | ||
544 | }; | ||
545 | |||
546 | static int __init jprobe_init(void) | ||
547 | { | ||
548 | int ret; | ||
549 | my_jprobe.kp.symbol_name = "do_fork"; | ||
550 | |||
551 | if ((ret = register_jprobe(&my_jprobe)) <0) { | ||
552 | printk("register_jprobe failed, returned %d\n", ret); | ||
553 | return -1; | ||
554 | } | ||
555 | printk("Planted jprobe at %p, handler addr %p\n", | ||
556 | my_jprobe.kp.addr, my_jprobe.entry); | ||
557 | return 0; | ||
558 | } | ||
559 | |||
560 | static void __exit jprobe_exit(void) | ||
561 | { | ||
562 | unregister_jprobe(&my_jprobe); | ||
563 | printk("jprobe unregistered\n"); | ||
564 | } | ||
565 | |||
566 | module_init(jprobe_init) | ||
567 | module_exit(jprobe_exit) | ||
568 | MODULE_LICENSE("GPL"); | ||
569 | ----- cut here ----- | ||
570 | |||
571 | Build and insert the kernel module as shown in the above kprobe | ||
572 | example. You will see the trace data in /var/log/messages and on | ||
573 | the console whenever do_fork() is invoked to create a new process. | ||
574 | (Some messages may be suppressed if syslogd is configured to | ||
575 | eliminate duplicate messages.) | ||
576 | 429 | ||
577 | 10. Kretprobes Example | 430 | 10. Kretprobes Example |
578 | 431 | ||
579 | Here's a sample kernel module showing the use of return probes to | 432 | See samples/kprobes/kretprobe_example.c |
580 | report failed calls to sys_open(). | ||
581 | ----- cut here ----- | ||
582 | /*kretprobe-example.c*/ | ||
583 | #include <linux/kernel.h> | ||
584 | #include <linux/module.h> | ||
585 | #include <linux/kprobes.h> | ||
586 | #include <linux/ktime.h> | ||
587 | |||
588 | /* per-instance private data */ | ||
589 | struct my_data { | ||
590 | ktime_t entry_stamp; | ||
591 | }; | ||
592 | |||
593 | static const char *probed_func = "sys_open"; | ||
594 | |||
595 | /* Timestamp function entry. */ | ||
596 | static int entry_handler(struct kretprobe_instance *ri, struct pt_regs *regs) | ||
597 | { | ||
598 | struct my_data *data; | ||
599 | |||
600 | if(!current->mm) | ||
601 | return 1; /* skip kernel threads */ | ||
602 | |||
603 | data = (struct my_data *)ri->data; | ||
604 | data->entry_stamp = ktime_get(); | ||
605 | return 0; | ||
606 | } | ||
607 | |||
608 | /* If the probed function failed, log the return value and duration. | ||
609 | * Duration may turn out to be zero consistently, depending upon the | ||
610 | * granularity of time accounting on the platform. */ | ||
611 | static int return_handler(struct kretprobe_instance *ri, struct pt_regs *regs) | ||
612 | { | ||
613 | int retval = regs_return_value(regs); | ||
614 | struct my_data *data = (struct my_data *)ri->data; | ||
615 | s64 delta; | ||
616 | ktime_t now; | ||
617 | |||
618 | if (retval < 0) { | ||
619 | now = ktime_get(); | ||
620 | delta = ktime_to_ns(ktime_sub(now, data->entry_stamp)); | ||
621 | printk("%s: return val = %d (duration = %lld ns)\n", | ||
622 | probed_func, retval, delta); | ||
623 | } | ||
624 | return 0; | ||
625 | } | ||
626 | |||
627 | static struct kretprobe my_kretprobe = { | ||
628 | .handler = return_handler, | ||
629 | .entry_handler = entry_handler, | ||
630 | .data_size = sizeof(struct my_data), | ||
631 | .maxactive = 20, /* probe up to 20 instances concurrently */ | ||
632 | }; | ||
633 | |||
634 | static int __init kretprobe_init(void) | ||
635 | { | ||
636 | int ret; | ||
637 | my_kretprobe.kp.symbol_name = (char *)probed_func; | ||
638 | |||
639 | if ((ret = register_kretprobe(&my_kretprobe)) < 0) { | ||
640 | printk("register_kretprobe failed, returned %d\n", ret); | ||
641 | return -1; | ||
642 | } | ||
643 | printk("Kretprobe active on %s\n", my_kretprobe.kp.symbol_name); | ||
644 | return 0; | ||
645 | } | ||
646 | |||
647 | static void __exit kretprobe_exit(void) | ||
648 | { | ||
649 | unregister_kretprobe(&my_kretprobe); | ||
650 | printk("kretprobe unregistered\n"); | ||
651 | /* nmissed > 0 suggests that maxactive was set too low. */ | ||
652 | printk("Missed probing %d instances of %s\n", | ||
653 | my_kretprobe.nmissed, probed_func); | ||
654 | } | ||
655 | |||
656 | module_init(kretprobe_init) | ||
657 | module_exit(kretprobe_exit) | ||
658 | MODULE_LICENSE("GPL"); | ||
659 | ----- cut here ----- | ||
660 | |||
661 | Build and insert the kernel module as shown in the above kprobe | ||
662 | example. You will see the trace data in /var/log/messages and on the | ||
663 | console whenever sys_open() returns a negative value. (Some messages | ||
664 | may be suppressed if syslogd is configured to eliminate duplicate | ||
665 | messages.) | ||
666 | 433 | ||
667 | For additional information on Kprobes, refer to the following URLs: | 434 | For additional information on Kprobes, refer to the following URLs: |
668 | http://www-106.ibm.com/developerworks/library/l-kprobes.html?ca=dgr-lnxw42Kprobe | 435 | http://www-106.ibm.com/developerworks/library/l-kprobes.html?ca=dgr-lnxw42Kprobe |
diff --git a/Documentation/laptops/00-INDEX b/Documentation/laptops/00-INDEX index 729c2c062e10..ee5692b26dd4 100644 --- a/Documentation/laptops/00-INDEX +++ b/Documentation/laptops/00-INDEX | |||
@@ -2,6 +2,8 @@ | |||
2 | - This file | 2 | - This file |
3 | acer-wmi.txt | 3 | acer-wmi.txt |
4 | - information on the Acer Laptop WMI Extras driver. | 4 | - information on the Acer Laptop WMI Extras driver. |
5 | laptop-mode.txt | ||
6 | - how to conserve battery power using laptop-mode. | ||
5 | sony-laptop.txt | 7 | sony-laptop.txt |
6 | - Sony Notebook Control Driver (SNC) Readme. | 8 | - Sony Notebook Control Driver (SNC) Readme. |
7 | sonypi.txt | 9 | sonypi.txt |
diff --git a/Documentation/laptops/acer-wmi.txt b/Documentation/laptops/acer-wmi.txt index 68ef0fc04787..79b7dbd22141 100644 --- a/Documentation/laptops/acer-wmi.txt +++ b/Documentation/laptops/acer-wmi.txt | |||
@@ -48,7 +48,7 @@ DSDT. | |||
48 | 48 | ||
49 | To send me the DSDT, as root/sudo: | 49 | To send me the DSDT, as root/sudo: |
50 | 50 | ||
51 | cat /sys/firmware/acpi/DSDT > dsdt | 51 | cat /sys/firmware/acpi/tables/DSDT > dsdt |
52 | 52 | ||
53 | And send me the resulting 'dsdt' file. | 53 | And send me the resulting 'dsdt' file. |
54 | 54 | ||
@@ -169,7 +169,7 @@ can be added to acer-wmi. | |||
169 | 169 | ||
170 | The LED is exposed through the LED subsystem, and can be found in: | 170 | The LED is exposed through the LED subsystem, and can be found in: |
171 | 171 | ||
172 | /sys/devices/platform/acer-wmi/leds/acer-mail:green/ | 172 | /sys/devices/platform/acer-wmi/leds/acer-wmi::mail/ |
173 | 173 | ||
174 | The mail LED is autodetected, so if you don't have one, the LED device won't | 174 | The mail LED is autodetected, so if you don't have one, the LED device won't |
175 | be registered. | 175 | be registered. |
diff --git a/Documentation/laptop-mode.txt b/Documentation/laptops/laptop-mode.txt index eeedee11c8c2..eeedee11c8c2 100644 --- a/Documentation/laptop-mode.txt +++ b/Documentation/laptops/laptop-mode.txt | |||
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/pci.txt b/Documentation/pci.txt index 72b20c639596..d2c2e6e2b224 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt | |||
@@ -123,7 +123,8 @@ initialization with a pointer to a structure describing the driver | |||
123 | 123 | ||
124 | 124 | ||
125 | The ID table is an array of struct pci_device_id entries ending with an | 125 | The ID table is an array of struct pci_device_id entries ending with an |
126 | all-zero entry. Each entry consists of: | 126 | all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred |
127 | method of declaring the table. Each entry consists of: | ||
127 | 128 | ||
128 | vendor,device Vendor and device ID to match (or PCI_ANY_ID) | 129 | vendor,device Vendor and device ID to match (or PCI_ANY_ID) |
129 | 130 | ||
@@ -191,7 +192,8 @@ Tips on when/where to use the above attributes: | |||
191 | 192 | ||
192 | o Do not mark the struct pci_driver. | 193 | o Do not mark the struct pci_driver. |
193 | 194 | ||
194 | o The ID table array should be marked __devinitdata. | 195 | o The ID table array should be marked __devinitconst; this is done |
196 | automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE(). | ||
195 | 197 | ||
196 | o The probe() and remove() functions should be marked __devinit | 198 | o The probe() and remove() functions should be marked __devinit |
197 | and __devexit respectively. All initialization functions | 199 | and __devexit respectively. All initialization functions |
diff --git a/Documentation/power/00-INDEX b/Documentation/power/00-INDEX index 8db4e41a052d..a55d7f1c836d 100644 --- a/Documentation/power/00-INDEX +++ b/Documentation/power/00-INDEX | |||
@@ -14,6 +14,12 @@ notifiers.txt | |||
14 | - Registering suspend notifiers in device drivers | 14 | - Registering suspend notifiers in device drivers |
15 | pci.txt | 15 | pci.txt |
16 | - How the PCI Subsystem Does Power Management | 16 | - How the PCI Subsystem Does Power Management |
17 | pm.txt | ||
18 | - info on Linux power management support. | ||
19 | pm_qos_interface.txt | ||
20 | - info on Linux PM Quality of Service interface | ||
21 | power_supply_class.txt | ||
22 | - Tells userspace about battery, UPS, AC or DC power supply properties | ||
17 | s2ram.txt | 23 | s2ram.txt |
18 | - How to get suspend to ram working (and debug it when it isn't) | 24 | - How to get suspend to ram working (and debug it when it isn't) |
19 | states.txt | 25 | states.txt |
diff --git a/Documentation/pm.txt b/Documentation/power/pm.txt index da8589a0e07d..be841507e43f 100644 --- a/Documentation/pm.txt +++ b/Documentation/power/pm.txt | |||
@@ -108,7 +108,7 @@ void pm_unregister_all(pm_callback cback); | |||
108 | * EINVAL if the request is not supported | 108 | * EINVAL if the request is not supported |
109 | * EBUSY if the device is now busy and cannot handle the request | 109 | * EBUSY if the device is now busy and cannot handle the request |
110 | * ENOMEM if the device was unable to handle the request due to memory | 110 | * ENOMEM if the device was unable to handle the request due to memory |
111 | * | 111 | * |
112 | * Details: The device request callback will be called before the | 112 | * Details: The device request callback will be called before the |
113 | * device/system enters a suspend state (ACPI D1-D3) or | 113 | * device/system enters a suspend state (ACPI D1-D3) or |
114 | * or after the device/system resumes from suspend (ACPI D0). | 114 | * or after the device/system resumes from suspend (ACPI D0). |
diff --git a/Documentation/pm_qos_interface.txt b/Documentation/power/pm_qos_interface.txt index 49adb1a33514..49adb1a33514 100644 --- a/Documentation/pm_qos_interface.txt +++ b/Documentation/power/pm_qos_interface.txt | |||
diff --git a/Documentation/power_supply_class.txt b/Documentation/power/power_supply_class.txt index a8686e5a6857..a8686e5a6857 100644 --- a/Documentation/power_supply_class.txt +++ b/Documentation/power/power_supply_class.txt | |||
diff --git a/Documentation/scheduler/sched-stats.txt b/Documentation/scheduler/sched-stats.txt index 442e14d35dea..01e69404ee5e 100644 --- a/Documentation/scheduler/sched-stats.txt +++ b/Documentation/scheduler/sched-stats.txt | |||
@@ -142,7 +142,7 @@ of idleness (idle, busy, and newly idle): | |||
142 | 142 | ||
143 | /proc/<pid>/schedstat | 143 | /proc/<pid>/schedstat |
144 | ---------------- | 144 | ---------------- |
145 | schedstats also adds a new /proc/<pid/schedstat file to include some of | 145 | schedstats also adds a new /proc/<pid>/schedstat file to include some of |
146 | the same information on a per-process level. There are three fields in | 146 | the same information on a per-process level. There are three fields in |
147 | this file correlating for that process to: | 147 | this file correlating for that process to: |
148 | 1) time spent on the cpu | 148 | 1) time spent on the cpu |
diff --git a/Documentation/scsi/ChangeLog.arcmsr b/Documentation/scsi/ChangeLog.arcmsr index de2bcacfa870..038a3e6ecaa4 100644 --- a/Documentation/scsi/ChangeLog.arcmsr +++ b/Documentation/scsi/ChangeLog.arcmsr | |||
@@ -109,4 +109,10 @@ | |||
109 | ** 8.replace pci_alloc_consistent()/pci_free_consistent() with kmalloc()/kfree() in arcmsr_iop_message_xfer() | 109 | ** 8.replace pci_alloc_consistent()/pci_free_consistent() with kmalloc()/kfree() in arcmsr_iop_message_xfer() |
110 | ** 9. fix the release of dma memory for type B in arcmsr_free_ccb_pool() | 110 | ** 9. fix the release of dma memory for type B in arcmsr_free_ccb_pool() |
111 | ** 10.fix the arcmsr_polling_hbb_ccbdone() | 111 | ** 10.fix the arcmsr_polling_hbb_ccbdone() |
112 | ** 1.20.00.15 02/27/2008 Erich Chen & Nick Cheng | ||
113 | ** 1.arcmsr_iop_message_xfer() is called from atomic context under the | ||
114 | ** queuecommand scsi_host_template handler. James Bottomley pointed out | ||
115 | ** that the current GFP_KERNEL|GFP_DMA flags are wrong: firstly we are in | ||
116 | ** atomic context, secondly this memory is not used for DMA. | ||
117 | ** Also removed some unneeded casts. Thanks to Daniel Drake <dsd@gentoo.org> | ||
112 | ************************************************************************** | 118 | ************************************************************************** |
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt index ba9c2da5a8c2..d9f28be75403 100644 --- a/Documentation/thermal/sysfs-api.txt +++ b/Documentation/thermal/sysfs-api.txt | |||
@@ -143,10 +143,10 @@ type Strings which represent the thermal zone type. | |||
143 | This is given by thermal zone driver as part of registration. | 143 | This is given by thermal zone driver as part of registration. |
144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device | 144 | Eg: "ACPI thermal zone" indicates it's a ACPI thermal device |
145 | RO | 145 | RO |
146 | Optional | 146 | Required |
147 | 147 | ||
148 | temp Current temperature as reported by thermal zone (sensor) | 148 | temp Current temperature as reported by thermal zone (sensor) |
149 | Unit: degree Celsius | 149 | Unit: millidegree Celsius |
150 | RO | 150 | RO |
151 | Required | 151 | Required |
152 | 152 | ||
@@ -163,7 +163,7 @@ mode One of the predefined values in [kernel, user] | |||
163 | charge of the thermal management. | 163 | charge of the thermal management. |
164 | 164 | ||
165 | trip_point_[0-*]_temp The temperature above which trip point will be fired | 165 | trip_point_[0-*]_temp The temperature above which trip point will be fired |
166 | Unit: degree Celsius | 166 | Unit: millidegree Celsius |
167 | RO | 167 | RO |
168 | Optional | 168 | Optional |
169 | 169 | ||
@@ -193,7 +193,7 @@ type String which represents the type of device | |||
193 | eg. For memory controller device on intel_menlow platform: | 193 | eg. For memory controller device on intel_menlow platform: |
194 | this should be "Memory controller" | 194 | this should be "Memory controller" |
195 | RO | 195 | RO |
196 | Optional | 196 | Required |
197 | 197 | ||
198 | max_state The maximum permissible cooling state of this cooling device. | 198 | max_state The maximum permissible cooling state of this cooling device. |
199 | RO | 199 | RO |
@@ -219,16 +219,16 @@ the sys I/F structure will be built like this: | |||
219 | 219 | ||
220 | |thermal_zone1: | 220 | |thermal_zone1: |
221 | |-----type: ACPI thermal zone | 221 | |-----type: ACPI thermal zone |
222 | |-----temp: 37 | 222 | |-----temp: 37000 |
223 | |-----mode: kernel | 223 | |-----mode: kernel |
224 | |-----trip_point_0_temp: 100 | 224 | |-----trip_point_0_temp: 100000 |
225 | |-----trip_point_0_type: critical | 225 | |-----trip_point_0_type: critical |
226 | |-----trip_point_1_temp: 80 | 226 | |-----trip_point_1_temp: 80000 |
227 | |-----trip_point_1_type: passive | 227 | |-----trip_point_1_type: passive |
228 | |-----trip_point_2_temp: 70 | 228 | |-----trip_point_2_temp: 70000 |
229 | |-----trip_point_2_type: active[0] | 229 | |-----trip_point_2_type: active0 |
230 | |-----trip_point_3_temp: 60 | 230 | |-----trip_point_3_temp: 60000 |
231 | |-----trip_point_3_type: active[1] | 231 | |-----trip_point_3_type: active1 |
232 | |-----cdev0: --->/sys/class/thermal/cooling_device0 | 232 | |-----cdev0: --->/sys/class/thermal/cooling_device0 |
233 | |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ | 233 | |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ |
234 | |-----cdev1: --->/sys/class/thermal/cooling_device3 | 234 | |-----cdev1: --->/sys/class/thermal/cooling_device3 |
diff --git a/Documentation/usb/usb-help.txt b/Documentation/usb/usb-help.txt index a7408593829f..4273ca2b86ba 100644 --- a/Documentation/usb/usb-help.txt +++ b/Documentation/usb/usb-help.txt | |||
@@ -1,5 +1,5 @@ | |||
1 | usb-help.txt | 1 | usb-help.txt |
2 | 2000-July-12 | 2 | 2008-Mar-7 |
3 | 3 | ||
4 | For USB help other than the readme files that are located in | 4 | For USB help other than the readme files that are located in |
5 | Documentation/usb/*, see the following: | 5 | Documentation/usb/*, see the following: |
@@ -10,9 +10,7 @@ Linux-USB project: http://www.linux-usb.org | |||
10 | Linux USB Guide: http://linux-usb.sourceforge.net | 10 | Linux USB Guide: http://linux-usb.sourceforge.net |
11 | Linux-USB device overview (working devices and drivers): | 11 | Linux-USB device overview (working devices and drivers): |
12 | http://www.qbik.ch/usb/devices/ | 12 | http://www.qbik.ch/usb/devices/ |
13 | 13 | ||
14 | The Linux-USB mailing lists are: | 14 | The Linux-USB mailing list is at linux-usb@vger.kernel.org |
15 | linux-usb-users@lists.sourceforge.net for general user help | ||
16 | linux-usb-devel@lists.sourceforge.net for developer discussions | ||
17 | 15 | ||
18 | ### | 16 | ### |
diff --git a/Documentation/vm/slub.txt b/Documentation/vm/slub.txt index dcf8bcf846d6..7c13f22a0c9e 100644 --- a/Documentation/vm/slub.txt +++ b/Documentation/vm/slub.txt | |||
@@ -50,14 +50,14 @@ F.e. in order to boot just with sanity checks and red zoning one would specify: | |||
50 | 50 | ||
51 | Trying to find an issue in the dentry cache? Try | 51 | Trying to find an issue in the dentry cache? Try |
52 | 52 | ||
53 | slub_debug=,dentry_cache | 53 | slub_debug=,dentry |
54 | 54 | ||
55 | to only enable debugging on the dentry cache. | 55 | to only enable debugging on the dentry cache. |
56 | 56 | ||
57 | Red zoning and tracking may realign the slab. We can just apply sanity checks | 57 | Red zoning and tracking may realign the slab. We can just apply sanity checks |
58 | to the dentry cache with | 58 | to the dentry cache with |
59 | 59 | ||
60 | slub_debug=F,dentry_cache | 60 | slub_debug=F,dentry |
61 | 61 | ||
62 | In case you forgot to enable debugging on the kernel command line: It is | 62 | In case you forgot to enable debugging on the kernel command line: It is |
63 | possible to enable debugging manually when the kernel is up. Look at the | 63 | possible to enable debugging manually when the kernel is up. Look at the |