diff options
author | Dmitry Torokhov <dtor@insightbb.com> | 2006-12-08 01:07:56 -0500 |
---|---|---|
committer | Dmitry Torokhov <dtor@insightbb.com> | 2006-12-08 01:07:56 -0500 |
commit | bef986502fa398b1785a3979b1aa17cd902d3527 (patch) | |
tree | b59c1afe7b1dfcc001b86e54863f550d7ddc8c34 /Documentation | |
parent | 4bdbd2807deeccc0793d57fb5120d7a53f2c0b3c (diff) | |
parent | c99767974ebd2a719d849fdeaaa1674456f5283f (diff) |
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/usb/input/hid.h
Diffstat (limited to 'Documentation')
106 files changed, 2258 insertions, 1290 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 02457ec9c94f..f08ca9535733 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -104,8 +104,6 @@ firmware_class/ | |||
104 | - request_firmware() hotplug interface info. | 104 | - request_firmware() hotplug interface info. |
105 | floppy.txt | 105 | floppy.txt |
106 | - notes and driver options for the floppy disk driver. | 106 | - notes and driver options for the floppy disk driver. |
107 | ftape.txt | ||
108 | - notes about the floppy tape device driver. | ||
109 | hayes-esp.txt | 107 | hayes-esp.txt |
110 | - info on using the Hayes ESP serial driver. | 108 | - info on using the Hayes ESP serial driver. |
111 | highuid.txt | 109 | highuid.txt |
diff --git a/Documentation/Changes b/Documentation/Changes index abee7f58c1ed..73a8617f1861 100644 --- a/Documentation/Changes +++ b/Documentation/Changes | |||
@@ -201,7 +201,7 @@ udev | |||
201 | ---- | 201 | ---- |
202 | udev is a userspace application for populating /dev dynamically with | 202 | udev is a userspace application for populating /dev dynamically with |
203 | only entries for devices actually present. udev replaces the basic | 203 | only entries for devices actually present. udev replaces the basic |
204 | functionality of devfs, while allowing persistant device naming for | 204 | functionality of devfs, while allowing persistent device naming for |
205 | devices. | 205 | devices. |
206 | 206 | ||
207 | FUSE | 207 | FUSE |
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt index 2ffb0d62f0fe..805db4b2cba6 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt | |||
@@ -77,7 +77,7 @@ To get this part of the dma_ API, you must #include <linux/dmapool.h> | |||
77 | Many drivers need lots of small dma-coherent memory regions for DMA | 77 | Many drivers need lots of small dma-coherent memory regions for DMA |
78 | descriptors or I/O buffers. Rather than allocating in units of a page | 78 | descriptors or I/O buffers. Rather than allocating in units of a page |
79 | or more using dma_alloc_coherent(), you can use DMA pools. These work | 79 | or more using dma_alloc_coherent(), you can use DMA pools. These work |
80 | much like a kmem_cache_t, except that they use the dma-coherent allocator | 80 | much like a struct kmem_cache, except that they use the dma-coherent allocator |
81 | not __get_free_pages(). Also, they understand common hardware constraints | 81 | not __get_free_pages(). Also, they understand common hardware constraints |
82 | for alignment, like queue heads needing to be aligned on N byte boundaries. | 82 | for alignment, like queue heads needing to be aligned on N byte boundaries. |
83 | 83 | ||
@@ -94,7 +94,7 @@ The pool create() routines initialize a pool of dma-coherent buffers | |||
94 | for use with a given device. It must be called in a context which | 94 | for use with a given device. It must be called in a context which |
95 | can sleep. | 95 | can sleep. |
96 | 96 | ||
97 | The "name" is for diagnostics (like a kmem_cache_t name); dev and size | 97 | The "name" is for diagnostics (like a struct kmem_cache name); dev and size |
98 | are like what you'd pass to dma_alloc_coherent(). The device's hardware | 98 | are like what you'd pass to dma_alloc_coherent(). The device's hardware |
99 | alignment requirement for this type of data is "align" (which is expressed | 99 | alignment requirement for this type of data is "align" (which is expressed |
100 | in bytes, and must be a power of two). If your device has no boundary | 100 | in bytes, and must be a power of two). If your device has no boundary |
@@ -431,10 +431,10 @@ be identical to those passed in (and returned by | |||
431 | dma_alloc_noncoherent()). | 431 | dma_alloc_noncoherent()). |
432 | 432 | ||
433 | int | 433 | int |
434 | dma_is_consistent(dma_addr_t dma_handle) | 434 | dma_is_consistent(struct device *dev, dma_addr_t dma_handle) |
435 | 435 | ||
436 | returns true if the memory pointed to by the dma_handle is actually | 436 | returns true if the device dev is performing consistent DMA on the memory |
437 | consistent. | 437 | area pointed to by the dma_handle. |
438 | 438 | ||
439 | int | 439 | int |
440 | dma_get_cache_alignment(void) | 440 | dma_get_cache_alignment(void) |
@@ -459,7 +459,7 @@ anything like this. You must also be extra careful about accessing | |||
459 | memory you intend to sync partially. | 459 | memory you intend to sync partially. |
460 | 460 | ||
461 | void | 461 | void |
462 | dma_cache_sync(void *vaddr, size_t size, | 462 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
463 | enum dma_data_direction direction) | 463 | enum dma_data_direction direction) |
464 | 464 | ||
465 | Do a partial sync of memory that was allocated by | 465 | Do a partial sync of memory that was allocated by |
@@ -489,7 +489,7 @@ size is the size of the area (must be multiples of PAGE_SIZE). | |||
489 | flags can be or'd together and are | 489 | flags can be or'd together and are |
490 | 490 | ||
491 | DMA_MEMORY_MAP - request that the memory returned from | 491 | DMA_MEMORY_MAP - request that the memory returned from |
492 | dma_alloc_coherent() be directly writeable. | 492 | dma_alloc_coherent() be directly writable. |
493 | 493 | ||
494 | DMA_MEMORY_IO - request that the memory returned from | 494 | DMA_MEMORY_IO - request that the memory returned from |
495 | dma_alloc_coherent() be addressable using read/write/memcpy_toio etc. | 495 | dma_alloc_coherent() be addressable using read/write/memcpy_toio etc. |
diff --git a/Documentation/DMA-ISA-LPC.txt b/Documentation/DMA-ISA-LPC.txt index 705f6be92bdb..e767805b4182 100644 --- a/Documentation/DMA-ISA-LPC.txt +++ b/Documentation/DMA-ISA-LPC.txt | |||
@@ -110,7 +110,7 @@ lock. | |||
110 | 110 | ||
111 | Once the DMA transfer is finished (or timed out) you should disable | 111 | Once the DMA transfer is finished (or timed out) you should disable |
112 | the channel again. You should also check get_dma_residue() to make | 112 | the channel again. You should also check get_dma_residue() to make |
113 | sure that all data has been transfered. | 113 | sure that all data has been transferred. |
114 | 114 | ||
115 | Example: | 115 | Example: |
116 | 116 | ||
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index db9499adbed4..36526a1e76d7 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
@@ -190,9 +190,13 @@ quiet_cmd_fig2png = FIG2PNG $@ | |||
190 | ### | 190 | ### |
191 | # Help targets as used by the top-level makefile | 191 | # Help targets as used by the top-level makefile |
192 | dochelp: | 192 | dochelp: |
193 | @echo ' Linux kernel internal documentation in different formats:' | 193 | @echo ' Linux kernel internal documentation in different formats:' |
194 | @echo ' xmldocs (XML DocBook), psdocs (Postscript), pdfdocs (PDF)' | 194 | @echo ' htmldocs - HTML' |
195 | @echo ' htmldocs (HTML), mandocs (man pages, use installmandocs to install)' | 195 | @echo ' installmandocs - install man pages generated by mandocs' |
196 | @echo ' mandocs - man pages' | ||
197 | @echo ' pdfdocs - PDF' | ||
198 | @echo ' psdocs - Postscript' | ||
199 | @echo ' xmldocs - XML DocBook' | ||
196 | 200 | ||
197 | ### | 201 | ### |
198 | # Temporary files left by various tools | 202 | # Temporary files left by various tools |
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl index a1af278f9901..3fa0c4b4541e 100644 --- a/Documentation/DocBook/kernel-api.tmpl +++ b/Documentation/DocBook/kernel-api.tmpl | |||
@@ -418,9 +418,35 @@ X!Edrivers/pnp/system.c | |||
418 | !Idrivers/parport/daisy.c | 418 | !Idrivers/parport/daisy.c |
419 | </chapter> | 419 | </chapter> |
420 | 420 | ||
421 | <chapter id="viddev"> | 421 | <chapter id="message_devices"> |
422 | <title>Video4Linux</title> | 422 | <title>Message-based devices</title> |
423 | !Edrivers/media/video/videodev.c | 423 | <sect1><title>Fusion message devices</title> |
424 | !Edrivers/message/fusion/mptbase.c | ||
425 | !Idrivers/message/fusion/mptbase.c | ||
426 | !Edrivers/message/fusion/mptscsih.c | ||
427 | !Idrivers/message/fusion/mptscsih.c | ||
428 | !Idrivers/message/fusion/mptctl.c | ||
429 | !Idrivers/message/fusion/mptspi.c | ||
430 | !Idrivers/message/fusion/mptfc.c | ||
431 | !Idrivers/message/fusion/mptlan.c | ||
432 | </sect1> | ||
433 | <sect1><title>I2O message devices</title> | ||
434 | !Iinclude/linux/i2o.h | ||
435 | !Idrivers/message/i2o/core.h | ||
436 | !Edrivers/message/i2o/iop.c | ||
437 | !Idrivers/message/i2o/iop.c | ||
438 | !Idrivers/message/i2o/config-osm.c | ||
439 | !Edrivers/message/i2o/exec-osm.c | ||
440 | !Idrivers/message/i2o/exec-osm.c | ||
441 | !Idrivers/message/i2o/bus-osm.c | ||
442 | !Edrivers/message/i2o/device.c | ||
443 | !Idrivers/message/i2o/device.c | ||
444 | !Idrivers/message/i2o/driver.c | ||
445 | !Idrivers/message/i2o/pci.c | ||
446 | !Idrivers/message/i2o/i2o_block.c | ||
447 | !Idrivers/message/i2o/i2o_scsi.c | ||
448 | !Idrivers/message/i2o/i2o_proc.c | ||
449 | </sect1> | ||
424 | </chapter> | 450 | </chapter> |
425 | 451 | ||
426 | <chapter id="snddev"> | 452 | <chapter id="snddev"> |
diff --git a/Documentation/DocBook/writing_usb_driver.tmpl b/Documentation/DocBook/writing_usb_driver.tmpl index 07cd34c1940b..d4188d4ff535 100644 --- a/Documentation/DocBook/writing_usb_driver.tmpl +++ b/Documentation/DocBook/writing_usb_driver.tmpl | |||
@@ -345,8 +345,7 @@ static inline void skel_delete (struct usb_skel *dev) | |||
345 | usb_buffer_free (dev->udev, dev->bulk_out_size, | 345 | usb_buffer_free (dev->udev, dev->bulk_out_size, |
346 | dev->bulk_out_buffer, | 346 | dev->bulk_out_buffer, |
347 | dev->write_urb->transfer_dma); | 347 | dev->write_urb->transfer_dma); |
348 | if (dev->write_urb != NULL) | 348 | usb_free_urb (dev->write_urb); |
349 | usb_free_urb (dev->write_urb); | ||
350 | kfree (dev); | 349 | kfree (dev); |
351 | } | 350 | } |
352 | </programlisting> | 351 | </programlisting> |
diff --git a/Documentation/IPMI.txt b/Documentation/IPMI.txt index 0e3924ecd76b..24dc3fcf1594 100644 --- a/Documentation/IPMI.txt +++ b/Documentation/IPMI.txt | |||
@@ -365,6 +365,7 @@ You can change this at module load time (for a module) with: | |||
365 | regshifts=<shift1>,<shift2>,... | 365 | regshifts=<shift1>,<shift2>,... |
366 | slave_addrs=<addr1>,<addr2>,... | 366 | slave_addrs=<addr1>,<addr2>,... |
367 | force_kipmid=<enable1>,<enable2>,... | 367 | force_kipmid=<enable1>,<enable2>,... |
368 | unload_when_empty=[0|1] | ||
368 | 369 | ||
369 | Each of these except si_trydefaults is a list, the first item for the | 370 | Each of these except si_trydefaults is a list, the first item for the |
370 | first interface, second item for the second interface, etc. | 371 | first interface, second item for the second interface, etc. |
@@ -416,6 +417,11 @@ by the driver, but systems with broken interrupts might need an enable, | |||
416 | or users that don't want the daemon (don't need the performance, don't | 417 | or users that don't want the daemon (don't need the performance, don't |
417 | want the CPU hit) can disable it. | 418 | want the CPU hit) can disable it. |
418 | 419 | ||
420 | If unload_when_empty is set to 1, the driver will be unloaded if it | ||
421 | doesn't find any interfaces or all the interfaces fail to work. The | ||
422 | default is one. Setting to 0 is useful with the hotmod, but is | ||
423 | obviously only useful for modules. | ||
424 | |||
419 | When compiled into the kernel, the parameters can be specified on the | 425 | When compiled into the kernel, the parameters can be specified on the |
420 | kernel command line as: | 426 | kernel command line as: |
421 | 427 | ||
@@ -441,6 +447,25 @@ have high-res timers enabled in the kernel and you don't have | |||
441 | interrupts enabled, the driver will run VERY slowly. Don't blame me, | 447 | interrupts enabled, the driver will run VERY slowly. Don't blame me, |
442 | these interfaces suck. | 448 | these interfaces suck. |
443 | 449 | ||
450 | The driver supports a hot add and remove of interfaces. This way, | ||
451 | interfaces can be added or removed after the kernel is up and running. | ||
452 | This is done using /sys/modules/ipmi_si/hotmod, which is a write-only | ||
453 | parameter. You write a string to this interface. The string has the | ||
454 | format: | ||
455 | <op1>[:op2[:op3...]] | ||
456 | The "op"s are: | ||
457 | add|remove,kcs|bt|smic,mem|i/o,<address>[,<opt1>[,<opt2>[,...]]] | ||
458 | You can specify more than one interface on the line. The "opt"s are: | ||
459 | rsp=<regspacing> | ||
460 | rsi=<regsize> | ||
461 | rsh=<regshift> | ||
462 | irq=<irq> | ||
463 | ipmb=<ipmb slave addr> | ||
464 | and these have the same meanings as discussed above. Note that you | ||
465 | can also use this on the kernel command line for a more compact format | ||
466 | for specifying an interface. Note that when removing an interface, | ||
467 | only the first three parameters (si type, address type, and address) | ||
468 | are used for the comparison. Any options are ignored for removing. | ||
444 | 469 | ||
445 | The SMBus Driver | 470 | The SMBus Driver |
446 | ---------------- | 471 | ---------------- |
@@ -502,7 +527,10 @@ used to control it: | |||
502 | 527 | ||
503 | modprobe ipmi_watchdog timeout=<t> pretimeout=<t> action=<action type> | 528 | modprobe ipmi_watchdog timeout=<t> pretimeout=<t> action=<action type> |
504 | preaction=<preaction type> preop=<preop type> start_now=x | 529 | preaction=<preaction type> preop=<preop type> start_now=x |
505 | nowayout=x | 530 | nowayout=x ifnum_to_use=n |
531 | |||
532 | ifnum_to_use specifies which interface the watchdog timer should use. | ||
533 | The default is -1, which means to pick the first one registered. | ||
506 | 534 | ||
507 | The timeout is the number of seconds to the action, and the pretimeout | 535 | The timeout is the number of seconds to the action, and the pretimeout |
508 | is the amount of seconds before the reset that the pre-timeout panic will | 536 | is the amount of seconds before the reset that the pre-timeout panic will |
@@ -624,5 +652,9 @@ command line. The parameter is also available via the proc filesystem | |||
624 | in /proc/sys/dev/ipmi/poweroff_powercycle. Note that if the system | 652 | in /proc/sys/dev/ipmi/poweroff_powercycle. Note that if the system |
625 | does not support power cycling, it will always do the power off. | 653 | does not support power cycling, it will always do the power off. |
626 | 654 | ||
655 | The "ifnum_to_use" parameter specifies which interface the poweroff | ||
656 | code should use. The default is -1, which means to pick the first one | ||
657 | registered. | ||
658 | |||
627 | Note that if you have ACPI enabled, the system will prefer using ACPI to | 659 | Note that if you have ACPI enabled, the system will prefer using ACPI to |
628 | power off. | 660 | power off. |
diff --git a/Documentation/MSI-HOWTO.txt b/Documentation/MSI-HOWTO.txt index 5c34910665d1..d389388c733e 100644 --- a/Documentation/MSI-HOWTO.txt +++ b/Documentation/MSI-HOWTO.txt | |||
@@ -219,7 +219,7 @@ into the field vector of each element contained in a second argument. | |||
219 | Note that the pre-assigned IOAPIC dev->irq is valid only if the device | 219 | Note that the pre-assigned IOAPIC dev->irq is valid only if the device |
220 | operates in PIN-IRQ assertion mode. In MSI-X mode, any attempt at | 220 | operates in PIN-IRQ assertion mode. In MSI-X mode, any attempt at |
221 | using dev->irq by the device driver to request for interrupt service | 221 | using dev->irq by the device driver to request for interrupt service |
222 | may result unpredictabe behavior. | 222 | may result in unpredictable behavior. |
223 | 223 | ||
224 | For each MSI-X vector granted, a device driver is responsible for calling | 224 | For each MSI-X vector granted, a device driver is responsible for calling |
225 | other functions like request_irq(), enable_irq(), etc. to enable | 225 | other functions like request_irq(), enable_irq(), etc. to enable |
diff --git a/Documentation/accounting/taskstats.txt b/Documentation/accounting/taskstats.txt index 92ebf29e9041..ff06b738bb88 100644 --- a/Documentation/accounting/taskstats.txt +++ b/Documentation/accounting/taskstats.txt | |||
@@ -96,9 +96,9 @@ a) TASKSTATS_TYPE_AGGR_PID/TGID : attribute containing no payload but indicates | |||
96 | a pid/tgid will be followed by some stats. | 96 | a pid/tgid will be followed by some stats. |
97 | 97 | ||
98 | b) TASKSTATS_TYPE_PID/TGID: attribute whose payload is the pid/tgid whose stats | 98 | b) TASKSTATS_TYPE_PID/TGID: attribute whose payload is the pid/tgid whose stats |
99 | is being returned. | 99 | are being returned. |
100 | 100 | ||
101 | c) TASKSTATS_TYPE_STATS: attribute with a struct taskstsats as payload. The | 101 | c) TASKSTATS_TYPE_STATS: attribute with a struct taskstats as payload. The |
102 | same structure is used for both per-pid and per-tgid stats. | 102 | same structure is used for both per-pid and per-tgid stats. |
103 | 103 | ||
104 | 3. New message sent by kernel whenever a task exits. The payload consists of a | 104 | 3. New message sent by kernel whenever a task exits. The payload consists of a |
@@ -122,12 +122,12 @@ of atomicity). | |||
122 | 122 | ||
123 | However, maintaining per-process, in addition to per-task stats, within the | 123 | However, maintaining per-process, in addition to per-task stats, within the |
124 | kernel has space and time overheads. To address this, the taskstats code | 124 | kernel has space and time overheads. To address this, the taskstats code |
125 | accumalates each exiting task's statistics into a process-wide data structure. | 125 | accumulates each exiting task's statistics into a process-wide data structure. |
126 | When the last task of a process exits, the process level data accumalated also | 126 | When the last task of a process exits, the process level data accumulated also |
127 | gets sent to userspace (along with the per-task data). | 127 | gets sent to userspace (along with the per-task data). |
128 | 128 | ||
129 | When a user queries to get per-tgid data, the sum of all other live threads in | 129 | When a user queries to get per-tgid data, the sum of all other live threads in |
130 | the group is added up and added to the accumalated total for previously exited | 130 | the group is added up and added to the accumulated total for previously exited |
131 | threads of the same thread group. | 131 | threads of the same thread group. |
132 | 132 | ||
133 | Extending taskstats | 133 | Extending taskstats |
diff --git a/Documentation/block/as-iosched.txt b/Documentation/block/as-iosched.txt index e2a66f8143c5..a598fe10a297 100644 --- a/Documentation/block/as-iosched.txt +++ b/Documentation/block/as-iosched.txt | |||
@@ -24,8 +24,10 @@ very similar behavior to the deadline IO scheduler. | |||
24 | Selecting IO schedulers | 24 | Selecting IO schedulers |
25 | ----------------------- | 25 | ----------------------- |
26 | To choose IO schedulers at boot time, use the argument 'elevator=deadline'. | 26 | To choose IO schedulers at boot time, use the argument 'elevator=deadline'. |
27 | 'noop' and 'as' (the default) are also available. IO schedulers are assigned | 27 | 'noop', 'as' and 'cfq' (the default) are also available. IO schedulers are |
28 | globally at boot time only presently. | 28 | assigned globally at boot time only presently. It's also possible to change |
29 | the IO scheduler for a determined device on the fly, as described in | ||
30 | Documentation/block/switching-sched.txt. | ||
29 | 31 | ||
30 | 32 | ||
31 | Anticipatory IO scheduler Policies | 33 | Anticipatory IO scheduler Policies |
diff --git a/Documentation/block/biodoc.txt b/Documentation/block/biodoc.txt index 34bf8f60d8f8..c6c9a9c10d7f 100644 --- a/Documentation/block/biodoc.txt +++ b/Documentation/block/biodoc.txt | |||
@@ -183,7 +183,7 @@ it, the pci dma mapping routines and associated data structures have now been | |||
183 | modified to accomplish a direct page -> bus translation, without requiring | 183 | modified to accomplish a direct page -> bus translation, without requiring |
184 | a virtual address mapping (unlike the earlier scheme of virtual address | 184 | a virtual address mapping (unlike the earlier scheme of virtual address |
185 | -> bus translation). So this works uniformly for high-memory pages (which | 185 | -> bus translation). So this works uniformly for high-memory pages (which |
186 | do not have a correponding kernel virtual address space mapping) and | 186 | do not have a corresponding kernel virtual address space mapping) and |
187 | low-memory pages. | 187 | low-memory pages. |
188 | 188 | ||
189 | Note: Please refer to DMA-mapping.txt for a discussion on PCI high mem DMA | 189 | Note: Please refer to DMA-mapping.txt for a discussion on PCI high mem DMA |
@@ -391,7 +391,7 @@ forced such requests to be broken up into small chunks before being passed | |||
391 | on to the generic block layer, only to be merged by the i/o scheduler | 391 | on to the generic block layer, only to be merged by the i/o scheduler |
392 | when the underlying device was capable of handling the i/o in one shot. | 392 | when the underlying device was capable of handling the i/o in one shot. |
393 | Also, using the buffer head as an i/o structure for i/os that didn't originate | 393 | Also, using the buffer head as an i/o structure for i/os that didn't originate |
394 | from the buffer cache unecessarily added to the weight of the descriptors | 394 | from the buffer cache unnecessarily added to the weight of the descriptors |
395 | which were generated for each such chunk. | 395 | which were generated for each such chunk. |
396 | 396 | ||
397 | The following were some of the goals and expectations considered in the | 397 | The following were some of the goals and expectations considered in the |
@@ -403,14 +403,14 @@ i. Should be appropriate as a descriptor for both raw and buffered i/o - | |||
403 | for raw i/o. | 403 | for raw i/o. |
404 | ii. Ability to represent high-memory buffers (which do not have a virtual | 404 | ii. Ability to represent high-memory buffers (which do not have a virtual |
405 | address mapping in kernel address space). | 405 | address mapping in kernel address space). |
406 | iii.Ability to represent large i/os w/o unecessarily breaking them up (i.e | 406 | iii.Ability to represent large i/os w/o unnecessarily breaking them up (i.e |
407 | greater than PAGE_SIZE chunks in one shot) | 407 | greater than PAGE_SIZE chunks in one shot) |
408 | iv. At the same time, ability to retain independent identity of i/os from | 408 | iv. At the same time, ability to retain independent identity of i/os from |
409 | different sources or i/o units requiring individual completion (e.g. for | 409 | different sources or i/o units requiring individual completion (e.g. for |
410 | latency reasons) | 410 | latency reasons) |
411 | v. Ability to represent an i/o involving multiple physical memory segments | 411 | v. Ability to represent an i/o involving multiple physical memory segments |
412 | (including non-page aligned page fragments, as specified via readv/writev) | 412 | (including non-page aligned page fragments, as specified via readv/writev) |
413 | without unecessarily breaking it up, if the underlying device is capable of | 413 | without unnecessarily breaking it up, if the underlying device is capable of |
414 | handling it. | 414 | handling it. |
415 | vi. Preferably should be based on a memory descriptor structure that can be | 415 | vi. Preferably should be based on a memory descriptor structure that can be |
416 | passed around different types of subsystems or layers, maybe even | 416 | passed around different types of subsystems or layers, maybe even |
@@ -1013,7 +1013,7 @@ Characteristics: | |||
1013 | i. Binary tree | 1013 | i. Binary tree |
1014 | AS and deadline i/o schedulers use red black binary trees for disk position | 1014 | AS and deadline i/o schedulers use red black binary trees for disk position |
1015 | sorting and searching, and a fifo linked list for time-based searching. This | 1015 | sorting and searching, and a fifo linked list for time-based searching. This |
1016 | gives good scalability and good availablility of information. Requests are | 1016 | gives good scalability and good availability of information. Requests are |
1017 | almost always dispatched in disk sort order, so a cache is kept of the next | 1017 | almost always dispatched in disk sort order, so a cache is kept of the next |
1018 | request in sort order to prevent binary tree lookups. | 1018 | request in sort order to prevent binary tree lookups. |
1019 | 1019 | ||
diff --git a/Documentation/cpu-freq/cpufreq-nforce2.txt b/Documentation/cpu-freq/cpufreq-nforce2.txt index 9188337d8f6b..babce1315026 100644 --- a/Documentation/cpu-freq/cpufreq-nforce2.txt +++ b/Documentation/cpu-freq/cpufreq-nforce2.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | 1 | ||
2 | The cpufreq-nforce2 driver changes the FSB on nVidia nForce2 plattforms. | 2 | The cpufreq-nforce2 driver changes the FSB on nVidia nForce2 platforms. |
3 | 3 | ||
4 | This works better than on other plattforms, because the FSB of the CPU | 4 | This works better than on other platforms, because the FSB of the CPU |
5 | can be controlled independently from the PCI/AGP clock. | 5 | can be controlled independently from the PCI/AGP clock. |
6 | 6 | ||
7 | The module has two options: | 7 | The module has two options: |
diff --git a/Documentation/cpu-hotplug.txt b/Documentation/cpu-hotplug.txt index 4868c34f7509..cc60d29b954c 100644 --- a/Documentation/cpu-hotplug.txt +++ b/Documentation/cpu-hotplug.txt | |||
@@ -54,8 +54,8 @@ additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets | |||
54 | 54 | ||
55 | ia64 and x86_64 use the number of disabled local apics in ACPI tables MADT | 55 | ia64 and x86_64 use the number of disabled local apics in ACPI tables MADT |
56 | to determine the number of potentially hot-pluggable cpus. The implementation | 56 | to determine the number of potentially hot-pluggable cpus. The implementation |
57 | should only rely on this to count the #of cpus, but *MUST* not rely on the | 57 | should only rely on this to count the # of cpus, but *MUST* not rely on the |
58 | apicid values in those tables for disabled apics. In the event BIOS doesnt | 58 | apicid values in those tables for disabled apics. In the event BIOS doesn't |
59 | mark such hot-pluggable cpus as disabled entries, one could use this | 59 | mark such hot-pluggable cpus as disabled entries, one could use this |
60 | parameter "additional_cpus=x" to represent those cpus in the cpu_possible_map. | 60 | parameter "additional_cpus=x" to represent those cpus in the cpu_possible_map. |
61 | 61 | ||
diff --git a/Documentation/devices.txt b/Documentation/devices.txt index 28c4f79662c2..8de132a02ba9 100644 --- a/Documentation/devices.txt +++ b/Documentation/devices.txt | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | Maintained by Torben Mathiasen <device@lanana.org> | 4 | Maintained by Torben Mathiasen <device@lanana.org> |
5 | 5 | ||
6 | Last revised: 15 May 2006 | 6 | Last revised: 29 November 2006 |
7 | 7 | ||
8 | This list is the Linux Device List, the official registry of allocated | 8 | This list is the Linux Device List, the official registry of allocated |
9 | device numbers and /dev directory nodes for the Linux operating | 9 | device numbers and /dev directory nodes for the Linux operating |
@@ -92,8 +92,9 @@ Your cooperation is appreciated. | |||
92 | 7 = /dev/full Returns ENOSPC on write | 92 | 7 = /dev/full Returns ENOSPC on write |
93 | 8 = /dev/random Nondeterministic random number gen. | 93 | 8 = /dev/random Nondeterministic random number gen. |
94 | 9 = /dev/urandom Faster, less secure random number gen. | 94 | 9 = /dev/urandom Faster, less secure random number gen. |
95 | 10 = /dev/aio Asyncronous I/O notification interface | 95 | 10 = /dev/aio Asynchronous I/O notification interface |
96 | 11 = /dev/kmsg Writes to this come out as printk's | 96 | 11 = /dev/kmsg Writes to this come out as printk's |
97 | |||
97 | 1 block RAM disk | 98 | 1 block RAM disk |
98 | 0 = /dev/ram0 First RAM disk | 99 | 0 = /dev/ram0 First RAM disk |
99 | 1 = /dev/ram1 Second RAM disk | 100 | 1 = /dev/ram1 Second RAM disk |
@@ -122,7 +123,7 @@ Your cooperation is appreciated. | |||
122 | devices are on major 128 and above and use the PTY | 123 | devices are on major 128 and above and use the PTY |
123 | master multiplex (/dev/ptmx) to acquire a PTY on | 124 | master multiplex (/dev/ptmx) to acquire a PTY on |
124 | demand. | 125 | demand. |
125 | 126 | ||
126 | 2 block Floppy disks | 127 | 2 block Floppy disks |
127 | 0 = /dev/fd0 Controller 0, drive 0, autodetect | 128 | 0 = /dev/fd0 Controller 0, drive 0, autodetect |
128 | 1 = /dev/fd1 Controller 0, drive 1, autodetect | 129 | 1 = /dev/fd1 Controller 0, drive 1, autodetect |
@@ -257,7 +258,7 @@ Your cooperation is appreciated. | |||
257 | 129 = /dev/vcsa1 tty1 text/attribute contents | 258 | 129 = /dev/vcsa1 tty1 text/attribute contents |
258 | ... | 259 | ... |
259 | 191 = /dev/vcsa63 tty63 text/attribute contents | 260 | 191 = /dev/vcsa63 tty63 text/attribute contents |
260 | 261 | ||
261 | NOTE: These devices permit both read and write access. | 262 | NOTE: These devices permit both read and write access. |
262 | 263 | ||
263 | 7 block Loopback devices | 264 | 7 block Loopback devices |
@@ -411,7 +412,7 @@ Your cooperation is appreciated. | |||
411 | 207 = /dev/video/em8300_sp EM8300 DVD decoder subpicture | 412 | 207 = /dev/video/em8300_sp EM8300 DVD decoder subpicture |
412 | 208 = /dev/compaq/cpqphpc Compaq PCI Hot Plug Controller | 413 | 208 = /dev/compaq/cpqphpc Compaq PCI Hot Plug Controller |
413 | 209 = /dev/compaq/cpqrid Compaq Remote Insight Driver | 414 | 209 = /dev/compaq/cpqrid Compaq Remote Insight Driver |
414 | 210 = /dev/impi/bt IMPI coprocessor block transfer | 415 | 210 = /dev/impi/bt IMPI coprocessor block transfer |
415 | 211 = /dev/impi/smic IMPI coprocessor stream interface | 416 | 211 = /dev/impi/smic IMPI coprocessor stream interface |
416 | 212 = /dev/watchdogs/0 First watchdog device | 417 | 212 = /dev/watchdogs/0 First watchdog device |
417 | 213 = /dev/watchdogs/1 Second watchdog device | 418 | 213 = /dev/watchdogs/1 Second watchdog device |
@@ -506,6 +507,7 @@ Your cooperation is appreciated. | |||
506 | 33 = /dev/patmgr1 Sequencer patch manager | 507 | 33 = /dev/patmgr1 Sequencer patch manager |
507 | 34 = /dev/midi02 Third MIDI port | 508 | 34 = /dev/midi02 Third MIDI port |
508 | 50 = /dev/midi03 Fourth MIDI port | 509 | 50 = /dev/midi03 Fourth MIDI port |
510 | |||
509 | 14 block BIOS harddrive callback support {2.6} | 511 | 14 block BIOS harddrive callback support {2.6} |
510 | 0 = /dev/dos_hda First BIOS harddrive whole disk | 512 | 0 = /dev/dos_hda First BIOS harddrive whole disk |
511 | 64 = /dev/dos_hdb Second BIOS harddrive whole disk | 513 | 64 = /dev/dos_hdb Second BIOS harddrive whole disk |
@@ -527,6 +529,7 @@ Your cooperation is appreciated. | |||
527 | 529 | ||
528 | 16 char Non-SCSI scanners | 530 | 16 char Non-SCSI scanners |
529 | 0 = /dev/gs4500 Genius 4500 handheld scanner | 531 | 0 = /dev/gs4500 Genius 4500 handheld scanner |
532 | |||
530 | 16 block GoldStar CD-ROM | 533 | 16 block GoldStar CD-ROM |
531 | 0 = /dev/gscd GoldStar CD-ROM | 534 | 0 = /dev/gscd GoldStar CD-ROM |
532 | 535 | ||
@@ -548,6 +551,7 @@ Your cooperation is appreciated. | |||
548 | 0 = /dev/ttyC0 First Cyclades port | 551 | 0 = /dev/ttyC0 First Cyclades port |
549 | ... | 552 | ... |
550 | 31 = /dev/ttyC31 32nd Cyclades port | 553 | 31 = /dev/ttyC31 32nd Cyclades port |
554 | |||
551 | 19 block "Double" compressed disk | 555 | 19 block "Double" compressed disk |
552 | 0 = /dev/double0 First compressed disk | 556 | 0 = /dev/double0 First compressed disk |
553 | ... | 557 | ... |
@@ -563,6 +567,7 @@ Your cooperation is appreciated. | |||
563 | 0 = /dev/cub0 Callout device for ttyC0 | 567 | 0 = /dev/cub0 Callout device for ttyC0 |
564 | ... | 568 | ... |
565 | 31 = /dev/cub31 Callout device for ttyC31 | 569 | 31 = /dev/cub31 Callout device for ttyC31 |
570 | |||
566 | 20 block Hitachi CD-ROM (under development) | 571 | 20 block Hitachi CD-ROM (under development) |
567 | 0 = /dev/hitcd Hitachi CD-ROM | 572 | 0 = /dev/hitcd Hitachi CD-ROM |
568 | 573 | ||
@@ -582,7 +587,7 @@ Your cooperation is appreciated. | |||
582 | 587 | ||
583 | This device is used on the ARM-based Acorn RiscPC. | 588 | This device is used on the ARM-based Acorn RiscPC. |
584 | Partitions are handled the same way as for IDE disks | 589 | Partitions are handled the same way as for IDE disks |
585 | (see major number 3). | 590 | (see major number 3). |
586 | 591 | ||
587 | 22 char Digiboard serial card | 592 | 22 char Digiboard serial card |
588 | 0 = /dev/ttyD0 First Digiboard port | 593 | 0 = /dev/ttyD0 First Digiboard port |
@@ -591,7 +596,7 @@ Your cooperation is appreciated. | |||
591 | 22 block Second IDE hard disk/CD-ROM interface | 596 | 22 block Second IDE hard disk/CD-ROM interface |
592 | 0 = /dev/hdc Master: whole disk (or CD-ROM) | 597 | 0 = /dev/hdc Master: whole disk (or CD-ROM) |
593 | 64 = /dev/hdd Slave: whole disk (or CD-ROM) | 598 | 64 = /dev/hdd Slave: whole disk (or CD-ROM) |
594 | 599 | ||
595 | Partitions are handled the same way as for the first | 600 | Partitions are handled the same way as for the first |
596 | interface (see major number 3). | 601 | interface (see major number 3). |
597 | 602 | ||
@@ -639,6 +644,7 @@ Your cooperation is appreciated. | |||
639 | 644 | ||
640 | 26 char Quanta WinVision frame grabber {2.6} | 645 | 26 char Quanta WinVision frame grabber {2.6} |
641 | 0 = /dev/wvisfgrab Quanta WinVision frame grabber | 646 | 0 = /dev/wvisfgrab Quanta WinVision frame grabber |
647 | |||
642 | 26 block Second Matsushita (Panasonic/SoundBlaster) CD-ROM | 648 | 26 block Second Matsushita (Panasonic/SoundBlaster) CD-ROM |
643 | 0 = /dev/sbpcd4 Panasonic CD-ROM controller 1 unit 0 | 649 | 0 = /dev/sbpcd4 Panasonic CD-ROM controller 1 unit 0 |
644 | 1 = /dev/sbpcd5 Panasonic CD-ROM controller 1 unit 1 | 650 | 1 = /dev/sbpcd5 Panasonic CD-ROM controller 1 unit 1 |
@@ -670,6 +676,7 @@ Your cooperation is appreciated. | |||
670 | 37 = /dev/nrawqft1 Unit 1, no rewind-on-close, no file marks | 676 | 37 = /dev/nrawqft1 Unit 1, no rewind-on-close, no file marks |
671 | 38 = /dev/nrawqft2 Unit 2, no rewind-on-close, no file marks | 677 | 38 = /dev/nrawqft2 Unit 2, no rewind-on-close, no file marks |
672 | 39 = /dev/nrawqft3 Unit 3, no rewind-on-close, no file marks | 678 | 39 = /dev/nrawqft3 Unit 3, no rewind-on-close, no file marks |
679 | |||
673 | 27 block Third Matsushita (Panasonic/SoundBlaster) CD-ROM | 680 | 27 block Third Matsushita (Panasonic/SoundBlaster) CD-ROM |
674 | 0 = /dev/sbpcd8 Panasonic CD-ROM controller 2 unit 0 | 681 | 0 = /dev/sbpcd8 Panasonic CD-ROM controller 2 unit 0 |
675 | 1 = /dev/sbpcd9 Panasonic CD-ROM controller 2 unit 1 | 682 | 1 = /dev/sbpcd9 Panasonic CD-ROM controller 2 unit 1 |
@@ -681,6 +688,7 @@ Your cooperation is appreciated. | |||
681 | 1 = /dev/staliomem1 Second Stallion card I/O memory | 688 | 1 = /dev/staliomem1 Second Stallion card I/O memory |
682 | 2 = /dev/staliomem2 Third Stallion card I/O memory | 689 | 2 = /dev/staliomem2 Third Stallion card I/O memory |
683 | 3 = /dev/staliomem3 Fourth Stallion card I/O memory | 690 | 3 = /dev/staliomem3 Fourth Stallion card I/O memory |
691 | |||
684 | 28 char Atari SLM ACSI laser printer (68k/Atari) | 692 | 28 char Atari SLM ACSI laser printer (68k/Atari) |
685 | 0 = /dev/slm0 First SLM laser printer | 693 | 0 = /dev/slm0 First SLM laser printer |
686 | 1 = /dev/slm1 Second SLM laser printer | 694 | 1 = /dev/slm1 Second SLM laser printer |
@@ -690,6 +698,7 @@ Your cooperation is appreciated. | |||
690 | 1 = /dev/sbpcd13 Panasonic CD-ROM controller 3 unit 1 | 698 | 1 = /dev/sbpcd13 Panasonic CD-ROM controller 3 unit 1 |
691 | 2 = /dev/sbpcd14 Panasonic CD-ROM controller 3 unit 2 | 699 | 2 = /dev/sbpcd14 Panasonic CD-ROM controller 3 unit 2 |
692 | 3 = /dev/sbpcd15 Panasonic CD-ROM controller 3 unit 3 | 700 | 3 = /dev/sbpcd15 Panasonic CD-ROM controller 3 unit 3 |
701 | |||
693 | 28 block ACSI disk (68k/Atari) | 702 | 28 block ACSI disk (68k/Atari) |
694 | 0 = /dev/ada First ACSI disk whole disk | 703 | 0 = /dev/ada First ACSI disk whole disk |
695 | 16 = /dev/adb Second ACSI disk whole disk | 704 | 16 = /dev/adb Second ACSI disk whole disk |
@@ -750,6 +759,7 @@ Your cooperation is appreciated. | |||
750 | 31 char MPU-401 MIDI | 759 | 31 char MPU-401 MIDI |
751 | 0 = /dev/mpu401data MPU-401 data port | 760 | 0 = /dev/mpu401data MPU-401 data port |
752 | 1 = /dev/mpu401stat MPU-401 status port | 761 | 1 = /dev/mpu401stat MPU-401 status port |
762 | |||
753 | 31 block ROM/flash memory card | 763 | 31 block ROM/flash memory card |
754 | 0 = /dev/rom0 First ROM card (rw) | 764 | 0 = /dev/rom0 First ROM card (rw) |
755 | ... | 765 | ... |
@@ -801,7 +811,7 @@ Your cooperation is appreciated. | |||
801 | 34 block Fourth IDE hard disk/CD-ROM interface | 811 | 34 block Fourth IDE hard disk/CD-ROM interface |
802 | 0 = /dev/hdg Master: whole disk (or CD-ROM) | 812 | 0 = /dev/hdg Master: whole disk (or CD-ROM) |
803 | 64 = /dev/hdh Slave: whole disk (or CD-ROM) | 813 | 64 = /dev/hdh Slave: whole disk (or CD-ROM) |
804 | 814 | ||
805 | Partitions are handled the same way as for the first | 815 | Partitions are handled the same way as for the first |
806 | interface (see major number 3). | 816 | interface (see major number 3). |
807 | 817 | ||
@@ -818,6 +828,7 @@ Your cooperation is appreciated. | |||
818 | 129 = /dev/smpte1 Second MIDI port, SMPTE timed | 828 | 129 = /dev/smpte1 Second MIDI port, SMPTE timed |
819 | 130 = /dev/smpte2 Third MIDI port, SMPTE timed | 829 | 130 = /dev/smpte2 Third MIDI port, SMPTE timed |
820 | 131 = /dev/smpte3 Fourth MIDI port, SMPTE timed | 830 | 131 = /dev/smpte3 Fourth MIDI port, SMPTE timed |
831 | |||
821 | 35 block Slow memory ramdisk | 832 | 35 block Slow memory ramdisk |
822 | 0 = /dev/slram Slow memory ramdisk | 833 | 0 = /dev/slram Slow memory ramdisk |
823 | 834 | ||
@@ -828,6 +839,7 @@ Your cooperation is appreciated. | |||
828 | 16 = /dev/tap0 First Ethertap device | 839 | 16 = /dev/tap0 First Ethertap device |
829 | ... | 840 | ... |
830 | 31 = /dev/tap15 16th Ethertap device | 841 | 31 = /dev/tap15 16th Ethertap device |
842 | |||
831 | 36 block MCA ESDI hard disk | 843 | 36 block MCA ESDI hard disk |
832 | 0 = /dev/eda First ESDI disk whole disk | 844 | 0 = /dev/eda First ESDI disk whole disk |
833 | 64 = /dev/edb Second ESDI disk whole disk | 845 | 64 = /dev/edb Second ESDI disk whole disk |
@@ -882,6 +894,7 @@ Your cooperation is appreciated. | |||
882 | 894 | ||
883 | 40 char Matrox Meteor frame grabber {2.6} | 895 | 40 char Matrox Meteor frame grabber {2.6} |
884 | 0 = /dev/mmetfgrab Matrox Meteor frame grabber | 896 | 0 = /dev/mmetfgrab Matrox Meteor frame grabber |
897 | |||
885 | 40 block Syquest EZ135 parallel port removable drive | 898 | 40 block Syquest EZ135 parallel port removable drive |
886 | 0 = /dev/eza Parallel EZ135 drive, whole disk | 899 | 0 = /dev/eza Parallel EZ135 drive, whole disk |
887 | 900 | ||
@@ -893,6 +906,7 @@ Your cooperation is appreciated. | |||
893 | 906 | ||
894 | 41 char Yet Another Micro Monitor | 907 | 41 char Yet Another Micro Monitor |
895 | 0 = /dev/yamm Yet Another Micro Monitor | 908 | 0 = /dev/yamm Yet Another Micro Monitor |
909 | |||
896 | 41 block MicroSolutions BackPack parallel port CD-ROM | 910 | 41 block MicroSolutions BackPack parallel port CD-ROM |
897 | 0 = /dev/bpcd BackPack CD-ROM | 911 | 0 = /dev/bpcd BackPack CD-ROM |
898 | 912 | ||
@@ -901,6 +915,7 @@ Your cooperation is appreciated. | |||
901 | the parallel port ATAPI CD-ROM driver at major number 46. | 915 | the parallel port ATAPI CD-ROM driver at major number 46. |
902 | 916 | ||
903 | 42 char Demo/sample use | 917 | 42 char Demo/sample use |
918 | |||
904 | 42 block Demo/sample use | 919 | 42 block Demo/sample use |
905 | 920 | ||
906 | This number is intended for use in sample code, as | 921 | This number is intended for use in sample code, as |
@@ -918,6 +933,7 @@ Your cooperation is appreciated. | |||
918 | 0 = /dev/ttyI0 First virtual modem | 933 | 0 = /dev/ttyI0 First virtual modem |
919 | ... | 934 | ... |
920 | 63 = /dev/ttyI63 64th virtual modem | 935 | 63 = /dev/ttyI63 64th virtual modem |
936 | |||
921 | 43 block Network block devices | 937 | 43 block Network block devices |
922 | 0 = /dev/nb0 First network block device | 938 | 0 = /dev/nb0 First network block device |
923 | 1 = /dev/nb1 Second network block device | 939 | 1 = /dev/nb1 Second network block device |
@@ -934,12 +950,13 @@ Your cooperation is appreciated. | |||
934 | 0 = /dev/cui0 Callout device for ttyI0 | 950 | 0 = /dev/cui0 Callout device for ttyI0 |
935 | ... | 951 | ... |
936 | 63 = /dev/cui63 Callout device for ttyI63 | 952 | 63 = /dev/cui63 Callout device for ttyI63 |
953 | |||
937 | 44 block Flash Translation Layer (FTL) filesystems | 954 | 44 block Flash Translation Layer (FTL) filesystems |
938 | 0 = /dev/ftla FTL on first Memory Technology Device | 955 | 0 = /dev/ftla FTL on first Memory Technology Device |
939 | 16 = /dev/ftlb FTL on second Memory Technology Device | 956 | 16 = /dev/ftlb FTL on second Memory Technology Device |
940 | 32 = /dev/ftlc FTL on third Memory Technology Device | 957 | 32 = /dev/ftlc FTL on third Memory Technology Device |
941 | ... | 958 | ... |
942 | 240 = /dev/ftlp FTL on 16th Memory Technology Device | 959 | 240 = /dev/ftlp FTL on 16th Memory Technology Device |
943 | 960 | ||
944 | Partitions are handled in the same way as for IDE | 961 | Partitions are handled in the same way as for IDE |
945 | disks (see major number 3) except that the partition | 962 | disks (see major number 3) except that the partition |
@@ -958,6 +975,7 @@ Your cooperation is appreciated. | |||
958 | 191 = /dev/ippp63 64th SyncPPP device | 975 | 191 = /dev/ippp63 64th SyncPPP device |
959 | 976 | ||
960 | 255 = /dev/isdninfo ISDN monitor interface | 977 | 255 = /dev/isdninfo ISDN monitor interface |
978 | |||
961 | 45 block Parallel port IDE disk devices | 979 | 45 block Parallel port IDE disk devices |
962 | 0 = /dev/pda First parallel port IDE disk | 980 | 0 = /dev/pda First parallel port IDE disk |
963 | 16 = /dev/pdb Second parallel port IDE disk | 981 | 16 = /dev/pdb Second parallel port IDE disk |
@@ -1044,6 +1062,7 @@ Your cooperation is appreciated. | |||
1044 | 1 = /dev/dcbri1 Second DataComm card | 1062 | 1 = /dev/dcbri1 Second DataComm card |
1045 | 2 = /dev/dcbri2 Third DataComm card | 1063 | 2 = /dev/dcbri2 Third DataComm card |
1046 | 3 = /dev/dcbri3 Fourth DataComm card | 1064 | 3 = /dev/dcbri3 Fourth DataComm card |
1065 | |||
1047 | 52 block Mylex DAC960 PCI RAID controller; fifth controller | 1066 | 52 block Mylex DAC960 PCI RAID controller; fifth controller |
1048 | 0 = /dev/rd/c4d0 First disk, whole disk | 1067 | 0 = /dev/rd/c4d0 First disk, whole disk |
1049 | 8 = /dev/rd/c4d1 Second disk, whole disk | 1068 | 8 = /dev/rd/c4d1 Second disk, whole disk |
@@ -1093,7 +1112,8 @@ Your cooperation is appreciated. | |||
1093 | 1112 | ||
1094 | 55 char DSP56001 digital signal processor | 1113 | 55 char DSP56001 digital signal processor |
1095 | 0 = /dev/dsp56k First DSP56001 | 1114 | 0 = /dev/dsp56k First DSP56001 |
1096 | 55 block Mylex DAC960 PCI RAID controller; eigth controller | 1115 | |
1116 | 55 block Mylex DAC960 PCI RAID controller; eighth controller | ||
1097 | 0 = /dev/rd/c7d0 First disk, whole disk | 1117 | 0 = /dev/rd/c7d0 First disk, whole disk |
1098 | 8 = /dev/rd/c7d1 Second disk, whole disk | 1118 | 8 = /dev/rd/c7d1 Second disk, whole disk |
1099 | ... | 1119 | ... |
@@ -1130,6 +1150,7 @@ Your cooperation is appreciated. | |||
1130 | 0 = /dev/cup0 Callout device for ttyP0 | 1150 | 0 = /dev/cup0 Callout device for ttyP0 |
1131 | 1 = /dev/cup1 Callout device for ttyP1 | 1151 | 1 = /dev/cup1 Callout device for ttyP1 |
1132 | ... | 1152 | ... |
1153 | |||
1133 | 58 block Reserved for logical volume manager | 1154 | 58 block Reserved for logical volume manager |
1134 | 1155 | ||
1135 | 59 char sf firewall package | 1156 | 59 char sf firewall package |
@@ -1149,6 +1170,7 @@ Your cooperation is appreciated. | |||
1149 | NAMING CONFLICT -- PROPOSED REVISED NAME /dev/rpda0 etc | 1170 | NAMING CONFLICT -- PROPOSED REVISED NAME /dev/rpda0 etc |
1150 | 1171 | ||
1151 | 60-63 char LOCAL/EXPERIMENTAL USE | 1172 | 60-63 char LOCAL/EXPERIMENTAL USE |
1173 | |||
1152 | 60-63 block LOCAL/EXPERIMENTAL USE | 1174 | 60-63 block LOCAL/EXPERIMENTAL USE |
1153 | Allocated for local/experimental use. For devices not | 1175 | Allocated for local/experimental use. For devices not |
1154 | assigned official numbers, these ranges should be | 1176 | assigned official numbers, these ranges should be |
@@ -1434,7 +1456,6 @@ Your cooperation is appreciated. | |||
1434 | DAC960 (see major number 48) except that the limit on | 1456 | DAC960 (see major number 48) except that the limit on |
1435 | partitions is 15. | 1457 | partitions is 15. |
1436 | 1458 | ||
1437 | |||
1438 | 78 char PAM Software's multimodem boards | 1459 | 78 char PAM Software's multimodem boards |
1439 | 0 = /dev/ttyM0 First PAM modem | 1460 | 0 = /dev/ttyM0 First PAM modem |
1440 | 1 = /dev/ttyM1 Second PAM modem | 1461 | 1 = /dev/ttyM1 Second PAM modem |
@@ -1450,13 +1471,12 @@ Your cooperation is appreciated. | |||
1450 | DAC960 (see major number 48) except that the limit on | 1471 | DAC960 (see major number 48) except that the limit on |
1451 | partitions is 15. | 1472 | partitions is 15. |
1452 | 1473 | ||
1453 | |||
1454 | 79 char PAM Software's multimodem boards - alternate devices | 1474 | 79 char PAM Software's multimodem boards - alternate devices |
1455 | 0 = /dev/cum0 Callout device for ttyM0 | 1475 | 0 = /dev/cum0 Callout device for ttyM0 |
1456 | 1 = /dev/cum1 Callout device for ttyM1 | 1476 | 1 = /dev/cum1 Callout device for ttyM1 |
1457 | ... | 1477 | ... |
1458 | 1478 | ||
1459 | 79 block Compaq Intelligent Drive Array, eigth controller | 1479 | 79 block Compaq Intelligent Drive Array, eighth controller |
1460 | 0 = /dev/ida/c7d0 First logical drive whole disk | 1480 | 0 = /dev/ida/c7d0 First logical drive whole disk |
1461 | 16 = /dev/ida/c7d1 Second logical drive whole disk | 1481 | 16 = /dev/ida/c7d1 Second logical drive whole disk |
1462 | ... | 1482 | ... |
@@ -1466,7 +1486,6 @@ Your cooperation is appreciated. | |||
1466 | DAC960 (see major number 48) except that the limit on | 1486 | DAC960 (see major number 48) except that the limit on |
1467 | partitions is 15. | 1487 | partitions is 15. |
1468 | 1488 | ||
1469 | |||
1470 | 80 char Photometrics AT200 CCD camera | 1489 | 80 char Photometrics AT200 CCD camera |
1471 | 0 = /dev/at200 Photometrics AT200 CCD camera | 1490 | 0 = /dev/at200 Photometrics AT200 CCD camera |
1472 | 1491 | ||
@@ -1679,7 +1698,7 @@ Your cooperation is appreciated. | |||
1679 | 1 = /dev/dcxx1 Second capture card | 1698 | 1 = /dev/dcxx1 Second capture card |
1680 | ... | 1699 | ... |
1681 | 1700 | ||
1682 | 94 block IBM S/390 DASD block storage | 1701 | 94 block IBM S/390 DASD block storage |
1683 | 0 = /dev/dasda First DASD device, major | 1702 | 0 = /dev/dasda First DASD device, major |
1684 | 1 = /dev/dasda1 First DASD device, block 1 | 1703 | 1 = /dev/dasda1 First DASD device, block 1 |
1685 | 2 = /dev/dasda2 First DASD device, block 2 | 1704 | 2 = /dev/dasda2 First DASD device, block 2 |
@@ -1695,7 +1714,7 @@ Your cooperation is appreciated. | |||
1695 | 1 = /dev/ipnat NAT control device/log file | 1714 | 1 = /dev/ipnat NAT control device/log file |
1696 | 2 = /dev/ipstate State information log file | 1715 | 2 = /dev/ipstate State information log file |
1697 | 3 = /dev/ipauth Authentication control device/log file | 1716 | 3 = /dev/ipauth Authentication control device/log file |
1698 | ... | 1717 | ... |
1699 | 1718 | ||
1700 | 96 char Parallel port ATAPI tape devices | 1719 | 96 char Parallel port ATAPI tape devices |
1701 | 0 = /dev/pt0 First parallel port ATAPI tape | 1720 | 0 = /dev/pt0 First parallel port ATAPI tape |
@@ -1705,7 +1724,7 @@ Your cooperation is appreciated. | |||
1705 | 129 = /dev/npt1 Second p.p. ATAPI tape, no rewind | 1724 | 129 = /dev/npt1 Second p.p. ATAPI tape, no rewind |
1706 | ... | 1725 | ... |
1707 | 1726 | ||
1708 | 96 block Inverse NAND Flash Translation Layer | 1727 | 96 block Inverse NAND Flash Translation Layer |
1709 | 0 = /dev/inftla First INFTL layer | 1728 | 0 = /dev/inftla First INFTL layer |
1710 | 16 = /dev/inftlb Second INFTL layer | 1729 | 16 = /dev/inftlb Second INFTL layer |
1711 | ... | 1730 | ... |
@@ -1900,7 +1919,7 @@ Your cooperation is appreciated. | |||
1900 | 1 = /dev/av1 Second A/V card | 1919 | 1 = /dev/av1 Second A/V card |
1901 | ... | 1920 | ... |
1902 | 1921 | ||
1903 | 111 block Compaq Next Generation Drive Array, eigth controller | 1922 | 111 block Compaq Next Generation Drive Array, eighth controller |
1904 | 0 = /dev/cciss/c7d0 First logical drive, whole disk | 1923 | 0 = /dev/cciss/c7d0 First logical drive, whole disk |
1905 | 16 = /dev/cciss/c7d1 Second logical drive, whole disk | 1924 | 16 = /dev/cciss/c7d1 Second logical drive, whole disk |
1906 | ... | 1925 | ... |
@@ -1937,7 +1956,6 @@ Your cooperation is appreciated. | |||
1937 | ... | 1956 | ... |
1938 | 1957 | ||
1939 | 113 block IBM iSeries virtual CD-ROM | 1958 | 113 block IBM iSeries virtual CD-ROM |
1940 | |||
1941 | 0 = /dev/iseries/vcda First virtual CD-ROM | 1959 | 0 = /dev/iseries/vcda First virtual CD-ROM |
1942 | 1 = /dev/iseries/vcdb Second virtual CD-ROM | 1960 | 1 = /dev/iseries/vcdb Second virtual CD-ROM |
1943 | ... | 1961 | ... |
@@ -2059,11 +2077,12 @@ Your cooperation is appreciated. | |||
2059 | ... | 2077 | ... |
2060 | 2078 | ||
2061 | 119 char VMware virtual network control | 2079 | 119 char VMware virtual network control |
2062 | 0 = /dev/vnet0 1st virtual network | 2080 | 0 = /dev/vmnet0 1st virtual network |
2063 | 1 = /dev/vnet1 2nd virtual network | 2081 | 1 = /dev/vmnet1 2nd virtual network |
2064 | ... | 2082 | ... |
2065 | 2083 | ||
2066 | 120-127 char LOCAL/EXPERIMENTAL USE | 2084 | 120-127 char LOCAL/EXPERIMENTAL USE |
2085 | |||
2067 | 120-127 block LOCAL/EXPERIMENTAL USE | 2086 | 120-127 block LOCAL/EXPERIMENTAL USE |
2068 | Allocated for local/experimental use. For devices not | 2087 | Allocated for local/experimental use. For devices not |
2069 | assigned official numbers, these ranges should be | 2088 | assigned official numbers, these ranges should be |
@@ -2075,7 +2094,6 @@ Your cooperation is appreciated. | |||
2075 | nodes; instead they should be accessed through the | 2094 | nodes; instead they should be accessed through the |
2076 | /dev/ptmx cloning interface. | 2095 | /dev/ptmx cloning interface. |
2077 | 2096 | ||
2078 | |||
2079 | 128 block SCSI disk devices (128-143) | 2097 | 128 block SCSI disk devices (128-143) |
2080 | 0 = /dev/sddy 129th SCSI disk whole disk | 2098 | 0 = /dev/sddy 129th SCSI disk whole disk |
2081 | 16 = /dev/sddz 130th SCSI disk whole disk | 2099 | 16 = /dev/sddz 130th SCSI disk whole disk |
@@ -2087,7 +2105,6 @@ Your cooperation is appreciated. | |||
2087 | disks (see major number 3) except that the limit on | 2105 | disks (see major number 3) except that the limit on |
2088 | partitions is 15. | 2106 | partitions is 15. |
2089 | 2107 | ||
2090 | |||
2091 | 129 block SCSI disk devices (144-159) | 2108 | 129 block SCSI disk devices (144-159) |
2092 | 0 = /dev/sdeo 145th SCSI disk whole disk | 2109 | 0 = /dev/sdeo 145th SCSI disk whole disk |
2093 | 16 = /dev/sdep 146th SCSI disk whole disk | 2110 | 16 = /dev/sdep 146th SCSI disk whole disk |
@@ -2123,7 +2140,6 @@ Your cooperation is appreciated. | |||
2123 | disks (see major number 3) except that the limit on | 2140 | disks (see major number 3) except that the limit on |
2124 | partitions is 15. | 2141 | partitions is 15. |
2125 | 2142 | ||
2126 | |||
2127 | 132 block SCSI disk devices (192-207) | 2143 | 132 block SCSI disk devices (192-207) |
2128 | 0 = /dev/sdgk 193rd SCSI disk whole disk | 2144 | 0 = /dev/sdgk 193rd SCSI disk whole disk |
2129 | 16 = /dev/sdgl 194th SCSI disk whole disk | 2145 | 16 = /dev/sdgl 194th SCSI disk whole disk |
@@ -2135,7 +2151,6 @@ Your cooperation is appreciated. | |||
2135 | disks (see major number 3) except that the limit on | 2151 | disks (see major number 3) except that the limit on |
2136 | partitions is 15. | 2152 | partitions is 15. |
2137 | 2153 | ||
2138 | |||
2139 | 133 block SCSI disk devices (208-223) | 2154 | 133 block SCSI disk devices (208-223) |
2140 | 0 = /dev/sdha 209th SCSI disk whole disk | 2155 | 0 = /dev/sdha 209th SCSI disk whole disk |
2141 | 16 = /dev/sdhb 210th SCSI disk whole disk | 2156 | 16 = /dev/sdhb 210th SCSI disk whole disk |
@@ -2147,7 +2162,6 @@ Your cooperation is appreciated. | |||
2147 | disks (see major number 3) except that the limit on | 2162 | disks (see major number 3) except that the limit on |
2148 | partitions is 15. | 2163 | partitions is 15. |
2149 | 2164 | ||
2150 | |||
2151 | 134 block SCSI disk devices (224-239) | 2165 | 134 block SCSI disk devices (224-239) |
2152 | 0 = /dev/sdhq 225th SCSI disk whole disk | 2166 | 0 = /dev/sdhq 225th SCSI disk whole disk |
2153 | 16 = /dev/sdhr 226th SCSI disk whole disk | 2167 | 16 = /dev/sdhr 226th SCSI disk whole disk |
@@ -2159,7 +2173,6 @@ Your cooperation is appreciated. | |||
2159 | disks (see major number 3) except that the limit on | 2173 | disks (see major number 3) except that the limit on |
2160 | partitions is 15. | 2174 | partitions is 15. |
2161 | 2175 | ||
2162 | |||
2163 | 135 block SCSI disk devices (240-255) | 2176 | 135 block SCSI disk devices (240-255) |
2164 | 0 = /dev/sdig 241st SCSI disk whole disk | 2177 | 0 = /dev/sdig 241st SCSI disk whole disk |
2165 | 16 = /dev/sdih 242nd SCSI disk whole disk | 2178 | 16 = /dev/sdih 242nd SCSI disk whole disk |
@@ -2171,7 +2184,6 @@ Your cooperation is appreciated. | |||
2171 | disks (see major number 3) except that the limit on | 2184 | disks (see major number 3) except that the limit on |
2172 | partitions is 15. | 2185 | partitions is 15. |
2173 | 2186 | ||
2174 | |||
2175 | 136-143 char Unix98 PTY slaves | 2187 | 136-143 char Unix98 PTY slaves |
2176 | 0 = /dev/pts/0 First Unix98 pseudo-TTY | 2188 | 0 = /dev/pts/0 First Unix98 pseudo-TTY |
2177 | 1 = /dev/pts/1 Second Unix98 pesudo-TTY | 2189 | 1 = /dev/pts/1 Second Unix98 pesudo-TTY |
@@ -2384,6 +2396,7 @@ Your cooperation is appreciated. | |||
2384 | ... | 2396 | ... |
2385 | 2397 | ||
2386 | 159 char RESERVED | 2398 | 159 char RESERVED |
2399 | |||
2387 | 159 block RESERVED | 2400 | 159 block RESERVED |
2388 | 2401 | ||
2389 | 160 char General Purpose Instrument Bus (GPIB) | 2402 | 160 char General Purpose Instrument Bus (GPIB) |
@@ -2427,7 +2440,7 @@ Your cooperation is appreciated. | |||
2427 | 2440 | ||
2428 | Partitions are handled in the same way as for IDE | 2441 | Partitions are handled in the same way as for IDE |
2429 | disks (see major number 3) except that the limit on | 2442 | disks (see major number 3) except that the limit on |
2430 | partitions is 31. | 2443 | partitions is 31. |
2431 | 2444 | ||
2432 | 162 char Raw block device interface | 2445 | 162 char Raw block device interface |
2433 | 0 = /dev/rawctl Raw I/O control device | 2446 | 0 = /dev/rawctl Raw I/O control device |
@@ -2483,7 +2496,6 @@ Your cooperation is appreciated. | |||
2483 | 2496 | ||
2484 | 171 char Reserved for IEEE 1394 (Firewire) | 2497 | 171 char Reserved for IEEE 1394 (Firewire) |
2485 | 2498 | ||
2486 | |||
2487 | 172 char Moxa Intellio serial card | 2499 | 172 char Moxa Intellio serial card |
2488 | 0 = /dev/ttyMX0 First Moxa port | 2500 | 0 = /dev/ttyMX0 First Moxa port |
2489 | 1 = /dev/ttyMX1 Second Moxa port | 2501 | 1 = /dev/ttyMX1 Second Moxa port |
@@ -2543,9 +2555,6 @@ Your cooperation is appreciated. | |||
2543 | 64 = /dev/usb/rio500 Diamond Rio 500 | 2555 | 64 = /dev/usb/rio500 Diamond Rio 500 |
2544 | 65 = /dev/usb/usblcd USBLCD Interface (info@usblcd.de) | 2556 | 65 = /dev/usb/usblcd USBLCD Interface (info@usblcd.de) |
2545 | 66 = /dev/usb/cpad0 Synaptics cPad (mouse/LCD) | 2557 | 66 = /dev/usb/cpad0 Synaptics cPad (mouse/LCD) |
2546 | 67 = /dev/usb/adutux0 1st Ontrak ADU device | ||
2547 | ... | ||
2548 | 76 = /dev/usb/adutux10 10th Ontrak ADU device | ||
2549 | 96 = /dev/usb/hiddev0 1st USB HID device | 2558 | 96 = /dev/usb/hiddev0 1st USB HID device |
2550 | ... | 2559 | ... |
2551 | 111 = /dev/usb/hiddev15 16th USB HID device | 2560 | 111 = /dev/usb/hiddev15 16th USB HID device |
@@ -2558,7 +2567,7 @@ Your cooperation is appreciated. | |||
2558 | 132 = /dev/usb/idmouse ID Mouse (fingerprint scanner) device | 2567 | 132 = /dev/usb/idmouse ID Mouse (fingerprint scanner) device |
2559 | 133 = /dev/usb/sisusbvga1 First SiSUSB VGA device | 2568 | 133 = /dev/usb/sisusbvga1 First SiSUSB VGA device |
2560 | ... | 2569 | ... |
2561 | 140 = /dev/usb/sisusbvga8 Eigth SISUSB VGA device | 2570 | 140 = /dev/usb/sisusbvga8 Eighth SISUSB VGA device |
2562 | 144 = /dev/usb/lcd USB LCD device | 2571 | 144 = /dev/usb/lcd USB LCD device |
2563 | 160 = /dev/usb/legousbtower0 1st USB Legotower device | 2572 | 160 = /dev/usb/legousbtower0 1st USB Legotower device |
2564 | ... | 2573 | ... |
@@ -2571,7 +2580,7 @@ Your cooperation is appreciated. | |||
2571 | 0 = /dev/uba First USB block device | 2580 | 0 = /dev/uba First USB block device |
2572 | 8 = /dev/ubb Second USB block device | 2581 | 8 = /dev/ubb Second USB block device |
2573 | 16 = /dev/ubc Third USB block device | 2582 | 16 = /dev/ubc Third USB block device |
2574 | ... | 2583 | ... |
2575 | 2584 | ||
2576 | 181 char Conrad Electronic parallel port radio clocks | 2585 | 181 char Conrad Electronic parallel port radio clocks |
2577 | 0 = /dev/pcfclock0 First Conrad radio clock | 2586 | 0 = /dev/pcfclock0 First Conrad radio clock |
@@ -2657,7 +2666,7 @@ Your cooperation is appreciated. | |||
2657 | 32 = /dev/mvideo/status2 Third device | 2666 | 32 = /dev/mvideo/status2 Third device |
2658 | ... | 2667 | ... |
2659 | ... | 2668 | ... |
2660 | 240 = /dev/mvideo/status15 16th device | 2669 | 240 = /dev/mvideo/status15 16th device |
2661 | ... | 2670 | ... |
2662 | 2671 | ||
2663 | 195 char Nvidia graphics devices | 2672 | 195 char Nvidia graphics devices |
@@ -2795,6 +2804,10 @@ Your cooperation is appreciated. | |||
2795 | ... | 2804 | ... |
2796 | 185 = /dev/ttyNX15 Hilscher netX serial port 15 | 2805 | 185 = /dev/ttyNX15 Hilscher netX serial port 15 |
2797 | 186 = /dev/ttyJ0 JTAG1 DCC protocol based serial port emulation | 2806 | 186 = /dev/ttyJ0 JTAG1 DCC protocol based serial port emulation |
2807 | 187 = /dev/ttyUL0 Xilinx uartlite - port 0 | ||
2808 | ... | ||
2809 | 190 = /dev/ttyUL3 Xilinx uartlite - port 3 | ||
2810 | 191 = /dev/xvc0 Xen virtual console - port 0 | ||
2798 | 2811 | ||
2799 | 205 char Low-density serial ports (alternate device) | 2812 | 205 char Low-density serial ports (alternate device) |
2800 | 0 = /dev/culu0 Callout device for ttyLU0 | 2813 | 0 = /dev/culu0 Callout device for ttyLU0 |
@@ -2832,7 +2845,6 @@ Your cooperation is appreciated. | |||
2832 | 82 = /dev/cuvr0 Callout device for ttyVR0 | 2845 | 82 = /dev/cuvr0 Callout device for ttyVR0 |
2833 | 83 = /dev/cuvr1 Callout device for ttyVR1 | 2846 | 83 = /dev/cuvr1 Callout device for ttyVR1 |
2834 | 2847 | ||
2835 | |||
2836 | 206 char OnStream SC-x0 tape devices | 2848 | 206 char OnStream SC-x0 tape devices |
2837 | 0 = /dev/osst0 First OnStream SCSI tape, mode 0 | 2849 | 0 = /dev/osst0 First OnStream SCSI tape, mode 0 |
2838 | 1 = /dev/osst1 Second OnStream SCSI tape, mode 0 | 2850 | 1 = /dev/osst1 Second OnStream SCSI tape, mode 0 |
@@ -2922,7 +2934,6 @@ Your cooperation is appreciated. | |||
2922 | ... | 2934 | ... |
2923 | 2935 | ||
2924 | 212 char LinuxTV.org DVB driver subsystem | 2936 | 212 char LinuxTV.org DVB driver subsystem |
2925 | |||
2926 | 0 = /dev/dvb/adapter0/video0 first video decoder of first card | 2937 | 0 = /dev/dvb/adapter0/video0 first video decoder of first card |
2927 | 1 = /dev/dvb/adapter0/audio0 first audio decoder of first card | 2938 | 1 = /dev/dvb/adapter0/audio0 first audio decoder of first card |
2928 | 2 = /dev/dvb/adapter0/sec0 (obsolete/unused) | 2939 | 2 = /dev/dvb/adapter0/sec0 (obsolete/unused) |
@@ -3008,9 +3019,9 @@ Your cooperation is appreciated. | |||
3008 | 2 = /dev/3270/tub2 Second 3270 terminal | 3019 | 2 = /dev/3270/tub2 Second 3270 terminal |
3009 | ... | 3020 | ... |
3010 | 3021 | ||
3011 | 229 char IBM iSeries virtual console | 3022 | 229 char IBM iSeries/pSeries virtual console |
3012 | 0 = /dev/iseries/vtty0 First console port | 3023 | 0 = /dev/hvc0 First console port |
3013 | 1 = /dev/iseries/vtty1 Second console port | 3024 | 1 = /dev/hvc1 Second console port |
3014 | ... | 3025 | ... |
3015 | 3026 | ||
3016 | 230 char IBM iSeries virtual tape | 3027 | 230 char IBM iSeries virtual tape |
@@ -3083,12 +3094,14 @@ Your cooperation is appreciated. | |||
3083 | 234-239 UNASSIGNED | 3094 | 234-239 UNASSIGNED |
3084 | 3095 | ||
3085 | 240-254 char LOCAL/EXPERIMENTAL USE | 3096 | 240-254 char LOCAL/EXPERIMENTAL USE |
3097 | |||
3086 | 240-254 block LOCAL/EXPERIMENTAL USE | 3098 | 240-254 block LOCAL/EXPERIMENTAL USE |
3087 | Allocated for local/experimental use. For devices not | 3099 | Allocated for local/experimental use. For devices not |
3088 | assigned official numbers, these ranges should be | 3100 | assigned official numbers, these ranges should be |
3089 | used in order to avoid conflicting with future assignments. | 3101 | used in order to avoid conflicting with future assignments. |
3090 | 3102 | ||
3091 | 255 char RESERVED | 3103 | 255 char RESERVED |
3104 | |||
3092 | 255 block RESERVED | 3105 | 255 block RESERVED |
3093 | 3106 | ||
3094 | This major is reserved to assist the expansion to a | 3107 | This major is reserved to assist the expansion to a |
@@ -3115,7 +3128,20 @@ Your cooperation is appreciated. | |||
3115 | 257 char Phoenix Technologies Cryptographic Services Driver | 3128 | 257 char Phoenix Technologies Cryptographic Services Driver |
3116 | 0 = /dev/ptlsec Crypto Services Driver | 3129 | 0 = /dev/ptlsec Crypto Services Driver |
3117 | 3130 | ||
3118 | 3131 | 257 block SSFDC Flash Translation Layer filesystem | |
3132 | 0 = /dev/ssfdca First SSFDC layer | ||
3133 | 8 = /dev/ssfdcb Second SSFDC layer | ||
3134 | 16 = /dev/ssfdcc Third SSFDC layer | ||
3135 | 24 = /dev/ssfdcd 4th SSFDC layer | ||
3136 | 32 = /dev/ssfdce 5th SSFDC layer | ||
3137 | 40 = /dev/ssfdcf 6th SSFDC layer | ||
3138 | 48 = /dev/ssfdcg 7th SSFDC layer | ||
3139 | 56 = /dev/ssfdch 8th SSFDC layer | ||
3140 | |||
3141 | 258 block ROM/Flash read-only translation layer | ||
3142 | 0 = /dev/blockrom0 First ROM card's translation layer interface | ||
3143 | 1 = /dev/blockrom1 Second ROM card's translation layer interface | ||
3144 | ... | ||
3119 | 3145 | ||
3120 | **** ADDITIONAL /dev DIRECTORY ENTRIES | 3146 | **** ADDITIONAL /dev DIRECTORY ENTRIES |
3121 | 3147 | ||
diff --git a/Documentation/driver-model/platform.txt b/Documentation/driver-model/platform.txt index 5eee3e0bfc4c..9f0bc3bfd776 100644 --- a/Documentation/driver-model/platform.txt +++ b/Documentation/driver-model/platform.txt | |||
@@ -1,99 +1,131 @@ | |||
1 | Platform Devices and Drivers | 1 | Platform Devices and Drivers |
2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
3 | See <linux/platform_device.h> for the driver model interface to the | ||
4 | platform bus: platform_device, and platform_driver. This pseudo-bus | ||
5 | is used to connect devices on busses with minimal infrastructure, | ||
6 | like those used to integrate peripherals on many system-on-chip | ||
7 | processors, or some "legacy" PC interconnects; as opposed to large | ||
8 | formally specified ones like PCI or USB. | ||
9 | |||
3 | 10 | ||
4 | Platform devices | 11 | Platform devices |
5 | ~~~~~~~~~~~~~~~~ | 12 | ~~~~~~~~~~~~~~~~ |
6 | Platform devices are devices that typically appear as autonomous | 13 | Platform devices are devices that typically appear as autonomous |
7 | entities in the system. This includes legacy port-based devices and | 14 | entities in the system. This includes legacy port-based devices and |
8 | host bridges to peripheral buses. | 15 | host bridges to peripheral buses, and most controllers integrated |
9 | 16 | into system-on-chip platforms. What they usually have in common | |
10 | 17 | is direct addressing from a CPU bus. Rarely, a platform_device will | |
11 | Platform drivers | 18 | be connected through a segment of some other kind of bus; but its |
12 | ~~~~~~~~~~~~~~~~ | 19 | registers will still be directly addressible. |
13 | Drivers for platform devices are typically very simple and | ||
14 | unstructured. Either the device was present at a particular I/O port | ||
15 | and the driver was loaded, or it was not. There was no possibility | ||
16 | of hotplugging or alternative discovery besides probing at a specific | ||
17 | I/O address and expecting a specific response. | ||
18 | 20 | ||
21 | Platform devices are given a name, used in driver binding, and a | ||
22 | list of resources such as addresses and IRQs. | ||
19 | 23 | ||
20 | Other Architectures, Modern Firmware, and new Platforms | 24 | struct platform_device { |
21 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 25 | const char *name; |
22 | These devices are not always at the legacy I/O ports. This is true on | 26 | u32 id; |
23 | other architectures and on some modern architectures. In most cases, | 27 | struct device dev; |
24 | the drivers are modified to discover the devices at other well-known | 28 | u32 num_resources; |
25 | ports for the given platform. However, the firmware in these systems | 29 | struct resource *resource; |
26 | does usually know where exactly these devices reside, and in some | 30 | }; |
27 | cases, it's the only way of discovering them. | ||
28 | 31 | ||
29 | 32 | ||
30 | The Platform Bus | 33 | Platform drivers |
31 | ~~~~~~~~~~~~~~~~ | ||
32 | A platform bus has been created to deal with these issues. First and | ||
33 | foremost, it groups all the legacy devices under a common bus, and | ||
34 | gives them a common parent if they don't already have one. | ||
35 | |||
36 | But, besides the organizational benefits, the platform bus can also | ||
37 | accommodate firmware-based enumeration. | ||
38 | |||
39 | |||
40 | Device Discovery | ||
41 | ~~~~~~~~~~~~~~~~ | 34 | ~~~~~~~~~~~~~~~~ |
42 | The platform bus has no concept of probing for devices. Devices | 35 | Platform drivers follow the standard driver model convention, where |
43 | discovery is left up to either the legacy drivers or the | 36 | discovery/enumeration is handled outside the drivers, and drivers |
44 | firmware. These entities are expected to notify the platform of | 37 | provide probe() and remove() methods. They support power management |
45 | devices that it discovers via the bus's add() callback: | 38 | and shutdown notifications using the standard conventions. |
46 | 39 | ||
47 | platform_bus.add(parent,bus_id). | 40 | struct platform_driver { |
48 | 41 | int (*probe)(struct platform_device *); | |
49 | 42 | int (*remove)(struct platform_device *); | |
50 | Bus IDs | 43 | void (*shutdown)(struct platform_device *); |
51 | ~~~~~~~ | 44 | int (*suspend)(struct platform_device *, pm_message_t state); |
52 | Bus IDs are the canonical names for the devices. There is no globally | 45 | int (*suspend_late)(struct platform_device *, pm_message_t state); |
53 | standard addressing mechanism for legacy devices. In the IA-32 world, | 46 | int (*resume_early)(struct platform_device *); |
54 | we have Pnp IDs to use, as well as the legacy I/O ports. However, | 47 | int (*resume)(struct platform_device *); |
55 | neither tell what the device really is or have any meaning on other | 48 | struct device_driver driver; |
56 | platforms. | 49 | }; |
57 | 50 | ||
58 | Since both PnP IDs and the legacy I/O ports (and other standard I/O | 51 | Note that probe() should general verify that the specified device hardware |
59 | ports for specific devices) have a 1:1 mapping, we map the | 52 | actually exists; sometimes platform setup code can't be sure. The probing |
60 | platform-specific name or identifier to a generic name (at least | 53 | can use device resources, including clocks, and device platform_data. |
61 | within the scope of the kernel). | 54 | |
62 | 55 | Platform drivers register themselves the normal way: | |
63 | For example, a serial driver might find a device at I/O 0x3f8. The | 56 | |
64 | ACPI firmware might also discover a device with PnP ID (_HID) | 57 | int platform_driver_register(struct platform_driver *drv); |
65 | PNP0501. Both correspond to the same device and should be mapped to the | 58 | |
66 | canonical name 'serial'. | 59 | Or, in common situations where the device is known not to be hot-pluggable, |
67 | 60 | the probe() routine can live in an init section to reduce the driver's | |
68 | The bus_id field should be a concatenation of the canonical name and | 61 | runtime memory footprint: |
69 | the instance of that type of device. For example, the device at I/O | 62 | |
70 | port 0x3f8 should have a bus_id of "serial0". This places the | 63 | int platform_driver_probe(struct platform_driver *drv, |
71 | responsibility of enumerating devices of a particular type up to the | 64 | int (*probe)(struct platform_device *)) |
72 | discovery mechanism. But, they are the entity that should know best | 65 | |
73 | (as opposed to the platform bus driver). | 66 | |
74 | 67 | Device Enumeration | |
75 | 68 | ~~~~~~~~~~~~~~~~~~ | |
76 | Drivers | 69 | As a rule, platform specific (and often board-specific) setup code wil |
77 | ~~~~~~~ | 70 | register platform devices: |
78 | Drivers for platform devices should have a name that is the same as | 71 | |
79 | the canonical name of the devices they support. This allows the | 72 | int platform_device_register(struct platform_device *pdev); |
80 | platform bus driver to do simple matching with the basic data | 73 | |
81 | structures to determine if a driver supports a certain device. | 74 | int platform_add_devices(struct platform_device **pdevs, int ndev); |
82 | 75 | ||
83 | For example, a legacy serial driver should have a name of 'serial' and | 76 | The general rule is to register only those devices that actually exist, |
84 | register itself with the platform bus. | 77 | but in some cases extra devices might be registered. For example, a kernel |
85 | 78 | might be configured to work with an external network adapter that might not | |
86 | 79 | be populated on all boards, or likewise to work with an integrated controller | |
87 | Driver Binding | 80 | that some boards might not hook up to any peripherals. |
88 | ~~~~~~~~~~~~~~ | 81 | |
89 | Legacy drivers assume they are bound to the device once they start up | 82 | In some cases, boot firmware will export tables describing the devices |
90 | and probe an I/O port. Divorcing them from this will be a difficult | 83 | that are populated on a given board. Without such tables, often the |
91 | process. However, that shouldn't prevent us from implementing | 84 | only way for system setup code to set up the correct devices is to build |
92 | firmware-based enumeration. | 85 | a kernel for a specific target board. Such board-specific kernels are |
93 | 86 | common with embedded and custom systems development. | |
94 | The firmware should notify the platform bus about devices before the | 87 | |
95 | legacy drivers have had a chance to load. Once the drivers are loaded, | 88 | In many cases, the memory and IRQ resources associated with the platform |
96 | they driver model core will attempt to bind the driver to any | 89 | device are not enough to let the device's driver work. Board setup code |
97 | previously-discovered devices. Once that has happened, it will be free | 90 | will often provide additional information using the device's platform_data |
98 | to discover any other devices it pleases. | 91 | field to hold additional information. |
92 | |||
93 | Embedded systems frequently need one or more clocks for platform devices, | ||
94 | which are normally kept off until they're actively needed (to save power). | ||
95 | System setup also associates those clocks with the device, so that that | ||
96 | calls to clk_get(&pdev->dev, clock_name) return them as needed. | ||
97 | |||
98 | |||
99 | Device Naming and Driver Binding | ||
100 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
101 | The platform_device.dev.bus_id is the canonical name for the devices. | ||
102 | It's built from two components: | ||
103 | |||
104 | * platform_device.name ... which is also used to for driver matching. | ||
105 | |||
106 | * platform_device.id ... the device instance number, or else "-1" | ||
107 | to indicate there's only one. | ||
108 | |||
109 | These are catenated, so name/id "serial"/0 indicates bus_id "serial.0", and | ||
110 | "serial/3" indicates bus_id "serial.3"; both would use the platform_driver | ||
111 | named "serial". While "my_rtc"/-1 would be bus_id "my_rtc" (no instance id) | ||
112 | and use the platform_driver called "my_rtc". | ||
113 | |||
114 | Driver binding is performed automatically by the driver core, invoking | ||
115 | driver probe() after finding a match between device and driver. If the | ||
116 | probe() succeeds, the driver and device are bound as usual. There are | ||
117 | three different ways to find such a match: | ||
118 | |||
119 | - Whenever a device is registered, the drivers for that bus are | ||
120 | checked for matches. Platform devices should be registered very | ||
121 | early during system boot. | ||
122 | |||
123 | - When a driver is registered using platform_driver_register(), all | ||
124 | unbound devices on that bus are checked for matches. Drivers | ||
125 | usually register later during booting, or by module loading. | ||
126 | |||
127 | - Registering a driver using platform_driver_probe() works just like | ||
128 | using platform_driver_register(), except that the the driver won't | ||
129 | be probed later if another device registers. (Which is OK, since | ||
130 | this interface is only for use with non-hotpluggable devices.) | ||
99 | 131 | ||
diff --git a/Documentation/driver-model/porting.txt b/Documentation/driver-model/porting.txt index 98b233cb8b36..92d86f7271b4 100644 --- a/Documentation/driver-model/porting.txt +++ b/Documentation/driver-model/porting.txt | |||
@@ -92,7 +92,7 @@ struct device represents a single device. It mainly contains metadata | |||
92 | describing the relationship the device has to other entities. | 92 | describing the relationship the device has to other entities. |
93 | 93 | ||
94 | 94 | ||
95 | - Embedd a struct device in the bus-specific device type. | 95 | - Embed a struct device in the bus-specific device type. |
96 | 96 | ||
97 | 97 | ||
98 | struct pci_dev { | 98 | struct pci_dev { |
diff --git a/Documentation/dvb/ci.txt b/Documentation/dvb/ci.txt index 531239b29082..2ecd834585e6 100644 --- a/Documentation/dvb/ci.txt +++ b/Documentation/dvb/ci.txt | |||
@@ -71,7 +71,7 @@ eliminating the need for any additional ioctls. | |||
71 | The disadvantage is that the driver/hardware has to manage the rest. For | 71 | The disadvantage is that the driver/hardware has to manage the rest. For |
72 | the application programmer it would be as simple as sending/receiving an | 72 | the application programmer it would be as simple as sending/receiving an |
73 | array to/from the CI ioctls as defined in the Linux DVB API. No changes | 73 | array to/from the CI ioctls as defined in the Linux DVB API. No changes |
74 | have been made in the API to accomodate this feature. | 74 | have been made in the API to accommodate this feature. |
75 | 75 | ||
76 | 76 | ||
77 | * Why the need for another CI interface ? | 77 | * Why the need for another CI interface ? |
@@ -102,7 +102,7 @@ This CI interface follows the CI high level interface, which is not | |||
102 | implemented by most applications. Hence this area is revisited. | 102 | implemented by most applications. Hence this area is revisited. |
103 | 103 | ||
104 | This CI interface is quite different in the case that it tries to | 104 | This CI interface is quite different in the case that it tries to |
105 | accomodate all other CI based devices, that fall into the other categories | 105 | accommodate all other CI based devices, that fall into the other categories. |
106 | 106 | ||
107 | This means that this CI interface handles the EN50221 style tags in the | 107 | This means that this CI interface handles the EN50221 style tags in the |
108 | Application layer only and no session management is taken care of by the | 108 | Application layer only and no session management is taken care of by the |
diff --git a/Documentation/eisa.txt b/Documentation/eisa.txt index 6a099edadd62..60e361ba08c0 100644 --- a/Documentation/eisa.txt +++ b/Documentation/eisa.txt | |||
@@ -62,7 +62,7 @@ res : root device I/O resource | |||
62 | bus_base_addr : slot 0 address on this bus | 62 | bus_base_addr : slot 0 address on this bus |
63 | slots : max slot number to probe | 63 | slots : max slot number to probe |
64 | force_probe : Probe even when slot 0 is empty (no EISA mainboard) | 64 | force_probe : Probe even when slot 0 is empty (no EISA mainboard) |
65 | dma_mask : Default DMA mask. Usualy the bridge device dma_mask. | 65 | dma_mask : Default DMA mask. Usually the bridge device dma_mask. |
66 | bus_nr : unique bus id, set by eisa_root_register | 66 | bus_nr : unique bus id, set by eisa_root_register |
67 | 67 | ||
68 | ** Driver : | 68 | ** Driver : |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 1ac3c74646e3..46f2a559b27c 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -30,11 +30,39 @@ Who: Adrian Bunk <bunk@stusta.de> | |||
30 | --------------------------- | 30 | --------------------------- |
31 | 31 | ||
32 | What: raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN | 32 | What: raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN |
33 | When: November 2006 | 33 | When: June 2007 |
34 | Why: Deprecated in favour of the new ioctl-based rawiso interface, which is | 34 | Why: Deprecated in favour of the more efficient and robust rawiso interface. |
35 | more efficient. You should really be using libraw1394 for raw1394 | 35 | Affected are applications which use the deprecated part of libraw1394 |
36 | access anyway. | 36 | (raw1394_iso_write, raw1394_start_iso_write, raw1394_start_iso_rcv, |
37 | Who: Jody McIntyre <scjody@modernduck.com> | 37 | raw1394_stop_iso_rcv) or bypass libraw1394. |
38 | Who: Dan Dennedy <dan@dennedy.org>, Stefan Richter <stefanr@s5r6.in-berlin.de> | ||
39 | |||
40 | --------------------------- | ||
41 | |||
42 | What: dv1394 driver (CONFIG_IEEE1394_DV1394) | ||
43 | When: June 2007 | ||
44 | Why: Replaced by raw1394 + userspace libraries, notably libiec61883. This | ||
45 | shift of application support has been indicated on www.linux1394.org | ||
46 | and developers' mailinglists for quite some time. Major applications | ||
47 | have been converted, with the exception of ffmpeg and hence xine. | ||
48 | Piped output of dvgrab2 is a partial equivalent to dv1394. | ||
49 | Who: Dan Dennedy <dan@dennedy.org>, Stefan Richter <stefanr@s5r6.in-berlin.de> | ||
50 | |||
51 | --------------------------- | ||
52 | |||
53 | What: ieee1394 core's unused exports (CONFIG_IEEE1394_EXPORT_FULL_API) | ||
54 | When: January 2007 | ||
55 | Why: There are no projects known to use these exported symbols, except | ||
56 | dfg1394 (uses one symbol whose functionality is core-internal now). | ||
57 | Who: Stefan Richter <stefanr@s5r6.in-berlin.de> | ||
58 | |||
59 | --------------------------- | ||
60 | |||
61 | What: ieee1394's *_oui sysfs attributes (CONFIG_IEEE1394_OUI_DB) | ||
62 | When: January 2007 | ||
63 | Files: drivers/ieee1394/: oui.db, oui2c.sh | ||
64 | Why: big size, little value | ||
65 | Who: Stefan Richter <stefanr@s5r6.in-berlin.de> | ||
38 | 66 | ||
39 | --------------------------- | 67 | --------------------------- |
40 | 68 | ||
@@ -53,18 +81,6 @@ Who: Mauro Carvalho Chehab <mchehab@brturbo.com.br> | |||
53 | 81 | ||
54 | --------------------------- | 82 | --------------------------- |
55 | 83 | ||
56 | What: sys_sysctl | ||
57 | When: January 2007 | ||
58 | Why: The same information is available through /proc/sys and that is the | ||
59 | interface user space prefers to use. And there do not appear to be | ||
60 | any existing user in user space of sys_sysctl. The additional | ||
61 | maintenance overhead of keeping a set of binary names gets | ||
62 | in the way of doing a good job of maintaining this interface. | ||
63 | |||
64 | Who: Eric Biederman <ebiederm@xmission.com> | ||
65 | |||
66 | --------------------------- | ||
67 | |||
68 | What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) | 84 | What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) |
69 | When: November 2005 | 85 | When: November 2005 |
70 | Files: drivers/pcmcia/: pcmcia_ioctl.c | 86 | Files: drivers/pcmcia/: pcmcia_ioctl.c |
@@ -82,18 +98,6 @@ Who: Dominik Brodowski <linux@brodo.de> | |||
82 | 98 | ||
83 | --------------------------- | 99 | --------------------------- |
84 | 100 | ||
85 | What: ip_queue and ip6_queue (old ipv4-only and ipv6-only netfilter queue) | ||
86 | When: December 2005 | ||
87 | Why: This interface has been obsoleted by the new layer3-independent | ||
88 | "nfnetlink_queue". The Kernel interface is compatible, so the old | ||
89 | ip[6]tables "QUEUE" targets still work and will transparently handle | ||
90 | all packets into nfnetlink queue number 0. Userspace users will have | ||
91 | to link against API-compatible library on top of libnfnetlink_queue | ||
92 | instead of the current 'libipq'. | ||
93 | Who: Harald Welte <laforge@netfilter.org> | ||
94 | |||
95 | --------------------------- | ||
96 | |||
97 | What: remove EXPORT_SYMBOL(kernel_thread) | 101 | What: remove EXPORT_SYMBOL(kernel_thread) |
98 | When: August 2006 | 102 | When: August 2006 |
99 | Files: arch/*/kernel/*_ksyms.c | 103 | Files: arch/*/kernel/*_ksyms.c |
@@ -239,21 +243,6 @@ Who: Patrick McHardy <kaber@trash.net> | |||
239 | 243 | ||
240 | --------------------------- | 244 | --------------------------- |
241 | 245 | ||
242 | What: frame diverter | ||
243 | When: November 2006 | ||
244 | Why: The frame diverter is included in most distribution kernels, but is | ||
245 | broken. It does not correctly handle many things: | ||
246 | - IPV6 | ||
247 | - non-linear skb's | ||
248 | - network device RCU on removal | ||
249 | - input frames not correctly checked for protocol errors | ||
250 | It also adds allocation overhead even if not enabled. | ||
251 | It is not clear if anyone is still using it. | ||
252 | Who: Stephen Hemminger <shemminger@osdl.org> | ||
253 | |||
254 | --------------------------- | ||
255 | |||
256 | |||
257 | What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment | 246 | What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment |
258 | When: October 2008 | 247 | When: October 2008 |
259 | Why: The stacking of class devices makes these values misleading and | 248 | Why: The stacking of class devices makes these values misleading and |
@@ -273,10 +262,11 @@ Who: Jean Delvare <khali@linux-fr.org> | |||
273 | 262 | ||
274 | --------------------------- | 263 | --------------------------- |
275 | 264 | ||
276 | What: ftape | 265 | What: IPv4 only connection tracking/NAT/helpers |
277 | When: 2.6.20 | 266 | When: 2.6.22 |
278 | Why: Orphaned for ages. SMP bugs long unfixed. Few users left | 267 | Why: The new layer 3 independant connection tracking replaces the old |
279 | in the world. | 268 | IPv4 only version. After some stabilization of the new code the |
280 | Who: Jeff Garzik <jeff@garzik.org> | 269 | old one will be removed. |
270 | Who: Patrick McHardy <kaber@trash.net> | ||
281 | 271 | ||
282 | --------------------------- | 272 | --------------------------- |
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index eb1a6cad21e6..790ef6fbe495 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -124,7 +124,7 @@ sync_fs: no no read | |||
124 | write_super_lockfs: ? | 124 | write_super_lockfs: ? |
125 | unlockfs: ? | 125 | unlockfs: ? |
126 | statfs: no no no | 126 | statfs: no no no |
127 | remount_fs: no yes maybe (see below) | 127 | remount_fs: yes yes maybe (see below) |
128 | clear_inode: no | 128 | clear_inode: no |
129 | umount_begin: yes no no | 129 | umount_begin: yes no no |
130 | show_options: no (vfsmount->sem) | 130 | show_options: no (vfsmount->sem) |
diff --git a/Documentation/filesystems/adfs.txt b/Documentation/filesystems/adfs.txt index 060abb0c7004..9e8811f92b84 100644 --- a/Documentation/filesystems/adfs.txt +++ b/Documentation/filesystems/adfs.txt | |||
@@ -3,7 +3,7 @@ Mount options for ADFS | |||
3 | 3 | ||
4 | uid=nnn All files in the partition will be owned by | 4 | uid=nnn All files in the partition will be owned by |
5 | user id nnn. Default 0 (root). | 5 | user id nnn. Default 0 (root). |
6 | gid=nnn All files in the partition willbe in group | 6 | gid=nnn All files in the partition will be in group |
7 | nnn. Default 0 (root). | 7 | nnn. Default 0 (root). |
8 | ownmask=nnn The permission mask for ADFS 'owner' permissions | 8 | ownmask=nnn The permission mask for ADFS 'owner' permissions |
9 | will be nnn. Default 0700. | 9 | will be nnn. Default 0700. |
diff --git a/Documentation/filesystems/configfs/configfs.txt b/Documentation/filesystems/configfs/configfs.txt index c3a7afb5eabf..b34cdb50eab4 100644 --- a/Documentation/filesystems/configfs/configfs.txt +++ b/Documentation/filesystems/configfs/configfs.txt | |||
@@ -209,7 +209,7 @@ will happen for write(2). | |||
209 | 209 | ||
210 | [struct config_group] | 210 | [struct config_group] |
211 | 211 | ||
212 | A config_item cannot live in a vaccum. The only way one can be created | 212 | A config_item cannot live in a vacuum. The only way one can be created |
213 | is via mkdir(2) on a config_group. This will trigger creation of a | 213 | is via mkdir(2) on a config_group. This will trigger creation of a |
214 | child item. | 214 | child item. |
215 | 215 | ||
@@ -275,7 +275,7 @@ directory is not empty. | |||
275 | 275 | ||
276 | [struct configfs_subsystem] | 276 | [struct configfs_subsystem] |
277 | 277 | ||
278 | A subsystem must register itself, ususally at module_init time. This | 278 | A subsystem must register itself, usually at module_init time. This |
279 | tells configfs to make the subsystem appear in the file tree. | 279 | tells configfs to make the subsystem appear in the file tree. |
280 | 280 | ||
281 | struct configfs_subsystem { | 281 | struct configfs_subsystem { |
diff --git a/Documentation/filesystems/fuse.txt b/Documentation/filesystems/fuse.txt index a584f05403a4..345392c4caeb 100644 --- a/Documentation/filesystems/fuse.txt +++ b/Documentation/filesystems/fuse.txt | |||
@@ -51,6 +51,22 @@ homepage: | |||
51 | 51 | ||
52 | http://fuse.sourceforge.net/ | 52 | http://fuse.sourceforge.net/ |
53 | 53 | ||
54 | Filesystem type | ||
55 | ~~~~~~~~~~~~~~~ | ||
56 | |||
57 | The filesystem type given to mount(2) can be one of the following: | ||
58 | |||
59 | 'fuse' | ||
60 | |||
61 | This is the usual way to mount a FUSE filesystem. The first | ||
62 | argument of the mount system call may contain an arbitrary string, | ||
63 | which is not interpreted by the kernel. | ||
64 | |||
65 | 'fuseblk' | ||
66 | |||
67 | The filesystem is block device based. The first argument of the | ||
68 | mount system call is interpreted as the name of the device. | ||
69 | |||
54 | Mount options | 70 | Mount options |
55 | ~~~~~~~~~~~~~ | 71 | ~~~~~~~~~~~~~ |
56 | 72 | ||
@@ -94,6 +110,11 @@ Mount options | |||
94 | The default is infinite. Note that the size of read requests is | 110 | The default is infinite. Note that the size of read requests is |
95 | limited anyway to 32 pages (which is 128kbyte on i386). | 111 | limited anyway to 32 pages (which is 128kbyte on i386). |
96 | 112 | ||
113 | 'blksize=N' | ||
114 | |||
115 | Set the block size for the filesystem. The default is 512. This | ||
116 | option is only valid for 'fuseblk' type mounts. | ||
117 | |||
97 | Control filesystem | 118 | Control filesystem |
98 | ~~~~~~~~~~~~~~~~~~ | 119 | ~~~~~~~~~~~~~~~~~~ |
99 | 120 | ||
@@ -111,7 +132,7 @@ For each connection the following files exist within this directory: | |||
111 | 132 | ||
112 | 'waiting' | 133 | 'waiting' |
113 | 134 | ||
114 | The number of requests which are waiting to be transfered to | 135 | The number of requests which are waiting to be transferred to |
115 | userspace or being processed by the filesystem daemon. If there is | 136 | userspace or being processed by the filesystem daemon. If there is |
116 | no filesystem activity and 'waiting' is non-zero, then the | 137 | no filesystem activity and 'waiting' is non-zero, then the |
117 | filesystem is hung or deadlocked. | 138 | filesystem is hung or deadlocked. |
@@ -136,7 +157,7 @@ following will happen: | |||
136 | 157 | ||
137 | 2) If the request is not yet sent to userspace AND the signal is not | 158 | 2) If the request is not yet sent to userspace AND the signal is not |
138 | fatal, then an 'interrupted' flag is set for the request. When | 159 | fatal, then an 'interrupted' flag is set for the request. When |
139 | the request has been successfully transfered to userspace and | 160 | the request has been successfully transferred to userspace and |
140 | this flag is set, an INTERRUPT request is queued. | 161 | this flag is set, an INTERRUPT request is queued. |
141 | 162 | ||
142 | 3) If the request is already sent to userspace, then an INTERRUPT | 163 | 3) If the request is already sent to userspace, then an INTERRUPT |
diff --git a/Documentation/filesystems/hpfs.txt b/Documentation/filesystems/hpfs.txt index 33dc360c8e89..38aba03efc5e 100644 --- a/Documentation/filesystems/hpfs.txt +++ b/Documentation/filesystems/hpfs.txt | |||
@@ -274,7 +274,7 @@ History | |||
274 | Fixed race-condition in buffer code - it is in all filesystems in Linux; | 274 | Fixed race-condition in buffer code - it is in all filesystems in Linux; |
275 | when reading device (cat /dev/hda) while creating files on it, files | 275 | when reading device (cat /dev/hda) while creating files on it, files |
276 | could be damaged | 276 | could be damaged |
277 | 2.02 Woraround for bug in breada in Linux. breada could cause accesses beyond | 277 | 2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond |
278 | end of partition | 278 | end of partition |
279 | 2.03 Char, block devices and pipes are correctly created | 279 | 2.03 Char, block devices and pipes are correctly created |
280 | Fixed non-crashing race in unlink (Alexander Viro) | 280 | Fixed non-crashing race in unlink (Alexander Viro) |
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index 35f105b29e3e..13ba649bda75 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt | |||
@@ -337,7 +337,7 @@ Finally, for a mirrored volume, i.e. raid level 1, the table would look like | |||
337 | this (note all values are in 512-byte sectors): | 337 | this (note all values are in 512-byte sectors): |
338 | 338 | ||
339 | --- cut here --- | 339 | --- cut here --- |
340 | # Ofs Size Raid Log Number Region Should Number Source Start Taget Start | 340 | # Ofs Size Raid Log Number Region Should Number Source Start Target Start |
341 | # in of the type type of log size sync? of Device in Device in | 341 | # in of the type type of log size sync? of Device in Device in |
342 | # vol volume params mirrors Device Device | 342 | # vol volume params mirrors Device Device |
343 | 0 2056320 mirror core 2 16 nosync 2 /dev/hda1 0 /dev/hdb1 0 | 343 | 0 2056320 mirror core 2 16 nosync 2 /dev/hda1 0 /dev/hdb1 0 |
@@ -599,7 +599,7 @@ Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | |||
599 | - Major bug fixes for reading files and volumes in corner cases which | 599 | - Major bug fixes for reading files and volumes in corner cases which |
600 | were being hit by Windows 2k/XP users. | 600 | were being hit by Windows 2k/XP users. |
601 | 2.1.2: | 601 | 2.1.2: |
602 | - Major bug fixes aleviating the hangs in statfs experienced by some | 602 | - Major bug fixes alleviating the hangs in statfs experienced by some |
603 | users. | 603 | users. |
604 | 2.1.1: | 604 | 2.1.1: |
605 | - Update handling of compressed files so people no longer get the | 605 | - Update handling of compressed files so people no longer get the |
diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt index 4389c684a80a..af6defd10cb6 100644 --- a/Documentation/filesystems/ocfs2.txt +++ b/Documentation/filesystems/ocfs2.txt | |||
@@ -30,7 +30,7 @@ Caveats | |||
30 | Features which OCFS2 does not support yet: | 30 | Features which OCFS2 does not support yet: |
31 | - sparse files | 31 | - sparse files |
32 | - extended attributes | 32 | - extended attributes |
33 | - shared writeable mmap | 33 | - shared writable mmap |
34 | - loopback is supported, but data written will not | 34 | - loopback is supported, but data written will not |
35 | be cluster coherent. | 35 | be cluster coherent. |
36 | - quotas | 36 | - quotas |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 3355e6920105..72af5de1effb 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1220,9 +1220,9 @@ applications are using mlock(), or if you are running with no swap then | |||
1220 | you probably should increase the lower_zone_protection setting. | 1220 | you probably should increase the lower_zone_protection setting. |
1221 | 1221 | ||
1222 | The units of this tunable are fairly vague. It is approximately equal | 1222 | The units of this tunable are fairly vague. It is approximately equal |
1223 | to "megabytes". So setting lower_zone_protection=100 will protect around 100 | 1223 | to "megabytes," so setting lower_zone_protection=100 will protect around 100 |
1224 | megabytes of the lowmem zone from user allocations. It will also make | 1224 | megabytes of the lowmem zone from user allocations. It will also make |
1225 | those 100 megabytes unavaliable for use by applications and by | 1225 | those 100 megabytes unavailable for use by applications and by |
1226 | pagecache, so there is a cost. | 1226 | pagecache, so there is a cost. |
1227 | 1227 | ||
1228 | The effects of this tunable may be observed by monitoring | 1228 | The effects of this tunable may be observed by monitoring |
@@ -1538,10 +1538,10 @@ TCP settings | |||
1538 | tcp_ecn | 1538 | tcp_ecn |
1539 | ------- | 1539 | ------- |
1540 | 1540 | ||
1541 | This file controls the use of the ECN bit in the IPv4 headers, this is a new | 1541 | This file controls the use of the ECN bit in the IPv4 headers. This is a new |
1542 | feature about Explicit Congestion Notification, but some routers and firewalls | 1542 | feature about Explicit Congestion Notification, but some routers and firewalls |
1543 | block trafic that has this bit set, so it could be necessary to echo 0 to | 1543 | block traffic that has this bit set, so it could be necessary to echo 0 to |
1544 | /proc/sys/net/ipv4/tcp_ecn, if you want to talk to this sites. For more info | 1544 | /proc/sys/net/ipv4/tcp_ecn if you want to talk to these sites. For more info |
1545 | you could read RFC2481. | 1545 | you could read RFC2481. |
1546 | 1546 | ||
1547 | tcp_retrans_collapse | 1547 | tcp_retrans_collapse |
diff --git a/Documentation/filesystems/spufs.txt b/Documentation/filesystems/spufs.txt index 982645a1981d..1343d118a9b2 100644 --- a/Documentation/filesystems/spufs.txt +++ b/Documentation/filesystems/spufs.txt | |||
@@ -210,7 +210,7 @@ FILES | |||
210 | /signal2 | 210 | /signal2 |
211 | The two signal notification channels of an SPU. These are read-write | 211 | The two signal notification channels of an SPU. These are read-write |
212 | files that operate on a 32 bit word. Writing to one of these files | 212 | files that operate on a 32 bit word. Writing to one of these files |
213 | triggers an interrupt on the SPU. The value writting to the signal | 213 | triggers an interrupt on the SPU. The value written to the signal |
214 | files can be read from the SPU through a channel read or from host user | 214 | files can be read from the SPU through a channel read or from host user |
215 | space through the file. After the value has been read by the SPU, it | 215 | space through the file. After the value has been read by the SPU, it |
216 | is reset to zero. The possible operations on an open signal1 or sig- | 216 | is reset to zero. The possible operations on an open signal1 or sig- |
diff --git a/Documentation/filesystems/sysv-fs.txt b/Documentation/filesystems/sysv-fs.txt index d81722418010..253b50d1328e 100644 --- a/Documentation/filesystems/sysv-fs.txt +++ b/Documentation/filesystems/sysv-fs.txt | |||
@@ -1,11 +1,8 @@ | |||
1 | This is the implementation of the SystemV/Coherent filesystem for Linux. | ||
2 | It implements all of | 1 | It implements all of |
3 | - Xenix FS, | 2 | - Xenix FS, |
4 | - SystemV/386 FS, | 3 | - SystemV/386 FS, |
5 | - Coherent FS. | 4 | - Coherent FS. |
6 | 5 | ||
7 | This is version beta 4. | ||
8 | |||
9 | To install: | 6 | To install: |
10 | * Answer the 'System V and Coherent filesystem support' question with 'y' | 7 | * Answer the 'System V and Coherent filesystem support' question with 'y' |
11 | when configuring the kernel. | 8 | when configuring the kernel. |
@@ -28,11 +25,173 @@ Bugs in the present implementation: | |||
28 | for this FS on hard disk yet. | 25 | for this FS on hard disk yet. |
29 | 26 | ||
30 | 27 | ||
31 | Please report any bugs and suggestions to | 28 | These filesystems are rather similar. Here is a comparison with Minix FS: |
32 | Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de> | 29 | |
33 | Pascal Haible <haible@izfm.uni-stuttgart.de> | 30 | * Linux fdisk reports on partitions |
34 | Krzysztof G. Baranowski <kgb@manjak.knm.org.pl> | 31 | - Minix FS 0x81 Linux/Minix |
32 | - Xenix FS ?? | ||
33 | - SystemV FS ?? | ||
34 | - Coherent FS 0x08 AIX bootable | ||
35 | |||
36 | * Size of a block or zone (data allocation unit on disk) | ||
37 | - Minix FS 1024 | ||
38 | - Xenix FS 1024 (also 512 ??) | ||
39 | - SystemV FS 1024 (also 512 and 2048) | ||
40 | - Coherent FS 512 | ||
41 | |||
42 | * General layout: all have one boot block, one super block and | ||
43 | separate areas for inodes and for directories/data. | ||
44 | On SystemV Release 2 FS (e.g. Microport) the first track is reserved and | ||
45 | all the block numbers (including the super block) are offset by one track. | ||
46 | |||
47 | * Byte ordering of "short" (16 bit entities) on disk: | ||
48 | - Minix FS little endian 0 1 | ||
49 | - Xenix FS little endian 0 1 | ||
50 | - SystemV FS little endian 0 1 | ||
51 | - Coherent FS little endian 0 1 | ||
52 | Of course, this affects only the file system, not the data of files on it! | ||
53 | |||
54 | * Byte ordering of "long" (32 bit entities) on disk: | ||
55 | - Minix FS little endian 0 1 2 3 | ||
56 | - Xenix FS little endian 0 1 2 3 | ||
57 | - SystemV FS little endian 0 1 2 3 | ||
58 | - Coherent FS PDP-11 2 3 0 1 | ||
59 | Of course, this affects only the file system, not the data of files on it! | ||
60 | |||
61 | * Inode on disk: "short", 0 means non-existent, the root dir ino is: | ||
62 | - Minix FS 1 | ||
63 | - Xenix FS, SystemV FS, Coherent FS 2 | ||
64 | |||
65 | * Maximum number of hard links to a file: | ||
66 | - Minix FS 250 | ||
67 | - Xenix FS ?? | ||
68 | - SystemV FS ?? | ||
69 | - Coherent FS >=10000 | ||
70 | |||
71 | * Free inode management: | ||
72 | - Minix FS a bitmap | ||
73 | - Xenix FS, SystemV FS, Coherent FS | ||
74 | There is a cache of a certain number of free inodes in the super-block. | ||
75 | When it is exhausted, new free inodes are found using a linear search. | ||
76 | |||
77 | * Free block management: | ||
78 | - Minix FS a bitmap | ||
79 | - Xenix FS, SystemV FS, Coherent FS | ||
80 | Free blocks are organized in a "free list". Maybe a misleading term, | ||
81 | since it is not true that every free block contains a pointer to | ||
82 | the next free block. Rather, the free blocks are organized in chunks | ||
83 | of limited size, and every now and then a free block contains pointers | ||
84 | to the free blocks pertaining to the next chunk; the first of these | ||
85 | contains pointers and so on. The list terminates with a "block number" | ||
86 | 0 on Xenix FS and SystemV FS, with a block zeroed out on Coherent FS. | ||
87 | |||
88 | * Super-block location: | ||
89 | - Minix FS block 1 = bytes 1024..2047 | ||
90 | - Xenix FS block 1 = bytes 1024..2047 | ||
91 | - SystemV FS bytes 512..1023 | ||
92 | - Coherent FS block 1 = bytes 512..1023 | ||
93 | |||
94 | * Super-block layout: | ||
95 | - Minix FS | ||
96 | unsigned short s_ninodes; | ||
97 | unsigned short s_nzones; | ||
98 | unsigned short s_imap_blocks; | ||
99 | unsigned short s_zmap_blocks; | ||
100 | unsigned short s_firstdatazone; | ||
101 | unsigned short s_log_zone_size; | ||
102 | unsigned long s_max_size; | ||
103 | unsigned short s_magic; | ||
104 | - Xenix FS, SystemV FS, Coherent FS | ||
105 | unsigned short s_firstdatazone; | ||
106 | unsigned long s_nzones; | ||
107 | unsigned short s_fzone_count; | ||
108 | unsigned long s_fzones[NICFREE]; | ||
109 | unsigned short s_finode_count; | ||
110 | unsigned short s_finodes[NICINOD]; | ||
111 | char s_flock; | ||
112 | char s_ilock; | ||
113 | char s_modified; | ||
114 | char s_rdonly; | ||
115 | unsigned long s_time; | ||
116 | short s_dinfo[4]; -- SystemV FS only | ||
117 | unsigned long s_free_zones; | ||
118 | unsigned short s_free_inodes; | ||
119 | short s_dinfo[4]; -- Xenix FS only | ||
120 | unsigned short s_interleave_m,s_interleave_n; -- Coherent FS only | ||
121 | char s_fname[6]; | ||
122 | char s_fpack[6]; | ||
123 | then they differ considerably: | ||
124 | Xenix FS | ||
125 | char s_clean; | ||
126 | char s_fill[371]; | ||
127 | long s_magic; | ||
128 | long s_type; | ||
129 | SystemV FS | ||
130 | long s_fill[12 or 14]; | ||
131 | long s_state; | ||
132 | long s_magic; | ||
133 | long s_type; | ||
134 | Coherent FS | ||
135 | unsigned long s_unique; | ||
136 | Note that Coherent FS has no magic. | ||
137 | |||
138 | * Inode layout: | ||
139 | - Minix FS | ||
140 | unsigned short i_mode; | ||
141 | unsigned short i_uid; | ||
142 | unsigned long i_size; | ||
143 | unsigned long i_time; | ||
144 | unsigned char i_gid; | ||
145 | unsigned char i_nlinks; | ||
146 | unsigned short i_zone[7+1+1]; | ||
147 | - Xenix FS, SystemV FS, Coherent FS | ||
148 | unsigned short i_mode; | ||
149 | unsigned short i_nlink; | ||
150 | unsigned short i_uid; | ||
151 | unsigned short i_gid; | ||
152 | unsigned long i_size; | ||
153 | unsigned char i_zone[3*(10+1+1+1)]; | ||
154 | unsigned long i_atime; | ||
155 | unsigned long i_mtime; | ||
156 | unsigned long i_ctime; | ||
157 | |||
158 | * Regular file data blocks are organized as | ||
159 | - Minix FS | ||
160 | 7 direct blocks | ||
161 | 1 indirect block (pointers to blocks) | ||
162 | 1 double-indirect block (pointer to pointers to blocks) | ||
163 | - Xenix FS, SystemV FS, Coherent FS | ||
164 | 10 direct blocks | ||
165 | 1 indirect block (pointers to blocks) | ||
166 | 1 double-indirect block (pointer to pointers to blocks) | ||
167 | 1 triple-indirect block (pointer to pointers to pointers to blocks) | ||
168 | |||
169 | * Inode size, inodes per block | ||
170 | - Minix FS 32 32 | ||
171 | - Xenix FS 64 16 | ||
172 | - SystemV FS 64 16 | ||
173 | - Coherent FS 64 8 | ||
174 | |||
175 | * Directory entry on disk | ||
176 | - Minix FS | ||
177 | unsigned short inode; | ||
178 | char name[14/30]; | ||
179 | - Xenix FS, SystemV FS, Coherent FS | ||
180 | unsigned short inode; | ||
181 | char name[14]; | ||
182 | |||
183 | * Dir entry size, dir entries per block | ||
184 | - Minix FS 16/32 64/32 | ||
185 | - Xenix FS 16 64 | ||
186 | - SystemV FS 16 64 | ||
187 | - Coherent FS 16 32 | ||
188 | |||
189 | * How to implement symbolic links such that the host fsck doesn't scream: | ||
190 | - Minix FS normal | ||
191 | - Xenix FS kludge: as regular files with chmod 1000 | ||
192 | - SystemV FS ?? | ||
193 | - Coherent FS kludge: as regular files with chmod 1000 | ||
35 | 194 | ||
36 | Bruno Haible | ||
37 | <haible@ma2s2.mathematik.uni-karlsruhe.de> | ||
38 | 195 | ||
196 | Notation: We often speak of a "block" but mean a zone (the allocation unit) | ||
197 | and not the disk driver's notion of "block". | ||
diff --git a/Documentation/filesystems/udf.txt b/Documentation/filesystems/udf.txt index 511b4230c053..fde829a756e6 100644 --- a/Documentation/filesystems/udf.txt +++ b/Documentation/filesystems/udf.txt | |||
@@ -7,8 +7,17 @@ If you encounter problems with reading UDF discs using this driver, | |||
7 | please report them to linux_udf@hpesjro.fc.hp.com, which is the | 7 | please report them to linux_udf@hpesjro.fc.hp.com, which is the |
8 | developer's list. | 8 | developer's list. |
9 | 9 | ||
10 | Write support requires a block driver which supports writing. The current | 10 | Write support requires a block driver which supports writing. Currently |
11 | scsi and ide cdrom drivers do not support writing. | 11 | dvd+rw drives and media support true random sector writes, and so a udf |
12 | filesystem on such devices can be directly mounted read/write. CD-RW | ||
13 | media however, does not support this. Instead the media can be formatted | ||
14 | for packet mode using the utility cdrwtool, then the pktcdvd driver can | ||
15 | be bound to the underlying cd device to provide the required buffering | ||
16 | and read-modify-write cycles to allow the filesystem random sector writes | ||
17 | while providing the hardware with only full packet writes. While not | ||
18 | required for dvd+rw media, use of the pktcdvd driver often enhances | ||
19 | performance due to very poor read-modify-write support supplied internally | ||
20 | by drive firmware. | ||
12 | 21 | ||
13 | ------------------------------------------------------------------------------- | 22 | ------------------------------------------------------------------------------- |
14 | The following mount options are supported: | 23 | The following mount options are supported: |
diff --git a/Documentation/ftape.txt b/Documentation/ftape.txt deleted file mode 100644 index 7d8bb3384031..000000000000 --- a/Documentation/ftape.txt +++ /dev/null | |||
@@ -1,307 +0,0 @@ | |||
1 | Intro | ||
2 | ===== | ||
3 | |||
4 | This file describes some issues involved when using the "ftape" | ||
5 | floppy tape device driver that comes with the Linux kernel. | ||
6 | |||
7 | ftape has a home page at | ||
8 | |||
9 | http://ftape.dot-heine.de/ | ||
10 | |||
11 | which contains further information about ftape. Please cross check | ||
12 | this WWW address against the address given (if any) in the MAINTAINERS | ||
13 | file located in the top level directory of the Linux kernel source | ||
14 | tree. | ||
15 | |||
16 | NOTE: This is an unmaintained set of drivers, and it is not guaranteed to work. | ||
17 | If you are interested in taking over maintenance, contact Claus-Justus Heine | ||
18 | <ch@dot-heine.de>, the former maintainer. | ||
19 | |||
20 | Contents | ||
21 | ======== | ||
22 | |||
23 | A minus 1: Ftape documentation | ||
24 | |||
25 | A. Changes | ||
26 | 1. Goal | ||
27 | 2. I/O Block Size | ||
28 | 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape) | ||
29 | 4. Formatting | ||
30 | 5. Interchanging cartridges with other operating systems | ||
31 | |||
32 | B. Debugging Output | ||
33 | 1. Introduction | ||
34 | 2. Tuning the debugging output | ||
35 | |||
36 | C. Boot and load time configuration | ||
37 | 1. Setting boot time parameters | ||
38 | 2. Module load time parameters | ||
39 | 3. Ftape boot- and load time options | ||
40 | 4. Example kernel parameter setting | ||
41 | 5. Example module parameter setting | ||
42 | |||
43 | D. Support and contacts | ||
44 | |||
45 | ******************************************************************************* | ||
46 | |||
47 | A minus 1. Ftape documentation | ||
48 | ============================== | ||
49 | |||
50 | Unluckily, the ftape-HOWTO is out of date. This really needs to be | ||
51 | changed. Up to date documentation as well as recent development | ||
52 | versions of ftape and useful links to related topics can be found at | ||
53 | the ftape home page at | ||
54 | |||
55 | http://ftape.dot-heine.de/ | ||
56 | |||
57 | ******************************************************************************* | ||
58 | |||
59 | A. Changes | ||
60 | ========== | ||
61 | |||
62 | 1. Goal | ||
63 | ~~~~ | ||
64 | The goal of all that incompatibilities was to give ftape an interface | ||
65 | that resembles the interface provided by SCSI tape drives as close | ||
66 | as possible. Thus any Unix backup program that is known to work | ||
67 | with SCSI tape drives should also work. | ||
68 | |||
69 | The concept of a fixed block size for read/write transfers is | ||
70 | rather unrelated to this SCSI tape compatibility at the file system | ||
71 | interface level. It developed out of a feature of zftape, a | ||
72 | block wise user transparent on-the-fly compression. That compression | ||
73 | support will not be dropped in future releases for compatibility | ||
74 | reasons with previous releases of zftape. | ||
75 | |||
76 | 2. I/O Block Size | ||
77 | ~~~~~~~~~~~~~~ | ||
78 | The block size defaults to 10k which is the default block size of | ||
79 | GNU tar. | ||
80 | |||
81 | The block size can be tuned either during kernel configuration or | ||
82 | at runtime with the MTIOCTOP ioctl using the MTSETBLK operation | ||
83 | (i.e. do "mt -f /dev/qft0" setblk #BLKSZ). A block size of 0 | ||
84 | switches to variable block size mode i.e. "mt setblk 0" switches | ||
85 | off the block size restriction. However, this disables zftape's | ||
86 | built in on-the-fly compression which doesn't work with variable | ||
87 | block size mode. | ||
88 | |||
89 | The BLKSZ parameter must be given as a byte count and must be a | ||
90 | multiple of 32k or 0, i.e. use "mt setblk 32768" to switch to a | ||
91 | block size of 32k. | ||
92 | |||
93 | The typical symptom of a block size mismatch is an "invalid | ||
94 | argument" error message. | ||
95 | |||
96 | 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape) | ||
97 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
98 | zftape (the file system interface of ftape-3.x) denies write access | ||
99 | to the tape cartridge when it isn't positioned either at BOT or | ||
100 | EOD. | ||
101 | |||
102 | 4. Formatting | ||
103 | ~~~~~~~~~~ | ||
104 | ftape DOES support formatting of floppy tape cartridges. You need the | ||
105 | `ftformat' program that is shipped with the modules version of ftape. | ||
106 | Please get the latest version of ftape from | ||
107 | |||
108 | ftp://sunsite.unc.edu/pub/Linux/kernel/tapes | ||
109 | |||
110 | or from the ftape home page at | ||
111 | |||
112 | http://ftape.dot-heine.de/ | ||
113 | |||
114 | `ftformat' is contained in the `./contrib/' subdirectory of that | ||
115 | separate ftape package. | ||
116 | |||
117 | 5. Interchanging cartridges with other operating systems | ||
118 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
119 | |||
120 | The internal emulation of Unix tape device file marks has changed | ||
121 | completely. ftape now uses the volume table segment as specified | ||
122 | by the QIC-40/80/3010/3020/113 standards to emulate file marks. As | ||
123 | a consequence there is limited support to interchange cartridges | ||
124 | with other operating systems. | ||
125 | |||
126 | To be more precise: ftape will detect volumes written by other OS's | ||
127 | programs and other OS's programs will detect volumes written by | ||
128 | ftape. | ||
129 | |||
130 | However, it isn't possible to extract the data dumped to the tape | ||
131 | by some MSDOS program with ftape. This exceeds the scope of a | ||
132 | kernel device driver. If you need such functionality, then go ahead | ||
133 | and write a user space utility that is able to do that. ftape already | ||
134 | provides all kernel level support necessary to do that. | ||
135 | |||
136 | ******************************************************************************* | ||
137 | |||
138 | B. Debugging Output | ||
139 | ================ | ||
140 | |||
141 | 1. Introduction | ||
142 | ~~~~~~~~~~~~ | ||
143 | The ftape driver can be very noisy in that is can print lots of | ||
144 | debugging messages to the kernel log files and the system console. | ||
145 | While this is useful for debugging it might be annoying during | ||
146 | normal use and enlarges the size of the driver by several kilobytes. | ||
147 | |||
148 | To reduce the size of the driver you can trim the maximal amount of | ||
149 | debugging information available during kernel configuration. Please | ||
150 | refer to the kernel configuration script and its on-line help | ||
151 | functionality. | ||
152 | |||
153 | The amount of debugging output maps to the "tracing" boot time | ||
154 | option and the "ft_tracing" modules option as follows: | ||
155 | |||
156 | 0 bugs | ||
157 | 1 + errors (with call-stack dump) | ||
158 | 2 + warnings | ||
159 | 3 + information | ||
160 | 4 + more information | ||
161 | 5 + program flow | ||
162 | 6 + fdc/dma info | ||
163 | 7 + data flow | ||
164 | 8 + everything else | ||
165 | |||
166 | 2. Tuning the debugging output | ||
167 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
168 | To reduce the amount of debugging output printed to the system | ||
169 | console you can | ||
170 | |||
171 | i) trim the debugging output at run-time with | ||
172 | |||
173 | mt -f /dev/nqft0 setdensity #DBGLVL | ||
174 | |||
175 | where "#DBGLVL" is a number between 0 and 9 | ||
176 | |||
177 | ii) trim the debugging output at module load time with | ||
178 | |||
179 | modprobe ftape ft_tracing=#DBGLVL | ||
180 | |||
181 | Of course, this applies only if you have configured ftape to be | ||
182 | compiled as a module. | ||
183 | |||
184 | iii) trim the debugging output during system boot time. Add the | ||
185 | following to the kernel command line: | ||
186 | |||
187 | ftape=#DBGLVL,tracing | ||
188 | |||
189 | Please refer also to the next section if you don't know how to | ||
190 | set boot time parameters. | ||
191 | |||
192 | ******************************************************************************* | ||
193 | |||
194 | C. Boot and load time configuration | ||
195 | ================================ | ||
196 | |||
197 | 1. Setting boot time parameters | ||
198 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
199 | Assuming that you use lilo, the LI)nux LO)ader, boot time kernel | ||
200 | parameters can be set by adding a line | ||
201 | |||
202 | append some_kernel_boot_time_parameter | ||
203 | |||
204 | to `/etc/lilo.conf' or at real boot time by typing in the options | ||
205 | at the prompt provided by LILO. I can't give you advice on how to | ||
206 | specify those parameters with other loaders as I don't use them. | ||
207 | |||
208 | For ftape, each "some_kernel_boot_time_parameter" looks like | ||
209 | "ftape=value,option". As an example, the debugging output can be | ||
210 | increased with | ||
211 | |||
212 | ftape=4,tracing | ||
213 | |||
214 | NOTE: the value precedes the option name. | ||
215 | |||
216 | 2. Module load time parameters | ||
217 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
218 | Module parameters can be specified either directly when invoking | ||
219 | the program 'modprobe' at the shell prompt: | ||
220 | |||
221 | modprobe ftape ft_tracing=4 | ||
222 | |||
223 | or by editing the file `/etc/modprobe.conf' in which case they take | ||
224 | effect each time when the module is loaded with `modprobe' (please | ||
225 | refer to the respective manual pages). Thus, you should add a line | ||
226 | |||
227 | options ftape ft_tracing=4 | ||
228 | |||
229 | to `/etc/modprobe.conf` if you intend to increase the debugging | ||
230 | output of the driver. | ||
231 | |||
232 | |||
233 | 3. Ftape boot- and load time options | ||
234 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
235 | |||
236 | i. Controlling the amount of debugging output | ||
237 | DBGLVL has to be replaced by a number between 0 and 8. | ||
238 | |||
239 | module | kernel command line | ||
240 | -----------------------|---------------------- | ||
241 | ft_tracing=DBGLVL | ftape=DBGLVL,tracing | ||
242 | |||
243 | ii. Hardware setup | ||
244 | BASE is the base address of your floppy disk controller, | ||
245 | IRQ and DMA give its interrupt and DMA channel, respectively. | ||
246 | BOOL is an integer, "0" means "no"; any other value means | ||
247 | "yes". You don't need to specify anything if connecting your tape | ||
248 | drive to the standard floppy disk controller. All of these | ||
249 | values have reasonable defaults. The defaults can be modified | ||
250 | during kernel configuration, i.e. while running "make config", | ||
251 | "make menuconfig" or "make xconfig" in the top level directory | ||
252 | of the Linux kernel source tree. Please refer also to the on | ||
253 | line documentation provided during that kernel configuration | ||
254 | process. | ||
255 | |||
256 | ft_probe_fc10 is set to a non-zero value if you wish for ftape to | ||
257 | probe for a Colorado FC-10 or FC-20 controller. | ||
258 | |||
259 | ft_mach2 is set to a non-zero value if you wish for ftape to probe | ||
260 | for a Mountain MACH-2 controller. | ||
261 | |||
262 | module | kernel command line | ||
263 | -----------------------|---------------------- | ||
264 | ft_fdc_base=BASE | ftape=BASE,ioport | ||
265 | ft_fdc_irq=IRQ | ftape=IRQ,irq | ||
266 | ft_fdc_dma=DMA | ftape=DMA,dma | ||
267 | ft_probe_fc10=BOOL | ftape=BOOL,fc10 | ||
268 | ft_mach2=BOOL | ftape=BOOL,mach2 | ||
269 | ft_fdc_threshold=THR | ftape=THR,threshold | ||
270 | ft_fdc_rate_limit=RATE | ftape=RATE,datarate | ||
271 | |||
272 | 4. Example kernel parameter setting | ||
273 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
274 | To configure ftape to probe for a Colorado FC-10/FC-20 controller | ||
275 | and to increase the amount of debugging output a little bit, add | ||
276 | the following line to `/etc/lilo.conf': | ||
277 | |||
278 | append ftape=1,fc10 ftape=4,tracing | ||
279 | |||
280 | 5. Example module parameter setting | ||
281 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
282 | To do the same, but with ftape compiled as a loadable kernel | ||
283 | module, add the following line to `/etc/modprobe.conf': | ||
284 | |||
285 | options ftape ft_probe_fc10=1 ft_tracing=4 | ||
286 | |||
287 | ******************************************************************************* | ||
288 | |||
289 | D. Support and contacts | ||
290 | ==================== | ||
291 | |||
292 | Ftape is distributed under the GNU General Public License. There is | ||
293 | absolutely no warranty for this software. However, you can reach | ||
294 | the current maintainer of the ftape package under the email address | ||
295 | given in the MAINTAINERS file which is located in the top level | ||
296 | directory of the Linux kernel source tree. There you'll find also | ||
297 | the relevant mailing list to use as a discussion forum and the web | ||
298 | page to query for the most recent documentation, related work and | ||
299 | development versions of ftape. | ||
300 | |||
301 | Changelog: | ||
302 | ========== | ||
303 | |||
304 | ~1996: Original Document | ||
305 | |||
306 | 10-24-2004: General cleanup and updating, noting additional module options. | ||
307 | James Nelson <james4765@gmail.com> | ||
diff --git a/Documentation/fujitsu/frv/gdbstub.txt b/Documentation/fujitsu/frv/gdbstub.txt index 6ce5aa9abbc5..9304fb36ae8a 100644 --- a/Documentation/fujitsu/frv/gdbstub.txt +++ b/Documentation/fujitsu/frv/gdbstub.txt | |||
@@ -59,7 +59,7 @@ the following things on the "Kernel Hacking" tab: | |||
59 | Then build as usual, download to the board and execute. Note that if | 59 | Then build as usual, download to the board and execute. Note that if |
60 | "Immediate activation" was selected, then the kernel will wait for GDB to | 60 | "Immediate activation" was selected, then the kernel will wait for GDB to |
61 | attach. If not, then the kernel will boot immediately and GDB will have to | 61 | attach. If not, then the kernel will boot immediately and GDB will have to |
62 | interupt it or wait for an exception to occur if before doing anything with | 62 | interrupt it or wait for an exception to occur before doing anything with |
63 | the kernel. | 63 | the kernel. |
64 | 64 | ||
65 | 65 | ||
diff --git a/Documentation/fujitsu/frv/kernel-ABI.txt b/Documentation/fujitsu/frv/kernel-ABI.txt index 8b0a5fc8bfd9..aaa1cec86f0b 100644 --- a/Documentation/fujitsu/frv/kernel-ABI.txt +++ b/Documentation/fujitsu/frv/kernel-ABI.txt | |||
@@ -156,7 +156,7 @@ with the main kernel in this regard. Hence the debug mode code (gdbstub) is | |||
156 | almost completely self-contained. The only external code used is the | 156 | almost completely self-contained. The only external code used is the |
157 | sprintf family of functions. | 157 | sprintf family of functions. |
158 | 158 | ||
159 | Futhermore, break.S is so complicated because single-step mode does not | 159 | Furthermore, break.S is so complicated because single-step mode does not |
160 | switch off on entry to an exception. That means unless manually disabled, | 160 | switch off on entry to an exception. That means unless manually disabled, |
161 | single-stepping will blithely go on stepping into things like interrupts. | 161 | single-stepping will blithely go on stepping into things like interrupts. |
162 | See gdbstub.txt for more information. | 162 | See gdbstub.txt for more information. |
diff --git a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt index c51314b1a463..9575de300a61 100644 --- a/Documentation/i386/boot.txt +++ b/Documentation/i386/boot.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | ---------------------------- | 2 | ---------------------------- |
3 | 3 | ||
4 | H. Peter Anvin <hpa@zytor.com> | 4 | H. Peter Anvin <hpa@zytor.com> |
5 | Last update 2005-09-02 | 5 | Last update 2006-11-17 |
6 | 6 | ||
7 | On the i386 platform, the Linux kernel uses a rather complicated boot | 7 | On the i386 platform, the Linux kernel uses a rather complicated boot |
8 | convention. This has evolved partially due to historical aspects, as | 8 | convention. This has evolved partially due to historical aspects, as |
@@ -35,6 +35,8 @@ Protocol 2.03: (Kernel 2.4.18-pre1) Explicitly makes the highest possible | |||
35 | initrd address available to the bootloader. | 35 | initrd address available to the bootloader. |
36 | 36 | ||
37 | Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. | 37 | Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. |
38 | Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable. | ||
39 | Introduce relocatable_kernel and kernel_alignment fields. | ||
38 | 40 | ||
39 | 41 | ||
40 | **** MEMORY LAYOUT | 42 | **** MEMORY LAYOUT |
@@ -129,6 +131,8 @@ Offset Proto Name Meaning | |||
129 | 0226/2 N/A pad1 Unused | 131 | 0226/2 N/A pad1 Unused |
130 | 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line | 132 | 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line |
131 | 022C/4 2.03+ initrd_addr_max Highest legal initrd address | 133 | 022C/4 2.03+ initrd_addr_max Highest legal initrd address |
134 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel | ||
135 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not | ||
132 | 136 | ||
133 | (1) For backwards compatibility, if the setup_sects field contains 0, the | 137 | (1) For backwards compatibility, if the setup_sects field contains 0, the |
134 | real value is 4. | 138 | real value is 4. |
diff --git a/Documentation/ide.txt b/Documentation/ide.txt index 0bf38baa2db9..786c3a766995 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide.txt | |||
@@ -390,5 +390,5 @@ mlord@pobox.com | |||
390 | Wed Apr 17 22:52:44 CEST 2002 edited by Marcin Dalecki, the current | 390 | Wed Apr 17 22:52:44 CEST 2002 edited by Marcin Dalecki, the current |
391 | maintainer. | 391 | maintainer. |
392 | 392 | ||
393 | Wed Aug 20 22:31:29 CEST 2003 updated ide boot uptions to current ide.c | 393 | Wed Aug 20 22:31:29 CEST 2003 updated ide boot options to current ide.c |
394 | comments at 2.6.0-test4 time. Maciej Soltysiak <solt@dns.toxicfilms.tv> | 394 | comments at 2.6.0-test4 time. Maciej Soltysiak <solt@dns.toxicfilms.tv> |
diff --git a/Documentation/input/amijoy.txt b/Documentation/input/amijoy.txt index 4f0e89df5c51..7dc4f175943c 100644 --- a/Documentation/input/amijoy.txt +++ b/Documentation/input/amijoy.txt | |||
@@ -91,8 +91,8 @@ JOY1DAT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0 | |||
91 | | 1 | M0HQ | JOY0DAT Horizontal Clock (quadrature) | | 91 | | 1 | M0HQ | JOY0DAT Horizontal Clock (quadrature) | |
92 | | 2 | M0V | JOY0DAT Vertical Clock | | 92 | | 2 | M0V | JOY0DAT Vertical Clock | |
93 | | 3 | M0VQ | JOY0DAT Vertical Clock (quadrature) | | 93 | | 3 | M0VQ | JOY0DAT Vertical Clock (quadrature) | |
94 | | 4 | M1V | JOY1DAT Horizontall Clock | | 94 | | 4 | M1V | JOY1DAT Horizontal Clock | |
95 | | 5 | M1VQ | JOY1DAT Horizontall Clock (quadrature) | | 95 | | 5 | M1VQ | JOY1DAT Horizontal Clock (quadrature) | |
96 | | 6 | M1V | JOY1DAT Vertical Clock | | 96 | | 6 | M1V | JOY1DAT Vertical Clock | |
97 | | 7 | M1VQ | JOY1DAT Vertical Clock (quadrature) | | 97 | | 7 | M1VQ | JOY1DAT Vertical Clock (quadrature) | |
98 | +--------+----------+-----------------------------------------+ | 98 | +--------+----------+-----------------------------------------+ |
diff --git a/Documentation/input/atarikbd.txt b/Documentation/input/atarikbd.txt index 1e7e5853ba4c..668f4d0d97d6 100644 --- a/Documentation/input/atarikbd.txt +++ b/Documentation/input/atarikbd.txt | |||
@@ -103,7 +103,7 @@ LEFT=0x74 & RIGHT=0x75). | |||
103 | 103 | ||
104 | 5.1 Joystick Event Reporting | 104 | 5.1 Joystick Event Reporting |
105 | 105 | ||
106 | In this mode, the ikbd generates a record whever the joystick position is | 106 | In this mode, the ikbd generates a record whenever the joystick position is |
107 | changed (i.e. for each opening or closing of a joystick switch or trigger). | 107 | changed (i.e. for each opening or closing of a joystick switch or trigger). |
108 | 108 | ||
109 | The joystick event record is two bytes of the form: | 109 | The joystick event record is two bytes of the form: |
@@ -277,8 +277,8 @@ default to 1 at RESET (or power-up). | |||
277 | 9.7 SET MOUSE SCALE | 277 | 9.7 SET MOUSE SCALE |
278 | 278 | ||
279 | 0x0C | 279 | 0x0C |
280 | X ; horizontal mouse ticks per internel X | 280 | X ; horizontal mouse ticks per internal X |
281 | Y ; vertical mouse ticks per internel Y | 281 | Y ; vertical mouse ticks per internal Y |
282 | 282 | ||
283 | This command sets the scale factor for the ABSOLUTE MOUSE POSITIONING mode. | 283 | This command sets the scale factor for the ABSOLUTE MOUSE POSITIONING mode. |
284 | In this mode, the specified number of mouse phase changes ('clicks') must | 284 | In this mode, the specified number of mouse phase changes ('clicks') must |
@@ -323,7 +323,7 @@ mouse position. | |||
323 | 0x0F | 323 | 0x0F |
324 | 324 | ||
325 | This command makes the origin of the Y axis to be at the bottom of the | 325 | This command makes the origin of the Y axis to be at the bottom of the |
326 | logical coordinate system internel to the ikbd for all relative or absolute | 326 | logical coordinate system internal to the ikbd for all relative or absolute |
327 | mouse motion. This causes mouse motion toward the user to be negative in sign | 327 | mouse motion. This causes mouse motion toward the user to be negative in sign |
328 | and away from the user to be positive. | 328 | and away from the user to be positive. |
329 | 329 | ||
@@ -597,8 +597,8 @@ mode or FIRE BUTTON MONITORING mode. | |||
597 | 597 | ||
598 | 10. SCAN CODES | 598 | 10. SCAN CODES |
599 | 599 | ||
600 | The key scan codes return by the ikbd are chosen to simplify the | 600 | The key scan codes returned by the ikbd are chosen to simplify the |
601 | implementaion of GSX. | 601 | implementation of GSX. |
602 | 602 | ||
603 | GSX Standard Keyboard Mapping. | 603 | GSX Standard Keyboard Mapping. |
604 | 604 | ||
diff --git a/Documentation/input/yealink.txt b/Documentation/input/yealink.txt index 0a8c97e87d47..5360e434486c 100644 --- a/Documentation/input/yealink.txt +++ b/Documentation/input/yealink.txt | |||
@@ -134,7 +134,7 @@ Reading /sys/../lineX will return the format string with its current value: | |||
134 | 888888888888 | 134 | 888888888888 |
135 | Linux Rocks! | 135 | Linux Rocks! |
136 | 136 | ||
137 | Writing to /sys/../lineX will set the coresponding LCD line. | 137 | Writing to /sys/../lineX will set the corresponding LCD line. |
138 | - Excess characters are ignored. | 138 | - Excess characters are ignored. |
139 | - If less characters are written than allowed, the remaining digits are | 139 | - If less characters are written than allowed, the remaining digits are |
140 | unchanged. | 140 | unchanged. |
diff --git a/Documentation/ioctl/cdrom.txt b/Documentation/ioctl/cdrom.txt index 8ec32cc49eb1..62d4af44ec4a 100644 --- a/Documentation/ioctl/cdrom.txt +++ b/Documentation/ioctl/cdrom.txt | |||
@@ -735,7 +735,7 @@ CDROM_DISC_STATUS Get disc type, etc. | |||
735 | Ok, this is where problems start. The current interface for | 735 | Ok, this is where problems start. The current interface for |
736 | the CDROM_DISC_STATUS ioctl is flawed. It makes the false | 736 | the CDROM_DISC_STATUS ioctl is flawed. It makes the false |
737 | assumption that CDs are all CDS_DATA_1 or all CDS_AUDIO, etc. | 737 | assumption that CDs are all CDS_DATA_1 or all CDS_AUDIO, etc. |
738 | Unfortunatly, while this is often the case, it is also | 738 | Unfortunately, while this is often the case, it is also |
739 | very common for CDs to have some tracks with data, and some | 739 | very common for CDs to have some tracks with data, and some |
740 | tracks with audio. Just because I feel like it, I declare | 740 | tracks with audio. Just because I feel like it, I declare |
741 | the following to be the best way to cope. If the CD has | 741 | the following to be the best way to cope. If the CD has |
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 50f4eddf899c..4b3d6710c504 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -227,9 +227,9 @@ more details, with real examples. | |||
227 | be included in a library, lib.a. | 227 | be included in a library, lib.a. |
228 | All objects listed with lib-y are combined in a single | 228 | All objects listed with lib-y are combined in a single |
229 | library for that directory. | 229 | library for that directory. |
230 | Objects that are listed in obj-y and additionaly listed in | 230 | Objects that are listed in obj-y and additionally listed in |
231 | lib-y will not be included in the library, since they will anyway | 231 | lib-y will not be included in the library, since they will |
232 | be accessible. | 232 | be accessible anyway. |
233 | For consistency, objects listed in lib-m will be included in lib.a. | 233 | For consistency, objects listed in lib-m will be included in lib.a. |
234 | 234 | ||
235 | Note that the same kbuild makefile may list files to be built-in | 235 | Note that the same kbuild makefile may list files to be built-in |
@@ -535,7 +535,7 @@ Both possibilities are described in the following. | |||
535 | Host programs can be made up based on composite objects. | 535 | Host programs can be made up based on composite objects. |
536 | The syntax used to define composite objects for host programs is | 536 | The syntax used to define composite objects for host programs is |
537 | similar to the syntax used for kernel objects. | 537 | similar to the syntax used for kernel objects. |
538 | $(<executeable>-objs) lists all objects used to link the final | 538 | $(<executable>-objs) lists all objects used to link the final |
539 | executable. | 539 | executable. |
540 | 540 | ||
541 | Example: | 541 | Example: |
@@ -1022,7 +1022,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1022 | In this example, there are two possible targets, requiring different | 1022 | In this example, there are two possible targets, requiring different |
1023 | options to the linker. The linker options are specified using the | 1023 | options to the linker. The linker options are specified using the |
1024 | LDFLAGS_$@ syntax - one for each potential target. | 1024 | LDFLAGS_$@ syntax - one for each potential target. |
1025 | $(targets) are assinged all potential targets, by which kbuild knows | 1025 | $(targets) are assigned all potential targets, by which kbuild knows |
1026 | the targets and will: | 1026 | the targets and will: |
1027 | 1) check for commandline changes | 1027 | 1) check for commandline changes |
1028 | 2) delete target during make clean | 1028 | 2) delete target during make clean |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index dd00fd556a60..b79bcdf16319 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -164,6 +164,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
164 | acpi_skip_timer_override [HW,ACPI] | 164 | acpi_skip_timer_override [HW,ACPI] |
165 | Recognize and ignore IRQ0/pin2 Interrupt Override. | 165 | Recognize and ignore IRQ0/pin2 Interrupt Override. |
166 | For broken nForce2 BIOS resulting in XT-PIC timer. | 166 | For broken nForce2 BIOS resulting in XT-PIC timer. |
167 | acpi_use_timer_override [HW,ACPI} | ||
168 | Use timer override. For some broken Nvidia NF5 boards | ||
169 | that require a timer override, but don't have | ||
170 | HPET | ||
167 | 171 | ||
168 | acpi_dbg_layer= [HW,ACPI] | 172 | acpi_dbg_layer= [HW,ACPI] |
169 | Format: <int> | 173 | Format: <int> |
@@ -553,9 +557,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
553 | floppy= [HW] | 557 | floppy= [HW] |
554 | See Documentation/floppy.txt. | 558 | See Documentation/floppy.txt. |
555 | 559 | ||
556 | ftape= [HW] Floppy Tape subsystem debugging options. | ||
557 | See Documentation/ftape.txt. | ||
558 | |||
559 | gamecon.map[2|3]= | 560 | gamecon.map[2|3]= |
560 | [HW,JOY] Multisystem joystick and NES/SNES/PSX pad | 561 | [HW,JOY] Multisystem joystick and NES/SNES/PSX pad |
561 | support via parallel port (up to 5 devices per port) | 562 | support via parallel port (up to 5 devices per port) |
@@ -598,8 +599,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
598 | 599 | ||
599 | hugepages= [HW,IA-32,IA-64] Maximal number of HugeTLB pages. | 600 | hugepages= [HW,IA-32,IA-64] Maximal number of HugeTLB pages. |
600 | 601 | ||
601 | noirqbalance [IA-32,SMP,KNL] Disable kernel irq balancing | ||
602 | |||
603 | i8042.direct [HW] Put keyboard port into non-translated mode | 602 | i8042.direct [HW] Put keyboard port into non-translated mode |
604 | i8042.dumbkbd [HW] Pretend that controller can only read data from | 603 | i8042.dumbkbd [HW] Pretend that controller can only read data from |
605 | keyboard and cannot control its state | 604 | keyboard and cannot control its state |
@@ -649,6 +648,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
649 | idle= [HW] | 648 | idle= [HW] |
650 | Format: idle=poll or idle=halt | 649 | Format: idle=poll or idle=halt |
651 | 650 | ||
651 | ignore_loglevel [KNL] | ||
652 | Ignore loglevel setting - this will print /all/ | ||
653 | kernel messages to the console. Useful for debugging. | ||
654 | |||
652 | ihash_entries= [KNL] | 655 | ihash_entries= [KNL] |
653 | Set number of hash buckets for inode cache. | 656 | Set number of hash buckets for inode cache. |
654 | 657 | ||
@@ -713,7 +716,12 @@ and is between 256 and 4096 characters. It is defined in the file | |||
713 | Format: <RDP>,<reset>,<pci_scan>,<verbosity> | 716 | Format: <RDP>,<reset>,<pci_scan>,<verbosity> |
714 | 717 | ||
715 | isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler. | 718 | isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler. |
716 | Format: <cpu number>,...,<cpu number> | 719 | Format: |
720 | <cpu number>,...,<cpu number> | ||
721 | or | ||
722 | <cpu number>-<cpu number> (must be a positive range in ascending order) | ||
723 | or a mixture | ||
724 | <cpu number>,...,<cpu number>-<cpu number> | ||
717 | This option can be used to specify one or more CPUs | 725 | This option can be used to specify one or more CPUs |
718 | to isolate from the general SMP balancing and scheduling | 726 | to isolate from the general SMP balancing and scheduling |
719 | algorithms. The only way to move a process onto or off | 727 | algorithms. The only way to move a process onto or off |
@@ -1011,6 +1019,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1011 | emulation library even if a 387 maths coprocessor | 1019 | emulation library even if a 387 maths coprocessor |
1012 | is present. | 1020 | is present. |
1013 | 1021 | ||
1022 | noaliencache [MM, NUMA] Disables the allcoation of alien caches in | ||
1023 | the slab allocator. Saves per-node memory, but will | ||
1024 | impact performance on real NUMA hardware. | ||
1025 | |||
1014 | noalign [KNL,ARM] | 1026 | noalign [KNL,ARM] |
1015 | 1027 | ||
1016 | noapic [SMP,APIC] Tells the kernel to not make use of any | 1028 | noapic [SMP,APIC] Tells the kernel to not make use of any |
@@ -1051,9 +1063,14 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1051 | in certain environments such as networked servers or | 1063 | in certain environments such as networked servers or |
1052 | real-time systems. | 1064 | real-time systems. |
1053 | 1065 | ||
1066 | noirqbalance [IA-32,SMP,KNL] Disable kernel irq balancing | ||
1067 | |||
1054 | noirqdebug [IA-32] Disables the code which attempts to detect and | 1068 | noirqdebug [IA-32] Disables the code which attempts to detect and |
1055 | disable unhandled interrupt sources. | 1069 | disable unhandled interrupt sources. |
1056 | 1070 | ||
1071 | no_timer_check [IA-32,X86_64,APIC] Disables the code which tests for | ||
1072 | broken timer IRQ sources. | ||
1073 | |||
1057 | noisapnp [ISAPNP] Disables ISA PnP code. | 1074 | noisapnp [ISAPNP] Disables ISA PnP code. |
1058 | 1075 | ||
1059 | noinitrd [RAM] Tells the kernel not to load any configured | 1076 | noinitrd [RAM] Tells the kernel not to load any configured |
@@ -1284,6 +1301,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1284 | Param: "schedule" - profile schedule points. | 1301 | Param: "schedule" - profile schedule points. |
1285 | Param: <number> - step/bucket size as a power of 2 for | 1302 | Param: <number> - step/bucket size as a power of 2 for |
1286 | statistical time based profiling. | 1303 | statistical time based profiling. |
1304 | Param: "sleep" - profile D-state sleeping (millisecs) | ||
1287 | 1305 | ||
1288 | processor.max_cstate= [HW,ACPI] | 1306 | processor.max_cstate= [HW,ACPI] |
1289 | Limit processor to maximum C-state | 1307 | Limit processor to maximum C-state |
@@ -1365,6 +1383,12 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1365 | resume= [SWSUSP] | 1383 | resume= [SWSUSP] |
1366 | Specify the partition device for software suspend | 1384 | Specify the partition device for software suspend |
1367 | 1385 | ||
1386 | resume_offset= [SWSUSP] | ||
1387 | Specify the offset from the beginning of the partition | ||
1388 | given by "resume=" at which the swap header is located, | ||
1389 | in <PAGE_SIZE> units (needed only for swap files). | ||
1390 | See Documentation/power/swsusp-and-swap-files.txt | ||
1391 | |||
1368 | rhash_entries= [KNL,NET] | 1392 | rhash_entries= [KNL,NET] |
1369 | Set number of hash buckets for route cache | 1393 | Set number of hash buckets for route cache |
1370 | 1394 | ||
@@ -1415,6 +1439,11 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1415 | 1439 | ||
1416 | scsi_logging= [SCSI] | 1440 | scsi_logging= [SCSI] |
1417 | 1441 | ||
1442 | scsi_mod.scan= [SCSI] sync (default) scans SCSI busses as they are | ||
1443 | discovered. async scans them in kernel threads, | ||
1444 | allowing boot to proceed. none ignores them, expecting | ||
1445 | user space to do the scan. | ||
1446 | |||
1418 | selinux [SELINUX] Disable or enable SELinux at boot time. | 1447 | selinux [SELINUX] Disable or enable SELinux at boot time. |
1419 | Format: { "0" | "1" } | 1448 | Format: { "0" | "1" } |
1420 | See security/selinux/Kconfig help text. | 1449 | See security/selinux/Kconfig help text. |
@@ -1726,6 +1755,9 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1726 | norandmaps Don't use address space randomization | 1755 | norandmaps Don't use address space randomization |
1727 | Equivalent to echo 0 > /proc/sys/kernel/randomize_va_space | 1756 | Equivalent to echo 0 > /proc/sys/kernel/randomize_va_space |
1728 | 1757 | ||
1758 | unwind_debug=N N > 0 will enable dwarf2 unwinder debugging | ||
1759 | This is useful to get more information why | ||
1760 | you got a "dwarf2 unwinder stuck" | ||
1729 | 1761 | ||
1730 | ______________________________________________________________________ | 1762 | ______________________________________________________________________ |
1731 | 1763 | ||
diff --git a/Documentation/keys.txt b/Documentation/keys.txt index 3da586bc7859..60c665d9cfaa 100644 --- a/Documentation/keys.txt +++ b/Documentation/keys.txt | |||
@@ -304,7 +304,7 @@ about the status of the key service: | |||
304 | R Revoked | 304 | R Revoked |
305 | D Dead | 305 | D Dead |
306 | Q Contributes to user's quota | 306 | Q Contributes to user's quota |
307 | U Under contruction by callback to userspace | 307 | U Under construction by callback to userspace |
308 | N Negative key | 308 | N Negative key |
309 | 309 | ||
310 | This file must be enabled at kernel configuration time as it allows anyone | 310 | This file must be enabled at kernel configuration time as it allows anyone |
diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt index ba26201d5023..d71fafffce90 100644 --- a/Documentation/kprobes.txt +++ b/Documentation/kprobes.txt | |||
@@ -442,9 +442,10 @@ static int __init kprobe_init(void) | |||
442 | kp.fault_handler = handler_fault; | 442 | kp.fault_handler = handler_fault; |
443 | kp.symbol_name = "do_fork"; | 443 | kp.symbol_name = "do_fork"; |
444 | 444 | ||
445 | if ((ret = register_kprobe(&kp) < 0)) { | 445 | ret = register_kprobe(&kp); |
446 | if (ret < 0) { | ||
446 | printk("register_kprobe failed, returned %d\n", ret); | 447 | printk("register_kprobe failed, returned %d\n", ret); |
447 | return -1; | 448 | return ret; |
448 | } | 449 | } |
449 | printk("kprobe registered\n"); | 450 | printk("kprobe registered\n"); |
450 | return 0; | 451 | return 0; |
diff --git a/Documentation/laptop-mode.txt b/Documentation/laptop-mode.txt index c487186eb2b9..6f639e3473af 100644 --- a/Documentation/laptop-mode.txt +++ b/Documentation/laptop-mode.txt | |||
@@ -121,7 +121,7 @@ contains the following options: | |||
121 | MAX_AGE: | 121 | MAX_AGE: |
122 | 122 | ||
123 | Maximum time, in seconds, of hard drive spindown time that you are | 123 | Maximum time, in seconds, of hard drive spindown time that you are |
124 | confortable with. Worst case, it's possible that you could lose this | 124 | comfortable with. Worst case, it's possible that you could lose this |
125 | amount of work if your battery fails while you're in laptop mode. | 125 | amount of work if your battery fails while you're in laptop mode. |
126 | 126 | ||
127 | MINIMUM_BATTERY_MINUTES: | 127 | MINIMUM_BATTERY_MINUTES: |
@@ -235,7 +235,7 @@ It should be installed as /etc/default/laptop-mode on Debian, and as | |||
235 | 235 | ||
236 | --------------------CONFIG FILE BEGIN------------------------------------------- | 236 | --------------------CONFIG FILE BEGIN------------------------------------------- |
237 | # Maximum time, in seconds, of hard drive spindown time that you are | 237 | # Maximum time, in seconds, of hard drive spindown time that you are |
238 | # confortable with. Worst case, it's possible that you could lose this | 238 | # comfortable with. Worst case, it's possible that you could lose this |
239 | # amount of work if your battery fails you while in laptop mode. | 239 | # amount of work if your battery fails you while in laptop mode. |
240 | #MAX_AGE=600 | 240 | #MAX_AGE=600 |
241 | 241 | ||
@@ -350,7 +350,7 @@ fi | |||
350 | # set defaults instead: | 350 | # set defaults instead: |
351 | 351 | ||
352 | # Maximum time, in seconds, of hard drive spindown time that you are | 352 | # Maximum time, in seconds, of hard drive spindown time that you are |
353 | # confortable with. Worst case, it's possible that you could lose this | 353 | # comfortable with. Worst case, it's possible that you could lose this |
354 | # amount of work if your battery fails you while in laptop mode. | 354 | # amount of work if your battery fails you while in laptop mode. |
355 | MAX_AGE=${MAX_AGE:-'600'} | 355 | MAX_AGE=${MAX_AGE:-'600'} |
356 | 356 | ||
@@ -699,7 +699,7 @@ ACPI integration | |||
699 | Dax Kelson submitted this so that the ACPI acpid daemon will | 699 | Dax Kelson submitted this so that the ACPI acpid daemon will |
700 | kick off the laptop_mode script and run hdparm. The part that | 700 | kick off the laptop_mode script and run hdparm. The part that |
701 | automatically disables laptop mode when the battery is low was | 701 | automatically disables laptop mode when the battery is low was |
702 | writen by Jan Topinski. | 702 | written by Jan Topinski. |
703 | 703 | ||
704 | -----------------/etc/acpi/events/ac_adapter BEGIN------------------------------ | 704 | -----------------/etc/acpi/events/ac_adapter BEGIN------------------------------ |
705 | event=ac_adapter | 705 | event=ac_adapter |
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 7f790f66ec68..58408dd023c7 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -212,7 +212,7 @@ There are some minimal guarantees that may be expected of a CPU: | |||
212 | 212 | ||
213 | STORE *X = c, d = LOAD *X | 213 | STORE *X = c, d = LOAD *X |
214 | 214 | ||
215 | (Loads and stores overlap if they are targetted at overlapping pieces of | 215 | (Loads and stores overlap if they are targeted at overlapping pieces of |
216 | memory). | 216 | memory). |
217 | 217 | ||
218 | And there are a number of things that _must_ or _must_not_ be assumed: | 218 | And there are a number of things that _must_ or _must_not_ be assumed: |
@@ -1016,7 +1016,7 @@ There are some more advanced barrier functions: | |||
1016 | 1016 | ||
1017 | (*) set_mb(var, value) | 1017 | (*) set_mb(var, value) |
1018 | 1018 | ||
1019 | This assigns the value to the variable and then inserts at least a write | 1019 | This assigns the value to the variable and then inserts a full memory |
1020 | barrier after it, depending on the function. It isn't guaranteed to | 1020 | barrier after it, depending on the function. It isn't guaranteed to |
1021 | insert anything more than a compiler barrier in a UP compilation. | 1021 | insert anything more than a compiler barrier in a UP compilation. |
1022 | 1022 | ||
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index b1181ce232d9..e06b6e3c1db5 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -58,6 +58,8 @@ fore200e.txt | |||
58 | - FORE Systems PCA-200E/SBA-200E ATM NIC driver info. | 58 | - FORE Systems PCA-200E/SBA-200E ATM NIC driver info. |
59 | framerelay.txt | 59 | framerelay.txt |
60 | - info on using Frame Relay/Data Link Connection Identifier (DLCI). | 60 | - info on using Frame Relay/Data Link Connection Identifier (DLCI). |
61 | generic_netlink.txt | ||
62 | - info on Generic Netlink | ||
61 | ip-sysctl.txt | 63 | ip-sysctl.txt |
62 | - /proc/sys/net/ipv4/* variables | 64 | - /proc/sys/net/ipv4/* variables |
63 | ip_dynaddr.txt | 65 | ip_dynaddr.txt |
diff --git a/Documentation/networking/NAPI_HOWTO.txt b/Documentation/networking/NAPI_HOWTO.txt index 93af3e87c65b..fb8dc6422a52 100644 --- a/Documentation/networking/NAPI_HOWTO.txt +++ b/Documentation/networking/NAPI_HOWTO.txt | |||
@@ -95,8 +95,8 @@ There are two types of event register ACK mechanisms. | |||
95 | Move all to dev->poll() | 95 | Move all to dev->poll() |
96 | 96 | ||
97 | C) Ability to detect new work correctly. | 97 | C) Ability to detect new work correctly. |
98 | NAPI works by shutting down event interrupts when theres work and | 98 | NAPI works by shutting down event interrupts when there's work and |
99 | turning them on when theres none. | 99 | turning them on when there's none. |
100 | New packets might show up in the small window while interrupts were being | 100 | New packets might show up in the small window while interrupts were being |
101 | re-enabled (refer to appendix 2). A packet might sneak in during the period | 101 | re-enabled (refer to appendix 2). A packet might sneak in during the period |
102 | we are enabling interrupts. We only get to know about such a packet when the | 102 | we are enabling interrupts. We only get to know about such a packet when the |
@@ -114,7 +114,7 @@ Locking rules and environmental guarantees | |||
114 | only one CPU can pick the initial interrupt and hence the initial | 114 | only one CPU can pick the initial interrupt and hence the initial |
115 | netif_rx_schedule(dev); | 115 | netif_rx_schedule(dev); |
116 | - The core layer invokes devices to send packets in a round robin format. | 116 | - The core layer invokes devices to send packets in a round robin format. |
117 | This implies receive is totaly lockless because of the guarantee only that | 117 | This implies receive is totally lockless because of the guarantee that only |
118 | one CPU is executing it. | 118 | one CPU is executing it. |
119 | - contention can only be the result of some other CPU accessing the rx | 119 | - contention can only be the result of some other CPU accessing the rx |
120 | ring. This happens only in close() and suspend() (when these methods | 120 | ring. This happens only in close() and suspend() (when these methods |
@@ -510,7 +510,7 @@ static int my_poll (struct net_device *dev, int *budget) | |||
510 | an interrupt will be generated */ | 510 | an interrupt will be generated */ |
511 | goto done; | 511 | goto done; |
512 | } | 512 | } |
513 | /* done! at least thats what it looks like ;-> | 513 | /* done! at least that's what it looks like ;-> |
514 | if new packets came in after our last check on status bits | 514 | if new packets came in after our last check on status bits |
515 | they'll be caught by the while check and we go back and clear them | 515 | they'll be caught by the while check and we go back and clear them |
516 | since we havent exceeded our quota */ | 516 | since we havent exceeded our quota */ |
@@ -535,11 +535,11 @@ done: | |||
535 | * 1. it can race with disabling irqs in irq handler (which are done to | 535 | * 1. it can race with disabling irqs in irq handler (which are done to |
536 | * schedule polls) | 536 | * schedule polls) |
537 | * 2. it can race with dis/enabling irqs in other poll threads | 537 | * 2. it can race with dis/enabling irqs in other poll threads |
538 | * 3. if an irq raised after the begining of the outer beginning | 538 | * 3. if an irq raised after the beginning of the outer beginning |
539 | * loop(marked in the code above), it will be immediately | 539 | * loop (marked in the code above), it will be immediately |
540 | * triggered here. | 540 | * triggered here. |
541 | * | 541 | * |
542 | * Summarizing: the logic may results in some redundant irqs both | 542 | * Summarizing: the logic may result in some redundant irqs both |
543 | * due to races in masking and due to too late acking of already | 543 | * due to races in masking and due to too late acking of already |
544 | * processed irqs. The good news: no events are ever lost. | 544 | * processed irqs. The good news: no events are ever lost. |
545 | */ | 545 | */ |
@@ -601,7 +601,7 @@ a) | |||
601 | 601 | ||
602 | 5) dev->close() and dev->suspend() issues | 602 | 5) dev->close() and dev->suspend() issues |
603 | ========================================== | 603 | ========================================== |
604 | The driver writter neednt worry about this. The top net layer takes | 604 | The driver writer needn't worry about this; the top net layer takes |
605 | care of it. | 605 | care of it. |
606 | 606 | ||
607 | 6) Adding new Stats to /proc | 607 | 6) Adding new Stats to /proc |
@@ -622,9 +622,9 @@ FC should be programmed to apply in the case when the system cant pull out | |||
622 | packets fast enough i.e send a pause only when you run out of rx buffers. | 622 | packets fast enough i.e send a pause only when you run out of rx buffers. |
623 | Note FC in itself is a good solution but we have found it to not be | 623 | Note FC in itself is a good solution but we have found it to not be |
624 | much of a commodity feature (both in NICs and switches) and hence falls | 624 | much of a commodity feature (both in NICs and switches) and hence falls |
625 | under the same category as using NIC based mitigation. Also experiments | 625 | under the same category as using NIC based mitigation. Also, experiments |
626 | indicate that its much harder to resolve the resource allocation | 626 | indicate that it's much harder to resolve the resource allocation |
627 | issue (aka lazy receiving that NAPI offers) and hence quantify its usefullness | 627 | issue (aka lazy receiving that NAPI offers) and hence quantify its usefulness |
628 | proved harder. In any case, FC works even better with NAPI but is not | 628 | proved harder. In any case, FC works even better with NAPI but is not |
629 | necessary. | 629 | necessary. |
630 | 630 | ||
@@ -678,10 +678,10 @@ routine: | |||
678 | CSR5 bit of interest is only the rx status. | 678 | CSR5 bit of interest is only the rx status. |
679 | If you look at the last if statement: | 679 | If you look at the last if statement: |
680 | you just finished grabbing all the packets from the rx ring .. you check if | 680 | you just finished grabbing all the packets from the rx ring .. you check if |
681 | status bit says theres more packets just in ... it says none; you then | 681 | status bit says there are more packets just in ... it says none; you then |
682 | enable rx interrupts again; if a new packet just came in during this check, | 682 | enable rx interrupts again; if a new packet just came in during this check, |
683 | we are counting that CSR5 will be set in that small window of opportunity | 683 | we are counting that CSR5 will be set in that small window of opportunity |
684 | and that by re-enabling interrupts, we would actually triger an interrupt | 684 | and that by re-enabling interrupts, we would actually trigger an interrupt |
685 | to register the new packet for processing. | 685 | to register the new packet for processing. |
686 | 686 | ||
687 | [The above description nay be very verbose, if you have better wording | 687 | [The above description nay be very verbose, if you have better wording |
diff --git a/Documentation/networking/cs89x0.txt b/Documentation/networking/cs89x0.txt index 64896470e279..6387d3decf85 100644 --- a/Documentation/networking/cs89x0.txt +++ b/Documentation/networking/cs89x0.txt | |||
@@ -248,7 +248,7 @@ c) The driver's hardware probe routine is designed to avoid | |||
248 | with device probing. To avoid this behaviour, add one | 248 | with device probing. To avoid this behaviour, add one |
249 | to the `io=' module parameter. This doesn't actually change | 249 | to the `io=' module parameter. This doesn't actually change |
250 | the I/O address, but it is a flag to tell the driver | 250 | the I/O address, but it is a flag to tell the driver |
251 | topartially initialise the hardware before trying to | 251 | to partially initialise the hardware before trying to |
252 | identify the card. This could be dangerous if you are | 252 | identify the card. This could be dangerous if you are |
253 | not sure that there is a cs89x0 card at the provided address. | 253 | not sure that there is a cs89x0 card at the provided address. |
254 | 254 | ||
@@ -620,8 +620,8 @@ I/O Address Device IRQ Device | |||
620 | 12 Mouse (PS/2) | 620 | 12 Mouse (PS/2) |
621 | Memory Address Device 13 Math Coprocessor | 621 | Memory Address Device 13 Math Coprocessor |
622 | -------------- --------------------- 14 Hard Disk controller | 622 | -------------- --------------------- 14 Hard Disk controller |
623 | A000-BFFF EGA Graphics Adpater | 623 | A000-BFFF EGA Graphics Adapter |
624 | A000-C7FF VGA Graphics Adpater | 624 | A000-C7FF VGA Graphics Adapter |
625 | B000-BFFF Mono Graphics Adapter | 625 | B000-BFFF Mono Graphics Adapter |
626 | B800-BFFF Color Graphics Adapter | 626 | B800-BFFF Color Graphics Adapter |
627 | E000-FFFF AT BIOS | 627 | E000-FFFF AT BIOS |
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt index 74563b38ffd9..dda15886bcb5 100644 --- a/Documentation/networking/dccp.txt +++ b/Documentation/networking/dccp.txt | |||
@@ -19,21 +19,17 @@ for real time and multimedia traffic. | |||
19 | 19 | ||
20 | It has a base protocol and pluggable congestion control IDs (CCIDs). | 20 | It has a base protocol and pluggable congestion control IDs (CCIDs). |
21 | 21 | ||
22 | It is at draft RFC status and the homepage for DCCP as a protocol is at: | 22 | It is at experimental RFC status and the homepage for DCCP as a protocol is at: |
23 | http://www.icir.org/kohler/dcp/ | 23 | http://www.read.cs.ucla.edu/dccp/ |
24 | 24 | ||
25 | Missing features | 25 | Missing features |
26 | ================ | 26 | ================ |
27 | 27 | ||
28 | The DCCP implementation does not currently have all the features that are in | 28 | The DCCP implementation does not currently have all the features that are in |
29 | the draft RFC. | 29 | the RFC. |
30 | 30 | ||
31 | In particular the following are missing: | 31 | The known bugs are at: |
32 | - CCID2 support | 32 | http://linux-net.osdl.org/index.php/TODO#DCCP |
33 | - feature negotiation | ||
34 | |||
35 | When testing against other implementations it appears that elapsed time | ||
36 | options are not coded compliant to the specification. | ||
37 | 33 | ||
38 | Socket options | 34 | Socket options |
39 | ============== | 35 | ============== |
@@ -47,12 +43,70 @@ the socket will fall back to 0 (which means that no meaningful service code | |||
47 | is present). Connecting sockets set at most one service option; for | 43 | is present). Connecting sockets set at most one service option; for |
48 | listening sockets, multiple service codes can be specified. | 44 | listening sockets, multiple service codes can be specified. |
49 | 45 | ||
46 | DCCP_SOCKOPT_SEND_CSCOV and DCCP_SOCKOPT_RECV_CSCOV are used for setting the | ||
47 | partial checksum coverage (RFC 4340, sec. 9.2). The default is that checksums | ||
48 | always cover the entire packet and that only fully covered application data is | ||
49 | accepted by the receiver. Hence, when using this feature on the sender, it must | ||
50 | be enabled at the receiver, too with suitable choice of CsCov. | ||
51 | |||
52 | DCCP_SOCKOPT_SEND_CSCOV sets the sender checksum coverage. Values in the | ||
53 | range 0..15 are acceptable. The default setting is 0 (full coverage), | ||
54 | values between 1..15 indicate partial coverage. | ||
55 | DCCP_SOCKOPT_SEND_CSCOV is for the receiver and has a different meaning: it | ||
56 | sets a threshold, where again values 0..15 are acceptable. The default | ||
57 | of 0 means that all packets with a partial coverage will be discarded. | ||
58 | Values in the range 1..15 indicate that packets with minimally such a | ||
59 | coverage value are also acceptable. The higher the number, the more | ||
60 | restrictive this setting (see [RFC 4340, sec. 9.2.1]). | ||
61 | |||
62 | Sysctl variables | ||
63 | ================ | ||
64 | Several DCCP default parameters can be managed by the following sysctls | ||
65 | (sysctl net.dccp.default or /proc/sys/net/dccp/default): | ||
66 | |||
67 | request_retries | ||
68 | The number of active connection initiation retries (the number of | ||
69 | Requests minus one) before timing out. In addition, it also governs | ||
70 | the behaviour of the other, passive side: this variable also sets | ||
71 | the number of times DCCP repeats sending a Response when the initial | ||
72 | handshake does not progress from RESPOND to OPEN (i.e. when no Ack | ||
73 | is received after the initial Request). This value should be greater | ||
74 | than 0, suggested is less than 10. Analogue of tcp_syn_retries. | ||
75 | |||
76 | retries1 | ||
77 | How often a DCCP Response is retransmitted until the listening DCCP | ||
78 | side considers its connecting peer dead. Analogue of tcp_retries1. | ||
79 | |||
80 | retries2 | ||
81 | The number of times a general DCCP packet is retransmitted. This has | ||
82 | importance for retransmitted acknowledgments and feature negotiation, | ||
83 | data packets are never retransmitted. Analogue of tcp_retries2. | ||
84 | |||
85 | send_ndp = 1 | ||
86 | Whether or not to send NDP count options (sec. 7.7.2). | ||
87 | |||
88 | send_ackvec = 1 | ||
89 | Whether or not to send Ack Vector options (sec. 11.5). | ||
90 | |||
91 | ack_ratio = 2 | ||
92 | The default Ack Ratio (sec. 11.3) to use. | ||
93 | |||
94 | tx_ccid = 2 | ||
95 | Default CCID for the sender-receiver half-connection. | ||
96 | |||
97 | rx_ccid = 2 | ||
98 | Default CCID for the receiver-sender half-connection. | ||
99 | |||
100 | seq_window = 100 | ||
101 | The initial sequence window (sec. 7.5.2). | ||
102 | |||
103 | tx_qlen = 5 | ||
104 | The size of the transmit buffer in packets. A value of 0 corresponds | ||
105 | to an unbounded transmit buffer. | ||
106 | |||
50 | Notes | 107 | Notes |
51 | ===== | 108 | ===== |
52 | 109 | ||
53 | SELinux does not yet have support for DCCP. You will need to turn it off or | 110 | DCCP does not travel through NAT successfully at present on many boxes. This is |
54 | else you will get EACCES. | 111 | because the checksum covers the psuedo-header as per TCP and UDP. Linux NAT |
55 | 112 | support for DCCP has been added. | |
56 | DCCP does not travel through NAT successfully at present. This is because | ||
57 | the checksum covers the psuedo-header as per TCP and UDP. It should be | ||
58 | relatively trivial to add Linux NAT support for DCCP. | ||
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt index 5c0a5cc03998..61b171cf5313 100644 --- a/Documentation/networking/e1000.txt +++ b/Documentation/networking/e1000.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters |
2 | =============================================================== | 2 | =============================================================== |
3 | 3 | ||
4 | November 15, 2005 | 4 | September 26, 2006 |
5 | 5 | ||
6 | 6 | ||
7 | Contents | 7 | Contents |
@@ -9,6 +9,7 @@ Contents | |||
9 | 9 | ||
10 | - In This Release | 10 | - In This Release |
11 | - Identifying Your Adapter | 11 | - Identifying Your Adapter |
12 | - Building and Installation | ||
12 | - Command Line Parameters | 13 | - Command Line Parameters |
13 | - Speed and Duplex Configuration | 14 | - Speed and Duplex Configuration |
14 | - Additional Configurations | 15 | - Additional Configurations |
@@ -41,6 +42,9 @@ or later), lspci, and ifconfig to obtain the same information. | |||
41 | Instructions on updating ethtool can be found in the section "Additional | 42 | Instructions on updating ethtool can be found in the section "Additional |
42 | Configurations" later in this document. | 43 | Configurations" later in this document. |
43 | 44 | ||
45 | NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 | ||
46 | support. | ||
47 | |||
44 | 48 | ||
45 | Identifying Your Adapter | 49 | Identifying Your Adapter |
46 | ======================== | 50 | ======================== |
@@ -51,28 +55,27 @@ Driver ID Guide at: | |||
51 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 55 | http://support.intel.com/support/network/adapter/pro100/21397.htm |
52 | 56 | ||
53 | For the latest Intel network drivers for Linux, refer to the following | 57 | For the latest Intel network drivers for Linux, refer to the following |
54 | website. In the search field, enter your adapter name or type, or use the | 58 | website. In the search field, enter your adapter name or type, or use the |
55 | networking link on the left to search for your adapter: | 59 | networking link on the left to search for your adapter: |
56 | 60 | ||
57 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 61 | http://downloadfinder.intel.com/scripts-df/support_intel.asp |
58 | 62 | ||
59 | 63 | ||
60 | Command Line Parameters ======================= | 64 | Command Line Parameters |
65 | ======================= | ||
61 | 66 | ||
62 | If the driver is built as a module, the following optional parameters | 67 | If the driver is built as a module, the following optional parameters |
63 | are used by entering them on the command line with the modprobe or insmod | 68 | are used by entering them on the command line with the modprobe command |
64 | command using this syntax: | 69 | using this syntax: |
65 | 70 | ||
66 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] | 71 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] |
67 | 72 | ||
68 | insmod e1000 [<option>=<VAL1>,<VAL2>,...] | ||
69 | |||
70 | For example, with two PRO/1000 PCI adapters, entering: | 73 | For example, with two PRO/1000 PCI adapters, entering: |
71 | 74 | ||
72 | insmod e1000 TxDescriptors=80,128 | 75 | modprobe e1000 TxDescriptors=80,128 |
73 | 76 | ||
74 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 | 77 | loads the e1000 driver with 80 TX descriptors for the first adapter and |
75 | TX descriptors for the second adapter. | 78 | 128 TX descriptors for the second adapter. |
76 | 79 | ||
77 | The default value for each parameter is generally the recommended setting, | 80 | The default value for each parameter is generally the recommended setting, |
78 | unless otherwise noted. | 81 | unless otherwise noted. |
@@ -87,7 +90,7 @@ NOTES: For more information about the AutoNeg, Duplex, and Speed | |||
87 | http://www.intel.com/design/network/applnots/ap450.htm | 90 | http://www.intel.com/design/network/applnots/ap450.htm |
88 | 91 | ||
89 | A descriptor describes a data buffer and attributes related to | 92 | A descriptor describes a data buffer and attributes related to |
90 | the data buffer. This information is accessed by the hardware. | 93 | the data buffer. This information is accessed by the hardware. |
91 | 94 | ||
92 | 95 | ||
93 | AutoNeg | 96 | AutoNeg |
@@ -96,9 +99,9 @@ AutoNeg | |||
96 | Valid Range: 0x01-0x0F, 0x20-0x2F | 99 | Valid Range: 0x01-0x0F, 0x20-0x2F |
97 | Default Value: 0x2F | 100 | Default Value: 0x2F |
98 | 101 | ||
99 | This parameter is a bit mask that specifies which speed and duplex | 102 | This parameter is a bit-mask that specifies the speed and duplex settings |
100 | settings the board advertises. When this parameter is used, the Speed | 103 | advertised by the adapter. When this parameter is used, the Speed and |
101 | and Duplex parameters must not be specified. | 104 | Duplex parameters must not be specified. |
102 | 105 | ||
103 | NOTE: Refer to the Speed and Duplex section of this readme for more | 106 | NOTE: Refer to the Speed and Duplex section of this readme for more |
104 | information on the AutoNeg parameter. | 107 | information on the AutoNeg parameter. |
@@ -110,14 +113,15 @@ Duplex | |||
110 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | 113 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) |
111 | Default Value: 0 | 114 | Default Value: 0 |
112 | 115 | ||
113 | Defines the direction in which data is allowed to flow. Can be either | 116 | This defines the direction in which data is allowed to flow. Can be |
114 | one or two-directional. If both Duplex and the link partner are set to | 117 | either one or two-directional. If both Duplex and the link partner are |
115 | auto-negotiate, the board auto-detects the correct duplex. If the link | 118 | set to auto-negotiate, the board auto-detects the correct duplex. If the |
116 | partner is forced (either full or half), Duplex defaults to half-duplex. | 119 | link partner is forced (either full or half), Duplex defaults to half- |
120 | duplex. | ||
117 | 121 | ||
118 | 122 | ||
119 | FlowControl | 123 | FlowControl |
120 | ---------- | 124 | ----------- |
121 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 125 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) |
122 | Default Value: Reads flow control settings from the EEPROM | 126 | Default Value: Reads flow control settings from the EEPROM |
123 | 127 | ||
@@ -127,57 +131,107 @@ to Ethernet PAUSE frames. | |||
127 | 131 | ||
128 | InterruptThrottleRate | 132 | InterruptThrottleRate |
129 | --------------------- | 133 | --------------------- |
130 | (not supported on Intel 82542, 82543 or 82544-based adapters) | 134 | (not supported on Intel(R) 82542, 82543 or 82544-based adapters) |
131 | Valid Range: 100-100000 (0=off, 1=dynamic) | 135 | Valid Range: 0,1,3,100-100000 (0=off, 1=dynamic, 3=dynamic conservative) |
132 | Default Value: 8000 | 136 | Default Value: 3 |
133 | 137 | ||
134 | This value represents the maximum number of interrupts per second the | 138 | The driver can limit the amount of interrupts per second that the adapter |
135 | controller generates. InterruptThrottleRate is another setting used in | 139 | will generate for incoming packets. It does this by writing a value to the |
136 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust | 140 | adapter that is based on the maximum amount of interrupts that the adapter |
137 | InterruptThrottleRate based on the current traffic load. | 141 | will generate per second. |
142 | |||
143 | Setting InterruptThrottleRate to a value greater or equal to 100 | ||
144 | will program the adapter to send out a maximum of that many interrupts | ||
145 | per second, even if more packets have come in. This reduces interrupt | ||
146 | load on the system and can lower CPU utilization under heavy load, | ||
147 | but will increase latency as packets are not processed as quickly. | ||
148 | |||
149 | The default behaviour of the driver previously assumed a static | ||
150 | InterruptThrottleRate value of 8000, providing a good fallback value for | ||
151 | all traffic types,but lacking in small packet performance and latency. | ||
152 | The hardware can handle many more small packets per second however, and | ||
153 | for this reason an adaptive interrupt moderation algorithm was implemented. | ||
154 | |||
155 | Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in which | ||
156 | it dynamically adjusts the InterruptThrottleRate value based on the traffic | ||
157 | that it receives. After determining the type of incoming traffic in the last | ||
158 | timeframe, it will adjust the InterruptThrottleRate to an appropriate value | ||
159 | for that traffic. | ||
160 | |||
161 | The algorithm classifies the incoming traffic every interval into | ||
162 | classes. Once the class is determined, the InterruptThrottleRate value is | ||
163 | adjusted to suit that traffic type the best. There are three classes defined: | ||
164 | "Bulk traffic", for large amounts of packets of normal size; "Low latency", | ||
165 | for small amounts of traffic and/or a significant percentage of small | ||
166 | packets; and "Lowest latency", for almost completely small packets or | ||
167 | minimal traffic. | ||
168 | |||
169 | In dynamic conservative mode, the InterruptThrottleRate value is set to 4000 | ||
170 | for traffic that falls in class "Bulk traffic". If traffic falls in the "Low | ||
171 | latency" or "Lowest latency" class, the InterruptThrottleRate is increased | ||
172 | stepwise to 20000. This default mode is suitable for most applications. | ||
173 | |||
174 | For situations where low latency is vital such as cluster or | ||
175 | grid computing, the algorithm can reduce latency even more when | ||
176 | InterruptThrottleRate is set to mode 1. In this mode, which operates | ||
177 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to | ||
178 | 70000 for traffic in class "Lowest latency". | ||
179 | |||
180 | Setting InterruptThrottleRate to 0 turns off any interrupt moderation | ||
181 | and may improve small packet latency, but is generally not suitable | ||
182 | for bulk throughput traffic. | ||
138 | 183 | ||
139 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | 184 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and |
140 | RxAbsIntDelay parameters. In other words, minimizing the receive | 185 | RxAbsIntDelay parameters. In other words, minimizing the receive |
141 | and/or transmit absolute delays does not force the controller to | 186 | and/or transmit absolute delays does not force the controller to |
142 | generate more interrupts than what the Interrupt Throttle Rate | 187 | generate more interrupts than what the Interrupt Throttle Rate |
143 | allows. | 188 | allows. |
144 | 189 | ||
145 | CAUTION: If you are using the Intel PRO/1000 CT Network Connection | 190 | CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection |
146 | (controller 82547), setting InterruptThrottleRate to a value | 191 | (controller 82547), setting InterruptThrottleRate to a value |
147 | greater than 75,000, may hang (stop transmitting) adapters | 192 | greater than 75,000, may hang (stop transmitting) adapters |
148 | under certain network conditions. If this occurs a NETDEV | 193 | under certain network conditions. If this occurs a NETDEV |
149 | WATCHDOG message is logged in the system event log. In | 194 | WATCHDOG message is logged in the system event log. In |
150 | addition, the controller is automatically reset, restoring | 195 | addition, the controller is automatically reset, restoring |
151 | the network connection. To eliminate the potential for the | 196 | the network connection. To eliminate the potential for the |
152 | hang, ensure that InterruptThrottleRate is set no greater | 197 | hang, ensure that InterruptThrottleRate is set no greater |
153 | than 75,000 and is not set to 0. | 198 | than 75,000 and is not set to 0. |
154 | 199 | ||
155 | NOTE: When e1000 is loaded with default settings and multiple adapters | 200 | NOTE: When e1000 is loaded with default settings and multiple adapters |
156 | are in use simultaneously, the CPU utilization may increase non- | 201 | are in use simultaneously, the CPU utilization may increase non- |
157 | linearly. In order to limit the CPU utilization without impacting | 202 | linearly. In order to limit the CPU utilization without impacting |
158 | the overall throughput, we recommend that you load the driver as | 203 | the overall throughput, we recommend that you load the driver as |
159 | follows: | 204 | follows: |
160 | 205 | ||
161 | insmod e1000.o InterruptThrottleRate=3000,3000,3000 | 206 | modprobe e1000 InterruptThrottleRate=3000,3000,3000 |
162 | 207 | ||
163 | This sets the InterruptThrottleRate to 3000 interrupts/sec for | 208 | This sets the InterruptThrottleRate to 3000 interrupts/sec for |
164 | the first, second, and third instances of the driver. The range | 209 | the first, second, and third instances of the driver. The range |
165 | of 2000 to 3000 interrupts per second works on a majority of | 210 | of 2000 to 3000 interrupts per second works on a majority of |
166 | systems and is a good starting point, but the optimal value will | 211 | systems and is a good starting point, but the optimal value will |
167 | be platform-specific. If CPU utilization is not a concern, use | 212 | be platform-specific. If CPU utilization is not a concern, use |
168 | RX_POLLING (NAPI) and default driver settings. | 213 | RX_POLLING (NAPI) and default driver settings. |
169 | 214 | ||
170 | 215 | ||
216 | |||
171 | RxDescriptors | 217 | RxDescriptors |
172 | ------------- | 218 | ------------- |
173 | Valid Range: 80-256 for 82542 and 82543-based adapters | 219 | Valid Range: 80-256 for 82542 and 82543-based adapters |
174 | 80-4096 for all other supported adapters | 220 | 80-4096 for all other supported adapters |
175 | Default Value: 256 | 221 | Default Value: 256 |
176 | 222 | ||
177 | This value specifies the number of receive descriptors allocated by the | 223 | This value specifies the number of receive buffer descriptors allocated |
178 | driver. Increasing this value allows the driver to buffer more incoming | 224 | by the driver. Increasing this value allows the driver to buffer more |
179 | packets. Each descriptor is 16 bytes. A receive buffer is also | 225 | incoming packets, at the expense of increased system memory utilization. |
180 | allocated for each descriptor and is 2048. | 226 | |
227 | Each descriptor is 16 bytes. A receive buffer is also allocated for each | ||
228 | descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending | ||
229 | on the MTU setting. The maximum MTU size is 16110. | ||
230 | |||
231 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo | ||
232 | Frames. Depending on the available system resources, the request | ||
233 | for a higher number of receive descriptors may be denied. In this | ||
234 | case, use a lower number. | ||
181 | 235 | ||
182 | 236 | ||
183 | RxIntDelay | 237 | RxIntDelay |
@@ -187,17 +241,17 @@ Default Value: 0 | |||
187 | 241 | ||
188 | This value delays the generation of receive interrupts in units of 1.024 | 242 | This value delays the generation of receive interrupts in units of 1.024 |
189 | microseconds. Receive interrupt reduction can improve CPU efficiency if | 243 | microseconds. Receive interrupt reduction can improve CPU efficiency if |
190 | properly tuned for specific network traffic. Increasing this value adds | 244 | properly tuned for specific network traffic. Increasing this value adds |
191 | extra latency to frame reception and can end up decreasing the throughput | 245 | extra latency to frame reception and can end up decreasing the throughput |
192 | of TCP traffic. If the system is reporting dropped receives, this value | 246 | of TCP traffic. If the system is reporting dropped receives, this value |
193 | may be set too high, causing the driver to run out of available receive | 247 | may be set too high, causing the driver to run out of available receive |
194 | descriptors. | 248 | descriptors. |
195 | 249 | ||
196 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may | 250 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may |
197 | hang (stop transmitting) under certain network conditions. If | 251 | hang (stop transmitting) under certain network conditions. If |
198 | this occurs a NETDEV WATCHDOG message is logged in the system | 252 | this occurs a NETDEV WATCHDOG message is logged in the system |
199 | event log. In addition, the controller is automatically reset, | 253 | event log. In addition, the controller is automatically reset, |
200 | restoring the network connection. To eliminate the potential | 254 | restoring the network connection. To eliminate the potential |
201 | for the hang ensure that RxIntDelay is set to 0. | 255 | for the hang ensure that RxIntDelay is set to 0. |
202 | 256 | ||
203 | 257 | ||
@@ -208,7 +262,7 @@ Valid Range: 0-65535 (0=off) | |||
208 | Default Value: 128 | 262 | Default Value: 128 |
209 | 263 | ||
210 | This value, in units of 1.024 microseconds, limits the delay in which a | 264 | This value, in units of 1.024 microseconds, limits the delay in which a |
211 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, | 265 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, |
212 | this value ensures that an interrupt is generated after the initial | 266 | this value ensures that an interrupt is generated after the initial |
213 | packet is received within the set amount of time. Proper tuning, | 267 | packet is received within the set amount of time. Proper tuning, |
214 | along with RxIntDelay, may improve traffic throughput in specific network | 268 | along with RxIntDelay, may improve traffic throughput in specific network |
@@ -222,9 +276,9 @@ Valid Settings: 0, 10, 100, 1000 | |||
222 | Default Value: 0 (auto-negotiate at all supported speeds) | 276 | Default Value: 0 (auto-negotiate at all supported speeds) |
223 | 277 | ||
224 | Speed forces the line speed to the specified value in megabits per second | 278 | Speed forces the line speed to the specified value in megabits per second |
225 | (Mbps). If this parameter is not specified or is set to 0 and the link | 279 | (Mbps). If this parameter is not specified or is set to 0 and the link |
226 | partner is set to auto-negotiate, the board will auto-detect the correct | 280 | partner is set to auto-negotiate, the board will auto-detect the correct |
227 | speed. Duplex should also be set when Speed is set to either 10 or 100. | 281 | speed. Duplex should also be set when Speed is set to either 10 or 100. |
228 | 282 | ||
229 | 283 | ||
230 | TxDescriptors | 284 | TxDescriptors |
@@ -234,7 +288,7 @@ Valid Range: 80-256 for 82542 and 82543-based adapters | |||
234 | Default Value: 256 | 288 | Default Value: 256 |
235 | 289 | ||
236 | This value is the number of transmit descriptors allocated by the driver. | 290 | This value is the number of transmit descriptors allocated by the driver. |
237 | Increasing this value allows the driver to queue more transmits. Each | 291 | Increasing this value allows the driver to queue more transmits. Each |
238 | descriptor is 16 bytes. | 292 | descriptor is 16 bytes. |
239 | 293 | ||
240 | NOTE: Depending on the available system resources, the request for a | 294 | NOTE: Depending on the available system resources, the request for a |
@@ -248,8 +302,8 @@ Valid Range: 0-65535 (0=off) | |||
248 | Default Value: 64 | 302 | Default Value: 64 |
249 | 303 | ||
250 | This value delays the generation of transmit interrupts in units of | 304 | This value delays the generation of transmit interrupts in units of |
251 | 1.024 microseconds. Transmit interrupt reduction can improve CPU | 305 | 1.024 microseconds. Transmit interrupt reduction can improve CPU |
252 | efficiency if properly tuned for specific network traffic. If the | 306 | efficiency if properly tuned for specific network traffic. If the |
253 | system is reporting dropped transmits, this value may be set too high | 307 | system is reporting dropped transmits, this value may be set too high |
254 | causing the driver to run out of available transmit descriptors. | 308 | causing the driver to run out of available transmit descriptors. |
255 | 309 | ||
@@ -261,7 +315,7 @@ Valid Range: 0-65535 (0=off) | |||
261 | Default Value: 64 | 315 | Default Value: 64 |
262 | 316 | ||
263 | This value, in units of 1.024 microseconds, limits the delay in which a | 317 | This value, in units of 1.024 microseconds, limits the delay in which a |
264 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, | 318 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, |
265 | this value ensures that an interrupt is generated after the initial | 319 | this value ensures that an interrupt is generated after the initial |
266 | packet is sent on the wire within the set amount of time. Proper tuning, | 320 | packet is sent on the wire within the set amount of time. Proper tuning, |
267 | along with TxIntDelay, may improve traffic throughput in specific | 321 | along with TxIntDelay, may improve traffic throughput in specific |
@@ -288,15 +342,15 @@ fiber interface board only links at 1000 Mbps full-duplex. | |||
288 | 342 | ||
289 | For copper-based boards, the keywords interact as follows: | 343 | For copper-based boards, the keywords interact as follows: |
290 | 344 | ||
291 | The default operation is auto-negotiate. The board advertises all | 345 | The default operation is auto-negotiate. The board advertises all |
292 | supported speed and duplex combinations, and it links at the highest | 346 | supported speed and duplex combinations, and it links at the highest |
293 | common speed and duplex mode IF the link partner is set to auto-negotiate. | 347 | common speed and duplex mode IF the link partner is set to auto-negotiate. |
294 | 348 | ||
295 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps | 349 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps |
296 | is advertised (The 1000BaseT spec requires auto-negotiation.) | 350 | is advertised (The 1000BaseT spec requires auto-negotiation.) |
297 | 351 | ||
298 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- | 352 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- |
299 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner | 353 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner |
300 | SHOULD also be forced. | 354 | SHOULD also be forced. |
301 | 355 | ||
302 | The AutoNeg parameter is used when more control is required over the | 356 | The AutoNeg parameter is used when more control is required over the |
@@ -304,7 +358,7 @@ auto-negotiation process. It should be used when you wish to control which | |||
304 | speed and duplex combinations are advertised during the auto-negotiation | 358 | speed and duplex combinations are advertised during the auto-negotiation |
305 | process. | 359 | process. |
306 | 360 | ||
307 | The parameter may be specified as either a decimal or hexidecimal value as | 361 | The parameter may be specified as either a decimal or hexadecimal value as |
308 | determined by the bitmap below. | 362 | determined by the bitmap below. |
309 | 363 | ||
310 | Bit position 7 6 5 4 3 2 1 0 | 364 | Bit position 7 6 5 4 3 2 1 0 |
@@ -337,20 +391,19 @@ Additional Configurations | |||
337 | 391 | ||
338 | Configuring the Driver on Different Distributions | 392 | Configuring the Driver on Different Distributions |
339 | ------------------------------------------------- | 393 | ------------------------------------------------- |
340 | |||
341 | Configuring a network driver to load properly when the system is started | 394 | Configuring a network driver to load properly when the system is started |
342 | is distribution dependent. Typically, the configuration process involves | 395 | is distribution dependent. Typically, the configuration process involves |
343 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well | 396 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well |
344 | as editing other system startup scripts and/or configuration files. Many | 397 | as editing other system startup scripts and/or configuration files. Many |
345 | popular Linux distributions ship with tools to make these changes for you. | 398 | popular Linux distributions ship with tools to make these changes for you. |
346 | To learn the proper way to configure a network device for your system, | 399 | To learn the proper way to configure a network device for your system, |
347 | refer to your distribution documentation. If during this process you are | 400 | refer to your distribution documentation. If during this process you are |
348 | asked for the driver or module name, the name for the Linux Base Driver | 401 | asked for the driver or module name, the name for the Linux Base Driver |
349 | for the Intel PRO/1000 Family of Adapters is e1000. | 402 | for the Intel(R) PRO/1000 Family of Adapters is e1000. |
350 | 403 | ||
351 | As an example, if you install the e1000 driver for two PRO/1000 adapters | 404 | As an example, if you install the e1000 driver for two PRO/1000 adapters |
352 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add | 405 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add |
353 | the following to modules.conf or modprobe.conf: | 406 | the following to modules.conf or or modprobe.conf: |
354 | 407 | ||
355 | alias eth0 e1000 | 408 | alias eth0 e1000 |
356 | alias eth1 e1000 | 409 | alias eth1 e1000 |
@@ -358,9 +411,8 @@ Additional Configurations | |||
358 | 411 | ||
359 | Viewing Link Messages | 412 | Viewing Link Messages |
360 | --------------------- | 413 | --------------------- |
361 | |||
362 | Link messages will not be displayed to the console if the distribution is | 414 | Link messages will not be displayed to the console if the distribution is |
363 | restricting system messages. In order to see network driver link messages | 415 | restricting system messages. In order to see network driver link messages |
364 | on your console, set dmesg to eight by entering the following: | 416 | on your console, set dmesg to eight by entering the following: |
365 | 417 | ||
366 | dmesg -n 8 | 418 | dmesg -n 8 |
@@ -369,11 +421,9 @@ Additional Configurations | |||
369 | 421 | ||
370 | Jumbo Frames | 422 | Jumbo Frames |
371 | ------------ | 423 | ------------ |
372 | 424 | Jumbo Frames support is enabled by changing the MTU to a value larger than | |
373 | The driver supports Jumbo Frames for all adapters except 82542 and | 425 | the default of 1500. Use the ifconfig command to increase the MTU size. |
374 | 82573-based adapters. Jumbo Frames support is enabled by changing the | 426 | For example: |
375 | MTU to a value larger than the default of 1500. Use the ifconfig command | ||
376 | to increase the MTU size. For example: | ||
377 | 427 | ||
378 | ifconfig eth<x> mtu 9000 up | 428 | ifconfig eth<x> mtu 9000 up |
379 | 429 | ||
@@ -390,26 +440,49 @@ Additional Configurations | |||
390 | 440 | ||
391 | - To enable Jumbo Frames, increase the MTU size on the interface beyond | 441 | - To enable Jumbo Frames, increase the MTU size on the interface beyond |
392 | 1500. | 442 | 1500. |
393 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | 443 | |
444 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | ||
394 | with the maximum Jumbo Frames size of 16128. | 445 | with the maximum Jumbo Frames size of 16128. |
446 | |||
395 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | 447 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or |
396 | loss of link. | 448 | loss of link. |
449 | |||
397 | - Some Intel gigabit adapters that support Jumbo Frames have a frame size | 450 | - Some Intel gigabit adapters that support Jumbo Frames have a frame size |
398 | limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. | 451 | limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. |
399 | The adapters with this limitation are based on the Intel 82571EB and | 452 | The adapters with this limitation are based on the Intel(R) 82571EB, |
400 | 82572EI controllers, which correspond to these product names: | 453 | 82572EI, 82573L and 80003ES2LAN controller. These correspond to the |
401 | Intel® PRO/1000 PT Dual Port Server Adapter | 454 | following product names: |
402 | Intel® PRO/1000 PF Dual Port Server Adapter | 455 | Intel(R) PRO/1000 PT Server Adapter |
403 | Intel® PRO/1000 PT Server Adapter | 456 | Intel(R) PRO/1000 PT Desktop Adapter |
404 | Intel® PRO/1000 PT Desktop Adapter | 457 | Intel(R) PRO/1000 PT Network Connection |
405 | Intel® PRO/1000 PF Server Adapter | 458 | Intel(R) PRO/1000 PT Dual Port Server Adapter |
406 | 459 | Intel(R) PRO/1000 PT Dual Port Network Connection | |
407 | - The Intel PRO/1000 PM Network Connection does not support jumbo frames. | 460 | Intel(R) PRO/1000 PF Server Adapter |
461 | Intel(R) PRO/1000 PF Network Connection | ||
462 | Intel(R) PRO/1000 PF Dual Port Server Adapter | ||
463 | Intel(R) PRO/1000 PB Server Connection | ||
464 | Intel(R) PRO/1000 PL Network Connection | ||
465 | Intel(R) PRO/1000 EB Network Connection with I/O Acceleration | ||
466 | Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration | ||
467 | Intel(R) PRO/1000 PT Quad Port Server Adapter | ||
468 | |||
469 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not | ||
470 | support Jumbo Frames. These correspond to the following product names: | ||
471 | Intel(R) PRO/1000 Gigabit Server Adapter | ||
472 | Intel(R) PRO/1000 PM Network Connection | ||
473 | |||
474 | - The following adapters do not support Jumbo Frames: | ||
475 | Intel(R) 82562V 10/100 Network Connection | ||
476 | Intel(R) 82566DM Gigabit Network Connection | ||
477 | Intel(R) 82566DC Gigabit Network Connection | ||
478 | Intel(R) 82566MM Gigabit Network Connection | ||
479 | Intel(R) 82566MC Gigabit Network Connection | ||
480 | Intel(R) 82562GT 10/100 Network Connection | ||
481 | Intel(R) 82562G 10/100 Network Connection | ||
408 | 482 | ||
409 | 483 | ||
410 | Ethtool | 484 | Ethtool |
411 | ------- | 485 | ------- |
412 | |||
413 | The driver utilizes the ethtool interface for driver configuration and | 486 | The driver utilizes the ethtool interface for driver configuration and |
414 | diagnostics, as well as displaying statistical information. Ethtool | 487 | diagnostics, as well as displaying statistical information. Ethtool |
415 | version 1.6 or later is required for this functionality. | 488 | version 1.6 or later is required for this functionality. |
@@ -417,15 +490,14 @@ Additional Configurations | |||
417 | The latest release of ethtool can be found from | 490 | The latest release of ethtool can be found from |
418 | http://sourceforge.net/projects/gkernel. | 491 | http://sourceforge.net/projects/gkernel. |
419 | 492 | ||
420 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | 493 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support |
421 | for a more complete ethtool feature set can be enabled by upgrading | 494 | for a more complete ethtool feature set can be enabled by upgrading |
422 | ethtool to ethtool-1.8.1. | 495 | ethtool to ethtool-1.8.1. |
423 | 496 | ||
424 | Enabling Wake on LAN* (WoL) | 497 | Enabling Wake on LAN* (WoL) |
425 | --------------------------- | 498 | --------------------------- |
426 | 499 | WoL is configured through the Ethtool* utility. Ethtool is included with | |
427 | WoL is configured through the Ethtool* utility. Ethtool is included with | 500 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, |
428 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, | ||
429 | download and install Ethtool from the following website: | 501 | download and install Ethtool from the following website: |
430 | http://sourceforge.net/projects/gkernel. | 502 | http://sourceforge.net/projects/gkernel. |
431 | 503 | ||
@@ -436,11 +508,17 @@ Additional Configurations | |||
436 | For this driver version, in order to enable WoL, the e1000 driver must be | 508 | For this driver version, in order to enable WoL, the e1000 driver must be |
437 | loaded when shutting down or rebooting the system. | 509 | loaded when shutting down or rebooting the system. |
438 | 510 | ||
511 | Wake On LAN is only supported on port A for the following devices: | ||
512 | Intel(R) PRO/1000 PT Dual Port Network Connection | ||
513 | Intel(R) PRO/1000 PT Dual Port Server Connection | ||
514 | Intel(R) PRO/1000 PT Dual Port Server Adapter | ||
515 | Intel(R) PRO/1000 PF Dual Port Server Adapter | ||
516 | Intel(R) PRO/1000 PT Quad Port Server Adapter | ||
517 | |||
439 | NAPI | 518 | NAPI |
440 | ---- | 519 | ---- |
441 | 520 | NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled | |
442 | NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled | 521 | or disabled based on the configuration of the kernel. To override |
443 | or disabled based on the configuration of the kernel. To override | ||
444 | the default, use the following compile-time flags. | 522 | the default, use the following compile-time flags. |
445 | 523 | ||
446 | To enable NAPI, compile the driver module, passing in a configuration option: | 524 | To enable NAPI, compile the driver module, passing in a configuration option: |
@@ -457,88 +535,105 @@ Additional Configurations | |||
457 | Known Issues | 535 | Known Issues |
458 | ============ | 536 | ============ |
459 | 537 | ||
460 | Jumbo Frames System Requirement | 538 | Dropped Receive Packets on Half-duplex 10/100 Networks |
461 | ------------------------------- | 539 | ------------------------------------------------------ |
462 | 540 | If you have an Intel PCI Express adapter running at 10mbps or 100mbps, half- | |
463 | Memory allocation failures have been observed on Linux systems with 64 MB | 541 | duplex, you may observe occasional dropped receive packets. There are no |
464 | of RAM or less that are running Jumbo Frames. If you are using Jumbo | 542 | workarounds for this problem in this network configuration. The network must |
465 | Frames, your system may require more than the advertised minimum | 543 | be updated to operate in full-duplex, and/or 1000mbps only. |
466 | requirement of 64 MB of system memory. | 544 | |
467 | 545 | Jumbo Frames System Requirement | |
468 | Performance Degradation with Jumbo Frames | 546 | ------------------------------- |
469 | ----------------------------------------- | 547 | Memory allocation failures have been observed on Linux systems with 64 MB |
470 | 548 | of RAM or less that are running Jumbo Frames. If you are using Jumbo | |
471 | Degradation in throughput performance may be observed in some Jumbo frames | 549 | Frames, your system may require more than the advertised minimum |
472 | environments. If this is observed, increasing the application's socket | 550 | requirement of 64 MB of system memory. |
473 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values | 551 | |
474 | may help. See the specific application manual and | 552 | Performance Degradation with Jumbo Frames |
475 | /usr/src/linux*/Documentation/ | 553 | ----------------------------------------- |
476 | networking/ip-sysctl.txt for more details. | 554 | Degradation in throughput performance may be observed in some Jumbo frames |
477 | 555 | environments. If this is observed, increasing the application's socket | |
478 | Jumbo frames on Foundry BigIron 8000 switch | 556 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values |
479 | ------------------------------------------- | 557 | may help. See the specific application manual and |
480 | There is a known issue using Jumbo frames when connected to a Foundry | 558 | /usr/src/linux*/Documentation/ |
481 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | 559 | networking/ip-sysctl.txt for more details. |
482 | loss of packets, lower the MTU size. | 560 | |
483 | 561 | Jumbo Frames on Foundry BigIron 8000 switch | |
484 | Multiple Interfaces on Same Ethernet Broadcast Network | 562 | ------------------------------------------- |
485 | ------------------------------------------------------ | 563 | There is a known issue using Jumbo frames when connected to a Foundry |
486 | 564 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | |
487 | Due to the default ARP behavior on Linux, it is not possible to have | 565 | loss of packets, lower the MTU size. |
488 | one system on two IP networks in the same Ethernet broadcast domain | 566 | |
489 | (non-partitioned switch) behave as expected. All Ethernet interfaces | 567 | Allocating Rx Buffers when Using Jumbo Frames |
490 | will respond to IP traffic for any IP address assigned to the system. | 568 | --------------------------------------------- |
491 | This results in unbalanced receive traffic. | 569 | Allocating Rx buffers when using Jumbo Frames on 2.6.x kernels may fail if |
492 | 570 | the available memory is heavily fragmented. This issue may be seen with PCI-X | |
493 | If you have multiple interfaces in a server, either turn on ARP | 571 | adapters or with packet split disabled. This can be reduced or eliminated |
494 | filtering by entering: | 572 | by changing the amount of available memory for receive buffer allocation, by |
495 | 573 | increasing /proc/sys/vm/min_free_kbytes. | |
496 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | 574 | |
497 | (this only works if your kernel's version is higher than 2.4.5), | 575 | Multiple Interfaces on Same Ethernet Broadcast Network |
498 | 576 | ------------------------------------------------------ | |
499 | NOTE: This setting is not saved across reboots. The configuration | 577 | Due to the default ARP behavior on Linux, it is not possible to have |
500 | change can be made permanent by adding the line: | 578 | one system on two IP networks in the same Ethernet broadcast domain |
501 | net.ipv4.conf.all.arp_filter = 1 | 579 | (non-partitioned switch) behave as expected. All Ethernet interfaces |
502 | to the file /etc/sysctl.conf | 580 | will respond to IP traffic for any IP address assigned to the system. |
503 | 581 | This results in unbalanced receive traffic. | |
504 | or, | 582 | |
505 | 583 | If you have multiple interfaces in a server, either turn on ARP | |
506 | install the interfaces in separate broadcast domains (either in | 584 | filtering by entering: |
507 | different switches or in a switch partitioned to VLANs). | 585 | |
508 | 586 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | |
509 | 82541/82547 can't link or are slow to link with some link partners | 587 | (this only works if your kernel's version is higher than 2.4.5), |
510 | ----------------------------------------------------------------- | 588 | |
511 | 589 | NOTE: This setting is not saved across reboots. The configuration | |
512 | There is a known compatibility issue with 82541/82547 and some | 590 | change can be made permanent by adding the line: |
513 | low-end switches where the link will not be established, or will | 591 | net.ipv4.conf.all.arp_filter = 1 |
514 | be slow to establish. In particular, these switches are known to | 592 | to the file /etc/sysctl.conf |
515 | be incompatible with 82541/82547: | 593 | |
516 | 594 | or, | |
517 | Planex FXG-08TE | 595 | |
518 | I-O Data ETG-SH8 | 596 | install the interfaces in separate broadcast domains (either in |
519 | 597 | different switches or in a switch partitioned to VLANs). | |
520 | To workaround this issue, the driver can be compiled with an override | 598 | |
521 | of the PHY's master/slave setting. Forcing master or forcing slave | 599 | 82541/82547 can't link or are slow to link with some link partners |
522 | mode will improve time-to-link. | 600 | ----------------------------------------------------------------- |
523 | 601 | There is a known compatibility issue with 82541/82547 and some | |
524 | # make EXTRA_CFLAGS=-DE1000_MASTER_SLAVE=<n> | 602 | low-end switches where the link will not be established, or will |
525 | 603 | be slow to establish. In particular, these switches are known to | |
526 | Where <n> is: | 604 | be incompatible with 82541/82547: |
527 | 605 | ||
528 | 0 = Hardware default | 606 | Planex FXG-08TE |
529 | 1 = Master mode | 607 | I-O Data ETG-SH8 |
530 | 2 = Slave mode | 608 | |
531 | 3 = Auto master/slave | 609 | To workaround this issue, the driver can be compiled with an override |
532 | 610 | of the PHY's master/slave setting. Forcing master or forcing slave | |
533 | Disable rx flow control with ethtool | 611 | mode will improve time-to-link. |
534 | ------------------------------------ | 612 | |
535 | 613 | # make CFLAGS_EXTRA=-DE1000_MASTER_SLAVE=<n> | |
536 | In order to disable receive flow control using ethtool, you must turn | 614 | |
537 | off auto-negotiation on the same command line. | 615 | Where <n> is: |
538 | 616 | ||
539 | For example: | 617 | 0 = Hardware default |
540 | 618 | 1 = Master mode | |
541 | ethtool -A eth? autoneg off rx off | 619 | 2 = Slave mode |
620 | 3 = Auto master/slave | ||
621 | |||
622 | Disable rx flow control with ethtool | ||
623 | ------------------------------------ | ||
624 | In order to disable receive flow control using ethtool, you must turn | ||
625 | off auto-negotiation on the same command line. | ||
626 | |||
627 | For example: | ||
628 | |||
629 | ethtool -A eth? autoneg off rx off | ||
630 | |||
631 | Unplugging network cable while ethtool -p is running | ||
632 | ---------------------------------------------------- | ||
633 | In kernel versions 2.5.50 and later (including 2.6 kernel), unplugging | ||
634 | the network cable while ethtool -p is running will cause the system to | ||
635 | become unresponsive to keyboard commands, except for control-alt-delete. | ||
636 | Restarting the system appears to be the only remedy. | ||
542 | 637 | ||
543 | 638 | ||
544 | Support | 639 | Support |
@@ -548,24 +643,10 @@ For general information, go to the Intel support website at: | |||
548 | 643 | ||
549 | http://support.intel.com | 644 | http://support.intel.com |
550 | 645 | ||
551 | or the Intel Wired Networking project hosted by Sourceforge at: | 646 | or the Intel Wired Networking project hosted by Sourceforge at: |
552 | 647 | ||
553 | http://sourceforge.net/projects/e1000 | 648 | http://sourceforge.net/projects/e1000 |
554 | 649 | ||
555 | If an issue is identified with the released source code on the supported | 650 | If an issue is identified with the released source code on the supported |
556 | kernel with a supported adapter, email the specific information related | 651 | kernel with a supported adapter, email the specific information related |
557 | to the issue to e1000-devel@lists.sourceforge.net | 652 | to the issue to e1000-devel@lists.sf.net |
558 | |||
559 | |||
560 | License | ||
561 | ======= | ||
562 | |||
563 | This software program is released under the terms of a license agreement | ||
564 | between you ('Licensee') and Intel. Do not use or load this software or any | ||
565 | associated materials (collectively, the 'Software') until you have carefully | ||
566 | read the full terms and conditions of the file COPYING located in this software | ||
567 | package. By loading or using the Software, you agree to the terms of this | ||
568 | Agreement. If you do not agree with the terms of this Agreement, do not | ||
569 | install or use the Software. | ||
570 | |||
571 | * Other names and brands may be claimed as the property of others. | ||
diff --git a/Documentation/networking/generic_netlink.txt b/Documentation/networking/generic_netlink.txt new file mode 100644 index 000000000000..d4f8b8b9b53c --- /dev/null +++ b/Documentation/networking/generic_netlink.txt | |||
@@ -0,0 +1,3 @@ | |||
1 | A wiki document on how to use Generic Netlink can be found here: | ||
2 | |||
3 | * http://linux-net.osdl.org/index.php/Generic_Netlink_HOWTO | ||
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index fd3c0c012351..a0f6842368c3 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -101,6 +101,11 @@ inet_peer_gc_maxtime - INTEGER | |||
101 | 101 | ||
102 | TCP variables: | 102 | TCP variables: |
103 | 103 | ||
104 | somaxconn - INTEGER | ||
105 | Limit of socket listen() backlog, known in userspace as SOMAXCONN. | ||
106 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning | ||
107 | for TCP sockets. | ||
108 | |||
104 | tcp_abc - INTEGER | 109 | tcp_abc - INTEGER |
105 | Controls Appropriate Byte Count (ABC) defined in RFC3465. | 110 | Controls Appropriate Byte Count (ABC) defined in RFC3465. |
106 | ABC is a way of increasing congestion window (cwnd) more slowly | 111 | ABC is a way of increasing congestion window (cwnd) more slowly |
@@ -112,48 +117,51 @@ tcp_abc - INTEGER | |||
112 | of two segments to compensate for delayed acknowledgments. | 117 | of two segments to compensate for delayed acknowledgments. |
113 | Default: 0 (off) | 118 | Default: 0 (off) |
114 | 119 | ||
115 | tcp_syn_retries - INTEGER | 120 | tcp_abort_on_overflow - BOOLEAN |
116 | Number of times initial SYNs for an active TCP connection attempt | 121 | If listening service is too slow to accept new connections, |
117 | will be retransmitted. Should not be higher than 255. Default value | 122 | reset them. Default state is FALSE. It means that if overflow |
118 | is 5, which corresponds to ~180seconds. | 123 | occurred due to a burst, connection will recover. Enable this |
124 | option _only_ if you are really sure that listening daemon | ||
125 | cannot be tuned to accept connections faster. Enabling this | ||
126 | option can harm clients of your server. | ||
119 | 127 | ||
120 | tcp_synack_retries - INTEGER | 128 | tcp_adv_win_scale - INTEGER |
121 | Number of times SYNACKs for a passive TCP connection attempt will | 129 | Count buffering overhead as bytes/2^tcp_adv_win_scale |
122 | be retransmitted. Should not be higher than 255. Default value | 130 | (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), |
123 | is 5, which corresponds to ~180seconds. | 131 | if it is <= 0. |
132 | Default: 2 | ||
124 | 133 | ||
125 | tcp_keepalive_time - INTEGER | 134 | tcp_allowed_congestion_control - STRING |
126 | How often TCP sends out keepalive messages when keepalive is enabled. | 135 | Show/set the congestion control choices available to non-privileged |
127 | Default: 2hours. | 136 | processes. The list is a subset of those listed in |
137 | tcp_available_congestion_control. | ||
138 | Default is "reno" and the default setting (tcp_congestion_control). | ||
128 | 139 | ||
129 | tcp_keepalive_probes - INTEGER | 140 | tcp_app_win - INTEGER |
130 | How many keepalive probes TCP sends out, until it decides that the | 141 | Reserve max(window/2^tcp_app_win, mss) of window for application |
131 | connection is broken. Default value: 9. | 142 | buffer. Value 0 is special, it means that nothing is reserved. |
143 | Default: 31 | ||
132 | 144 | ||
133 | tcp_keepalive_intvl - INTEGER | 145 | tcp_available_congestion_control - STRING |
134 | How frequently the probes are send out. Multiplied by | 146 | Shows the available congestion control choices that are registered. |
135 | tcp_keepalive_probes it is time to kill not responding connection, | 147 | More congestion control algorithms may be available as modules, |
136 | after probes started. Default value: 75sec i.e. connection | 148 | but not loaded. |
137 | will be aborted after ~11 minutes of retries. | ||
138 | 149 | ||
139 | tcp_retries1 - INTEGER | 150 | tcp_congestion_control - STRING |
140 | How many times to retry before deciding that something is wrong | 151 | Set the congestion control algorithm to be used for new |
141 | and it is necessary to report this suspicion to network layer. | 152 | connections. The algorithm "reno" is always available, but |
142 | Minimal RFC value is 3, it is default, which corresponds | 153 | additional choices may be available based on kernel configuration. |
143 | to ~3sec-8min depending on RTO. | 154 | Default is set as part of kernel configuration. |
144 | 155 | ||
145 | tcp_retries2 - INTEGER | 156 | tcp_dsack - BOOLEAN |
146 | How may times to retry before killing alive TCP connection. | 157 | Allows TCP to send "duplicate" SACKs. |
147 | RFC1122 says that the limit should be longer than 100 sec. | ||
148 | It is too small number. Default value 15 corresponds to ~13-30min | ||
149 | depending on RTO. | ||
150 | 158 | ||
151 | tcp_orphan_retries - INTEGER | 159 | tcp_ecn - BOOLEAN |
152 | How may times to retry before killing TCP connection, closed | 160 | Enable Explicit Congestion Notification in TCP. |
153 | by our side. Default value 7 corresponds to ~50sec-16min | 161 | |
154 | depending on RTO. If you machine is loaded WEB server, | 162 | tcp_fack - BOOLEAN |
155 | you should think about lowering this value, such sockets | 163 | Enable FACK congestion avoidance and fast retransmission. |
156 | may consume significant resources. Cf. tcp_max_orphans. | 164 | The value is not used, if tcp_sack is not enabled. |
157 | 165 | ||
158 | tcp_fin_timeout - INTEGER | 166 | tcp_fin_timeout - INTEGER |
159 | Time to hold socket in state FIN-WAIT-2, if it was closed | 167 | Time to hold socket in state FIN-WAIT-2, if it was closed |
@@ -166,24 +174,33 @@ tcp_fin_timeout - INTEGER | |||
166 | because they eat maximum 1.5K of memory, but they tend | 174 | because they eat maximum 1.5K of memory, but they tend |
167 | to live longer. Cf. tcp_max_orphans. | 175 | to live longer. Cf. tcp_max_orphans. |
168 | 176 | ||
169 | tcp_max_tw_buckets - INTEGER | 177 | tcp_frto - BOOLEAN |
170 | Maximal number of timewait sockets held by system simultaneously. | 178 | Enables F-RTO, an enhanced recovery algorithm for TCP retransmission |
171 | If this number is exceeded time-wait socket is immediately destroyed | 179 | timeouts. It is particularly beneficial in wireless environments |
172 | and warning is printed. This limit exists only to prevent | 180 | where packet loss is typically due to random radio interference |
173 | simple DoS attacks, you _must_ not lower the limit artificially, | 181 | rather than intermediate router congestion. |
174 | but rather increase it (probably, after increasing installed memory), | ||
175 | if network conditions require more than default value. | ||
176 | 182 | ||
177 | tcp_tw_recycle - BOOLEAN | 183 | tcp_keepalive_time - INTEGER |
178 | Enable fast recycling TIME-WAIT sockets. Default value is 0. | 184 | How often TCP sends out keepalive messages when keepalive is enabled. |
179 | It should not be changed without advice/request of technical | 185 | Default: 2hours. |
180 | experts. | ||
181 | 186 | ||
182 | tcp_tw_reuse - BOOLEAN | 187 | tcp_keepalive_probes - INTEGER |
183 | Allow to reuse TIME-WAIT sockets for new connections when it is | 188 | How many keepalive probes TCP sends out, until it decides that the |
184 | safe from protocol viewpoint. Default value is 0. | 189 | connection is broken. Default value: 9. |
185 | It should not be changed without advice/request of technical | 190 | |
186 | experts. | 191 | tcp_keepalive_intvl - INTEGER |
192 | How frequently the probes are send out. Multiplied by | ||
193 | tcp_keepalive_probes it is time to kill not responding connection, | ||
194 | after probes started. Default value: 75sec i.e. connection | ||
195 | will be aborted after ~11 minutes of retries. | ||
196 | |||
197 | tcp_low_latency - BOOLEAN | ||
198 | If set, the TCP stack makes decisions that prefer lower | ||
199 | latency as opposed to higher throughput. By default, this | ||
200 | option is not set meaning that higher throughput is preferred. | ||
201 | An example of an application where this default should be | ||
202 | changed would be a Beowulf compute cluster. | ||
203 | Default: 0 | ||
187 | 204 | ||
188 | tcp_max_orphans - INTEGER | 205 | tcp_max_orphans - INTEGER |
189 | Maximal number of TCP sockets not attached to any user file handle, | 206 | Maximal number of TCP sockets not attached to any user file handle, |
@@ -197,41 +214,6 @@ tcp_max_orphans - INTEGER | |||
197 | more aggressively. Let me to remind again: each orphan eats | 214 | more aggressively. Let me to remind again: each orphan eats |
198 | up to ~64K of unswappable memory. | 215 | up to ~64K of unswappable memory. |
199 | 216 | ||
200 | tcp_abort_on_overflow - BOOLEAN | ||
201 | If listening service is too slow to accept new connections, | ||
202 | reset them. Default state is FALSE. It means that if overflow | ||
203 | occurred due to a burst, connection will recover. Enable this | ||
204 | option _only_ if you are really sure that listening daemon | ||
205 | cannot be tuned to accept connections faster. Enabling this | ||
206 | option can harm clients of your server. | ||
207 | |||
208 | tcp_syncookies - BOOLEAN | ||
209 | Only valid when the kernel was compiled with CONFIG_SYNCOOKIES | ||
210 | Send out syncookies when the syn backlog queue of a socket | ||
211 | overflows. This is to prevent against the common 'syn flood attack' | ||
212 | Default: FALSE | ||
213 | |||
214 | Note, that syncookies is fallback facility. | ||
215 | It MUST NOT be used to help highly loaded servers to stand | ||
216 | against legal connection rate. If you see synflood warnings | ||
217 | in your logs, but investigation shows that they occur | ||
218 | because of overload with legal connections, you should tune | ||
219 | another parameters until this warning disappear. | ||
220 | See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow. | ||
221 | |||
222 | syncookies seriously violate TCP protocol, do not allow | ||
223 | to use TCP extensions, can result in serious degradation | ||
224 | of some services (f.e. SMTP relaying), visible not by you, | ||
225 | but your clients and relays, contacting you. While you see | ||
226 | synflood warnings in logs not being really flooded, your server | ||
227 | is seriously misconfigured. | ||
228 | |||
229 | tcp_stdurg - BOOLEAN | ||
230 | Use the Host requirements interpretation of the TCP urg pointer field. | ||
231 | Most hosts use the older BSD interpretation, so if you turn this on | ||
232 | Linux might not communicate correctly with them. | ||
233 | Default: FALSE | ||
234 | |||
235 | tcp_max_syn_backlog - INTEGER | 217 | tcp_max_syn_backlog - INTEGER |
236 | Maximal number of remembered connection requests, which are | 218 | Maximal number of remembered connection requests, which are |
237 | still did not receive an acknowledgment from connecting client. | 219 | still did not receive an acknowledgment from connecting client. |
@@ -239,24 +221,34 @@ tcp_max_syn_backlog - INTEGER | |||
239 | and 128 for low memory machines. If server suffers of overload, | 221 | and 128 for low memory machines. If server suffers of overload, |
240 | try to increase this number. | 222 | try to increase this number. |
241 | 223 | ||
242 | tcp_window_scaling - BOOLEAN | 224 | tcp_max_tw_buckets - INTEGER |
243 | Enable window scaling as defined in RFC1323. | 225 | Maximal number of timewait sockets held by system simultaneously. |
226 | If this number is exceeded time-wait socket is immediately destroyed | ||
227 | and warning is printed. This limit exists only to prevent | ||
228 | simple DoS attacks, you _must_ not lower the limit artificially, | ||
229 | but rather increase it (probably, after increasing installed memory), | ||
230 | if network conditions require more than default value. | ||
244 | 231 | ||
245 | tcp_timestamps - BOOLEAN | 232 | tcp_mem - vector of 3 INTEGERs: min, pressure, max |
246 | Enable timestamps as defined in RFC1323. | 233 | min: below this number of pages TCP is not bothered about its |
234 | memory appetite. | ||
247 | 235 | ||
248 | tcp_sack - BOOLEAN | 236 | pressure: when amount of memory allocated by TCP exceeds this number |
249 | Enable select acknowledgments (SACKS). | 237 | of pages, TCP moderates its memory consumption and enters memory |
238 | pressure mode, which is exited when memory consumption falls | ||
239 | under "min". | ||
250 | 240 | ||
251 | tcp_fack - BOOLEAN | 241 | max: number of pages allowed for queueing by all TCP sockets. |
252 | Enable FACK congestion avoidance and fast retransmission. | ||
253 | The value is not used, if tcp_sack is not enabled. | ||
254 | 242 | ||
255 | tcp_dsack - BOOLEAN | 243 | Defaults are calculated at boot time from amount of available |
256 | Allows TCP to send "duplicate" SACKs. | 244 | memory. |
257 | 245 | ||
258 | tcp_ecn - BOOLEAN | 246 | tcp_orphan_retries - INTEGER |
259 | Enable Explicit Congestion Notification in TCP. | 247 | How may times to retry before killing TCP connection, closed |
248 | by our side. Default value 7 corresponds to ~50sec-16min | ||
249 | depending on RTO. If you machine is loaded WEB server, | ||
250 | you should think about lowering this value, such sockets | ||
251 | may consume significant resources. Cf. tcp_max_orphans. | ||
260 | 252 | ||
261 | tcp_reordering - INTEGER | 253 | tcp_reordering - INTEGER |
262 | Maximal reordering of packets in a TCP stream. | 254 | Maximal reordering of packets in a TCP stream. |
@@ -267,20 +259,23 @@ tcp_retrans_collapse - BOOLEAN | |||
267 | On retransmit try to send bigger packets to work around bugs in | 259 | On retransmit try to send bigger packets to work around bugs in |
268 | certain TCP stacks. | 260 | certain TCP stacks. |
269 | 261 | ||
270 | tcp_wmem - vector of 3 INTEGERs: min, default, max | 262 | tcp_retries1 - INTEGER |
271 | min: Amount of memory reserved for send buffers for TCP socket. | 263 | How many times to retry before deciding that something is wrong |
272 | Each TCP socket has rights to use it due to fact of its birth. | 264 | and it is necessary to report this suspicion to network layer. |
273 | Default: 4K | 265 | Minimal RFC value is 3, it is default, which corresponds |
266 | to ~3sec-8min depending on RTO. | ||
274 | 267 | ||
275 | default: Amount of memory allowed for send buffers for TCP socket | 268 | tcp_retries2 - INTEGER |
276 | by default. This value overrides net.core.wmem_default used | 269 | How may times to retry before killing alive TCP connection. |
277 | by other protocols, it is usually lower than net.core.wmem_default. | 270 | RFC1122 says that the limit should be longer than 100 sec. |
278 | Default: 16K | 271 | It is too small number. Default value 15 corresponds to ~13-30min |
272 | depending on RTO. | ||
279 | 273 | ||
280 | max: Maximal amount of memory allowed for automatically selected | 274 | tcp_rfc1337 - BOOLEAN |
281 | send buffers for TCP socket. This value does not override | 275 | If set, the TCP stack behaves conforming to RFC1337. If unset, |
282 | net.core.wmem_max, "static" selection via SO_SNDBUF does not use this. | 276 | we are not conforming to RFC, but prevent TCP TIME_WAIT |
283 | Default: 128K | 277 | assassination. |
278 | Default: 0 | ||
284 | 279 | ||
285 | tcp_rmem - vector of 3 INTEGERs: min, default, max | 280 | tcp_rmem - vector of 3 INTEGERs: min, default, max |
286 | min: Minimal size of receive buffer used by TCP sockets. | 281 | min: Minimal size of receive buffer used by TCP sockets. |
@@ -299,67 +294,91 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max | |||
299 | net.core.rmem_max, "static" selection via SO_RCVBUF does not use this. | 294 | net.core.rmem_max, "static" selection via SO_RCVBUF does not use this. |
300 | Default: 87380*2 bytes. | 295 | Default: 87380*2 bytes. |
301 | 296 | ||
302 | tcp_mem - vector of 3 INTEGERs: min, pressure, max | 297 | tcp_sack - BOOLEAN |
303 | min: below this number of pages TCP is not bothered about its | 298 | Enable select acknowledgments (SACKS). |
304 | memory appetite. | ||
305 | 299 | ||
306 | pressure: when amount of memory allocated by TCP exceeds this number | 300 | tcp_slow_start_after_idle - BOOLEAN |
307 | of pages, TCP moderates its memory consumption and enters memory | 301 | If set, provide RFC2861 behavior and time out the congestion |
308 | pressure mode, which is exited when memory consumption falls | 302 | window after an idle period. An idle period is defined at |
309 | under "min". | 303 | the current RTO. If unset, the congestion window will not |
304 | be timed out after an idle period. | ||
305 | Default: 1 | ||
310 | 306 | ||
311 | max: number of pages allowed for queueing by all TCP sockets. | 307 | tcp_stdurg - BOOLEAN |
308 | Use the Host requirements interpretation of the TCP urg pointer field. | ||
309 | Most hosts use the older BSD interpretation, so if you turn this on | ||
310 | Linux might not communicate correctly with them. | ||
311 | Default: FALSE | ||
312 | 312 | ||
313 | Defaults are calculated at boot time from amount of available | 313 | tcp_synack_retries - INTEGER |
314 | memory. | 314 | Number of times SYNACKs for a passive TCP connection attempt will |
315 | be retransmitted. Should not be higher than 255. Default value | ||
316 | is 5, which corresponds to ~180seconds. | ||
315 | 317 | ||
316 | tcp_app_win - INTEGER | 318 | tcp_syncookies - BOOLEAN |
317 | Reserve max(window/2^tcp_app_win, mss) of window for application | 319 | Only valid when the kernel was compiled with CONFIG_SYNCOOKIES |
318 | buffer. Value 0 is special, it means that nothing is reserved. | 320 | Send out syncookies when the syn backlog queue of a socket |
319 | Default: 31 | 321 | overflows. This is to prevent against the common 'syn flood attack' |
322 | Default: FALSE | ||
320 | 323 | ||
321 | tcp_adv_win_scale - INTEGER | 324 | Note, that syncookies is fallback facility. |
322 | Count buffering overhead as bytes/2^tcp_adv_win_scale | 325 | It MUST NOT be used to help highly loaded servers to stand |
323 | (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), | 326 | against legal connection rate. If you see synflood warnings |
324 | if it is <= 0. | 327 | in your logs, but investigation shows that they occur |
325 | Default: 2 | 328 | because of overload with legal connections, you should tune |
329 | another parameters until this warning disappear. | ||
330 | See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow. | ||
326 | 331 | ||
327 | tcp_rfc1337 - BOOLEAN | 332 | syncookies seriously violate TCP protocol, do not allow |
328 | If set, the TCP stack behaves conforming to RFC1337. If unset, | 333 | to use TCP extensions, can result in serious degradation |
329 | we are not conforming to RFC, but prevent TCP TIME_WAIT | 334 | of some services (f.e. SMTP relaying), visible not by you, |
330 | assassination. | 335 | but your clients and relays, contacting you. While you see |
331 | Default: 0 | 336 | synflood warnings in logs not being really flooded, your server |
337 | is seriously misconfigured. | ||
332 | 338 | ||
333 | tcp_low_latency - BOOLEAN | 339 | tcp_syn_retries - INTEGER |
334 | If set, the TCP stack makes decisions that prefer lower | 340 | Number of times initial SYNs for an active TCP connection attempt |
335 | latency as opposed to higher throughput. By default, this | 341 | will be retransmitted. Should not be higher than 255. Default value |
336 | option is not set meaning that higher throughput is preferred. | 342 | is 5, which corresponds to ~180seconds. |
337 | An example of an application where this default should be | 343 | |
338 | changed would be a Beowulf compute cluster. | 344 | tcp_timestamps - BOOLEAN |
339 | Default: 0 | 345 | Enable timestamps as defined in RFC1323. |
340 | 346 | ||
341 | tcp_tso_win_divisor - INTEGER | 347 | tcp_tso_win_divisor - INTEGER |
342 | This allows control over what percentage of the congestion window | 348 | This allows control over what percentage of the congestion window |
343 | can be consumed by a single TSO frame. | 349 | can be consumed by a single TSO frame. |
344 | The setting of this parameter is a choice between burstiness and | 350 | The setting of this parameter is a choice between burstiness and |
345 | building larger TSO frames. | 351 | building larger TSO frames. |
346 | Default: 3 | 352 | Default: 3 |
347 | 353 | ||
348 | tcp_frto - BOOLEAN | 354 | tcp_tw_recycle - BOOLEAN |
349 | Enables F-RTO, an enhanced recovery algorithm for TCP retransmission | 355 | Enable fast recycling TIME-WAIT sockets. Default value is 0. |
350 | timeouts. It is particularly beneficial in wireless environments | 356 | It should not be changed without advice/request of technical |
351 | where packet loss is typically due to random radio interference | 357 | experts. |
352 | rather than intermediate router congestion. | ||
353 | 358 | ||
354 | tcp_congestion_control - STRING | 359 | tcp_tw_reuse - BOOLEAN |
355 | Set the congestion control algorithm to be used for new | 360 | Allow to reuse TIME-WAIT sockets for new connections when it is |
356 | connections. The algorithm "reno" is always available, but | 361 | safe from protocol viewpoint. Default value is 0. |
357 | additional choices may be available based on kernel configuration. | 362 | It should not be changed without advice/request of technical |
363 | experts. | ||
358 | 364 | ||
359 | somaxconn - INTEGER | 365 | tcp_window_scaling - BOOLEAN |
360 | Limit of socket listen() backlog, known in userspace as SOMAXCONN. | 366 | Enable window scaling as defined in RFC1323. |
361 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning | 367 | |
362 | for TCP sockets. | 368 | tcp_wmem - vector of 3 INTEGERs: min, default, max |
369 | min: Amount of memory reserved for send buffers for TCP socket. | ||
370 | Each TCP socket has rights to use it due to fact of its birth. | ||
371 | Default: 4K | ||
372 | |||
373 | default: Amount of memory allowed for send buffers for TCP socket | ||
374 | by default. This value overrides net.core.wmem_default used | ||
375 | by other protocols, it is usually lower than net.core.wmem_default. | ||
376 | Default: 16K | ||
377 | |||
378 | max: Maximal amount of memory allowed for automatically selected | ||
379 | send buffers for TCP socket. This value does not override | ||
380 | net.core.wmem_max, "static" selection via SO_SNDBUF does not use this. | ||
381 | Default: 128K | ||
363 | 382 | ||
364 | tcp_workaround_signed_windows - BOOLEAN | 383 | tcp_workaround_signed_windows - BOOLEAN |
365 | If set, assume no receipt of a window scaling option means the | 384 | If set, assume no receipt of a window scaling option means the |
@@ -368,13 +387,6 @@ tcp_workaround_signed_windows - BOOLEAN | |||
368 | not receive a window scaling option from them. | 387 | not receive a window scaling option from them. |
369 | Default: 0 | 388 | Default: 0 |
370 | 389 | ||
371 | tcp_slow_start_after_idle - BOOLEAN | ||
372 | If set, provide RFC2861 behavior and time out the congestion | ||
373 | window after an idle period. An idle period is defined at | ||
374 | the current RTO. If unset, the congestion window will not | ||
375 | be timed out after an idle period. | ||
376 | Default: 1 | ||
377 | |||
378 | CIPSOv4 Variables: | 390 | CIPSOv4 Variables: |
379 | 391 | ||
380 | cipso_cache_enable - BOOLEAN | 392 | cipso_cache_enable - BOOLEAN |
@@ -974,4 +986,3 @@ no_cong_thresh FIXME | |||
974 | slot_timeout FIXME | 986 | slot_timeout FIXME |
975 | warn_noreply_time FIXME | 987 | warn_noreply_time FIXME |
976 | 988 | ||
977 | $Id: ip-sysctl.txt,v 1.20 2001/12/13 09:00:18 davem Exp $ | ||
diff --git a/Documentation/networking/iphase.txt b/Documentation/networking/iphase.txt index 493203a080a8..55eac4a784e2 100644 --- a/Documentation/networking/iphase.txt +++ b/Documentation/networking/iphase.txt | |||
@@ -81,7 +81,7 @@ Installation | |||
81 | 1M. The RAM size decides the number of buffers and buffer size. The default | 81 | 1M. The RAM size decides the number of buffers and buffer size. The default |
82 | size and number of buffers are set as following: | 82 | size and number of buffers are set as following: |
83 | 83 | ||
84 | Totol Rx RAM Tx RAM Rx Buf Tx Buf Rx buf Tx buf | 84 | Total Rx RAM Tx RAM Rx Buf Tx Buf Rx buf Tx buf |
85 | RAM size size size size size cnt cnt | 85 | RAM size size size size size cnt cnt |
86 | -------- ------ ------ ------ ------ ------ ------ | 86 | -------- ------ ------ ------ ------ ------ ------ |
87 | 128K 64K 64K 10K 10K 6 6 | 87 | 128K 64K 64K 10K 10K 6 6 |
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt index 12a008a5c221..5a232d946be3 100644 --- a/Documentation/networking/packet_mmap.txt +++ b/Documentation/networking/packet_mmap.txt | |||
@@ -284,7 +284,7 @@ the necessary memory, so normally limits can be reached. | |||
284 | ------------------- | 284 | ------------------- |
285 | 285 | ||
286 | If you check the source code you will see that what I draw here as a frame | 286 | If you check the source code you will see that what I draw here as a frame |
287 | is not only the link level frame. At the begining of each frame there is a | 287 | is not only the link level frame. At the beginning of each frame there is a |
288 | header called struct tpacket_hdr used in PACKET_MMAP to hold link level's frame | 288 | header called struct tpacket_hdr used in PACKET_MMAP to hold link level's frame |
289 | meta information like timestamp. So what we draw here a frame it's really | 289 | meta information like timestamp. So what we draw here a frame it's really |
290 | the following (from include/linux/if_packet.h): | 290 | the following (from include/linux/if_packet.h): |
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index 29ccae409031..0bc95eab1512 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | 1 | ||
2 | ------- | 2 | ------- |
3 | PHY Abstraction Layer | 3 | PHY Abstraction Layer |
4 | (Updated 2005-07-21) | 4 | (Updated 2006-11-30) |
5 | 5 | ||
6 | Purpose | 6 | Purpose |
7 | 7 | ||
@@ -97,11 +97,12 @@ Letting the PHY Abstraction Layer do Everything | |||
97 | 97 | ||
98 | Next, you need to know the device name of the PHY connected to this device. | 98 | Next, you need to know the device name of the PHY connected to this device. |
99 | The name will look something like, "phy0:0", where the first number is the | 99 | The name will look something like, "phy0:0", where the first number is the |
100 | bus id, and the second is the PHY's address on that bus. | 100 | bus id, and the second is the PHY's address on that bus. Typically, |
101 | the bus is responsible for making its ID unique. | ||
101 | 102 | ||
102 | Now, to connect, just call this function: | 103 | Now, to connect, just call this function: |
103 | 104 | ||
104 | phydev = phy_connect(dev, phy_name, &adjust_link, flags); | 105 | phydev = phy_connect(dev, phy_name, &adjust_link, flags, interface); |
105 | 106 | ||
106 | phydev is a pointer to the phy_device structure which represents the PHY. If | 107 | phydev is a pointer to the phy_device structure which represents the PHY. If |
107 | phy_connect is successful, it will return the pointer. dev, here, is the | 108 | phy_connect is successful, it will return the pointer. dev, here, is the |
@@ -115,6 +116,10 @@ Letting the PHY Abstraction Layer do Everything | |||
115 | This is useful if the system has put hardware restrictions on | 116 | This is useful if the system has put hardware restrictions on |
116 | the PHY/controller, of which the PHY needs to be aware. | 117 | the PHY/controller, of which the PHY needs to be aware. |
117 | 118 | ||
119 | interface is a u32 which specifies the connection type used | ||
120 | between the controller and the PHY. Examples are GMII, MII, | ||
121 | RGMII, and SGMII. For a full list, see include/linux/phy.h | ||
122 | |||
118 | Now just make sure that phydev->supported and phydev->advertising have any | 123 | Now just make sure that phydev->supported and phydev->advertising have any |
119 | values pruned from them which don't make sense for your controller (a 10/100 | 124 | values pruned from them which don't make sense for your controller (a 10/100 |
120 | controller may be connected to a gigabit capable PHY, so you would need to | 125 | controller may be connected to a gigabit capable PHY, so you would need to |
@@ -191,7 +196,7 @@ Doing it all yourself | |||
191 | start, or disables then frees them for stop. | 196 | start, or disables then frees them for stop. |
192 | 197 | ||
193 | struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, | 198 | struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, |
194 | u32 flags); | 199 | u32 flags, phy_interface_t interface); |
195 | 200 | ||
196 | Attaches a network device to a particular PHY, binding the PHY to a generic | 201 | Attaches a network device to a particular PHY, binding the PHY to a generic |
197 | driver if none was found during bus initialization. Passes in | 202 | driver if none was found during bus initialization. Passes in |
diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt index c8eee23be8c0..c6cf4a3c16e0 100644 --- a/Documentation/networking/pktgen.txt +++ b/Documentation/networking/pktgen.txt | |||
@@ -63,8 +63,8 @@ Current: | |||
63 | Result: OK: 13101142(c12220741+d880401) usec, 10000000 (60byte,0frags) | 63 | Result: OK: 13101142(c12220741+d880401) usec, 10000000 (60byte,0frags) |
64 | 763292pps 390Mb/sec (390805504bps) errors: 39664 | 64 | 763292pps 390Mb/sec (390805504bps) errors: 39664 |
65 | 65 | ||
66 | Confguring threads and devices | 66 | Configuring threads and devices |
67 | ============================== | 67 | ================================ |
68 | This is done via the /proc interface easiest done via pgset in the scripts | 68 | This is done via the /proc interface easiest done via pgset in the scripts |
69 | 69 | ||
70 | Examples: | 70 | Examples: |
@@ -116,7 +116,7 @@ Examples: | |||
116 | there must be no spaces between the | 116 | there must be no spaces between the |
117 | arguments. Leading zeros are required. | 117 | arguments. Leading zeros are required. |
118 | Do not set the bottom of stack bit, | 118 | Do not set the bottom of stack bit, |
119 | thats done automatically. If you do | 119 | that's done automatically. If you do |
120 | set the bottom of stack bit, that | 120 | set the bottom of stack bit, that |
121 | indicates that you want to randomly | 121 | indicates that you want to randomly |
122 | generate that address and the flag | 122 | generate that address and the flag |
diff --git a/Documentation/networking/proc_net_tcp.txt b/Documentation/networking/proc_net_tcp.txt index 59cb915c3713..5e21f7cb6383 100644 --- a/Documentation/networking/proc_net_tcp.txt +++ b/Documentation/networking/proc_net_tcp.txt | |||
@@ -25,7 +25,7 @@ up into 3 parts because of the length of the line): | |||
25 | 25 | ||
26 | 1000 0 54165785 4 cd1e6040 25 4 27 3 -1 | 26 | 1000 0 54165785 4 cd1e6040 25 4 27 3 -1 |
27 | | | | | | | | | | |--> slow start size threshold, | 27 | | | | | | | | | | |--> slow start size threshold, |
28 | | | | | | | | | | or -1 if the treshold | 28 | | | | | | | | | | or -1 if the threshold |
29 | | | | | | | | | | is >= 0xFFFF | 29 | | | | | | | | | | is >= 0xFFFF |
30 | | | | | | | | | |----> sending congestion window | 30 | | | | | | | | | |----> sending congestion window |
31 | | | | | | | | |-------> (ack.quick<<1)|ack.pingpong | 31 | | | | | | | | |-------> (ack.quick<<1)|ack.pingpong |
diff --git a/Documentation/networking/sk98lin.txt b/Documentation/networking/sk98lin.txt index 4e1cc745ec63..8590a954df1d 100644 --- a/Documentation/networking/sk98lin.txt +++ b/Documentation/networking/sk98lin.txt | |||
@@ -346,7 +346,7 @@ Possible modes: | |||
346 | depending on the load of the system. If the driver detects that the | 346 | depending on the load of the system. If the driver detects that the |
347 | system load is too high, the driver tries to shield the system against | 347 | system load is too high, the driver tries to shield the system against |
348 | too much network load by enabling interrupt moderation. If - at a later | 348 | too much network load by enabling interrupt moderation. If - at a later |
349 | time - the CPU utilizaton decreases again (or if the network load is | 349 | time - the CPU utilization decreases again (or if the network load is |
350 | negligible) the interrupt moderation will automatically be disabled. | 350 | negligible) the interrupt moderation will automatically be disabled. |
351 | 351 | ||
352 | Interrupt moderation should be used when the driver has to handle one or more | 352 | Interrupt moderation should be used when the driver has to handle one or more |
diff --git a/Documentation/networking/slicecom.txt b/Documentation/networking/slicecom.txt index 2f04c9267f89..32d3b916afad 100644 --- a/Documentation/networking/slicecom.txt +++ b/Documentation/networking/slicecom.txt | |||
@@ -126,7 +126,7 @@ comx0/boardnum - board number of the SliceCom in the PC (using the 'natural' | |||
126 | 126 | ||
127 | Though the options below are to be set on a single interface, they apply to the | 127 | Though the options below are to be set on a single interface, they apply to the |
128 | whole board. The restriction, to use them on 'UP' interfaces, is because the | 128 | whole board. The restriction, to use them on 'UP' interfaces, is because the |
129 | command sequence below could lead to unpredicable results. | 129 | command sequence below could lead to unpredictable results. |
130 | 130 | ||
131 | # echo 0 >boardnum | 131 | # echo 0 >boardnum |
132 | # echo internal >clock_source | 132 | # echo internal >clock_source |
diff --git a/Documentation/networking/udplite.txt b/Documentation/networking/udplite.txt new file mode 100644 index 000000000000..dd6f46b83dab --- /dev/null +++ b/Documentation/networking/udplite.txt | |||
@@ -0,0 +1,281 @@ | |||
1 | =========================================================================== | ||
2 | The UDP-Lite protocol (RFC 3828) | ||
3 | =========================================================================== | ||
4 | |||
5 | |||
6 | UDP-Lite is a Standards-Track IETF transport protocol whose characteristic | ||
7 | is a variable-length checksum. This has advantages for transport of multimedia | ||
8 | (video, VoIP) over wireless networks, as partly damaged packets can still be | ||
9 | fed into the codec instead of being discarded due to a failed checksum test. | ||
10 | |||
11 | This file briefly describes the existing kernel support and the socket API. | ||
12 | For in-depth information, you can consult: | ||
13 | |||
14 | o The UDP-Lite Homepage: http://www.erg.abdn.ac.uk/users/gerrit/udp-lite/ | ||
15 | Fom here you can also download some example application source code. | ||
16 | |||
17 | o The UDP-Lite HOWTO on | ||
18 | http://www.erg.abdn.ac.uk/users/gerrit/udp-lite/files/UDP-Lite-HOWTO.txt | ||
19 | |||
20 | o The Wireshark UDP-Lite WiKi (with capture files): | ||
21 | http://wiki.wireshark.org/Lightweight_User_Datagram_Protocol | ||
22 | |||
23 | o The Protocol Spec, RFC 3828, http://www.ietf.org/rfc/rfc3828.txt | ||
24 | |||
25 | |||
26 | I) APPLICATIONS | ||
27 | |||
28 | Several applications have been ported successfully to UDP-Lite. Ethereal | ||
29 | (now called wireshark) has UDP-Litev4/v6 support by default. The tarball on | ||
30 | |||
31 | http://www.erg.abdn.ac.uk/users/gerrit/udp-lite/files/udplite_linux.tar.gz | ||
32 | |||
33 | has source code for several v4/v6 client-server and network testing examples. | ||
34 | |||
35 | Porting applications to UDP-Lite is straightforward: only socket level and | ||
36 | IPPROTO need to be changed; senders additionally set the checksum coverage | ||
37 | length (default = header length = 8). Details are in the next section. | ||
38 | |||
39 | |||
40 | II) PROGRAMMING API | ||
41 | |||
42 | UDP-Lite provides a connectionless, unreliable datagram service and hence | ||
43 | uses the same socket type as UDP. In fact, porting from UDP to UDP-Lite is | ||
44 | very easy: simply add `IPPROTO_UDPLITE' as the last argument of the socket(2) | ||
45 | call so that the statement looks like: | ||
46 | |||
47 | s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDPLITE); | ||
48 | |||
49 | or, respectively, | ||
50 | |||
51 | s = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDPLITE); | ||
52 | |||
53 | With just the above change you are able to run UDP-Lite services or connect | ||
54 | to UDP-Lite servers. The kernel will assume that you are not interested in | ||
55 | using partial checksum coverage and so emulate UDP mode (full coverage). | ||
56 | |||
57 | To make use of the partial checksum coverage facilities requires setting a | ||
58 | single socket option, which takes an integer specifying the coverage length: | ||
59 | |||
60 | * Sender checksum coverage: UDPLITE_SEND_CSCOV | ||
61 | |||
62 | For example, | ||
63 | |||
64 | int val = 20; | ||
65 | setsockopt(s, SOL_UDPLITE, UDPLITE_SEND_CSCOV, &val, sizeof(int)); | ||
66 | |||
67 | sets the checksum coverage length to 20 bytes (12b data + 8b header). | ||
68 | Of each packet only the first 20 bytes (plus the pseudo-header) will be | ||
69 | checksummed. This is useful for RTP applications which have a 12-byte | ||
70 | base header. | ||
71 | |||
72 | |||
73 | * Receiver checksum coverage: UDPLITE_RECV_CSCOV | ||
74 | |||
75 | This option is the receiver-side analogue. It is truly optional, i.e. not | ||
76 | required to enable traffic with partial checksum coverage. Its function is | ||
77 | that of a traffic filter: when enabled, it instructs the kernel to drop | ||
78 | all packets which have a coverage _less_ than this value. For example, if | ||
79 | RTP and UDP headers are to be protected, a receiver can enforce that only | ||
80 | packets with a minimum coverage of 20 are admitted: | ||
81 | |||
82 | int min = 20; | ||
83 | setsockopt(s, SOL_UDPLITE, UDPLITE_RECV_CSCOV, &min, sizeof(int)); | ||
84 | |||
85 | The calls to getsockopt(2) are analogous. Being an extension and not a stand- | ||
86 | alone protocol, all socket options known from UDP can be used in exactly the | ||
87 | same manner as before, e.g. UDP_CORK or UDP_ENCAP. | ||
88 | |||
89 | A detailed discussion of UDP-Lite checksum coverage options is in section IV. | ||
90 | |||
91 | |||
92 | III) HEADER FILES | ||
93 | |||
94 | The socket API requires support through header files in /usr/include: | ||
95 | |||
96 | * /usr/include/netinet/in.h | ||
97 | to define IPPROTO_UDPLITE | ||
98 | |||
99 | * /usr/include/netinet/udplite.h | ||
100 | for UDP-Lite header fields and protocol constants | ||
101 | |||
102 | For testing purposes, the following can serve as a `mini' header file: | ||
103 | |||
104 | #define IPPROTO_UDPLITE 136 | ||
105 | #define SOL_UDPLITE 136 | ||
106 | #define UDPLITE_SEND_CSCOV 10 | ||
107 | #define UDPLITE_RECV_CSCOV 11 | ||
108 | |||
109 | Ready-made header files for various distros are in the UDP-Lite tarball. | ||
110 | |||
111 | |||
112 | IV) KERNEL BEHAVIOUR WITH REGARD TO THE VARIOUS SOCKET OPTIONS | ||
113 | |||
114 | To enable debugging messages, the log level need to be set to 8, as most | ||
115 | messages use the KERN_DEBUG level (7). | ||
116 | |||
117 | 1) Sender Socket Options | ||
118 | |||
119 | If the sender specifies a value of 0 as coverage length, the module | ||
120 | assumes full coverage, transmits a packet with coverage length of 0 | ||
121 | and according checksum. If the sender specifies a coverage < 8 and | ||
122 | different from 0, the kernel assumes 8 as default value. Finally, | ||
123 | if the specified coverage length exceeds the packet length, the packet | ||
124 | length is used instead as coverage length. | ||
125 | |||
126 | 2) Receiver Socket Options | ||
127 | |||
128 | The receiver specifies the minimum value of the coverage length it | ||
129 | is willing to accept. A value of 0 here indicates that the receiver | ||
130 | always wants the whole of the packet covered. In this case, all | ||
131 | partially covered packets are dropped and an error is logged. | ||
132 | |||
133 | It is not possible to specify illegal values (<0 and <8); in these | ||
134 | cases the default of 8 is assumed. | ||
135 | |||
136 | All packets arriving with a coverage value less than the specified | ||
137 | threshold are discarded, these events are also logged. | ||
138 | |||
139 | 3) Disabling the Checksum Computation | ||
140 | |||
141 | On both sender and receiver, checksumming will always be performed | ||
142 | and can not be disabled using SO_NO_CHECK. Thus | ||
143 | |||
144 | setsockopt(sockfd, SOL_SOCKET, SO_NO_CHECK, ... ); | ||
145 | |||
146 | will always will be ignored, while the value of | ||
147 | |||
148 | getsockopt(sockfd, SOL_SOCKET, SO_NO_CHECK, &value, ...); | ||
149 | |||
150 | is meaningless (as in TCP). Packets with a zero checksum field are | ||
151 | illegal (cf. RFC 3828, sec. 3.1) will be silently discarded. | ||
152 | |||
153 | 4) Fragmentation | ||
154 | |||
155 | The checksum computation respects both buffersize and MTU. The size | ||
156 | of UDP-Lite packets is determined by the size of the send buffer. The | ||
157 | minimum size of the send buffer is 2048 (defined as SOCK_MIN_SNDBUF | ||
158 | in include/net/sock.h), the default value is configurable as | ||
159 | net.core.wmem_default or via setting the SO_SNDBUF socket(7) | ||
160 | option. The maximum upper bound for the send buffer is determined | ||
161 | by net.core.wmem_max. | ||
162 | |||
163 | Given a payload size larger than the send buffer size, UDP-Lite will | ||
164 | split the payload into several individual packets, filling up the | ||
165 | send buffer size in each case. | ||
166 | |||
167 | The precise value also depends on the interface MTU. The interface MTU, | ||
168 | in turn, may trigger IP fragmentation. In this case, the generated | ||
169 | UDP-Lite packet is split into several IP packets, of which only the | ||
170 | first one contains the L4 header. | ||
171 | |||
172 | The send buffer size has implications on the checksum coverage length. | ||
173 | Consider the following example: | ||
174 | |||
175 | Payload: 1536 bytes Send Buffer: 1024 bytes | ||
176 | MTU: 1500 bytes Coverage Length: 856 bytes | ||
177 | |||
178 | UDP-Lite will ship the 1536 bytes in two separate packets: | ||
179 | |||
180 | Packet 1: 1024 payload + 8 byte header + 20 byte IP header = 1052 bytes | ||
181 | Packet 2: 512 payload + 8 byte header + 20 byte IP header = 540 bytes | ||
182 | |||
183 | The coverage packet covers the UDP-Lite header and 848 bytes of the | ||
184 | payload in the first packet, the second packet is fully covered. Note | ||
185 | that for the second packet, the coverage length exceeds the packet | ||
186 | length. The kernel always re-adjusts the coverage length to the packet | ||
187 | length in such cases. | ||
188 | |||
189 | As an example of what happens when one UDP-Lite packet is split into | ||
190 | several tiny fragments, consider the following example. | ||
191 | |||
192 | Payload: 1024 bytes Send buffer size: 1024 bytes | ||
193 | MTU: 300 bytes Coverage length: 575 bytes | ||
194 | |||
195 | +-+-----------+--------------+--------------+--------------+ | ||
196 | |8| 272 | 280 | 280 | 280 | | ||
197 | +-+-----------+--------------+--------------+--------------+ | ||
198 | 280 560 840 1032 | ||
199 | ^ | ||
200 | *****checksum coverage************* | ||
201 | |||
202 | The UDP-Lite module generates one 1032 byte packet (1024 + 8 byte | ||
203 | header). According to the interface MTU, these are split into 4 IP | ||
204 | packets (280 byte IP payload + 20 byte IP header). The kernel module | ||
205 | sums the contents of the entire first two packets, plus 15 bytes of | ||
206 | the last packet before releasing the fragments to the IP module. | ||
207 | |||
208 | To see the analogous case for IPv6 fragmentation, consider a link | ||
209 | MTU of 1280 bytes and a write buffer of 3356 bytes. If the checksum | ||
210 | coverage is less than 1232 bytes (MTU minus IPv6/fragment header | ||
211 | lengths), only the first fragment needs to be considered. When using | ||
212 | larger checksum coverage lengths, each eligible fragment needs to be | ||
213 | checksummed. Suppose we have a checksum coverage of 3062. The buffer | ||
214 | of 3356 bytes will be split into the following fragments: | ||
215 | |||
216 | Fragment 1: 1280 bytes carrying 1232 bytes of UDP-Lite data | ||
217 | Fragment 2: 1280 bytes carrying 1232 bytes of UDP-Lite data | ||
218 | Fragment 3: 948 bytes carrying 900 bytes of UDP-Lite data | ||
219 | |||
220 | The first two fragments have to be checksummed in full, of the last | ||
221 | fragment only 598 (= 3062 - 2*1232) bytes are checksummed. | ||
222 | |||
223 | While it is important that such cases are dealt with correctly, they | ||
224 | are (annoyingly) rare: UDP-Lite is designed for optimising multimedia | ||
225 | performance over wireless (or generally noisy) links and thus smaller | ||
226 | coverage lenghts are likely to be expected. | ||
227 | |||
228 | |||
229 | V) UDP-LITE RUNTIME STATISTICS AND THEIR MEANING | ||
230 | |||
231 | Exceptional and error conditions are logged to syslog at the KERN_DEBUG | ||
232 | level. Live statistics about UDP-Lite are available in /proc/net/snmp | ||
233 | and can (with newer versions of netstat) be viewed using | ||
234 | |||
235 | netstat -svu | ||
236 | |||
237 | This displays UDP-Lite statistics variables, whose meaning is as follows. | ||
238 | |||
239 | InDatagrams: Total number of received datagrams. | ||
240 | |||
241 | NoPorts: Number of packets received to an unknown port. | ||
242 | These cases are counted separately (not as InErrors). | ||
243 | |||
244 | InErrors: Number of erroneous UDP-Lite packets. Errors include: | ||
245 | * internal socket queue receive errors | ||
246 | * packet too short (less than 8 bytes or stated | ||
247 | coverage length exceeds received length) | ||
248 | * xfrm4_policy_check() returned with error | ||
249 | * application has specified larger min. coverage | ||
250 | length than that of incoming packet | ||
251 | * checksum coverage violated | ||
252 | * bad checksum | ||
253 | |||
254 | OutDatagrams: Total number of sent datagrams. | ||
255 | |||
256 | These statistics derive from the UDP MIB (RFC 2013). | ||
257 | |||
258 | |||
259 | VI) IPTABLES | ||
260 | |||
261 | There is packet match support for UDP-Lite as well as support for the LOG target. | ||
262 | If you copy and paste the following line into /etc/protcols, | ||
263 | |||
264 | udplite 136 UDP-Lite # UDP-Lite [RFC 3828] | ||
265 | |||
266 | then | ||
267 | iptables -A INPUT -p udplite -j LOG | ||
268 | |||
269 | will produce logging output to syslog. Dropping and rejecting packets also works. | ||
270 | |||
271 | |||
272 | VII) MAINTAINER ADDRESS | ||
273 | |||
274 | The UDP-Lite patch was developed at | ||
275 | University of Aberdeen | ||
276 | Electronics Research Group | ||
277 | Department of Engineering | ||
278 | Fraser Noble Building | ||
279 | Aberdeen AB24 3UE; UK | ||
280 | The current maintainer is Gerrit Renker, <gerrit@erg.abdn.ac.uk>. Initial | ||
281 | code was developed by William Stanislaus, <william@erg.abdn.ac.uk>. | ||
diff --git a/Documentation/networking/wan-router.txt b/Documentation/networking/wan-router.txt index 0cf654147634..653978dcea7f 100644 --- a/Documentation/networking/wan-router.txt +++ b/Documentation/networking/wan-router.txt | |||
@@ -412,7 +412,7 @@ beta-2.1.4 Jul 2000 o Dynamic interface configuration: | |||
412 | 412 | ||
413 | beta3-2.1.4 Jul 2000 o X25 M_BIT Problem fix. | 413 | beta3-2.1.4 Jul 2000 o X25 M_BIT Problem fix. |
414 | o Added the Multi-Port PPP | 414 | o Added the Multi-Port PPP |
415 | Updated utilites for the Multi-Port PPP. | 415 | Updated utilities for the Multi-Port PPP. |
416 | 416 | ||
417 | 2.1.4 Aut 2000 | 417 | 2.1.4 Aut 2000 |
418 | o In X25API: | 418 | o In X25API: |
@@ -444,13 +444,13 @@ beta1-2.1.5 Nov 15 2000 | |||
444 | 444 | ||
445 | o Cpipemon | 445 | o Cpipemon |
446 | - Added set FT1 commands to the cpipemon. Thus CSU/DSU | 446 | - Added set FT1 commands to the cpipemon. Thus CSU/DSU |
447 | configuraiton can be performed using cpipemon. | 447 | configuration can be performed using cpipemon. |
448 | All systems that cannot run cfgft1 GUI utility should | 448 | All systems that cannot run cfgft1 GUI utility should |
449 | use cpipemon to configure the on board CSU/DSU. | 449 | use cpipemon to configure the on board CSU/DSU. |
450 | 450 | ||
451 | 451 | ||
452 | o Keyboard Led Monitor/Debugger | 452 | o Keyboard Led Monitor/Debugger |
453 | - A new utilty /usr/sbin/wpkbdmon uses keyboard leds | 453 | - A new utility /usr/sbin/wpkbdmon uses keyboard leds |
454 | to convey operational statistic information of the | 454 | to convey operational statistic information of the |
455 | Sangoma WANPIPE cards. | 455 | Sangoma WANPIPE cards. |
456 | NUM_LOCK = Line State (On=connected, Off=disconnected) | 456 | NUM_LOCK = Line State (On=connected, Off=disconnected) |
@@ -464,7 +464,7 @@ beta1-2.1.5 Nov 15 2000 | |||
464 | - Appropriate number of devices are dynamically loaded | 464 | - Appropriate number of devices are dynamically loaded |
465 | based on the number of Sangoma cards found. | 465 | based on the number of Sangoma cards found. |
466 | 466 | ||
467 | Note: The kernel configuraiton option | 467 | Note: The kernel configuration option |
468 | CONFIG_WANPIPE_CARDS has been taken out. | 468 | CONFIG_WANPIPE_CARDS has been taken out. |
469 | 469 | ||
470 | o Fixed the Frame Relay and Chdlc network interfaces so they are | 470 | o Fixed the Frame Relay and Chdlc network interfaces so they are |
diff --git a/Documentation/networking/xfrm_sync.txt b/Documentation/networking/xfrm_sync.txt index 8be626f7c0b8..d7aac9dedeb4 100644 --- a/Documentation/networking/xfrm_sync.txt +++ b/Documentation/networking/xfrm_sync.txt | |||
@@ -47,10 +47,13 @@ aevent_id structure looks like: | |||
47 | 47 | ||
48 | struct xfrm_aevent_id { | 48 | struct xfrm_aevent_id { |
49 | struct xfrm_usersa_id sa_id; | 49 | struct xfrm_usersa_id sa_id; |
50 | xfrm_address_t saddr; | ||
50 | __u32 flags; | 51 | __u32 flags; |
52 | __u32 reqid; | ||
51 | }; | 53 | }; |
52 | 54 | ||
53 | xfrm_usersa_id in this message layout identifies the SA. | 55 | The unique SA is identified by the combination of xfrm_usersa_id, |
56 | reqid and saddr. | ||
54 | 57 | ||
55 | flags are used to indicate different things. The possible | 58 | flags are used to indicate different things. The possible |
56 | flags are: | 59 | flags are: |
diff --git a/Documentation/pnp.txt b/Documentation/pnp.txt index 9ff966bf76e6..28037aa1846c 100644 --- a/Documentation/pnp.txt +++ b/Documentation/pnp.txt | |||
@@ -184,7 +184,7 @@ static const struct pnp_id pnp_dev_table[] = { | |||
184 | Please note that the character 'X' can be used as a wild card in the function | 184 | Please note that the character 'X' can be used as a wild card in the function |
185 | portion (last four characters). | 185 | portion (last four characters). |
186 | ex: | 186 | ex: |
187 | /* Unkown PnP modems */ | 187 | /* Unknown PnP modems */ |
188 | { "PNPCXXX", UNKNOWN_DEV }, | 188 | { "PNPCXXX", UNKNOWN_DEV }, |
189 | 189 | ||
190 | Supported PnP card IDs can optionally be defined. | 190 | Supported PnP card IDs can optionally be defined. |
diff --git a/Documentation/power/pci.txt b/Documentation/power/pci.txt index 24edf25b3bb7..c750f9f2e76e 100644 --- a/Documentation/power/pci.txt +++ b/Documentation/power/pci.txt | |||
@@ -153,7 +153,7 @@ Description: | |||
153 | events, which is implicit if it doesn't even support it in the first | 153 | events, which is implicit if it doesn't even support it in the first |
154 | place). | 154 | place). |
155 | 155 | ||
156 | Note that the PMC Register in the device's PM Capabilties has a bitmask | 156 | Note that the PMC Register in the device's PM Capabilities has a bitmask |
157 | of the states it supports generating PME# from. D3hot is bit 3 and | 157 | of the states it supports generating PME# from. D3hot is bit 3 and |
158 | D3cold is bit 4. So, while a value of 4 as the state may not seem | 158 | D3cold is bit 4. So, while a value of 4 as the state may not seem |
159 | semantically correct, it is. | 159 | semantically correct, it is. |
@@ -268,7 +268,7 @@ to wake the system up. (However, it is possible that a device may support | |||
268 | some non-standard way of generating a wake event on sleep.) | 268 | some non-standard way of generating a wake event on sleep.) |
269 | 269 | ||
270 | Bits 15:11 of the PMC (Power Mgmt Capabilities) Register in a device's | 270 | Bits 15:11 of the PMC (Power Mgmt Capabilities) Register in a device's |
271 | PM Capabilties describe what power states the device supports generating a | 271 | PM Capabilities describe what power states the device supports generating a |
272 | wake event from: | 272 | wake event from: |
273 | 273 | ||
274 | +------------------+ | 274 | +------------------+ |
diff --git a/Documentation/power/s2ram.txt b/Documentation/power/s2ram.txt new file mode 100644 index 000000000000..b05f512130ea --- /dev/null +++ b/Documentation/power/s2ram.txt | |||
@@ -0,0 +1,56 @@ | |||
1 | How to get s2ram working | ||
2 | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
3 | 2006 Linus Torvalds | ||
4 | 2006 Pavel Machek | ||
5 | |||
6 | 1) Check suspend.sf.net, program s2ram there has long whitelist of | ||
7 | "known ok" machines, along with tricks to use on each one. | ||
8 | |||
9 | 2) If that does not help, try reading tricks.txt and | ||
10 | video.txt. Perhaps problem is as simple as broken module, and | ||
11 | simple module unload can fix it. | ||
12 | |||
13 | 3) You can use Linus' TRACE_RESUME infrastructure, described below. | ||
14 | |||
15 | Using TRACE_RESUME | ||
16 | ~~~~~~~~~~~~~~~~~~ | ||
17 | |||
18 | I've been working at making the machines I have able to STR, and almost | ||
19 | always it's a driver that is buggy. Thank God for the suspend/resume | ||
20 | debugging - the thing that Chuck tried to disable. That's often the _only_ | ||
21 | way to debug these things, and it's actually pretty powerful (but | ||
22 | time-consuming - having to insert TRACE_RESUME() markers into the device | ||
23 | driver that doesn't resume and recompile and reboot). | ||
24 | |||
25 | Anyway, the way to debug this for people who are interested (have a | ||
26 | machine that doesn't boot) is: | ||
27 | |||
28 | - enable PM_DEBUG, and PM_TRACE | ||
29 | |||
30 | - use a script like this: | ||
31 | |||
32 | #!/bin/sh | ||
33 | sync | ||
34 | echo 1 > /sys/power/pm_trace | ||
35 | echo mem > /sys/power/state | ||
36 | |||
37 | to suspend | ||
38 | |||
39 | - if it doesn't come back up (which is usually the problem), reboot by | ||
40 | holding the power button down, and look at the dmesg output for things | ||
41 | like | ||
42 | |||
43 | Magic number: 4:156:725 | ||
44 | hash matches drivers/base/power/resume.c:28 | ||
45 | hash matches device 0000:01:00.0 | ||
46 | |||
47 | which means that the last trace event was just before trying to resume | ||
48 | device 0000:01:00.0. Then figure out what driver is controlling that | ||
49 | device (lspci and /sys/devices/pci* is your friend), and see if you can | ||
50 | fix it, disable it, or trace into its resume function. | ||
51 | |||
52 | For example, the above happens to be the VGA device on my EVO, which I | ||
53 | used to run with "radeonfb" (it's an ATI Radeon mobility). It turns out | ||
54 | that "radeonfb" simply cannot resume that device - it tries to set the | ||
55 | PLL's, and it just _hangs_. Using the regular VGA console and letting X | ||
56 | resume it instead works fine. | ||
diff --git a/Documentation/power/states.txt b/Documentation/power/states.txt index 3e5e5d3ff419..0931a330d362 100644 --- a/Documentation/power/states.txt +++ b/Documentation/power/states.txt | |||
@@ -62,7 +62,7 @@ setup via another operating system for it to use. Despite the | |||
62 | inconvenience, this method requires minimal work by the kernel, since | 62 | inconvenience, this method requires minimal work by the kernel, since |
63 | the firmware will also handle restoring memory contents on resume. | 63 | the firmware will also handle restoring memory contents on resume. |
64 | 64 | ||
65 | If the kernel is responsible for persistantly saving state, a mechanism | 65 | If the kernel is responsible for persistently saving state, a mechanism |
66 | called 'swsusp' (Swap Suspend) is used to write memory contents to | 66 | called 'swsusp' (Swap Suspend) is used to write memory contents to |
67 | free swap space. swsusp has some restrictive requirements, but should | 67 | free swap space. swsusp has some restrictive requirements, but should |
68 | work in most cases. Some, albeit outdated, documentation can be found | 68 | work in most cases. Some, albeit outdated, documentation can be found |
diff --git a/Documentation/power/swsusp-and-swap-files.txt b/Documentation/power/swsusp-and-swap-files.txt new file mode 100644 index 000000000000..06f911a5f885 --- /dev/null +++ b/Documentation/power/swsusp-and-swap-files.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | Using swap files with software suspend (swsusp) | ||
2 | (C) 2006 Rafael J. Wysocki <rjw@sisk.pl> | ||
3 | |||
4 | The Linux kernel handles swap files almost in the same way as it handles swap | ||
5 | partitions and there are only two differences between these two types of swap | ||
6 | areas: | ||
7 | (1) swap files need not be contiguous, | ||
8 | (2) the header of a swap file is not in the first block of the partition that | ||
9 | holds it. From the swsusp's point of view (1) is not a problem, because it is | ||
10 | already taken care of by the swap-handling code, but (2) has to be taken into | ||
11 | consideration. | ||
12 | |||
13 | In principle the location of a swap file's header may be determined with the | ||
14 | help of appropriate filesystem driver. Unfortunately, however, it requires the | ||
15 | filesystem holding the swap file to be mounted, and if this filesystem is | ||
16 | journaled, it cannot be mounted during resume from disk. For this reason to | ||
17 | identify a swap file swsusp uses the name of the partition that holds the file | ||
18 | and the offset from the beginning of the partition at which the swap file's | ||
19 | header is located. For convenience, this offset is expressed in <PAGE_SIZE> | ||
20 | units. | ||
21 | |||
22 | In order to use a swap file with swsusp, you need to: | ||
23 | |||
24 | 1) Create the swap file and make it active, eg. | ||
25 | |||
26 | # dd if=/dev/zero of=<swap_file_path> bs=1024 count=<swap_file_size_in_k> | ||
27 | # mkswap <swap_file_path> | ||
28 | # swapon <swap_file_path> | ||
29 | |||
30 | 2) Use an application that will bmap the swap file with the help of the | ||
31 | FIBMAP ioctl and determine the location of the file's swap header, as the | ||
32 | offset, in <PAGE_SIZE> units, from the beginning of the partition which | ||
33 | holds the swap file. | ||
34 | |||
35 | 3) Add the following parameters to the kernel command line: | ||
36 | |||
37 | resume=<swap_file_partition> resume_offset=<swap_file_offset> | ||
38 | |||
39 | where <swap_file_partition> is the partition on which the swap file is located | ||
40 | and <swap_file_offset> is the offset of the swap header determined by the | ||
41 | application in 2) (of course, this step may be carried out automatically | ||
42 | by the same application that determies the swap file's header offset using the | ||
43 | FIBMAP ioctl) | ||
44 | |||
45 | OR | ||
46 | |||
47 | Use a userland suspend application that will set the partition and offset | ||
48 | with the help of the SNAPSHOT_SET_SWAP_AREA ioctl described in | ||
49 | Documentation/power/userland-swsusp.txt (this is the only method to suspend | ||
50 | to a swap file allowing the resume to be initiated from an initrd or initramfs | ||
51 | image). | ||
52 | |||
53 | Now, swsusp will use the swap file in the same way in which it would use a swap | ||
54 | partition. In particular, the swap file has to be active (ie. be present in | ||
55 | /proc/swaps) so that it can be used for suspending. | ||
56 | |||
57 | Note that if the swap file used for suspending is deleted and recreated, | ||
58 | the location of its header need not be the same as before. Thus every time | ||
59 | this happens the value of the "resume_offset=" kernel command line parameter | ||
60 | has to be updated. | ||
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt index 9ea2208b43b5..0761ff6c57ed 100644 --- a/Documentation/power/swsusp.txt +++ b/Documentation/power/swsusp.txt | |||
@@ -153,7 +153,7 @@ add: | |||
153 | 153 | ||
154 | If the thread is needed for writing the image to storage, you should | 154 | If the thread is needed for writing the image to storage, you should |
155 | instead set the PF_NOFREEZE process flag when creating the thread (and | 155 | instead set the PF_NOFREEZE process flag when creating the thread (and |
156 | be very carefull). | 156 | be very careful). |
157 | 157 | ||
158 | 158 | ||
159 | Q: What is the difference between "platform", "shutdown" and | 159 | Q: What is the difference between "platform", "shutdown" and |
@@ -297,20 +297,12 @@ system is shut down or suspended. Additionally use the encrypted | |||
297 | suspend image to prevent sensitive data from being stolen after | 297 | suspend image to prevent sensitive data from being stolen after |
298 | resume. | 298 | resume. |
299 | 299 | ||
300 | Q: Why can't we suspend to a swap file? | 300 | Q: Can I suspend to a swap file? |
301 | 301 | ||
302 | A: Because accessing swap file needs the filesystem mounted, and | 302 | A: Generally, yes, you can. However, it requires you to use the "resume=" and |
303 | filesystem might do something wrong (like replaying the journal) | 303 | "resume_offset=" kernel command line parameters, so the resume from a swap file |
304 | during mount. | 304 | cannot be initiated from an initrd or initramfs image. See |
305 | 305 | swsusp-and-swap-files.txt for details. | |
306 | There are few ways to get that fixed: | ||
307 | |||
308 | 1) Probably could be solved by modifying every filesystem to support | ||
309 | some kind of "really read-only!" option. Patches welcome. | ||
310 | |||
311 | 2) suspend2 gets around that by storing absolute positions in on-disk | ||
312 | image (and blocksize), with resume parameter pointing directly to | ||
313 | suspend header. | ||
314 | 306 | ||
315 | Q: Is there a maximum system RAM size that is supported by swsusp? | 307 | Q: Is there a maximum system RAM size that is supported by swsusp? |
316 | 308 | ||
diff --git a/Documentation/power/userland-swsusp.txt b/Documentation/power/userland-swsusp.txt index 64755e9285db..000556c932e9 100644 --- a/Documentation/power/userland-swsusp.txt +++ b/Documentation/power/userland-swsusp.txt | |||
@@ -9,9 +9,8 @@ done it already. | |||
9 | Now, to use the userland interface for software suspend you need special | 9 | Now, to use the userland interface for software suspend you need special |
10 | utilities that will read/write the system memory snapshot from/to the | 10 | utilities that will read/write the system memory snapshot from/to the |
11 | kernel. Such utilities are available, for example, from | 11 | kernel. Such utilities are available, for example, from |
12 | <http://www.sisk.pl/kernel/utilities/suspend>. You may want to have | 12 | <http://suspend.sourceforge.net>. You may want to have a look at them if you |
13 | a look at them if you are going to develop your own suspend/resume | 13 | are going to develop your own suspend/resume utilities. |
14 | utilities. | ||
15 | 14 | ||
16 | The interface consists of a character device providing the open(), | 15 | The interface consists of a character device providing the open(), |
17 | release(), read(), and write() operations as well as several ioctl() | 16 | release(), read(), and write() operations as well as several ioctl() |
@@ -21,9 +20,9 @@ be read from /sys/class/misc/snapshot/dev. | |||
21 | 20 | ||
22 | The device can be open either for reading or for writing. If open for | 21 | The device can be open either for reading or for writing. If open for |
23 | reading, it is considered to be in the suspend mode. Otherwise it is | 22 | reading, it is considered to be in the suspend mode. Otherwise it is |
24 | assumed to be in the resume mode. The device cannot be open for reading | 23 | assumed to be in the resume mode. The device cannot be open for simultaneous |
25 | and writing. It is also impossible to have the device open more than once | 24 | reading and writing. It is also impossible to have the device open more than |
26 | at a time. | 25 | once at a time. |
27 | 26 | ||
28 | The ioctl() commands recognized by the device are: | 27 | The ioctl() commands recognized by the device are: |
29 | 28 | ||
@@ -69,9 +68,46 @@ SNAPSHOT_FREE_SWAP_PAGES - free all swap pages allocated with | |||
69 | SNAPSHOT_SET_SWAP_FILE - set the resume partition (the last ioctl() argument | 68 | SNAPSHOT_SET_SWAP_FILE - set the resume partition (the last ioctl() argument |
70 | should specify the device's major and minor numbers in the old | 69 | should specify the device's major and minor numbers in the old |
71 | two-byte format, as returned by the stat() function in the .st_rdev | 70 | two-byte format, as returned by the stat() function in the .st_rdev |
72 | member of the stat structure); it is recommended to always use this | 71 | member of the stat structure) |
73 | call, because the code to set the resume partition could be removed from | 72 | |
74 | future kernels | 73 | SNAPSHOT_SET_SWAP_AREA - set the resume partition and the offset (in <PAGE_SIZE> |
74 | units) from the beginning of the partition at which the swap header is | ||
75 | located (the last ioctl() argument should point to a struct | ||
76 | resume_swap_area, as defined in kernel/power/power.h, containing the | ||
77 | resume device specification, as for the SNAPSHOT_SET_SWAP_FILE ioctl(), | ||
78 | and the offset); for swap partitions the offset is always 0, but it is | ||
79 | different to zero for swap files (please see | ||
80 | Documentation/swsusp-and-swap-files.txt for details). | ||
81 | The SNAPSHOT_SET_SWAP_AREA ioctl() is considered as a replacement for | ||
82 | SNAPSHOT_SET_SWAP_FILE which is regarded as obsolete. It is | ||
83 | recommended to always use this call, because the code to set the resume | ||
84 | partition may be removed from future kernels | ||
85 | |||
86 | SNAPSHOT_S2RAM - suspend to RAM; using this call causes the kernel to | ||
87 | immediately enter the suspend-to-RAM state, so this call must always | ||
88 | be preceded by the SNAPSHOT_FREEZE call and it is also necessary | ||
89 | to use the SNAPSHOT_UNFREEZE call after the system wakes up. This call | ||
90 | is needed to implement the suspend-to-both mechanism in which the | ||
91 | suspend image is first created, as though the system had been suspended | ||
92 | to disk, and then the system is suspended to RAM (this makes it possible | ||
93 | to resume the system from RAM if there's enough battery power or restore | ||
94 | its state on the basis of the saved suspend image otherwise) | ||
95 | |||
96 | SNAPSHOT_PMOPS - enable the usage of the pmops->prepare, pmops->enter and | ||
97 | pmops->finish methods (the in-kernel swsusp knows these as the "platform | ||
98 | method") which are needed on many machines to (among others) speed up | ||
99 | the resume by letting the BIOS skip some steps or to let the system | ||
100 | recognise the correct state of the hardware after the resume (in | ||
101 | particular on many machines this ensures that unplugged AC | ||
102 | adapters get correctly detected and that kacpid does not run wild after | ||
103 | the resume). The last ioctl() argument can take one of the three | ||
104 | values, defined in kernel/power/power.h: | ||
105 | PMOPS_PREPARE - make the kernel carry out the | ||
106 | pm_ops->prepare(PM_SUSPEND_DISK) operation | ||
107 | PMOPS_ENTER - make the kernel power off the system by calling | ||
108 | pm_ops->enter(PM_SUSPEND_DISK) | ||
109 | PMOPS_FINISH - make the kernel carry out the | ||
110 | pm_ops->finish(PM_SUSPEND_DISK) operation | ||
75 | 111 | ||
76 | The device's read() operation can be used to transfer the snapshot image from | 112 | The device's read() operation can be used to transfer the snapshot image from |
77 | the kernel. It has the following limitations: | 113 | the kernel. It has the following limitations: |
@@ -91,10 +127,12 @@ unfreeze user space processes frozen by SNAPSHOT_UNFREEZE if they are | |||
91 | still frozen when the device is being closed). | 127 | still frozen when the device is being closed). |
92 | 128 | ||
93 | Currently it is assumed that the userland utilities reading/writing the | 129 | Currently it is assumed that the userland utilities reading/writing the |
94 | snapshot image from/to the kernel will use a swap partition, called the resume | 130 | snapshot image from/to the kernel will use a swap parition, called the resume |
95 | partition, as storage space. However, this is not really required, as they | 131 | partition, or a swap file as storage space (if a swap file is used, the resume |
96 | can use, for example, a special (blank) suspend partition or a file on a partition | 132 | partition is the partition that holds this file). However, this is not really |
97 | that is unmounted before SNAPSHOT_ATOMIC_SNAPSHOT and mounted afterwards. | 133 | required, as they can use, for example, a special (blank) suspend partition or |
134 | a file on a partition that is unmounted before SNAPSHOT_ATOMIC_SNAPSHOT and | ||
135 | mounted afterwards. | ||
98 | 136 | ||
99 | These utilities SHOULD NOT make any assumptions regarding the ordering of | 137 | These utilities SHOULD NOT make any assumptions regarding the ordering of |
100 | data within the snapshot image, except for the image header that MAY be | 138 | data within the snapshot image, except for the image header that MAY be |
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index 27b457c09729..b3bd36668db3 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
@@ -6,6 +6,8 @@ | |||
6 | IBM Corp. | 6 | IBM Corp. |
7 | (c) 2005 Becky Bruce <becky.bruce at freescale.com>, | 7 | (c) 2005 Becky Bruce <becky.bruce at freescale.com>, |
8 | Freescale Semiconductor, FSL SOC and 32-bit additions | 8 | Freescale Semiconductor, FSL SOC and 32-bit additions |
9 | (c) 2006 MontaVista Software, Inc. | ||
10 | Flash chip node definition | ||
9 | 11 | ||
10 | May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet. | 12 | May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet. |
11 | 13 | ||
@@ -33,13 +35,13 @@ | |||
33 | - Change version 16 format to always align | 35 | - Change version 16 format to always align |
34 | property data to 4 bytes. Since tokens are | 36 | property data to 4 bytes. Since tokens are |
35 | already aligned, that means no specific | 37 | already aligned, that means no specific |
36 | required alignement between property size | 38 | required alignment between property size |
37 | and property data. The old style variable | 39 | and property data. The old style variable |
38 | alignment would make it impossible to do | 40 | alignment would make it impossible to do |
39 | "simple" insertion of properties using | 41 | "simple" insertion of properties using |
40 | memove (thanks Milton for | 42 | memove (thanks Milton for |
41 | noticing). Updated kernel patch as well | 43 | noticing). Updated kernel patch as well |
42 | - Correct a few more alignement constraints | 44 | - Correct a few more alignment constraints |
43 | - Add a chapter about the device-tree | 45 | - Add a chapter about the device-tree |
44 | compiler and the textural representation of | 46 | compiler and the textural representation of |
45 | the tree that can be "compiled" by dtc. | 47 | the tree that can be "compiled" by dtc. |
@@ -854,7 +856,7 @@ address which can extend beyond that limit. | |||
854 | console device if any. Typically, if you have serial devices on | 856 | console device if any. Typically, if you have serial devices on |
855 | your board, you may want to put the full path to the one set as | 857 | your board, you may want to put the full path to the one set as |
856 | the default console in the firmware here, for the kernel to pick | 858 | the default console in the firmware here, for the kernel to pick |
857 | it up as it's own default console. If you look at the funciton | 859 | it up as its own default console. If you look at the function |
858 | set_preferred_console() in arch/ppc64/kernel/setup.c, you'll see | 860 | set_preferred_console() in arch/ppc64/kernel/setup.c, you'll see |
859 | that the kernel tries to find out the default console and has | 861 | that the kernel tries to find out the default console and has |
860 | knowledge of various types like 8250 serial ports. You may want | 862 | knowledge of various types like 8250 serial ports. You may want |
@@ -1124,7 +1126,7 @@ should have the following properties: | |||
1124 | - interrupt-parent : contains the phandle of the interrupt | 1126 | - interrupt-parent : contains the phandle of the interrupt |
1125 | controller which handles interrupts for this device | 1127 | controller which handles interrupts for this device |
1126 | - interrupts : a list of tuples representing the interrupt | 1128 | - interrupts : a list of tuples representing the interrupt |
1127 | number and the interrupt sense and level for each interupt | 1129 | number and the interrupt sense and level for each interrupt |
1128 | for this device. | 1130 | for this device. |
1129 | 1131 | ||
1130 | This information is used by the kernel to build the interrupt table | 1132 | This information is used by the kernel to build the interrupt table |
@@ -1693,6 +1695,43 @@ platforms are moved over to use the flattened-device-tree model. | |||
1693 | }; | 1695 | }; |
1694 | }; | 1696 | }; |
1695 | 1697 | ||
1698 | g) Flash chip nodes | ||
1699 | |||
1700 | Flash chips (Memory Technology Devices) are often used for solid state | ||
1701 | file systems on embedded devices. | ||
1702 | |||
1703 | Required properties: | ||
1704 | |||
1705 | - device_type : has to be "rom" | ||
1706 | - compatible : Should specify what this ROM device is compatible with | ||
1707 | (i.e. "onenand"). Currently, this is most likely to be "direct-mapped" | ||
1708 | (which corresponds to the MTD physmap mapping driver). | ||
1709 | - regs : Offset and length of the register set (or memory mapping) for | ||
1710 | the device. | ||
1711 | |||
1712 | Recommended properties : | ||
1713 | |||
1714 | - bank-width : Width of the flash data bus in bytes. Required | ||
1715 | for the NOR flashes (compatible == "direct-mapped" and others) ONLY. | ||
1716 | - partitions : Several pairs of 32-bit values where the first value is | ||
1717 | partition's offset from the start of the device and the second one is | ||
1718 | partition size in bytes with LSB used to signify a read only | ||
1719 | partititon (so, the parition size should always be an even number). | ||
1720 | - partition-names : The list of concatenated zero terminated strings | ||
1721 | representing the partition names. | ||
1722 | |||
1723 | Example: | ||
1724 | |||
1725 | flash@ff000000 { | ||
1726 | device_type = "rom"; | ||
1727 | compatible = "direct-mapped"; | ||
1728 | regs = <ff000000 01000000>; | ||
1729 | bank-width = <4>; | ||
1730 | partitions = <00000000 00f80000 | ||
1731 | 00f80000 00080001>; | ||
1732 | partition-names = "fs\0firmware"; | ||
1733 | }; | ||
1734 | |||
1696 | More devices will be defined as this spec matures. | 1735 | More devices will be defined as this spec matures. |
1697 | 1736 | ||
1698 | 1737 | ||
diff --git a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt new file mode 100644 index 000000000000..d077d764f82b --- /dev/null +++ b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt | |||
@@ -0,0 +1,189 @@ | |||
1 | MPC52xx Device Tree Bindings | ||
2 | ---------------------------- | ||
3 | |||
4 | (c) 2006 Secret Lab Technologies Ltd | ||
5 | Grant Likely <grant.likely at secretlab.ca> | ||
6 | |||
7 | I - Introduction | ||
8 | ================ | ||
9 | Boards supported by the arch/powerpc architecture require device tree be | ||
10 | passed by the boot loader to the kernel at boot time. The device tree | ||
11 | describes what devices are present on the board and how they are | ||
12 | connected. The device tree can either be passed as a binary blob (as | ||
13 | described in Documentation/powerpc/booting-without-of.txt), or passed | ||
14 | by Open Firmare (IEEE 1275) compatible firmware using an OF compatible | ||
15 | client interface API. | ||
16 | |||
17 | This document specifies the requirements on the device-tree for mpc52xx | ||
18 | based boards. These requirements are above and beyond the details | ||
19 | specified in either the OpenFirmware spec or booting-without-of.txt | ||
20 | |||
21 | All new mpc52xx-based boards are expected to match this document. In | ||
22 | cases where this document is not sufficient to support a new board port, | ||
23 | this document should be updated as part of adding the new board support. | ||
24 | |||
25 | II - Philosophy | ||
26 | =============== | ||
27 | The core of this document is naming convention. The whole point of | ||
28 | defining this convention is to reduce or eliminate the number of | ||
29 | special cases required to support a 52xx board. If all 52xx boards | ||
30 | follow the same convention, then generic 52xx support code will work | ||
31 | rather than coding special cases for each new board. | ||
32 | |||
33 | This section tries to capture the thought process behind why the naming | ||
34 | convention is what it is. | ||
35 | |||
36 | 1. Node names | ||
37 | ------------- | ||
38 | There is strong convention/requirements already established for children | ||
39 | of the root node. 'cpus' describes the processor cores, 'memory' | ||
40 | describes memory, and 'chosen' provides boot configuration. Other nodes | ||
41 | are added to describe devices attached to the processor local bus. | ||
42 | Following convention already established with other system-on-chip | ||
43 | processors, MPC52xx boards must have an 'soc5200' node as a child of the | ||
44 | root node. | ||
45 | |||
46 | The soc5200 node holds child nodes for all on chip devices. Child nodes | ||
47 | are typically named after the configured function. ie. the FEC node is | ||
48 | named 'ethernet', and a PSC in uart mode is named 'serial'. | ||
49 | |||
50 | 2. device_type property | ||
51 | ----------------------- | ||
52 | similar to the node name convention above; the device_type reflects the | ||
53 | configured function of a device. ie. 'serial' for a uart and 'spi' for | ||
54 | an spi controller. However, while node names *should* reflect the | ||
55 | configured function, device_type *must* match the configured function | ||
56 | exactly. | ||
57 | |||
58 | 3. compatible property | ||
59 | ---------------------- | ||
60 | Since device_type isn't enough to match devices to drivers, there also | ||
61 | needs to be a naming convention for the compatible property. Compatible | ||
62 | is an list of device descriptions sorted from specific to generic. For | ||
63 | the mpc52xx, the required format for each compatible value is | ||
64 | <chip>-<device>[-<mode>]. At the minimum, the list shall contain two | ||
65 | items; the first specifying the exact chip, and the second specifying | ||
66 | mpc52xx for the chip. | ||
67 | |||
68 | ie. ethernet on mpc5200b: compatible = "mpc5200b-ethernet\0mpc52xx-ethernet" | ||
69 | |||
70 | The idea here is that most drivers will match to the most generic field | ||
71 | in the compatible list (mpc52xx-*), but can also test the more specific | ||
72 | field for enabling bug fixes or extra features. | ||
73 | |||
74 | Modal devices, like PSCs, also append the configured function to the | ||
75 | end of the compatible field. ie. A PSC in i2s mode would specify | ||
76 | "mpc52xx-psc-i2s", not "mpc52xx-i2s". This convention is chosen to | ||
77 | avoid naming conflicts with non-psc devices providing the same | ||
78 | function. For example, "mpc52xx-spi" and "mpc52xx-psc-spi" describe | ||
79 | the mpc5200 simple spi device and a PSC spi mode respectively. | ||
80 | |||
81 | If the soc device is more generic and present on other SOCs, the | ||
82 | compatible property can specify the more generic device type also. | ||
83 | |||
84 | ie. mscan: compatible = "mpc5200-mscan\0mpc52xx-mscan\0fsl,mscan"; | ||
85 | |||
86 | At the time of writing, exact chip may be either 'mpc5200' or | ||
87 | 'mpc5200b'. | ||
88 | |||
89 | Device drivers should always try to match as generically as possible. | ||
90 | |||
91 | III - Structure | ||
92 | =============== | ||
93 | The device tree for an mpc52xx board follows the structure defined in | ||
94 | booting-without-of.txt with the following additional notes: | ||
95 | |||
96 | 0) the root node | ||
97 | ---------------- | ||
98 | Typical root description node; see booting-without-of | ||
99 | |||
100 | 1) The cpus node | ||
101 | ---------------- | ||
102 | The cpus node follows the basic layout described in booting-without-of. | ||
103 | The bus-frequency property holds the XLB bus frequency | ||
104 | The clock-frequency property holds the core frequency | ||
105 | |||
106 | 2) The memory node | ||
107 | ------------------ | ||
108 | Typical memory description node; see booting-without-of. | ||
109 | |||
110 | 3) The soc5200 node | ||
111 | ------------------- | ||
112 | This node describes the on chip SOC peripherals. Every mpc52xx based | ||
113 | board will have this node, and as such there is a common naming | ||
114 | convention for SOC devices. | ||
115 | |||
116 | Required properties: | ||
117 | name type description | ||
118 | ---- ---- ----------- | ||
119 | device_type string must be "soc" | ||
120 | ranges int should be <0 baseaddr baseaddr+10000> | ||
121 | reg int must be <baseaddr 10000> | ||
122 | |||
123 | Recommended properties: | ||
124 | name type description | ||
125 | ---- ---- ----------- | ||
126 | compatible string should be "<chip>-soc\0mpc52xx-soc" | ||
127 | ie. "mpc5200b-soc\0mpc52xx-soc" | ||
128 | #interrupt-cells int must be <3>. If it is not defined | ||
129 | here then it must be defined in every | ||
130 | soc device node. | ||
131 | bus-frequency int IPB bus frequency in HZ. Clock rate | ||
132 | used by most of the soc devices. | ||
133 | Defining it here avoids needing it | ||
134 | added to every device node. | ||
135 | |||
136 | 4) soc5200 child nodes | ||
137 | ---------------------- | ||
138 | Any on chip SOC devices available to Linux must appear as soc5200 child nodes. | ||
139 | |||
140 | Note: in the tables below, '*' matches all <chip> values. ie. | ||
141 | *-pic would translate to "mpc5200-pic\0mpc52xx-pic" | ||
142 | |||
143 | Required soc5200 child nodes: | ||
144 | name device_type compatible Description | ||
145 | ---- ----------- ---------- ----------- | ||
146 | cdm@<addr> cdm *-cmd Clock Distribution | ||
147 | pic@<addr> interrupt-controller *-pic need an interrupt | ||
148 | controller to boot | ||
149 | bestcomm@<addr> dma-controller *-bestcomm 52xx pic also requires | ||
150 | the bestcomm device | ||
151 | |||
152 | Recommended soc5200 child nodes; populate as needed for your board | ||
153 | name device_type compatible Description | ||
154 | ---- ----------- ---------- ----------- | ||
155 | gpt@<addr> gpt *-gpt General purpose timers | ||
156 | rtc@<addr> rtc *-rtc Real time clock | ||
157 | mscan@<addr> mscan *-mscan CAN bus controller | ||
158 | pci@<addr> pci *-pci PCI bridge | ||
159 | serial@<addr> serial *-psc-uart PSC in serial mode | ||
160 | i2s@<addr> i2s *-psc-i2s PSC in i2s mode | ||
161 | ac97@<addr> ac97 *-psc-ac97 PSC in ac97 mode | ||
162 | spi@<addr> spi *-psc-spi PSC in spi mode | ||
163 | irda@<addr> irda *-psc-irda PSC in IrDA mode | ||
164 | spi@<addr> spi *-spi MPC52xx spi device | ||
165 | ethernet@<addr> network *-fec MPC52xx ethernet device | ||
166 | ata@<addr> ata *-ata IDE ATA interface | ||
167 | i2c@<addr> i2c *-i2c I2C controller | ||
168 | usb@<addr> usb-ohci-be *-ohci,ohci-be USB controller | ||
169 | xlb@<addr> xlb *-xlb XLB arbritrator | ||
170 | |||
171 | IV - Extra Notes | ||
172 | ================ | ||
173 | |||
174 | 1. Interrupt mapping | ||
175 | -------------------- | ||
176 | The mpc52xx pic driver splits hardware IRQ numbers into two levels. The | ||
177 | split reflects the layout of the PIC hardware itself, which groups | ||
178 | interrupts into one of three groups; CRIT, MAIN or PERP. Also, the | ||
179 | Bestcomm dma engine has it's own set of interrupt sources which are | ||
180 | cascaded off of peripheral interrupt 0, which the driver interprets as a | ||
181 | fourth group, SDMA. | ||
182 | |||
183 | The interrupts property for device nodes using the mpc52xx pic consists | ||
184 | of three cells; <L1 L2 level> | ||
185 | |||
186 | L1 := [CRIT=0, MAIN=1, PERP=2, SDMA=3] | ||
187 | L2 := interrupt number; directly mapped from the value in the | ||
188 | "ICTL PerStat, MainStat, CritStat Encoded Register" | ||
189 | level := [LEVEL_HIGH=0, EDGE_RISING=1, EDGE_FALLING=2, LEVEL_LOW=3] | ||
diff --git a/Documentation/robust-futex-ABI.txt b/Documentation/robust-futex-ABI.txt index 8529a17ffaa1..535f69fab45f 100644 --- a/Documentation/robust-futex-ABI.txt +++ b/Documentation/robust-futex-ABI.txt | |||
@@ -170,7 +170,7 @@ any point: | |||
170 | 1) the 'head' pointer or an subsequent linked list pointer | 170 | 1) the 'head' pointer or an subsequent linked list pointer |
171 | is not a valid address of a user space word | 171 | is not a valid address of a user space word |
172 | 2) the calculated location of the 'lock word' (address plus | 172 | 2) the calculated location of the 'lock word' (address plus |
173 | 'offset') is not the valud address of a 32 bit user space | 173 | 'offset') is not the valid address of a 32 bit user space |
174 | word | 174 | word |
175 | 3) if the list contains more than 1 million (subject to | 175 | 3) if the list contains more than 1 million (subject to |
176 | future kernel configuration changes) elements. | 176 | future kernel configuration changes) elements. |
diff --git a/Documentation/robust-futexes.txt b/Documentation/robust-futexes.txt index 76e8064b8c3a..0a9446a53bd1 100644 --- a/Documentation/robust-futexes.txt +++ b/Documentation/robust-futexes.txt | |||
@@ -181,7 +181,7 @@ for new threads, without the need of another syscall.] | |||
181 | So there is virtually zero overhead for tasks not using robust futexes, | 181 | So there is virtually zero overhead for tasks not using robust futexes, |
182 | and even for robust futex users, there is only one extra syscall per | 182 | and even for robust futex users, there is only one extra syscall per |
183 | thread lifetime, and the cleanup operation, if it happens, is fast and | 183 | thread lifetime, and the cleanup operation, if it happens, is fast and |
184 | straightforward. The kernel doesnt have any internal distinction between | 184 | straightforward. The kernel doesn't have any internal distinction between |
185 | robust and normal futexes. | 185 | robust and normal futexes. |
186 | 186 | ||
187 | If a futex is found to be held at exit time, the kernel sets the | 187 | If a futex is found to be held at exit time, the kernel sets the |
diff --git a/Documentation/rtc.txt b/Documentation/rtc.txt index 2a58f985795a..7cf1ec5bcdd3 100644 --- a/Documentation/rtc.txt +++ b/Documentation/rtc.txt | |||
@@ -1,12 +1,49 @@ | |||
1 | 1 | ||
2 | Real Time Clock Driver for Linux | 2 | Real Time Clock (RTC) Drivers for Linux |
3 | ================================ | 3 | ======================================= |
4 | |||
5 | When Linux developers talk about a "Real Time Clock", they usually mean | ||
6 | something that tracks wall clock time and is battery backed so that it | ||
7 | works even with system power off. Such clocks will normally not track | ||
8 | the local time zone or daylight savings time -- unless they dual boot | ||
9 | with MS-Windows -- but will instead be set to Coordinated Universal Time | ||
10 | (UTC, formerly "Greenwich Mean Time"). | ||
11 | |||
12 | The newest non-PC hardware tends to just count seconds, like the time(2) | ||
13 | system call reports, but RTCs also very commonly represent time using | ||
14 | the Gregorian calendar and 24 hour time, as reported by gmtime(3). | ||
15 | |||
16 | Linux has two largely-compatible userspace RTC API families you may | ||
17 | need to know about: | ||
18 | |||
19 | * /dev/rtc ... is the RTC provided by PC compatible systems, | ||
20 | so it's not very portable to non-x86 systems. | ||
21 | |||
22 | * /dev/rtc0, /dev/rtc1 ... are part of a framework that's | ||
23 | supported by a wide variety of RTC chips on all systems. | ||
24 | |||
25 | Programmers need to understand that the PC/AT functionality is not | ||
26 | always available, and some systems can do much more. That is, the | ||
27 | RTCs use the same API to make requests in both RTC frameworks (using | ||
28 | different filenames of course), but the hardware may not offer the | ||
29 | same functionality. For example, not every RTC is hooked up to an | ||
30 | IRQ, so they can't all issue alarms; and where standard PC RTCs can | ||
31 | only issue an alarm up to 24 hours in the future, other hardware may | ||
32 | be able to schedule one any time in the upcoming century. | ||
33 | |||
34 | |||
35 | Old PC/AT-Compatible driver: /dev/rtc | ||
36 | -------------------------------------- | ||
4 | 37 | ||
5 | All PCs (even Alpha machines) have a Real Time Clock built into them. | 38 | All PCs (even Alpha machines) have a Real Time Clock built into them. |
6 | Usually they are built into the chipset of the computer, but some may | 39 | Usually they are built into the chipset of the computer, but some may |
7 | actually have a Motorola MC146818 (or clone) on the board. This is the | 40 | actually have a Motorola MC146818 (or clone) on the board. This is the |
8 | clock that keeps the date and time while your computer is turned off. | 41 | clock that keeps the date and time while your computer is turned off. |
9 | 42 | ||
43 | ACPI has standardized that MC146818 functionality, and extended it in | ||
44 | a few ways (enabling longer alarm periods, and wake-from-hibernate). | ||
45 | That functionality is NOT exposed in the old driver. | ||
46 | |||
10 | However it can also be used to generate signals from a slow 2Hz to a | 47 | However it can also be used to generate signals from a slow 2Hz to a |
11 | relatively fast 8192Hz, in increments of powers of two. These signals | 48 | relatively fast 8192Hz, in increments of powers of two. These signals |
12 | are reported by interrupt number 8. (Oh! So *that* is what IRQ 8 is | 49 | are reported by interrupt number 8. (Oh! So *that* is what IRQ 8 is |
@@ -63,223 +100,331 @@ Rather than write 50 pages describing the ioctl() and so on, it is | |||
63 | perhaps more useful to include a small test program that demonstrates | 100 | perhaps more useful to include a small test program that demonstrates |
64 | how to use them, and demonstrates the features of the driver. This is | 101 | how to use them, and demonstrates the features of the driver. This is |
65 | probably a lot more useful to people interested in writing applications | 102 | probably a lot more useful to people interested in writing applications |
66 | that will be using this driver. | 103 | that will be using this driver. See the code at the end of this document. |
104 | |||
105 | (The original /dev/rtc driver was written by Paul Gortmaker.) | ||
106 | |||
107 | |||
108 | New portable "RTC Class" drivers: /dev/rtcN | ||
109 | -------------------------------------------- | ||
110 | |||
111 | Because Linux supports many non-ACPI and non-PC platforms, some of which | ||
112 | have more than one RTC style clock, it needed a more portable solution | ||
113 | than expecting a single battery-backed MC146818 clone on every system. | ||
114 | Accordingly, a new "RTC Class" framework has been defined. It offers | ||
115 | three different userspace interfaces: | ||
116 | |||
117 | * /dev/rtcN ... much the same as the older /dev/rtc interface | ||
118 | |||
119 | * /sys/class/rtc/rtcN ... sysfs attributes support readonly | ||
120 | access to some RTC attributes. | ||
121 | |||
122 | * /proc/driver/rtc ... the first RTC (rtc0) may expose itself | ||
123 | using a procfs interface. More information is (currently) shown | ||
124 | here than through sysfs. | ||
125 | |||
126 | The RTC Class framework supports a wide variety of RTCs, ranging from those | ||
127 | integrated into embeddable system-on-chip (SOC) processors to discrete chips | ||
128 | using I2C, SPI, or some other bus to communicate with the host CPU. There's | ||
129 | even support for PC-style RTCs ... including the features exposed on newer PCs | ||
130 | through ACPI. | ||
131 | |||
132 | The new framework also removes the "one RTC per system" restriction. For | ||
133 | example, maybe the low-power battery-backed RTC is a discrete I2C chip, but | ||
134 | a high functionality RTC is integrated into the SOC. That system might read | ||
135 | the system clock from the discrete RTC, but use the integrated one for all | ||
136 | other tasks, because of its greater functionality. | ||
137 | |||
138 | The ioctl() calls supported by /dev/rtc are also supported by the RTC class | ||
139 | framework. However, because the chips and systems are not standardized, | ||
140 | some PC/AT functionality might not be provided. And in the same way, some | ||
141 | newer features -- including those enabled by ACPI -- are exposed by the | ||
142 | RTC class framework, but can't be supported by the older driver. | ||
143 | |||
144 | * RTC_RD_TIME, RTC_SET_TIME ... every RTC supports at least reading | ||
145 | time, returning the result as a Gregorian calendar date and 24 hour | ||
146 | wall clock time. To be most useful, this time may also be updated. | ||
147 | |||
148 | * RTC_AIE_ON, RTC_AIE_OFF, RTC_ALM_SET, RTC_ALM_READ ... when the RTC | ||
149 | is connected to an IRQ line, it can often issue an alarm IRQ up to | ||
150 | 24 hours in the future. | ||
151 | |||
152 | * RTC_WKALM_SET, RTC_WKALM_READ ... RTCs that can issue alarms beyond | ||
153 | the next 24 hours use a slightly more powerful API, which supports | ||
154 | setting the longer alarm time and enabling its IRQ using a single | ||
155 | request (using the same model as EFI firmware). | ||
156 | |||
157 | * RTC_UIE_ON, RTC_UIE_OFF ... if the RTC offers IRQs, it probably | ||
158 | also offers update IRQs whenever the "seconds" counter changes. | ||
159 | If needed, the RTC framework can emulate this mechanism. | ||
160 | |||
161 | * RTC_PIE_ON, RTC_PIE_OFF, RTC_IRQP_SET, RTC_IRQP_READ ... another | ||
162 | feature often accessible with an IRQ line is a periodic IRQ, issued | ||
163 | at settable frequencies (usually 2^N Hz). | ||
164 | |||
165 | In many cases, the RTC alarm can be a system wake event, used to force | ||
166 | Linux out of a low power sleep state (or hibernation) back to a fully | ||
167 | operational state. For example, a system could enter a deep power saving | ||
168 | state until it's time to execute some scheduled tasks. | ||
67 | 169 | ||
68 | Paul Gortmaker | ||
69 | 170 | ||
70 | -------------------- 8< ---------------- 8< ----------------------------- | 171 | -------------------- 8< ---------------- 8< ----------------------------- |
71 | 172 | ||
72 | /* | 173 | /* |
73 | * Real Time Clock Driver Test/Example Program | 174 | * Real Time Clock Driver Test/Example Program |
74 | * | 175 | * |
75 | * Compile with: | 176 | * Compile with: |
76 | * gcc -s -Wall -Wstrict-prototypes rtctest.c -o rtctest | 177 | * gcc -s -Wall -Wstrict-prototypes rtctest.c -o rtctest |
77 | * | 178 | * |
78 | * Copyright (C) 1996, Paul Gortmaker. | 179 | * Copyright (C) 1996, Paul Gortmaker. |
79 | * | 180 | * |
80 | * Released under the GNU General Public License, version 2, | 181 | * Released under the GNU General Public License, version 2, |
81 | * included herein by reference. | 182 | * included herein by reference. |
82 | * | 183 | * |
83 | */ | 184 | */ |
84 | 185 | ||
85 | #include <stdio.h> | 186 | #include <stdio.h> |
86 | #include <stdlib.h> | ||
87 | #include <linux/rtc.h> | 187 | #include <linux/rtc.h> |
88 | #include <sys/ioctl.h> | 188 | #include <sys/ioctl.h> |
89 | #include <sys/time.h> | 189 | #include <sys/time.h> |
90 | #include <sys/types.h> | 190 | #include <sys/types.h> |
91 | #include <fcntl.h> | 191 | #include <fcntl.h> |
92 | #include <unistd.h> | 192 | #include <unistd.h> |
193 | #include <stdlib.h> | ||
93 | #include <errno.h> | 194 | #include <errno.h> |
94 | 195 | ||
95 | int main(void) { | ||
96 | |||
97 | int i, fd, retval, irqcount = 0; | ||
98 | unsigned long tmp, data; | ||
99 | struct rtc_time rtc_tm; | ||
100 | 196 | ||
101 | fd = open ("/dev/rtc", O_RDONLY); | 197 | /* |
198 | * This expects the new RTC class driver framework, working with | ||
199 | * clocks that will often not be clones of what the PC-AT had. | ||
200 | * Use the command line to specify another RTC if you need one. | ||
201 | */ | ||
202 | static const char default_rtc[] = "/dev/rtc0"; | ||
203 | |||
204 | |||
205 | int main(int argc, char **argv) | ||
206 | { | ||
207 | int i, fd, retval, irqcount = 0; | ||
208 | unsigned long tmp, data; | ||
209 | struct rtc_time rtc_tm; | ||
210 | const char *rtc = default_rtc; | ||
211 | |||
212 | switch (argc) { | ||
213 | case 2: | ||
214 | rtc = argv[1]; | ||
215 | /* FALLTHROUGH */ | ||
216 | case 1: | ||
217 | break; | ||
218 | default: | ||
219 | fprintf(stderr, "usage: rtctest [rtcdev]\n"); | ||
220 | return 1; | ||
221 | } | ||
102 | 222 | ||
103 | if (fd == -1) { | 223 | fd = open(rtc, O_RDONLY); |
104 | perror("/dev/rtc"); | ||
105 | exit(errno); | ||
106 | } | ||
107 | 224 | ||
108 | fprintf(stderr, "\n\t\t\tRTC Driver Test Example.\n\n"); | 225 | if (fd == -1) { |
226 | perror(rtc); | ||
227 | exit(errno); | ||
228 | } | ||
109 | 229 | ||
110 | /* Turn on update interrupts (one per second) */ | 230 | fprintf(stderr, "\n\t\t\tRTC Driver Test Example.\n\n"); |
111 | retval = ioctl(fd, RTC_UIE_ON, 0); | ||
112 | if (retval == -1) { | ||
113 | perror("ioctl"); | ||
114 | exit(errno); | ||
115 | } | ||
116 | 231 | ||
117 | fprintf(stderr, "Counting 5 update (1/sec) interrupts from reading /dev/rtc:"); | 232 | /* Turn on update interrupts (one per second) */ |
118 | fflush(stderr); | 233 | retval = ioctl(fd, RTC_UIE_ON, 0); |
119 | for (i=1; i<6; i++) { | ||
120 | /* This read will block */ | ||
121 | retval = read(fd, &data, sizeof(unsigned long)); | ||
122 | if (retval == -1) { | 234 | if (retval == -1) { |
123 | perror("read"); | 235 | if (errno == ENOTTY) { |
236 | fprintf(stderr, | ||
237 | "\n...Update IRQs not supported.\n"); | ||
238 | goto test_READ; | ||
239 | } | ||
240 | perror("ioctl"); | ||
124 | exit(errno); | 241 | exit(errno); |
125 | } | 242 | } |
126 | fprintf(stderr, " %d",i); | 243 | |
244 | fprintf(stderr, "Counting 5 update (1/sec) interrupts from reading %s:", | ||
245 | rtc); | ||
127 | fflush(stderr); | 246 | fflush(stderr); |
128 | irqcount++; | 247 | for (i=1; i<6; i++) { |
129 | } | 248 | /* This read will block */ |
249 | retval = read(fd, &data, sizeof(unsigned long)); | ||
250 | if (retval == -1) { | ||
251 | perror("read"); | ||
252 | exit(errno); | ||
253 | } | ||
254 | fprintf(stderr, " %d",i); | ||
255 | fflush(stderr); | ||
256 | irqcount++; | ||
257 | } | ||
130 | 258 | ||
131 | fprintf(stderr, "\nAgain, from using select(2) on /dev/rtc:"); | 259 | fprintf(stderr, "\nAgain, from using select(2) on /dev/rtc:"); |
132 | fflush(stderr); | 260 | fflush(stderr); |
133 | for (i=1; i<6; i++) { | 261 | for (i=1; i<6; i++) { |
134 | struct timeval tv = {5, 0}; /* 5 second timeout on select */ | 262 | struct timeval tv = {5, 0}; /* 5 second timeout on select */ |
135 | fd_set readfds; | 263 | fd_set readfds; |
264 | |||
265 | FD_ZERO(&readfds); | ||
266 | FD_SET(fd, &readfds); | ||
267 | /* The select will wait until an RTC interrupt happens. */ | ||
268 | retval = select(fd+1, &readfds, NULL, NULL, &tv); | ||
269 | if (retval == -1) { | ||
270 | perror("select"); | ||
271 | exit(errno); | ||
272 | } | ||
273 | /* This read won't block unlike the select-less case above. */ | ||
274 | retval = read(fd, &data, sizeof(unsigned long)); | ||
275 | if (retval == -1) { | ||
276 | perror("read"); | ||
277 | exit(errno); | ||
278 | } | ||
279 | fprintf(stderr, " %d",i); | ||
280 | fflush(stderr); | ||
281 | irqcount++; | ||
282 | } | ||
136 | 283 | ||
137 | FD_ZERO(&readfds); | 284 | /* Turn off update interrupts */ |
138 | FD_SET(fd, &readfds); | 285 | retval = ioctl(fd, RTC_UIE_OFF, 0); |
139 | /* The select will wait until an RTC interrupt happens. */ | ||
140 | retval = select(fd+1, &readfds, NULL, NULL, &tv); | ||
141 | if (retval == -1) { | 286 | if (retval == -1) { |
142 | perror("select"); | 287 | perror("ioctl"); |
143 | exit(errno); | 288 | exit(errno); |
144 | } | 289 | } |
145 | /* This read won't block unlike the select-less case above. */ | 290 | |
146 | retval = read(fd, &data, sizeof(unsigned long)); | 291 | test_READ: |
292 | /* Read the RTC time/date */ | ||
293 | retval = ioctl(fd, RTC_RD_TIME, &rtc_tm); | ||
147 | if (retval == -1) { | 294 | if (retval == -1) { |
148 | perror("read"); | 295 | perror("ioctl"); |
149 | exit(errno); | 296 | exit(errno); |
150 | } | 297 | } |
151 | fprintf(stderr, " %d",i); | ||
152 | fflush(stderr); | ||
153 | irqcount++; | ||
154 | } | ||
155 | |||
156 | /* Turn off update interrupts */ | ||
157 | retval = ioctl(fd, RTC_UIE_OFF, 0); | ||
158 | if (retval == -1) { | ||
159 | perror("ioctl"); | ||
160 | exit(errno); | ||
161 | } | ||
162 | |||
163 | /* Read the RTC time/date */ | ||
164 | retval = ioctl(fd, RTC_RD_TIME, &rtc_tm); | ||
165 | if (retval == -1) { | ||
166 | perror("ioctl"); | ||
167 | exit(errno); | ||
168 | } | ||
169 | |||
170 | fprintf(stderr, "\n\nCurrent RTC date/time is %d-%d-%d, %02d:%02d:%02d.\n", | ||
171 | rtc_tm.tm_mday, rtc_tm.tm_mon + 1, rtc_tm.tm_year + 1900, | ||
172 | rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec); | ||
173 | |||
174 | /* Set the alarm to 5 sec in the future, and check for rollover */ | ||
175 | rtc_tm.tm_sec += 5; | ||
176 | if (rtc_tm.tm_sec >= 60) { | ||
177 | rtc_tm.tm_sec %= 60; | ||
178 | rtc_tm.tm_min++; | ||
179 | } | ||
180 | if (rtc_tm.tm_min == 60) { | ||
181 | rtc_tm.tm_min = 0; | ||
182 | rtc_tm.tm_hour++; | ||
183 | } | ||
184 | if (rtc_tm.tm_hour == 24) | ||
185 | rtc_tm.tm_hour = 0; | ||
186 | |||
187 | retval = ioctl(fd, RTC_ALM_SET, &rtc_tm); | ||
188 | if (retval == -1) { | ||
189 | perror("ioctl"); | ||
190 | exit(errno); | ||
191 | } | ||
192 | |||
193 | /* Read the current alarm settings */ | ||
194 | retval = ioctl(fd, RTC_ALM_READ, &rtc_tm); | ||
195 | if (retval == -1) { | ||
196 | perror("ioctl"); | ||
197 | exit(errno); | ||
198 | } | ||
199 | |||
200 | fprintf(stderr, "Alarm time now set to %02d:%02d:%02d.\n", | ||
201 | rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec); | ||
202 | 298 | ||
203 | /* Enable alarm interrupts */ | 299 | fprintf(stderr, "\n\nCurrent RTC date/time is %d-%d-%d, %02d:%02d:%02d.\n", |
204 | retval = ioctl(fd, RTC_AIE_ON, 0); | 300 | rtc_tm.tm_mday, rtc_tm.tm_mon + 1, rtc_tm.tm_year + 1900, |
205 | if (retval == -1) { | 301 | rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec); |
206 | perror("ioctl"); | ||
207 | exit(errno); | ||
208 | } | ||
209 | 302 | ||
210 | fprintf(stderr, "Waiting 5 seconds for alarm..."); | 303 | /* Set the alarm to 5 sec in the future, and check for rollover */ |
211 | fflush(stderr); | 304 | rtc_tm.tm_sec += 5; |
212 | /* This blocks until the alarm ring causes an interrupt */ | 305 | if (rtc_tm.tm_sec >= 60) { |
213 | retval = read(fd, &data, sizeof(unsigned long)); | 306 | rtc_tm.tm_sec %= 60; |
214 | if (retval == -1) { | 307 | rtc_tm.tm_min++; |
215 | perror("read"); | 308 | } |
216 | exit(errno); | 309 | if (rtc_tm.tm_min == 60) { |
217 | } | 310 | rtc_tm.tm_min = 0; |
218 | irqcount++; | 311 | rtc_tm.tm_hour++; |
219 | fprintf(stderr, " okay. Alarm rang.\n"); | 312 | } |
220 | 313 | if (rtc_tm.tm_hour == 24) | |
221 | /* Disable alarm interrupts */ | 314 | rtc_tm.tm_hour = 0; |
222 | retval = ioctl(fd, RTC_AIE_OFF, 0); | ||
223 | if (retval == -1) { | ||
224 | perror("ioctl"); | ||
225 | exit(errno); | ||
226 | } | ||
227 | 315 | ||
228 | /* Read periodic IRQ rate */ | 316 | retval = ioctl(fd, RTC_ALM_SET, &rtc_tm); |
229 | retval = ioctl(fd, RTC_IRQP_READ, &tmp); | 317 | if (retval == -1) { |
230 | if (retval == -1) { | 318 | if (errno == ENOTTY) { |
231 | perror("ioctl"); | 319 | fprintf(stderr, |
232 | exit(errno); | 320 | "\n...Alarm IRQs not supported.\n"); |
233 | } | 321 | goto test_PIE; |
234 | fprintf(stderr, "\nPeriodic IRQ rate was %ldHz.\n", tmp); | 322 | } |
323 | perror("ioctl"); | ||
324 | exit(errno); | ||
325 | } | ||
235 | 326 | ||
236 | fprintf(stderr, "Counting 20 interrupts at:"); | 327 | /* Read the current alarm settings */ |
237 | fflush(stderr); | 328 | retval = ioctl(fd, RTC_ALM_READ, &rtc_tm); |
329 | if (retval == -1) { | ||
330 | perror("ioctl"); | ||
331 | exit(errno); | ||
332 | } | ||
238 | 333 | ||
239 | /* The frequencies 128Hz, 256Hz, ... 8192Hz are only allowed for root. */ | 334 | fprintf(stderr, "Alarm time now set to %02d:%02d:%02d.\n", |
240 | for (tmp=2; tmp<=64; tmp*=2) { | 335 | rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec); |
241 | 336 | ||
242 | retval = ioctl(fd, RTC_IRQP_SET, tmp); | 337 | /* Enable alarm interrupts */ |
338 | retval = ioctl(fd, RTC_AIE_ON, 0); | ||
243 | if (retval == -1) { | 339 | if (retval == -1) { |
244 | perror("ioctl"); | 340 | perror("ioctl"); |
245 | exit(errno); | 341 | exit(errno); |
246 | } | 342 | } |
247 | 343 | ||
248 | fprintf(stderr, "\n%ldHz:\t", tmp); | 344 | fprintf(stderr, "Waiting 5 seconds for alarm..."); |
249 | fflush(stderr); | 345 | fflush(stderr); |
346 | /* This blocks until the alarm ring causes an interrupt */ | ||
347 | retval = read(fd, &data, sizeof(unsigned long)); | ||
348 | if (retval == -1) { | ||
349 | perror("read"); | ||
350 | exit(errno); | ||
351 | } | ||
352 | irqcount++; | ||
353 | fprintf(stderr, " okay. Alarm rang.\n"); | ||
250 | 354 | ||
251 | /* Enable periodic interrupts */ | 355 | /* Disable alarm interrupts */ |
252 | retval = ioctl(fd, RTC_PIE_ON, 0); | 356 | retval = ioctl(fd, RTC_AIE_OFF, 0); |
253 | if (retval == -1) { | 357 | if (retval == -1) { |
254 | perror("ioctl"); | 358 | perror("ioctl"); |
255 | exit(errno); | 359 | exit(errno); |
256 | } | 360 | } |
257 | 361 | ||
258 | for (i=1; i<21; i++) { | 362 | test_PIE: |
259 | /* This blocks */ | 363 | /* Read periodic IRQ rate */ |
260 | retval = read(fd, &data, sizeof(unsigned long)); | 364 | retval = ioctl(fd, RTC_IRQP_READ, &tmp); |
365 | if (retval == -1) { | ||
366 | /* not all RTCs support periodic IRQs */ | ||
367 | if (errno == ENOTTY) { | ||
368 | fprintf(stderr, "\nNo periodic IRQ support\n"); | ||
369 | return 0; | ||
370 | } | ||
371 | perror("ioctl"); | ||
372 | exit(errno); | ||
373 | } | ||
374 | fprintf(stderr, "\nPeriodic IRQ rate is %ldHz.\n", tmp); | ||
375 | |||
376 | fprintf(stderr, "Counting 20 interrupts at:"); | ||
377 | fflush(stderr); | ||
378 | |||
379 | /* The frequencies 128Hz, 256Hz, ... 8192Hz are only allowed for root. */ | ||
380 | for (tmp=2; tmp<=64; tmp*=2) { | ||
381 | |||
382 | retval = ioctl(fd, RTC_IRQP_SET, tmp); | ||
261 | if (retval == -1) { | 383 | if (retval == -1) { |
262 | perror("read"); | 384 | /* not all RTCs can change their periodic IRQ rate */ |
263 | exit(errno); | 385 | if (errno == ENOTTY) { |
386 | fprintf(stderr, | ||
387 | "\n...Periodic IRQ rate is fixed\n"); | ||
388 | goto done; | ||
389 | } | ||
390 | perror("ioctl"); | ||
391 | exit(errno); | ||
264 | } | 392 | } |
265 | fprintf(stderr, " %d",i); | 393 | |
394 | fprintf(stderr, "\n%ldHz:\t", tmp); | ||
266 | fflush(stderr); | 395 | fflush(stderr); |
267 | irqcount++; | ||
268 | } | ||
269 | 396 | ||
270 | /* Disable periodic interrupts */ | 397 | /* Enable periodic interrupts */ |
271 | retval = ioctl(fd, RTC_PIE_OFF, 0); | 398 | retval = ioctl(fd, RTC_PIE_ON, 0); |
272 | if (retval == -1) { | 399 | if (retval == -1) { |
273 | perror("ioctl"); | 400 | perror("ioctl"); |
274 | exit(errno); | 401 | exit(errno); |
402 | } | ||
403 | |||
404 | for (i=1; i<21; i++) { | ||
405 | /* This blocks */ | ||
406 | retval = read(fd, &data, sizeof(unsigned long)); | ||
407 | if (retval == -1) { | ||
408 | perror("read"); | ||
409 | exit(errno); | ||
410 | } | ||
411 | fprintf(stderr, " %d",i); | ||
412 | fflush(stderr); | ||
413 | irqcount++; | ||
414 | } | ||
415 | |||
416 | /* Disable periodic interrupts */ | ||
417 | retval = ioctl(fd, RTC_PIE_OFF, 0); | ||
418 | if (retval == -1) { | ||
419 | perror("ioctl"); | ||
420 | exit(errno); | ||
421 | } | ||
275 | } | 422 | } |
276 | } | ||
277 | 423 | ||
278 | fprintf(stderr, "\n\n\t\t\t *** Test complete ***\n"); | 424 | done: |
279 | fprintf(stderr, "\nTyping \"cat /proc/interrupts\" will show %d more events on IRQ 8.\n\n", | 425 | fprintf(stderr, "\n\n\t\t\t *** Test complete ***\n"); |
280 | irqcount); | ||
281 | 426 | ||
282 | close(fd); | 427 | close(fd); |
283 | return 0; | ||
284 | 428 | ||
285 | } /* end main */ | 429 | return 0; |
430 | } | ||
diff --git a/Documentation/s390/CommonIO b/Documentation/s390/CommonIO index d684a6ac69a8..22f82f21bc60 100644 --- a/Documentation/s390/CommonIO +++ b/Documentation/s390/CommonIO | |||
@@ -74,7 +74,7 @@ Command line parameters | |||
74 | 74 | ||
75 | Note: While already known devices can be added to the list of devices to be | 75 | Note: While already known devices can be added to the list of devices to be |
76 | ignored, there will be no effect on then. However, if such a device | 76 | ignored, there will be no effect on then. However, if such a device |
77 | disappears and then reappeares, it will then be ignored. | 77 | disappears and then reappears, it will then be ignored. |
78 | 78 | ||
79 | For example, | 79 | For example, |
80 | "echo add 0.0.a000-0.0.accc, 0.0.af00-0.0.afff > /proc/cio_ignore" | 80 | "echo add 0.0.a000-0.0.accc, 0.0.af00-0.0.afff > /proc/cio_ignore" |
@@ -82,7 +82,7 @@ Command line parameters | |||
82 | devices. | 82 | devices. |
83 | 83 | ||
84 | The devices can be specified either by bus id (0.0.abcd) or, for 2.4 backward | 84 | The devices can be specified either by bus id (0.0.abcd) or, for 2.4 backward |
85 | compatibilty, by the device number in hexadecimal (0xabcd or abcd). | 85 | compatibility, by the device number in hexadecimal (0xabcd or abcd). |
86 | 86 | ||
87 | 87 | ||
88 | * /proc/s390dbf/cio_*/ (S/390 debug feature) | 88 | * /proc/s390dbf/cio_*/ (S/390 debug feature) |
diff --git a/Documentation/s390/Debugging390.txt b/Documentation/s390/Debugging390.txt index 4dd25ee549e9..3f9ddbc23b27 100644 --- a/Documentation/s390/Debugging390.txt +++ b/Documentation/s390/Debugging390.txt | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | Overview of Document: | 8 | Overview of Document: |
9 | ===================== | 9 | ===================== |
10 | This document is intended to give an good overview of how to debug | 10 | This document is intended to give a good overview of how to debug |
11 | Linux for s/390 & z/Architecture. It isn't intended as a complete reference & not a | 11 | Linux for s/390 & z/Architecture. It isn't intended as a complete reference & not a |
12 | tutorial on the fundamentals of C & assembly. It doesn't go into | 12 | tutorial on the fundamentals of C & assembly. It doesn't go into |
13 | 390 IO in any detail. It is intended to complement the documents in the | 13 | 390 IO in any detail. It is intended to complement the documents in the |
@@ -300,7 +300,7 @@ On z/Architecture our page indexes are now 2k in size | |||
300 | but only mess with 2 segment indices each time we mess with | 300 | but only mess with 2 segment indices each time we mess with |
301 | a PMD. | 301 | a PMD. |
302 | 302 | ||
303 | 3) As z/Architecture supports upto a massive 5-level page table lookup we | 303 | 3) As z/Architecture supports up to a massive 5-level page table lookup we |
304 | can only use 3 currently on Linux ( as this is all the generic kernel | 304 | can only use 3 currently on Linux ( as this is all the generic kernel |
305 | currently supports ) however this may change in future | 305 | currently supports ) however this may change in future |
306 | this allows us to access ( according to my sums ) | 306 | this allows us to access ( according to my sums ) |
@@ -502,7 +502,7 @@ Notes: | |||
502 | ------ | 502 | ------ |
503 | 1) The only requirement is that registers which are used | 503 | 1) The only requirement is that registers which are used |
504 | by the callee are saved, e.g. the compiler is perfectly | 504 | by the callee are saved, e.g. the compiler is perfectly |
505 | capible of using r11 for purposes other than a frame a | 505 | capable of using r11 for purposes other than a frame a |
506 | frame pointer if a frame pointer is not needed. | 506 | frame pointer if a frame pointer is not needed. |
507 | 2) In functions with variable arguments e.g. printf the calling procedure | 507 | 2) In functions with variable arguments e.g. printf the calling procedure |
508 | is identical to one without variable arguments & the same number of | 508 | is identical to one without variable arguments & the same number of |
@@ -846,7 +846,7 @@ of time searching for debugging info. The following self explanatory line should | |||
846 | instead if the code isn't compiled -g, as it is much faster: | 846 | instead if the code isn't compiled -g, as it is much faster: |
847 | objdump --disassemble-all --syms vmlinux > vmlinux.lst | 847 | objdump --disassemble-all --syms vmlinux > vmlinux.lst |
848 | 848 | ||
849 | As hard drive space is valuble most of us use the following approach. | 849 | As hard drive space is valuable most of us use the following approach. |
850 | 1) Look at the emitted psw on the console to find the crash address in the kernel. | 850 | 1) Look at the emitted psw on the console to find the crash address in the kernel. |
851 | 2) Look at the file System.map ( in the linux directory ) produced when building | 851 | 2) Look at the file System.map ( in the linux directory ) produced when building |
852 | the kernel to find the closest address less than the current PSW to find the | 852 | the kernel to find the closest address less than the current PSW to find the |
@@ -902,7 +902,7 @@ A. It is a tool for intercepting calls to the kernel & logging them | |||
902 | to a file & on the screen. | 902 | to a file & on the screen. |
903 | 903 | ||
904 | Q. What use is it ? | 904 | Q. What use is it ? |
905 | A. You can used it to find out what files a particular program opens. | 905 | A. You can use it to find out what files a particular program opens. |
906 | 906 | ||
907 | 907 | ||
908 | 908 | ||
@@ -911,7 +911,7 @@ Example 1 | |||
911 | If you wanted to know does ping work but didn't have the source | 911 | If you wanted to know does ping work but didn't have the source |
912 | strace ping -c 1 127.0.0.1 | 912 | strace ping -c 1 127.0.0.1 |
913 | & then look at the man pages for each of the syscalls below, | 913 | & then look at the man pages for each of the syscalls below, |
914 | ( In fact this is sometimes easier than looking at some spagetti | 914 | ( In fact this is sometimes easier than looking at some spaghetti |
915 | source which conditionally compiles for several architectures ). | 915 | source which conditionally compiles for several architectures ). |
916 | Not everything that it throws out needs to make sense immediately. | 916 | Not everything that it throws out needs to make sense immediately. |
917 | 917 | ||
@@ -1037,7 +1037,7 @@ e.g. man strace, man alarm, man socket. | |||
1037 | 1037 | ||
1038 | Performance Debugging | 1038 | Performance Debugging |
1039 | ===================== | 1039 | ===================== |
1040 | gcc is capible of compiling in profiling code just add the -p option | 1040 | gcc is capable of compiling in profiling code just add the -p option |
1041 | to the CFLAGS, this obviously affects program size & performance. | 1041 | to the CFLAGS, this obviously affects program size & performance. |
1042 | This can be used by the gprof gnu profiling tool or the | 1042 | This can be used by the gprof gnu profiling tool or the |
1043 | gcov the gnu code coverage tool ( code coverage is a means of testing | 1043 | gcov the gnu code coverage tool ( code coverage is a means of testing |
@@ -1419,7 +1419,7 @@ On a SMP guest issue a command to all CPUs try prefixing the command with cpu al | |||
1419 | To issue a command to a particular cpu try cpu <cpu number> e.g. | 1419 | To issue a command to a particular cpu try cpu <cpu number> e.g. |
1420 | CPU 01 TR I R 2000.3000 | 1420 | CPU 01 TR I R 2000.3000 |
1421 | If you are running on a guest with several cpus & you have a IO related problem | 1421 | If you are running on a guest with several cpus & you have a IO related problem |
1422 | & cannot follow the flow of code but you know it isnt smp related. | 1422 | & cannot follow the flow of code but you know it isn't smp related. |
1423 | from the bash prompt issue | 1423 | from the bash prompt issue |
1424 | shutdown -h now or halt. | 1424 | shutdown -h now or halt. |
1425 | do a Q CPUS to find out how many cpus you have | 1425 | do a Q CPUS to find out how many cpus you have |
@@ -1602,7 +1602,7 @@ V000FFFD0 00010400 80010802 8001085A 000FFFA0 | |||
1602 | our 3rd return address is 8001085A | 1602 | our 3rd return address is 8001085A |
1603 | 1603 | ||
1604 | as the 04B52002 looks suspiciously like rubbish it is fair to assume that the kernel entry routines | 1604 | as the 04B52002 looks suspiciously like rubbish it is fair to assume that the kernel entry routines |
1605 | for the sake of optimisation dont set up a backchain. | 1605 | for the sake of optimisation don't set up a backchain. |
1606 | 1606 | ||
1607 | now look at System.map to see if the addresses make any sense. | 1607 | now look at System.map to see if the addresses make any sense. |
1608 | 1608 | ||
@@ -1638,11 +1638,11 @@ more useful information. | |||
1638 | 1638 | ||
1639 | Unlike other bus architectures modern 390 systems do their IO using mostly | 1639 | Unlike other bus architectures modern 390 systems do their IO using mostly |
1640 | fibre optics & devices such as tapes & disks can be shared between several mainframes, | 1640 | fibre optics & devices such as tapes & disks can be shared between several mainframes, |
1641 | also S390 can support upto 65536 devices while a high end PC based system might be choking | 1641 | also S390 can support up to 65536 devices while a high end PC based system might be choking |
1642 | with around 64. Here is some of the common IO terminology | 1642 | with around 64. Here is some of the common IO terminology |
1643 | 1643 | ||
1644 | Subchannel: | 1644 | Subchannel: |
1645 | This is the logical number most IO commands use to talk to an IO device there can be upto | 1645 | This is the logical number most IO commands use to talk to an IO device there can be up to |
1646 | 0x10000 (65536) of these in a configuration typically there is a few hundred. Under VM | 1646 | 0x10000 (65536) of these in a configuration typically there is a few hundred. Under VM |
1647 | for simplicity they are allocated contiguously, however on the native hardware they are not | 1647 | for simplicity they are allocated contiguously, however on the native hardware they are not |
1648 | they typically stay consistent between boots provided no new hardware is inserted or removed. | 1648 | they typically stay consistent between boots provided no new hardware is inserted or removed. |
@@ -1651,7 +1651,7 @@ HALT SUBCHANNEL,MODIFY SUBCHANNEL,RESUME SUBCHANNEL,START SUBCHANNEL,STORE SUBCH | |||
1651 | TEST SUBCHANNEL ) we use this as the ID of the device we wish to talk to, the most | 1651 | TEST SUBCHANNEL ) we use this as the ID of the device we wish to talk to, the most |
1652 | important of these instructions are START SUBCHANNEL ( to start IO ), TEST SUBCHANNEL ( to check | 1652 | important of these instructions are START SUBCHANNEL ( to start IO ), TEST SUBCHANNEL ( to check |
1653 | whether the IO completed successfully ), & HALT SUBCHANNEL ( to kill IO ), a subchannel | 1653 | whether the IO completed successfully ), & HALT SUBCHANNEL ( to kill IO ), a subchannel |
1654 | can have up to 8 channel paths to a device this offers redunancy if one is not available. | 1654 | can have up to 8 channel paths to a device this offers redundancy if one is not available. |
1655 | 1655 | ||
1656 | 1656 | ||
1657 | Device Number: | 1657 | Device Number: |
@@ -1659,7 +1659,7 @@ This number remains static & Is closely tied to the hardware, there are 65536 of | |||
1659 | also they are made up of a CHPID ( Channel Path ID, the most significant 8 bits ) | 1659 | also they are made up of a CHPID ( Channel Path ID, the most significant 8 bits ) |
1660 | & another lsb 8 bits. These remain static even if more devices are inserted or removed | 1660 | & another lsb 8 bits. These remain static even if more devices are inserted or removed |
1661 | from the hardware, there is a 1 to 1 mapping between Subchannels & Device Numbers provided | 1661 | from the hardware, there is a 1 to 1 mapping between Subchannels & Device Numbers provided |
1662 | devices arent inserted or removed. | 1662 | devices aren't inserted or removed. |
1663 | 1663 | ||
1664 | Channel Control Words: | 1664 | Channel Control Words: |
1665 | CCWS are linked lists of instructions initially pointed to by an operation request block (ORB), | 1665 | CCWS are linked lists of instructions initially pointed to by an operation request block (ORB), |
@@ -1674,7 +1674,7 @@ concurrently, you check how the IO went on by issuing a TEST SUBCHANNEL at each | |||
1674 | from which you receive an Interruption response block (IRB). If you get channel & device end | 1674 | from which you receive an Interruption response block (IRB). If you get channel & device end |
1675 | status in the IRB without channel checks etc. your IO probably went okay. If you didn't you | 1675 | status in the IRB without channel checks etc. your IO probably went okay. If you didn't you |
1676 | probably need a doctor to examine the IRB & extended status word etc. | 1676 | probably need a doctor to examine the IRB & extended status word etc. |
1677 | If an error occurs, more sophistocated control units have a facitity known as | 1677 | If an error occurs, more sophisticated control units have a facility known as |
1678 | concurrent sense this means that if an error occurs Extended sense information will | 1678 | concurrent sense this means that if an error occurs Extended sense information will |
1679 | be presented in the Extended status word in the IRB if not you have to issue a | 1679 | be presented in the Extended status word in the IRB if not you have to issue a |
1680 | subsequent SENSE CCW command after the test subchannel. | 1680 | subsequent SENSE CCW command after the test subchannel. |
@@ -1749,7 +1749,7 @@ Interface (OEMI). | |||
1749 | This byte wide Parallel channel path/bus has parity & data on the "Bus" cable | 1749 | This byte wide Parallel channel path/bus has parity & data on the "Bus" cable |
1750 | & control lines on the "Tag" cable. These can operate in byte multiplex mode for | 1750 | & control lines on the "Tag" cable. These can operate in byte multiplex mode for |
1751 | sharing between several slow devices or burst mode & monopolize the channel for the | 1751 | sharing between several slow devices or burst mode & monopolize the channel for the |
1752 | whole burst. Upto 256 devices can be addressed on one of these cables. These cables are | 1752 | whole burst. Up to 256 devices can be addressed on one of these cables. These cables are |
1753 | about one inch in diameter. The maximum unextended length supported by these cables is | 1753 | about one inch in diameter. The maximum unextended length supported by these cables is |
1754 | 125 Meters but this can be extended up to 2km with a fibre optic channel extended | 1754 | 125 Meters but this can be extended up to 2km with a fibre optic channel extended |
1755 | such as a 3044. The maximum burst speed supported is 4.5 megabytes per second however | 1755 | such as a 3044. The maximum burst speed supported is 4.5 megabytes per second however |
@@ -1759,7 +1759,7 @@ One of these paths can be daisy chained to up to 8 control units. | |||
1759 | 1759 | ||
1760 | ESCON if fibre optic it is also called FICON | 1760 | ESCON if fibre optic it is also called FICON |
1761 | Was introduced by IBM in 1990. Has 2 fibre optic cables & uses either leds or lasers | 1761 | Was introduced by IBM in 1990. Has 2 fibre optic cables & uses either leds or lasers |
1762 | for communication at a signaling rate of upto 200 megabits/sec. As 10bits are transferred | 1762 | for communication at a signaling rate of up to 200 megabits/sec. As 10bits are transferred |
1763 | for every 8 bits info this drops to 160 megabits/sec & to 18.6 Megabytes/sec once | 1763 | for every 8 bits info this drops to 160 megabits/sec & to 18.6 Megabytes/sec once |
1764 | control info & CRC are added. ESCON only operates in burst mode. | 1764 | control info & CRC are added. ESCON only operates in burst mode. |
1765 | 1765 | ||
@@ -1767,7 +1767,7 @@ ESCONs typical max cable length is 3km for the led version & 20km for the laser | |||
1767 | known as XDF ( extended distance facility ). This can be further extended by using an | 1767 | known as XDF ( extended distance facility ). This can be further extended by using an |
1768 | ESCON director which triples the above mentioned ranges. Unlike Bus & Tag as ESCON is | 1768 | ESCON director which triples the above mentioned ranges. Unlike Bus & Tag as ESCON is |
1769 | serial it uses a packet switching architecture the standard Bus & Tag control protocol | 1769 | serial it uses a packet switching architecture the standard Bus & Tag control protocol |
1770 | is however present within the packets. Upto 256 devices can be attached to each control | 1770 | is however present within the packets. Up to 256 devices can be attached to each control |
1771 | unit that uses one of these interfaces. | 1771 | unit that uses one of these interfaces. |
1772 | 1772 | ||
1773 | Common 390 Devices include: | 1773 | Common 390 Devices include: |
@@ -2050,7 +2050,7 @@ list test.c:1,10 | |||
2050 | 2050 | ||
2051 | directory: | 2051 | directory: |
2052 | Adds directories to be searched for source if gdb cannot find the source. | 2052 | Adds directories to be searched for source if gdb cannot find the source. |
2053 | (note it is a bit sensititive about slashes) | 2053 | (note it is a bit sensitive about slashes) |
2054 | e.g. To add the root of the filesystem to the searchpath do | 2054 | e.g. To add the root of the filesystem to the searchpath do |
2055 | directory // | 2055 | directory // |
2056 | 2056 | ||
@@ -2152,7 +2152,7 @@ program as if it just crashed on your system, it is usually called core & create | |||
2152 | current working directory. | 2152 | current working directory. |
2153 | This is very useful in that a customer can mail a core dump to a technical support department | 2153 | This is very useful in that a customer can mail a core dump to a technical support department |
2154 | & the technical support department can reconstruct what happened. | 2154 | & the technical support department can reconstruct what happened. |
2155 | Provided the have an identical copy of this program with debugging symbols compiled in & | 2155 | Provided they have an identical copy of this program with debugging symbols compiled in & |
2156 | the source base of this build is available. | 2156 | the source base of this build is available. |
2157 | In short it is far more useful than something like a crash log could ever hope to be. | 2157 | In short it is far more useful than something like a crash log could ever hope to be. |
2158 | 2158 | ||
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt index 32a96cc39215..05a2b4f7e38f 100644 --- a/Documentation/s390/cds.txt +++ b/Documentation/s390/cds.txt | |||
@@ -98,7 +98,7 @@ The following chapters describe the I/O related interface routines the | |||
98 | Linux/390 common device support (CDS) provides to allow for device specific | 98 | Linux/390 common device support (CDS) provides to allow for device specific |
99 | driver implementations on the IBM ESA/390 hardware platform. Those interfaces | 99 | driver implementations on the IBM ESA/390 hardware platform. Those interfaces |
100 | intend to provide the functionality required by every device driver | 100 | intend to provide the functionality required by every device driver |
101 | implementaion to allow to drive a specific hardware device on the ESA/390 | 101 | implementation to allow to drive a specific hardware device on the ESA/390 |
102 | platform. Some of the interface routines are specific to Linux/390 and some | 102 | platform. Some of the interface routines are specific to Linux/390 and some |
103 | of them can be found on other Linux platforms implementations too. | 103 | of them can be found on other Linux platforms implementations too. |
104 | Miscellaneous function prototypes, data declarations, and macro definitions | 104 | Miscellaneous function prototypes, data declarations, and macro definitions |
@@ -114,7 +114,7 @@ the ESA/390 architecture has implemented a so called channel subsystem, that | |||
114 | provides a unified view of the devices physically attached to the systems. | 114 | provides a unified view of the devices physically attached to the systems. |
115 | Though the ESA/390 hardware platform knows about a huge variety of different | 115 | Though the ESA/390 hardware platform knows about a huge variety of different |
116 | peripheral attachments like disk devices (aka. DASDs), tapes, communication | 116 | peripheral attachments like disk devices (aka. DASDs), tapes, communication |
117 | controllers, etc. they can all by accessed by a well defined access method and | 117 | controllers, etc. they can all be accessed by a well defined access method and |
118 | they are presenting I/O completion a unified way : I/O interruptions. Every | 118 | they are presenting I/O completion a unified way : I/O interruptions. Every |
119 | single device is uniquely identified to the system by a so called subchannel, | 119 | single device is uniquely identified to the system by a so called subchannel, |
120 | where the ESA/390 architecture allows for 64k devices be attached. | 120 | where the ESA/390 architecture allows for 64k devices be attached. |
@@ -338,7 +338,7 @@ DOIO_REPORT_ALL - report all interrupt conditions | |||
338 | The ccw_device_start() function returns : | 338 | The ccw_device_start() function returns : |
339 | 339 | ||
340 | 0 - successful completion or request successfully initiated | 340 | 0 - successful completion or request successfully initiated |
341 | -EBUSY - The device is currently processing a previous I/O request, or ther is | 341 | -EBUSY - The device is currently processing a previous I/O request, or there is |
342 | a status pending at the device. | 342 | a status pending at the device. |
343 | -ENODEV - cdev is invalid, the device is not operational or the ccw_device is | 343 | -ENODEV - cdev is invalid, the device is not operational or the ccw_device is |
344 | not online. | 344 | not online. |
@@ -361,7 +361,7 @@ first: | |||
361 | -EIO: the common I/O layer terminated the request due to an error state | 361 | -EIO: the common I/O layer terminated the request due to an error state |
362 | 362 | ||
363 | If the concurrent sense flag in the extended status word in the irb is set, the | 363 | If the concurrent sense flag in the extended status word in the irb is set, the |
364 | field irb->scsw.count describes the numer of device specific sense bytes | 364 | field irb->scsw.count describes the number of device specific sense bytes |
365 | available in the extended control word irb->scsw.ecw[0]. No device sensing by | 365 | available in the extended control word irb->scsw.ecw[0]. No device sensing by |
366 | the device driver itself is required. | 366 | the device driver itself is required. |
367 | 367 | ||
@@ -410,7 +410,7 @@ ccw_device_start() must be called disabled and with the ccw device lock held. | |||
410 | 410 | ||
411 | The device driver is allowed to issue the next ccw_device_start() call from | 411 | The device driver is allowed to issue the next ccw_device_start() call from |
412 | within its interrupt handler already. It is not required to schedule a | 412 | within its interrupt handler already. It is not required to schedule a |
413 | bottom-half, unless an non deterministically long running error recovery procedure | 413 | bottom-half, unless a non deterministically long running error recovery procedure |
414 | or similar needs to be scheduled. During I/O processing the Linux/390 generic | 414 | or similar needs to be scheduled. During I/O processing the Linux/390 generic |
415 | I/O device driver support has already obtained the IRQ lock, i.e. the handler | 415 | I/O device driver support has already obtained the IRQ lock, i.e. the handler |
416 | must not try to obtain it again when calling ccw_device_start() or we end in a | 416 | must not try to obtain it again when calling ccw_device_start() or we end in a |
@@ -431,7 +431,7 @@ information prior to device-end the device driver urgently relies on. In this | |||
431 | case all I/O interruptions are presented to the device driver until final | 431 | case all I/O interruptions are presented to the device driver until final |
432 | status is recognized. | 432 | status is recognized. |
433 | 433 | ||
434 | If a device is able to recover from asynchronosly presented I/O errors, it can | 434 | If a device is able to recover from asynchronously presented I/O errors, it can |
435 | perform overlapping I/O using the DOIO_EARLY_NOTIFICATION flag. While some | 435 | perform overlapping I/O using the DOIO_EARLY_NOTIFICATION flag. While some |
436 | devices always report channel-end and device-end together, with a single | 436 | devices always report channel-end and device-end together, with a single |
437 | interrupt, others present primary status (channel-end) when the channel is | 437 | interrupt, others present primary status (channel-end) when the channel is |
diff --git a/Documentation/s390/crypto/crypto-API.txt b/Documentation/s390/crypto/crypto-API.txt index 29dee792c887..71ae6ca9f2c2 100644 --- a/Documentation/s390/crypto/crypto-API.txt +++ b/Documentation/s390/crypto/crypto-API.txt | |||
@@ -17,8 +17,8 @@ arch/s390/crypto directory. | |||
17 | 2. Probing for availability of MSA | 17 | 2. Probing for availability of MSA |
18 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 18 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
19 | It should be possible to use Kernels with the z990 crypto implementations both | 19 | It should be possible to use Kernels with the z990 crypto implementations both |
20 | on machines with MSA available an on those without MSA (pre z990 or z990 | 20 | on machines with MSA available and on those without MSA (pre z990 or z990 |
21 | without MSA). Therefore a simple probing mechanisms has been implemented: | 21 | without MSA). Therefore a simple probing mechanism has been implemented: |
22 | In the init function of each crypto module the availability of MSA and of the | 22 | In the init function of each crypto module the availability of MSA and of the |
23 | respective crypto algorithm in particular will be tested. If the algorithm is | 23 | respective crypto algorithm in particular will be tested. If the algorithm is |
24 | available the module will load and register its algorithm with the crypto API. | 24 | available the module will load and register its algorithm with the crypto API. |
@@ -26,7 +26,7 @@ available the module will load and register its algorithm with the crypto API. | |||
26 | If the respective crypto algorithm is not available, the init function will | 26 | If the respective crypto algorithm is not available, the init function will |
27 | return -ENOSYS. In that case a fallback to the standard software implementation | 27 | return -ENOSYS. In that case a fallback to the standard software implementation |
28 | of the crypto algorithm must be taken ( -> the standard crypto modules are | 28 | of the crypto algorithm must be taken ( -> the standard crypto modules are |
29 | also build when compiling the kernel). | 29 | also built when compiling the kernel). |
30 | 30 | ||
31 | 31 | ||
32 | 3. Ensuring z990 crypto module preference | 32 | 3. Ensuring z990 crypto module preference |
@@ -75,8 +75,8 @@ name of the respective module is given in square brackets. | |||
75 | 75 | ||
76 | - SHA1 Digest Algorithm [sha1 -> sha1_z990] | 76 | - SHA1 Digest Algorithm [sha1 -> sha1_z990] |
77 | - DES Encrypt/Decrypt Algorithm (64bit key) [des -> des_z990] | 77 | - DES Encrypt/Decrypt Algorithm (64bit key) [des -> des_z990] |
78 | - Tripple DES Encrypt/Decrypt Algorithm (128bit key) [des3_ede128 -> des_z990] | 78 | - Triple DES Encrypt/Decrypt Algorithm (128bit key) [des3_ede128 -> des_z990] |
79 | - Tripple DES Encrypt/Decrypt Algorithm (192bit key) [des3_ede -> des_z990] | 79 | - Triple DES Encrypt/Decrypt Algorithm (192bit key) [des3_ede -> des_z990] |
80 | 80 | ||
81 | In order to load, for example, the sha1_z990 module when the sha1 algorithm is | 81 | In order to load, for example, the sha1_z990 module when the sha1 algorithm is |
82 | requested (see 3.2.) add 'alias sha1 sha1_z990' to /etc/modprobe.conf. | 82 | requested (see 3.2.) add 'alias sha1 sha1_z990' to /etc/modprobe.conf. |
diff --git a/Documentation/s390/s390dbf.txt b/Documentation/s390/s390dbf.txt index 000230cd26db..0eb7c58916de 100644 --- a/Documentation/s390/s390dbf.txt +++ b/Documentation/s390/s390dbf.txt | |||
@@ -36,7 +36,7 @@ switches to the next debug area. This is done in order to be sure | |||
36 | that the records which describe the origin of the exception are not | 36 | that the records which describe the origin of the exception are not |
37 | overwritten when a wrap around for the current area occurs. | 37 | overwritten when a wrap around for the current area occurs. |
38 | 38 | ||
39 | The debug areas itselve are also ordered in form of a ring buffer. | 39 | The debug areas themselves are also ordered in form of a ring buffer. |
40 | When an exception is thrown in the last debug area, the following debug | 40 | When an exception is thrown in the last debug area, the following debug |
41 | entries are then written again in the very first area. | 41 | entries are then written again in the very first area. |
42 | 42 | ||
@@ -55,7 +55,7 @@ The debug logs can be inspected in a live system through entries in | |||
55 | the debugfs-filesystem. Under the toplevel directory "s390dbf" there is | 55 | the debugfs-filesystem. Under the toplevel directory "s390dbf" there is |
56 | a directory for each registered component, which is named like the | 56 | a directory for each registered component, which is named like the |
57 | corresponding component. The debugfs normally should be mounted to | 57 | corresponding component. The debugfs normally should be mounted to |
58 | /sys/kernel/debug therefore the debug feature can be accessed unter | 58 | /sys/kernel/debug therefore the debug feature can be accessed under |
59 | /sys/kernel/debug/s390dbf. | 59 | /sys/kernel/debug/s390dbf. |
60 | 60 | ||
61 | The content of the directories are files which represent different views | 61 | The content of the directories are files which represent different views |
@@ -87,11 +87,11 @@ There are currently 2 possible triggers, which stop the debug feature | |||
87 | globally. The first possibility is to use the "debug_active" sysctl. If | 87 | globally. The first possibility is to use the "debug_active" sysctl. If |
88 | set to 1 the debug feature is running. If "debug_active" is set to 0 the | 88 | set to 1 the debug feature is running. If "debug_active" is set to 0 the |
89 | debug feature is turned off. | 89 | debug feature is turned off. |
90 | The second trigger which stops the debug feature is an kernel oops. | 90 | The second trigger which stops the debug feature is a kernel oops. |
91 | That prevents the debug feature from overwriting debug information that | 91 | That prevents the debug feature from overwriting debug information that |
92 | happened before the oops. After an oops you can reactivate the debug feature | 92 | happened before the oops. After an oops you can reactivate the debug feature |
93 | by piping 1 to /proc/sys/s390dbf/debug_active. Nevertheless, its not | 93 | by piping 1 to /proc/sys/s390dbf/debug_active. Nevertheless, its not |
94 | suggested to use an oopsed kernel in an production environment. | 94 | suggested to use an oopsed kernel in a production environment. |
95 | If you want to disallow the deactivation of the debug feature, you can use | 95 | If you want to disallow the deactivation of the debug feature, you can use |
96 | the "debug_stoppable" sysctl. If you set "debug_stoppable" to 0 the debug | 96 | the "debug_stoppable" sysctl. If you set "debug_stoppable" to 0 the debug |
97 | feature cannot be stopped. If the debug feature is already stopped, it | 97 | feature cannot be stopped. If the debug feature is already stopped, it |
diff --git a/Documentation/scsi/aic79xx.txt b/Documentation/scsi/aic79xx.txt index 904d49e90ef2..6aa9a891f3d0 100644 --- a/Documentation/scsi/aic79xx.txt +++ b/Documentation/scsi/aic79xx.txt | |||
@@ -127,7 +127,7 @@ The following information is available in this file: | |||
127 | - Correct a reference to free'ed memory during controller | 127 | - Correct a reference to free'ed memory during controller |
128 | shutdown. | 128 | shutdown. |
129 | - Reset the bus on an SE->LVD change. This is required | 129 | - Reset the bus on an SE->LVD change. This is required |
130 | to reset our transcievers. | 130 | to reset our transceivers. |
131 | 131 | ||
132 | 1.3.5 (March 24th, 2003) | 132 | 1.3.5 (March 24th, 2003) |
133 | - Fix a few register window mode bugs. | 133 | - Fix a few register window mode bugs. |
@@ -169,7 +169,7 @@ The following information is available in this file: | |||
169 | 1.3.0 (January 21st, 2003) | 169 | 1.3.0 (January 21st, 2003) |
170 | - Full regression testing for all U320 products completed. | 170 | - Full regression testing for all U320 products completed. |
171 | - Added abort and target/lun reset error recovery handler and | 171 | - Added abort and target/lun reset error recovery handler and |
172 | interrupt coalessing. | 172 | interrupt coalescing. |
173 | 173 | ||
174 | 1.2.0 (November 14th, 2002) | 174 | 1.2.0 (November 14th, 2002) |
175 | - Added support for Domain Validation | 175 | - Added support for Domain Validation |
diff --git a/Documentation/scsi/aic7xxx_old.txt b/Documentation/scsi/aic7xxx_old.txt index c92f4473193b..05667e7308d4 100644 --- a/Documentation/scsi/aic7xxx_old.txt +++ b/Documentation/scsi/aic7xxx_old.txt | |||
@@ -256,7 +256,7 @@ linux-1.1.x and fairly stable since linux-1.2.x, and are also in FreeBSD | |||
256 | En/Disable High Byte LVD Termination | 256 | En/Disable High Byte LVD Termination |
257 | 257 | ||
258 | The upper 2 bits that deal with LVD termination only apply to Ultra2 | 258 | The upper 2 bits that deal with LVD termination only apply to Ultra2 |
259 | controllers. Futhermore, due to the current Ultra2 controller | 259 | controllers. Furthermore, due to the current Ultra2 controller |
260 | designs, these bits are tied together such that setting either bit | 260 | designs, these bits are tied together such that setting either bit |
261 | enables both low and high byte LVD termination. It is not possible | 261 | enables both low and high byte LVD termination. It is not possible |
262 | to only set high or low byte LVD termination in this manner. This is | 262 | to only set high or low byte LVD termination in this manner. This is |
@@ -436,7 +436,7 @@ linux-1.1.x and fairly stable since linux-1.2.x, and are also in FreeBSD | |||
436 | the commas to periods, insmod won't interpret this as more than one | 436 | the commas to periods, insmod won't interpret this as more than one |
437 | string and write junk into our binary image. I consider it a bug in | 437 | string and write junk into our binary image. I consider it a bug in |
438 | the insmod program that even if you wrap your string in quotes (quotes | 438 | the insmod program that even if you wrap your string in quotes (quotes |
439 | that pass the shell mind you and that insmod sees) it still treates | 439 | that pass the shell mind you and that insmod sees) it still treats |
440 | a comma inside of those quotes as starting a new variable, resulting | 440 | a comma inside of those quotes as starting a new variable, resulting |
441 | in memory scribbles if you don't switch the commas to periods. | 441 | in memory scribbles if you don't switch the commas to periods. |
442 | 442 | ||
diff --git a/Documentation/scsi/ibmmca.txt b/Documentation/scsi/ibmmca.txt index 35f6b8ed2295..9707941704e3 100644 --- a/Documentation/scsi/ibmmca.txt +++ b/Documentation/scsi/ibmmca.txt | |||
@@ -461,7 +461,7 @@ | |||
461 | This needs the RD-Bit to be disabled on IM_OTHER_SCSI_CMD_CMD which | 461 | This needs the RD-Bit to be disabled on IM_OTHER_SCSI_CMD_CMD which |
462 | allows data to be written from the system to the device. It is a | 462 | allows data to be written from the system to the device. It is a |
463 | necessary step to be allowed to set blocksize of SCSI-tape-drives and | 463 | necessary step to be allowed to set blocksize of SCSI-tape-drives and |
464 | the tape-speed, whithout confusing the SCSI-Subsystem. | 464 | the tape-speed, without confusing the SCSI-Subsystem. |
465 | 2) The recognition of a tape is included in the check_devices routine. | 465 | 2) The recognition of a tape is included in the check_devices routine. |
466 | This is done by checking for TYPE_TAPE, that is already defined in | 466 | This is done by checking for TYPE_TAPE, that is already defined in |
467 | the kernel-scsi-environment. The markup of a tape is done in the | 467 | the kernel-scsi-environment. The markup of a tape is done in the |
@@ -710,8 +710,8 @@ | |||
710 | of troubles with some controllers and after I wanted to apply some | 710 | of troubles with some controllers and after I wanted to apply some |
711 | extensions, it jumped out in the same situation, on my w/cache, as like | 711 | extensions, it jumped out in the same situation, on my w/cache, as like |
712 | on D. Weinehalls' Model 56, having integrated SCSI. This gave me the | 712 | on D. Weinehalls' Model 56, having integrated SCSI. This gave me the |
713 | descissive hint to move the code-part out and declare it global. Now, | 713 | decisive hint to move the code-part out and declare it global. Now |
714 | it seems to work by far much better an more stable. Let us see, what | 714 | it seems to work far better and more stable. Let us see what |
715 | the world thinks of it... | 715 | the world thinks of it... |
716 | 3) By the way, only Sony DAT-drives seem to show density code 0x13. A | 716 | 3) By the way, only Sony DAT-drives seem to show density code 0x13. A |
717 | test with a HP drive gave right results, so the problem is vendor- | 717 | test with a HP drive gave right results, so the problem is vendor- |
@@ -822,10 +822,10 @@ | |||
822 | A long period of collecting bugreports from all corners of the world | 822 | A long period of collecting bugreports from all corners of the world |
823 | now lead to the following corrections to the code: | 823 | now lead to the following corrections to the code: |
824 | 1) SCSI-2 F/W support crashed with a COMMAND ERROR. The reason for this | 824 | 1) SCSI-2 F/W support crashed with a COMMAND ERROR. The reason for this |
825 | was, that it is possible to disbale Fast-SCSI for the external bus. | 825 | was that it is possible to disable Fast-SCSI for the external bus. |
826 | The feature-control command, where this crash appeared regularly tried | 826 | The feature-control command, where this crash appeared regularly, tried |
827 | to set the maximum speed of 10MHz synchronous transfer speed and that | 827 | to set the maximum speed of 10MHz synchronous transfer speed and that |
828 | reports a COMMAND ERROR, if external bus Fast-SCSI is disabled. Now, | 828 | reports a COMMAND ERROR if external bus Fast-SCSI is disabled. Now, |
829 | the feature-command probes down from maximum speed until the adapter | 829 | the feature-command probes down from maximum speed until the adapter |
830 | stops to complain, which is at the same time the maximum possible | 830 | stops to complain, which is at the same time the maximum possible |
831 | speed selected in the reference program. So, F/W external can run at | 831 | speed selected in the reference program. So, F/W external can run at |
@@ -920,7 +920,7 @@ | |||
920 | completed in such a way, that they are now completely conform to the | 920 | completed in such a way, that they are now completely conform to the |
921 | demands in the technical description of IBM. Main candidates were the | 921 | demands in the technical description of IBM. Main candidates were the |
922 | DEVICE_INQUIRY, REQUEST_SENSE and DEVICE_CAPACITY commands. They must | 922 | DEVICE_INQUIRY, REQUEST_SENSE and DEVICE_CAPACITY commands. They must |
923 | be tranferred by bypassing the internal command buffer of the adapter | 923 | be transferred by bypassing the internal command buffer of the adapter |
924 | or else the response can be a random result. GET_POS_INFO would be more | 924 | or else the response can be a random result. GET_POS_INFO would be more |
925 | safe in usage, if one could use the SUPRESS_EXCEPTION_SHORT, but this | 925 | safe in usage, if one could use the SUPRESS_EXCEPTION_SHORT, but this |
926 | is not allowed by the technical references of IBM. (Sorry, folks, the | 926 | is not allowed by the technical references of IBM. (Sorry, folks, the |
diff --git a/Documentation/scsi/in2000.txt b/Documentation/scsi/in2000.txt index 80f104042645..c3e2a90475d2 100644 --- a/Documentation/scsi/in2000.txt +++ b/Documentation/scsi/in2000.txt | |||
@@ -24,7 +24,7 @@ UPDATE NEWS: version 1.32 - 28 Mar 98 | |||
24 | UPDATE NEWS: version 1.31 - 6 Jul 97 | 24 | UPDATE NEWS: version 1.31 - 6 Jul 97 |
25 | 25 | ||
26 | Fixed a bug that caused incorrect SCSI status bytes to be | 26 | Fixed a bug that caused incorrect SCSI status bytes to be |
27 | returned from commands sent to LUN's greater than 0. This | 27 | returned from commands sent to LUNs greater than 0. This |
28 | means that CDROM changers work now! Fixed a bug in the | 28 | means that CDROM changers work now! Fixed a bug in the |
29 | handling of command-line arguments when loaded as a module. | 29 | handling of command-line arguments when loaded as a module. |
30 | Also put all the header data in in2000.h where it belongs. | 30 | Also put all the header data in in2000.h where it belongs. |
diff --git a/Documentation/scsi/libsas.txt b/Documentation/scsi/libsas.txt index 9e2078b2a615..aa54f54c4a50 100644 --- a/Documentation/scsi/libsas.txt +++ b/Documentation/scsi/libsas.txt | |||
@@ -393,7 +393,7 @@ struct sas_task { | |||
393 | task_proto -- _one_ of enum sas_proto | 393 | task_proto -- _one_ of enum sas_proto |
394 | scatter -- pointer to scatter gather list array | 394 | scatter -- pointer to scatter gather list array |
395 | num_scatter -- number of elements in scatter | 395 | num_scatter -- number of elements in scatter |
396 | total_xfer_len -- total number of bytes expected to be transfered | 396 | total_xfer_len -- total number of bytes expected to be transferred |
397 | data_dir -- PCI_DMA_... | 397 | data_dir -- PCI_DMA_... |
398 | task_done -- callback when the task has finished execution | 398 | task_done -- callback when the task has finished execution |
399 | }; | 399 | }; |
diff --git a/Documentation/scsi/ncr53c8xx.txt b/Documentation/scsi/ncr53c8xx.txt index 58ad8db333d9..caf10b155185 100644 --- a/Documentation/scsi/ncr53c8xx.txt +++ b/Documentation/scsi/ncr53c8xx.txt | |||
@@ -115,7 +115,7 @@ SCSI standard documentations are available at SYMBIOS ftp server: | |||
115 | 115 | ||
116 | ftp://ftp.symbios.com/ | 116 | ftp://ftp.symbios.com/ |
117 | 117 | ||
118 | Usefull SCSI tools written by Eric Youngdale are available at tsx-11: | 118 | Useful SCSI tools written by Eric Youngdale are available at tsx-11: |
119 | 119 | ||
120 | ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsiinfo-X.Y.tar.gz | 120 | ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsiinfo-X.Y.tar.gz |
121 | ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsidev-X.Y.tar.gz | 121 | ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsidev-X.Y.tar.gz |
diff --git a/Documentation/scsi/scsi-changer.txt b/Documentation/scsi/scsi-changer.txt index d74bbd29eb3a..032399b16a53 100644 --- a/Documentation/scsi/scsi-changer.txt +++ b/Documentation/scsi/scsi-changer.txt | |||
@@ -88,7 +88,7 @@ If the module finds the changer, it prints some messages about the | |||
88 | device [ try "dmesg" if you don't see anything ] and should show up in | 88 | device [ try "dmesg" if you don't see anything ] and should show up in |
89 | /proc/devices. If not.... some changers use ID ? / LUN 0 for the | 89 | /proc/devices. If not.... some changers use ID ? / LUN 0 for the |
90 | device and ID ? / LUN 1 for the robot mechanism. But Linux does *not* | 90 | device and ID ? / LUN 1 for the robot mechanism. But Linux does *not* |
91 | look for LUN's other than 0 as default, becauce there are to many | 91 | look for LUNs other than 0 as default, because there are too many |
92 | broken devices. So you can try: | 92 | broken devices. So you can try: |
93 | 93 | ||
94 | 1) echo "scsi add-single-device 0 0 ID 1" > /proc/scsi/scsi | 94 | 1) echo "scsi add-single-device 0 0 ID 1" > /proc/scsi/scsi |
@@ -107,7 +107,7 @@ because the kernel will translate the error codes into human-readable | |||
107 | strings then. | 107 | strings then. |
108 | 108 | ||
109 | You can display these messages with the dmesg command (or check the | 109 | You can display these messages with the dmesg command (or check the |
110 | logfiles). If you email me some question becauce of a problem with the | 110 | logfiles). If you email me some question because of a problem with the |
111 | driver, please include these messages. | 111 | driver, please include these messages. |
112 | 112 | ||
113 | 113 | ||
diff --git a/Documentation/scsi/scsi_eh.txt b/Documentation/scsi/scsi_eh.txt index b964eef2f62f..7acbebb17fa6 100644 --- a/Documentation/scsi/scsi_eh.txt +++ b/Documentation/scsi/scsi_eh.txt | |||
@@ -75,7 +75,7 @@ with the command. | |||
75 | 75 | ||
76 | - otherwise | 76 | - otherwise |
77 | scsi_eh_scmd_add(scmd, 0) is invoked for the command. See | 77 | scsi_eh_scmd_add(scmd, 0) is invoked for the command. See |
78 | [1-3] for details of this funciton. | 78 | [1-3] for details of this function. |
79 | 79 | ||
80 | 80 | ||
81 | [1-2-2] Completing a scmd w/ timeout | 81 | [1-2-2] Completing a scmd w/ timeout |
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index 75a535a975c3..6f70f2b9327e 100644 --- a/Documentation/scsi/scsi_mid_low_api.txt +++ b/Documentation/scsi/scsi_mid_low_api.txt | |||
@@ -375,7 +375,6 @@ Summary: | |||
375 | scsi_add_device - creates new scsi device (lu) instance | 375 | scsi_add_device - creates new scsi device (lu) instance |
376 | scsi_add_host - perform sysfs registration and set up transport class | 376 | scsi_add_host - perform sysfs registration and set up transport class |
377 | scsi_adjust_queue_depth - change the queue depth on a SCSI device | 377 | scsi_adjust_queue_depth - change the queue depth on a SCSI device |
378 | scsi_assign_lock - replace default host_lock with given lock | ||
379 | scsi_bios_ptable - return copy of block device's partition table | 378 | scsi_bios_ptable - return copy of block device's partition table |
380 | scsi_block_requests - prevent further commands being queued to given host | 379 | scsi_block_requests - prevent further commands being queued to given host |
381 | scsi_deactivate_tcq - turn off tag command queueing | 380 | scsi_deactivate_tcq - turn off tag command queueing |
@@ -489,20 +488,6 @@ void scsi_adjust_queue_depth(struct scsi_device * sdev, int tagged, | |||
489 | 488 | ||
490 | 489 | ||
491 | /** | 490 | /** |
492 | * scsi_assign_lock - replace default host_lock with given lock | ||
493 | * @shost: a pointer to a scsi host instance | ||
494 | * @lock: pointer to lock to replace host_lock for this host | ||
495 | * | ||
496 | * Returns nothing | ||
497 | * | ||
498 | * Might block: no | ||
499 | * | ||
500 | * Defined in: include/scsi/scsi_host.h . | ||
501 | **/ | ||
502 | void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock) | ||
503 | |||
504 | |||
505 | /** | ||
506 | * scsi_bios_ptable - return copy of block device's partition table | 491 | * scsi_bios_ptable - return copy of block device's partition table |
507 | * @dev: pointer to block device | 492 | * @dev: pointer to block device |
508 | * | 493 | * |
@@ -1366,17 +1351,11 @@ Locks | |||
1366 | Each struct Scsi_Host instance has a spin_lock called struct | 1351 | Each struct Scsi_Host instance has a spin_lock called struct |
1367 | Scsi_Host::default_lock which is initialized in scsi_host_alloc() [found in | 1352 | Scsi_Host::default_lock which is initialized in scsi_host_alloc() [found in |
1368 | hosts.c]. Within the same function the struct Scsi_Host::host_lock pointer | 1353 | hosts.c]. Within the same function the struct Scsi_Host::host_lock pointer |
1369 | is initialized to point at default_lock with the scsi_assign_lock() function. | 1354 | is initialized to point at default_lock. Thereafter lock and unlock |
1370 | Thereafter lock and unlock operations performed by the mid level use the | 1355 | operations performed by the mid level use the struct Scsi_Host::host_lock |
1371 | struct Scsi_Host::host_lock pointer. | 1356 | pointer. Previously drivers could override the host_lock pointer but |
1372 | 1357 | this is not allowed anymore. | |
1373 | LLDs can override the use of struct Scsi_Host::default_lock by | 1358 | |
1374 | using scsi_assign_lock(). The earliest opportunity to do this would | ||
1375 | be in the detect() function after it has invoked scsi_register(). It | ||
1376 | could be replaced by a coarser grain lock (e.g. per driver) or a | ||
1377 | lock of equal granularity (i.e. per host). Using finer grain locks | ||
1378 | (e.g. per SCSI device) may be possible by juggling locks in | ||
1379 | queuecommand(). | ||
1380 | 1359 | ||
1381 | Autosense | 1360 | Autosense |
1382 | ========= | 1361 | ========= |
diff --git a/Documentation/scsi/st.txt b/Documentation/scsi/st.txt index 5ff65b184265..3c12422f7f41 100644 --- a/Documentation/scsi/st.txt +++ b/Documentation/scsi/st.txt | |||
@@ -261,7 +261,7 @@ pairs are separated with a comma (no spaces allowed). A colon can be | |||
261 | used instead of the equal mark. The definition is prepended by the | 261 | used instead of the equal mark. The definition is prepended by the |
262 | string st=. Here is an example: | 262 | string st=. Here is an example: |
263 | 263 | ||
264 | st=buffer_kbs:64,write_threhold_kbs:60 | 264 | st=buffer_kbs:64,write_threshold_kbs:60 |
265 | 265 | ||
266 | The following syntax used by the old kernel versions is also supported: | 266 | The following syntax used by the old kernel versions is also supported: |
267 | 267 | ||
diff --git a/Documentation/scsi/sym53c8xx_2.txt b/Documentation/scsi/sym53c8xx_2.txt index 26c8a08ca3ea..2c1745a9df00 100644 --- a/Documentation/scsi/sym53c8xx_2.txt +++ b/Documentation/scsi/sym53c8xx_2.txt | |||
@@ -609,7 +609,7 @@ appropriate mailing lists or news-groups. Send me a copy in order to | |||
609 | be sure I will receive it. Obviously, a bug in the driver code is | 609 | be sure I will receive it. Obviously, a bug in the driver code is |
610 | possible. | 610 | possible. |
611 | 611 | ||
612 | My cyrrent email address: Gerard Roudier <groudier@free.fr> | 612 | My current email address: Gerard Roudier <groudier@free.fr> |
613 | 613 | ||
614 | Allowing disconnections is important if you use several devices on | 614 | Allowing disconnections is important if you use several devices on |
615 | your SCSI bus but often causes problems with buggy devices. | 615 | your SCSI bus but often causes problems with buggy devices. |
diff --git a/Documentation/sharedsubtree.txt b/Documentation/sharedsubtree.txt index 2d8f403eb6eb..ccf1cebe744f 100644 --- a/Documentation/sharedsubtree.txt +++ b/Documentation/sharedsubtree.txt | |||
@@ -942,13 +942,13 @@ replicas continue to be exactly same. | |||
942 | ->mnt_slave | 942 | ->mnt_slave |
943 | ->mnt_master | 943 | ->mnt_master |
944 | 944 | ||
945 | ->mnt_share links togather all the mount to/from which this vfsmount | 945 | ->mnt_share links together all the mount to/from which this vfsmount |
946 | send/receives propagation events. | 946 | send/receives propagation events. |
947 | 947 | ||
948 | ->mnt_slave_list links all the mounts to which this vfsmount propagates | 948 | ->mnt_slave_list links all the mounts to which this vfsmount propagates |
949 | to. | 949 | to. |
950 | 950 | ||
951 | ->mnt_slave links togather all the slaves that its master vfsmount | 951 | ->mnt_slave links together all the slaves that its master vfsmount |
952 | propagates to. | 952 | propagates to. |
953 | 953 | ||
954 | ->mnt_master points to the master vfsmount from which this vfsmount | 954 | ->mnt_master points to the master vfsmount from which this vfsmount |
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 138673a907f5..9fef210ab50a 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -753,7 +753,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
753 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) | 753 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) |
754 | single_cmd - Use single immediate commands to communicate with | 754 | single_cmd - Use single immediate commands to communicate with |
755 | codecs (for debugging only) | 755 | codecs (for debugging only) |
756 | disable_msi - Disable Message Signaled Interrupt (MSI) | 756 | enable_msi - Enable Message Signaled Interrupt (MSI) (default = off) |
757 | 757 | ||
758 | This module supports one card and autoprobe. | 758 | This module supports one card and autoprobe. |
759 | 759 | ||
@@ -955,7 +955,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
955 | dmx6fire, dsp24, dsp24_value, dsp24_71, ez8, | 955 | dmx6fire, dsp24, dsp24_value, dsp24_71, ez8, |
956 | phase88, mediastation | 956 | phase88, mediastation |
957 | omni - Omni I/O support for MidiMan M-Audio Delta44/66 | 957 | omni - Omni I/O support for MidiMan M-Audio Delta44/66 |
958 | cs8427_timeout - reset timeout for the CS8427 chip (S/PDIF transciever) | 958 | cs8427_timeout - reset timeout for the CS8427 chip (S/PDIF transceiver) |
959 | in msec resolution, default value is 500 (0.5 sec) | 959 | in msec resolution, default value is 500 (0.5 sec) |
960 | 960 | ||
961 | This module supports multiple cards and autoprobe. Note: The consumer part | 961 | This module supports multiple cards and autoprobe. Note: The consumer part |
diff --git a/Documentation/sound/alsa/Audigy-mixer.txt b/Documentation/sound/alsa/Audigy-mixer.txt index 5132fd95e074..7f10dc6ff28c 100644 --- a/Documentation/sound/alsa/Audigy-mixer.txt +++ b/Documentation/sound/alsa/Audigy-mixer.txt | |||
@@ -6,7 +6,7 @@ This is based on SB-Live-mixer.txt. | |||
6 | 6 | ||
7 | The EMU10K2 chips have a DSP part which can be programmed to support | 7 | The EMU10K2 chips have a DSP part which can be programmed to support |
8 | various ways of sample processing, which is described here. | 8 | various ways of sample processing, which is described here. |
9 | (This acticle does not deal with the overall functionality of the | 9 | (This article does not deal with the overall functionality of the |
10 | EMU10K2 chips. See the manuals section for further details.) | 10 | EMU10K2 chips. See the manuals section for further details.) |
11 | 11 | ||
12 | The ALSA driver programs this portion of chip by default code | 12 | The ALSA driver programs this portion of chip by default code |
diff --git a/Documentation/sound/alsa/SB-Live-mixer.txt b/Documentation/sound/alsa/SB-Live-mixer.txt index 651adaf60473..f5639d40521d 100644 --- a/Documentation/sound/alsa/SB-Live-mixer.txt +++ b/Documentation/sound/alsa/SB-Live-mixer.txt | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | The EMU10K1 chips have a DSP part which can be programmed to support | 6 | The EMU10K1 chips have a DSP part which can be programmed to support |
7 | various ways of sample processing, which is described here. | 7 | various ways of sample processing, which is described here. |
8 | (This acticle does not deal with the overall functionality of the | 8 | (This article does not deal with the overall functionality of the |
9 | EMU10K1 chips. See the manuals section for further details.) | 9 | EMU10K1 chips. See the manuals section for further details.) |
10 | 10 | ||
11 | The ALSA driver programs this portion of chip by default code | 11 | The ALSA driver programs this portion of chip by default code |
diff --git a/Documentation/stable_api_nonsense.txt b/Documentation/stable_api_nonsense.txt index f39c9d714db3..a2afca3b2bab 100644 --- a/Documentation/stable_api_nonsense.txt +++ b/Documentation/stable_api_nonsense.txt | |||
@@ -62,9 +62,6 @@ consider the following facts about the Linux kernel: | |||
62 | - different structures can contain different fields | 62 | - different structures can contain different fields |
63 | - Some functions may not be implemented at all, (i.e. some locks | 63 | - Some functions may not be implemented at all, (i.e. some locks |
64 | compile away to nothing for non-SMP builds.) | 64 | compile away to nothing for non-SMP builds.) |
65 | - Parameter passing of variables from function to function can be | ||
66 | done in different ways (the CONFIG_REGPARM option controls | ||
67 | this.) | ||
68 | - Memory within the kernel can be aligned in different ways, | 65 | - Memory within the kernel can be aligned in different ways, |
69 | depending on the build options. | 66 | depending on the build options. |
70 | - Linux runs on a wide range of different processor architectures. | 67 | - Linux runs on a wide range of different processor architectures. |
diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt index 02a481225b0d..c815c5206e84 100644 --- a/Documentation/stable_kernel_rules.txt +++ b/Documentation/stable_kernel_rules.txt | |||
@@ -50,7 +50,7 @@ Review cycle: | |||
50 | Contact the kernel security team for more details on this procedure. | 50 | Contact the kernel security team for more details on this procedure. |
51 | 51 | ||
52 | 52 | ||
53 | Review committe: | 53 | Review committee: |
54 | 54 | ||
55 | - This is made up of a number of kernel developers who have volunteered for | 55 | - This is made up of a number of kernel developers who have volunteered for |
56 | this task, and a few that haven't. | 56 | this task, and a few that haven't. |
diff --git a/Documentation/sysctl/fs.txt b/Documentation/sysctl/fs.txt index 5c3a51905969..aa986a35e994 100644 --- a/Documentation/sysctl/fs.txt +++ b/Documentation/sysctl/fs.txt | |||
@@ -146,7 +146,7 @@ or otherwise protected/tainted binaries. The modes are | |||
146 | readable by root only. This allows the end user to remove | 146 | readable by root only. This allows the end user to remove |
147 | such a dump but not access it directly. For security reasons | 147 | such a dump but not access it directly. For security reasons |
148 | core dumps in this mode will not overwrite one another or | 148 | core dumps in this mode will not overwrite one another or |
149 | other files. This mode is appropriate when adminstrators are | 149 | other files. This mode is appropriate when administrators are |
150 | attempting to debug problems in a normal environment. | 150 | attempting to debug problems in a normal environment. |
151 | 151 | ||
152 | ============================================================== | 152 | ============================================================== |
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index 0bc7f1e3c9e6..5922e84d9133 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt | |||
@@ -27,6 +27,7 @@ show up in /proc/sys/kernel: | |||
27 | - hotplug | 27 | - hotplug |
28 | - java-appletviewer [ binfmt_java, obsolete ] | 28 | - java-appletviewer [ binfmt_java, obsolete ] |
29 | - java-interpreter [ binfmt_java, obsolete ] | 29 | - java-interpreter [ binfmt_java, obsolete ] |
30 | - kstack_depth_to_print [ X86 only ] | ||
30 | - l2cr [ PPC only ] | 31 | - l2cr [ PPC only ] |
31 | - modprobe ==> Documentation/kmod.txt | 32 | - modprobe ==> Documentation/kmod.txt |
32 | - msgmax | 33 | - msgmax |
@@ -170,6 +171,13 @@ This flag controls the L2 cache of G3 processor boards. If | |||
170 | 171 | ||
171 | ============================================================== | 172 | ============================================================== |
172 | 173 | ||
174 | kstack_depth_to_print: (X86 only) | ||
175 | |||
176 | Controls the number of words to print when dumping the raw | ||
177 | kernel stack. | ||
178 | |||
179 | ============================================================== | ||
180 | |||
173 | osrelease, ostype & version: | 181 | osrelease, ostype & version: |
174 | 182 | ||
175 | # cat osrelease | 183 | # cat osrelease |
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index 20d0d797f539..e96a341eb7e4 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt | |||
@@ -129,7 +129,7 @@ the high water marks for each per cpu page list. | |||
129 | 129 | ||
130 | zone_reclaim_mode: | 130 | zone_reclaim_mode: |
131 | 131 | ||
132 | Zone_reclaim_mode allows to set more or less agressive approaches to | 132 | Zone_reclaim_mode allows someone to set more or less aggressive approaches to |
133 | reclaim memory when a zone runs out of memory. If it is set to zero then no | 133 | reclaim memory when a zone runs out of memory. If it is set to zero then no |
134 | zone reclaim occurs. Allocations will be satisfied from other zones / nodes | 134 | zone reclaim occurs. Allocations will be satisfied from other zones / nodes |
135 | in the system. | 135 | in the system. |
diff --git a/Documentation/uml/UserModeLinux-HOWTO.txt b/Documentation/uml/UserModeLinux-HOWTO.txt index b60590eca18f..628013f944c4 100644 --- a/Documentation/uml/UserModeLinux-HOWTO.txt +++ b/Documentation/uml/UserModeLinux-HOWTO.txt | |||
@@ -1477,7 +1477,7 @@ | |||
1477 | 1477 | ||
1478 | 1478 | ||
1479 | 1479 | ||
1480 | Making it world-writeable looks bad, but it seems not to be | 1480 | Making it world-writable looks bad, but it seems not to be |
1481 | exploitable as a security hole. However, it does allow anyone to cre- | 1481 | exploitable as a security hole. However, it does allow anyone to cre- |
1482 | ate useless tap devices (useless because they can't configure them), | 1482 | ate useless tap devices (useless because they can't configure them), |
1483 | which is a DOS attack. A somewhat more secure alternative would to be | 1483 | which is a DOS attack. A somewhat more secure alternative would to be |
diff --git a/Documentation/usb/hiddev.txt b/Documentation/usb/hiddev.txt index 6a790754e963..6e8c9f1d2f22 100644 --- a/Documentation/usb/hiddev.txt +++ b/Documentation/usb/hiddev.txt | |||
@@ -8,7 +8,7 @@ interfaces, but have similar sorts of communication needs. The two big | |||
8 | examples for this are power devices (especially uninterruptable power | 8 | examples for this are power devices (especially uninterruptable power |
9 | supplies) and monitor control on higher end monitors. | 9 | supplies) and monitor control on higher end monitors. |
10 | 10 | ||
11 | To support these disparite requirements, the Linux USB system provides | 11 | To support these disparate requirements, the Linux USB system provides |
12 | HID events to two separate interfaces: | 12 | HID events to two separate interfaces: |
13 | * the input subsystem, which converts HID events into normal input | 13 | * the input subsystem, which converts HID events into normal input |
14 | device interfaces (such as keyboard, mouse and joystick) and a | 14 | device interfaces (such as keyboard, mouse and joystick) and a |
diff --git a/Documentation/usb/rio.txt b/Documentation/usb/rio.txt index ab21db454694..aee715af7db7 100644 --- a/Documentation/usb/rio.txt +++ b/Documentation/usb/rio.txt | |||
@@ -24,10 +24,10 @@ are in no way responsible for any damage that may occur, no matter how | |||
24 | inconsequential. | 24 | inconsequential. |
25 | 25 | ||
26 | It seems that the Rio has a problem when sending .mp3 with low batteries. | 26 | It seems that the Rio has a problem when sending .mp3 with low batteries. |
27 | I suggest when the batteries are low and want to transfer stuff that you | 27 | I suggest when the batteries are low and you want to transfer stuff that you |
28 | replace it with a fresh one. In my case, what happened is I lost two 16kb | 28 | replace it with a fresh one. In my case, what happened is I lost two 16kb |
29 | blocks (they are no longer usable to store information to it). But I don't | 29 | blocks (they are no longer usable to store information to it). But I don't |
30 | know if thats normal or not. It could simply be a problem with the flash | 30 | know if that's normal or not; it could simply be a problem with the flash |
31 | memory. | 31 | memory. |
32 | 32 | ||
33 | In an extreme case, I left my Rio playing overnight and the batteries wore | 33 | In an extreme case, I left my Rio playing overnight and the batteries wore |
diff --git a/Documentation/usb/usb-serial.txt b/Documentation/usb/usb-serial.txt index 50436e1663ea..d61f6e7865de 100644 --- a/Documentation/usb/usb-serial.txt +++ b/Documentation/usb/usb-serial.txt | |||
@@ -175,7 +175,7 @@ Keyspan USA-series Serial Adapters | |||
175 | 175 | ||
176 | Current status: | 176 | Current status: |
177 | The USA-18X, USA-28X, USA-19, USA-19W and USA-49W are supported and | 177 | The USA-18X, USA-28X, USA-19, USA-19W and USA-49W are supported and |
178 | have been pretty throughly tested at various baud rates with 8-N-1 | 178 | have been pretty thoroughly tested at various baud rates with 8-N-1 |
179 | character settings. Other character lengths and parity setups are | 179 | character settings. Other character lengths and parity setups are |
180 | presently untested. | 180 | presently untested. |
181 | 181 | ||
@@ -253,7 +253,7 @@ Cypress M8 CY4601 Family Serial Driver | |||
253 | together without hacking the adapter to set the line high. | 253 | together without hacking the adapter to set the line high. |
254 | 254 | ||
255 | The driver is smp safe. Performance with the driver is rather low when using | 255 | The driver is smp safe. Performance with the driver is rather low when using |
256 | it for transfering files. This is being worked on, but I would be willing to | 256 | it for transferring files. This is being worked on, but I would be willing to |
257 | accept patches. An urb queue or packet buffer would likely fit the bill here. | 257 | accept patches. An urb queue or packet buffer would likely fit the bill here. |
258 | 258 | ||
259 | If you have any questions, problems, patches, feature requests, etc. you can | 259 | If you have any questions, problems, patches, feature requests, etc. you can |
@@ -297,7 +297,7 @@ Belkin USB Serial Adapter F5U103 | |||
297 | Parity N,E,O,M,S | 297 | Parity N,E,O,M,S |
298 | Handshake None, Software (XON/XOFF), Hardware (CTSRTS,CTSDTR)* | 298 | Handshake None, Software (XON/XOFF), Hardware (CTSRTS,CTSDTR)* |
299 | Break Set and clear | 299 | Break Set and clear |
300 | Line contrl Input/Output query and control ** | 300 | Line control Input/Output query and control ** |
301 | 301 | ||
302 | * Hardware input flow control is only enabled for firmware | 302 | * Hardware input flow control is only enabled for firmware |
303 | levels above 2.06. Read source code comments describing Belkin | 303 | levels above 2.06. Read source code comments describing Belkin |
@@ -309,7 +309,7 @@ Belkin USB Serial Adapter F5U103 | |||
309 | automatic hardware flow control. | 309 | automatic hardware flow control. |
310 | 310 | ||
311 | TO DO List: | 311 | TO DO List: |
312 | -- Add true modem contol line query capability. Currently tracks the | 312 | -- Add true modem control line query capability. Currently tracks the |
313 | states reported by the interrupt and the states requested. | 313 | states reported by the interrupt and the states requested. |
314 | -- Add error reporting back to application for UART error conditions. | 314 | -- Add error reporting back to application for UART error conditions. |
315 | -- Add support for flush ioctls. | 315 | -- Add support for flush ioctls. |
diff --git a/Documentation/watchdog/watchdog-api.txt b/Documentation/watchdog/watchdog-api.txt index 7e8ae83e9847..8d16f6f3c4ec 100644 --- a/Documentation/watchdog/watchdog-api.txt +++ b/Documentation/watchdog/watchdog-api.txt | |||
@@ -214,7 +214,7 @@ returned value is the temperature in degrees fahrenheit. | |||
214 | 214 | ||
215 | Finally the SETOPTIONS ioctl can be used to control some aspects of | 215 | Finally the SETOPTIONS ioctl can be used to control some aspects of |
216 | the cards operation; right now the pcwd driver is the only one | 216 | the cards operation; right now the pcwd driver is the only one |
217 | supporting thiss ioctl. | 217 | supporting this ioctl. |
218 | 218 | ||
219 | int options = 0; | 219 | int options = 0; |
220 | ioctl(fd, WDIOC_SETOPTIONS, options); | 220 | ioctl(fd, WDIOC_SETOPTIONS, options); |
diff --git a/Documentation/x86_64/boot-options.txt b/Documentation/x86_64/boot-options.txt index f3c57f43ba64..dbdcaf68e3ea 100644 --- a/Documentation/x86_64/boot-options.txt +++ b/Documentation/x86_64/boot-options.txt | |||
@@ -52,10 +52,6 @@ APICs | |||
52 | apicmaintimer. Useful when your PIT timer is totally | 52 | apicmaintimer. Useful when your PIT timer is totally |
53 | broken. | 53 | broken. |
54 | 54 | ||
55 | disable_8254_timer / enable_8254_timer | ||
56 | Enable interrupt 0 timer routing over the 8254 in addition to over | ||
57 | the IO-APIC. The kernel tries to set a sensible default. | ||
58 | |||
59 | Early Console | 55 | Early Console |
60 | 56 | ||
61 | syntax: earlyprintk=vga | 57 | syntax: earlyprintk=vga |
@@ -183,7 +179,7 @@ PCI | |||
183 | IOMMU | 179 | IOMMU |
184 | 180 | ||
185 | iommu=[size][,noagp][,off][,force][,noforce][,leak][,memaper[=order]][,merge] | 181 | iommu=[size][,noagp][,off][,force][,noforce][,leak][,memaper[=order]][,merge] |
186 | [,forcesac][,fullflush][,nomerge][,noaperture] | 182 | [,forcesac][,fullflush][,nomerge][,noaperture][,calgary] |
187 | size set size of iommu (in bytes) | 183 | size set size of iommu (in bytes) |
188 | noagp don't initialize the AGP driver and use full aperture. | 184 | noagp don't initialize the AGP driver and use full aperture. |
189 | off don't use the IOMMU | 185 | off don't use the IOMMU |
@@ -204,6 +200,7 @@ IOMMU | |||
204 | buffering. | 200 | buffering. |
205 | nodac Forbid DMA >4GB | 201 | nodac Forbid DMA >4GB |
206 | panic Always panic when IOMMU overflows | 202 | panic Always panic when IOMMU overflows |
203 | calgary Use the Calgary IOMMU if it is available | ||
207 | 204 | ||
208 | swiotlb=pages[,force] | 205 | swiotlb=pages[,force] |
209 | 206 | ||