diff options
Diffstat (limited to 'Documentation')
83 files changed, 1379 insertions, 1106 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..05431621c861 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt | |||
| @@ -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/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/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/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..70690f1a14af 100644 --- a/Documentation/devices.txt +++ b/Documentation/devices.txt | |||
| @@ -92,7 +92,7 @@ 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 | 1 block RAM disk | 97 | 1 block RAM disk |
| 98 | 0 = /dev/ram0 First RAM disk | 98 | 0 = /dev/ram0 First RAM disk |
| @@ -1093,7 +1093,7 @@ Your cooperation is appreciated. | |||
| 1093 | 1093 | ||
| 1094 | 55 char DSP56001 digital signal processor | 1094 | 55 char DSP56001 digital signal processor |
| 1095 | 0 = /dev/dsp56k First DSP56001 | 1095 | 0 = /dev/dsp56k First DSP56001 |
| 1096 | 55 block Mylex DAC960 PCI RAID controller; eigth controller | 1096 | 55 block Mylex DAC960 PCI RAID controller; eighth controller |
| 1097 | 0 = /dev/rd/c7d0 First disk, whole disk | 1097 | 0 = /dev/rd/c7d0 First disk, whole disk |
| 1098 | 8 = /dev/rd/c7d1 Second disk, whole disk | 1098 | 8 = /dev/rd/c7d1 Second disk, whole disk |
| 1099 | ... | 1099 | ... |
| @@ -1456,7 +1456,7 @@ Your cooperation is appreciated. | |||
| 1456 | 1 = /dev/cum1 Callout device for ttyM1 | 1456 | 1 = /dev/cum1 Callout device for ttyM1 |
| 1457 | ... | 1457 | ... |
| 1458 | 1458 | ||
| 1459 | 79 block Compaq Intelligent Drive Array, eigth controller | 1459 | 79 block Compaq Intelligent Drive Array, eighth controller |
| 1460 | 0 = /dev/ida/c7d0 First logical drive whole disk | 1460 | 0 = /dev/ida/c7d0 First logical drive whole disk |
| 1461 | 16 = /dev/ida/c7d1 Second logical drive whole disk | 1461 | 16 = /dev/ida/c7d1 Second logical drive whole disk |
| 1462 | ... | 1462 | ... |
| @@ -1900,7 +1900,7 @@ Your cooperation is appreciated. | |||
| 1900 | 1 = /dev/av1 Second A/V card | 1900 | 1 = /dev/av1 Second A/V card |
| 1901 | ... | 1901 | ... |
| 1902 | 1902 | ||
| 1903 | 111 block Compaq Next Generation Drive Array, eigth controller | 1903 | 111 block Compaq Next Generation Drive Array, eighth controller |
| 1904 | 0 = /dev/cciss/c7d0 First logical drive, whole disk | 1904 | 0 = /dev/cciss/c7d0 First logical drive, whole disk |
| 1905 | 16 = /dev/cciss/c7d1 Second logical drive, whole disk | 1905 | 16 = /dev/cciss/c7d1 Second logical drive, whole disk |
| 1906 | ... | 1906 | ... |
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 d52c4aaaf17f..226ecf2ffd56 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -70,18 +70,6 @@ Who: Dominik Brodowski <linux@brodo.de> | |||
| 70 | 70 | ||
| 71 | --------------------------- | 71 | --------------------------- |
| 72 | 72 | ||
| 73 | What: ip_queue and ip6_queue (old ipv4-only and ipv6-only netfilter queue) | ||
| 74 | When: December 2005 | ||
| 75 | Why: This interface has been obsoleted by the new layer3-independent | ||
| 76 | "nfnetlink_queue". The Kernel interface is compatible, so the old | ||
| 77 | ip[6]tables "QUEUE" targets still work and will transparently handle | ||
| 78 | all packets into nfnetlink queue number 0. Userspace users will have | ||
| 79 | to link against API-compatible library on top of libnfnetlink_queue | ||
| 80 | instead of the current 'libipq'. | ||
| 81 | Who: Harald Welte <laforge@netfilter.org> | ||
| 82 | |||
| 83 | --------------------------- | ||
| 84 | |||
| 85 | What: remove EXPORT_SYMBOL(kernel_thread) | 73 | What: remove EXPORT_SYMBOL(kernel_thread) |
| 86 | When: August 2006 | 74 | When: August 2006 |
| 87 | Files: arch/*/kernel/*_ksyms.c | 75 | Files: arch/*/kernel/*_ksyms.c |
| @@ -227,21 +215,6 @@ Who: Patrick McHardy <kaber@trash.net> | |||
| 227 | 215 | ||
| 228 | --------------------------- | 216 | --------------------------- |
| 229 | 217 | ||
| 230 | What: frame diverter | ||
| 231 | When: November 2006 | ||
| 232 | Why: The frame diverter is included in most distribution kernels, but is | ||
| 233 | broken. It does not correctly handle many things: | ||
| 234 | - IPV6 | ||
| 235 | - non-linear skb's | ||
| 236 | - network device RCU on removal | ||
| 237 | - input frames not correctly checked for protocol errors | ||
| 238 | It also adds allocation overhead even if not enabled. | ||
| 239 | It is not clear if anyone is still using it. | ||
| 240 | Who: Stephen Hemminger <shemminger@osdl.org> | ||
| 241 | |||
| 242 | --------------------------- | ||
| 243 | |||
| 244 | |||
| 245 | What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment | 218 | What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment |
| 246 | When: October 2008 | 219 | When: October 2008 |
| 247 | Why: The stacking of class devices makes these values misleading and | 220 | Why: The stacking of class devices makes these values misleading and |
| @@ -261,10 +234,11 @@ Who: Jean Delvare <khali@linux-fr.org> | |||
| 261 | 234 | ||
| 262 | --------------------------- | 235 | --------------------------- |
| 263 | 236 | ||
| 264 | What: ftape | 237 | What: IPv4 only connection tracking/NAT/helpers |
| 265 | When: 2.6.20 | 238 | When: 2.6.22 |
| 266 | Why: Orphaned for ages. SMP bugs long unfixed. Few users left | 239 | Why: The new layer 3 independant connection tracking replaces the old |
| 267 | in the world. | 240 | IPv4 only version. After some stabilization of the new code the |
| 268 | Who: Jeff Garzik <jeff@garzik.org> | 241 | old one will be removed. |
| 242 | Who: Patrick McHardy <kaber@trash.net> | ||
| 269 | 243 | ||
| 270 | --------------------------- | 244 | --------------------------- |
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..3d7447738958 100644 --- a/Documentation/filesystems/fuse.txt +++ b/Documentation/filesystems/fuse.txt | |||
| @@ -111,7 +111,7 @@ For each connection the following files exist within this directory: | |||
| 111 | 111 | ||
| 112 | 'waiting' | 112 | 'waiting' |
| 113 | 113 | ||
| 114 | The number of requests which are waiting to be transfered to | 114 | The number of requests which are waiting to be transferred to |
| 115 | userspace or being processed by the filesystem daemon. If there is | 115 | userspace or being processed by the filesystem daemon. If there is |
| 116 | no filesystem activity and 'waiting' is non-zero, then the | 116 | no filesystem activity and 'waiting' is non-zero, then the |
| 117 | filesystem is hung or deadlocked. | 117 | filesystem is hung or deadlocked. |
| @@ -136,7 +136,7 @@ following will happen: | |||
| 136 | 136 | ||
| 137 | 2) If the request is not yet sent to userspace AND the signal is not | 137 | 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 | 138 | fatal, then an 'interrupted' flag is set for the request. When |
| 139 | the request has been successfully transfered to userspace and | 139 | the request has been successfully transferred to userspace and |
| 140 | this flag is set, an INTERRUPT request is queued. | 140 | this flag is set, an INTERRUPT request is queued. |
| 141 | 141 | ||
| 142 | 3) If the request is already sent to userspace, then an INTERRUPT | 142 | 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/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/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 67473849f20e..15e4fed127f6 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -557,9 +557,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 557 | floppy= [HW] | 557 | floppy= [HW] |
| 558 | See Documentation/floppy.txt. | 558 | See Documentation/floppy.txt. |
| 559 | 559 | ||
| 560 | ftape= [HW] Floppy Tape subsystem debugging options. | ||
| 561 | See Documentation/ftape.txt. | ||
| 562 | |||
| 563 | gamecon.map[2|3]= | 560 | gamecon.map[2|3]= |
| 564 | [HW,JOY] Multisystem joystick and NES/SNES/PSX pad | 561 | [HW,JOY] Multisystem joystick and NES/SNES/PSX pad |
| 565 | support via parallel port (up to 5 devices per port) | 562 | support via parallel port (up to 5 devices per port) |
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/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 7751704b6db1..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: |
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/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/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.txt b/Documentation/power/swsusp.txt index 9ea2208b43b5..e635e6f1e316 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 |
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index 27b457c09729..4ac2d641fcb6 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
| @@ -33,13 +33,13 @@ | |||
| 33 | - Change version 16 format to always align | 33 | - Change version 16 format to always align |
| 34 | property data to 4 bytes. Since tokens are | 34 | property data to 4 bytes. Since tokens are |
| 35 | already aligned, that means no specific | 35 | already aligned, that means no specific |
| 36 | required alignement between property size | 36 | required alignment between property size |
| 37 | and property data. The old style variable | 37 | and property data. The old style variable |
| 38 | alignment would make it impossible to do | 38 | alignment would make it impossible to do |
| 39 | "simple" insertion of properties using | 39 | "simple" insertion of properties using |
| 40 | memove (thanks Milton for | 40 | memove (thanks Milton for |
| 41 | noticing). Updated kernel patch as well | 41 | noticing). Updated kernel patch as well |
| 42 | - Correct a few more alignement constraints | 42 | - Correct a few more alignment constraints |
| 43 | - Add a chapter about the device-tree | 43 | - Add a chapter about the device-tree |
| 44 | compiler and the textural representation of | 44 | compiler and the textural representation of |
| 45 | the tree that can be "compiled" by dtc. | 45 | the tree that can be "compiled" by dtc. |
| @@ -854,7 +854,7 @@ address which can extend beyond that limit. | |||
| 854 | console device if any. Typically, if you have serial devices on | 854 | 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 | 855 | 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 | 856 | 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 | 857 | 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 | 858 | 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 | 859 | that the kernel tries to find out the default console and has |
| 860 | knowledge of various types like 8250 serial ports. You may want | 860 | knowledge of various types like 8250 serial ports. You may want |
| @@ -1124,7 +1124,7 @@ should have the following properties: | |||
| 1124 | - interrupt-parent : contains the phandle of the interrupt | 1124 | - interrupt-parent : contains the phandle of the interrupt |
| 1125 | controller which handles interrupts for this device | 1125 | controller which handles interrupts for this device |
| 1126 | - interrupts : a list of tuples representing the interrupt | 1126 | - interrupts : a list of tuples representing the interrupt |
| 1127 | number and the interrupt sense and level for each interupt | 1127 | number and the interrupt sense and level for each interrupt |
| 1128 | for this device. | 1128 | for this device. |
| 1129 | 1129 | ||
| 1130 | This information is used by the kernel to build the interrupt table | 1130 | This information is used by the kernel to build the interrupt table |
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/crypto/crypto-API.txt b/Documentation/s390/crypto/crypto-API.txt index 29dee792c887..41a8b07da05a 100644 --- a/Documentation/s390/crypto/crypto-API.txt +++ b/Documentation/s390/crypto/crypto-API.txt | |||
| @@ -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/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/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 3472d9c4ef1b..9fef210ab50a 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
| @@ -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_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/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); |
