diff options
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/Changes | 10 | ||||
| -rw-r--r-- | Documentation/SubmittingPatches | 86 | ||||
| -rw-r--r-- | Documentation/keys.txt | 74 | ||||
| -rw-r--r-- | Documentation/networking/ip-sysctl.txt | 10 |
4 files changed, 157 insertions, 23 deletions
diff --git a/Documentation/Changes b/Documentation/Changes index 5eaab0441d76..27232be26e1a 100644 --- a/Documentation/Changes +++ b/Documentation/Changes | |||
| @@ -237,6 +237,12 @@ udev | |||
| 237 | udev is a userspace application for populating /dev dynamically with | 237 | udev is a userspace application for populating /dev dynamically with |
| 238 | only entries for devices actually present. udev replaces devfs. | 238 | only entries for devices actually present. udev replaces devfs. |
| 239 | 239 | ||
| 240 | FUSE | ||
| 241 | ---- | ||
| 242 | |||
| 243 | Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount | ||
| 244 | options 'direct_io' and 'kernel_cache' won't work. | ||
| 245 | |||
| 240 | Networking | 246 | Networking |
| 241 | ========== | 247 | ========== |
| 242 | 248 | ||
| @@ -390,6 +396,10 @@ udev | |||
| 390 | ---- | 396 | ---- |
| 391 | o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html> | 397 | o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html> |
| 392 | 398 | ||
| 399 | FUSE | ||
| 400 | ---- | ||
| 401 | o <http://sourceforge.net/projects/fuse> | ||
| 402 | |||
| 393 | Networking | 403 | Networking |
| 394 | ********** | 404 | ********** |
| 395 | 405 | ||
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index 7f43b040311e..237d54c44bc5 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches | |||
| @@ -301,8 +301,84 @@ now, but you can do this to mark internal company procedures or just | |||
| 301 | point out some special detail about the sign-off. | 301 | point out some special detail about the sign-off. |
| 302 | 302 | ||
| 303 | 303 | ||
| 304 | 12) The canonical patch format | ||
| 304 | 305 | ||
| 305 | 12) More references for submitting patches | 306 | The canonical patch subject line is: |
| 307 | |||
| 308 | Subject: [PATCH 001/123] subsystem: summary phrase | ||
| 309 | |||
| 310 | The canonical patch message body contains the following: | ||
| 311 | |||
| 312 | - A "from" line specifying the patch author. | ||
| 313 | |||
| 314 | - An empty line. | ||
| 315 | |||
| 316 | - The body of the explanation, which will be copied to the | ||
| 317 | permanent changelog to describe this patch. | ||
| 318 | |||
| 319 | - The "Signed-off-by:" lines, described above, which will | ||
| 320 | also go in the changelog. | ||
| 321 | |||
| 322 | - A marker line containing simply "---". | ||
| 323 | |||
| 324 | - Any additional comments not suitable for the changelog. | ||
| 325 | |||
| 326 | - The actual patch (diff output). | ||
| 327 | |||
| 328 | The Subject line format makes it very easy to sort the emails | ||
| 329 | alphabetically by subject line - pretty much any email reader will | ||
| 330 | support that - since because the sequence number is zero-padded, | ||
| 331 | the numerical and alphabetic sort is the same. | ||
| 332 | |||
| 333 | The "subsystem" in the email's Subject should identify which | ||
| 334 | area or subsystem of the kernel is being patched. | ||
| 335 | |||
| 336 | The "summary phrase" in the email's Subject should concisely | ||
| 337 | describe the patch which that email contains. The "summary | ||
| 338 | phrase" should not be a filename. Do not use the same "summary | ||
| 339 | phrase" for every patch in a whole patch series. | ||
| 340 | |||
| 341 | Bear in mind that the "summary phrase" of your email becomes | ||
| 342 | a globally-unique identifier for that patch. It propagates | ||
| 343 | all the way into the git changelog. The "summary phrase" may | ||
| 344 | later be used in developer discussions which refer to the patch. | ||
| 345 | People will want to google for the "summary phrase" to read | ||
| 346 | discussion regarding that patch. | ||
| 347 | |||
| 348 | A couple of example Subjects: | ||
| 349 | |||
| 350 | Subject: [patch 2/5] ext2: improve scalability of bitmap searching | ||
| 351 | Subject: [PATCHv2 001/207] x86: fix eflags tracking | ||
| 352 | |||
| 353 | The "from" line must be the very first line in the message body, | ||
| 354 | and has the form: | ||
| 355 | |||
| 356 | From: Original Author <author@example.com> | ||
| 357 | |||
| 358 | The "from" line specifies who will be credited as the author of the | ||
| 359 | patch in the permanent changelog. If the "from" line is missing, | ||
| 360 | then the "From:" line from the email header will be used to determine | ||
| 361 | the patch author in the changelog. | ||
| 362 | |||
| 363 | The explanation body will be committed to the permanent source | ||
| 364 | changelog, so should make sense to a competent reader who has long | ||
| 365 | since forgotten the immediate details of the discussion that might | ||
| 366 | have led to this patch. | ||
| 367 | |||
| 368 | The "---" marker line serves the essential purpose of marking for patch | ||
| 369 | handling tools where the changelog message ends. | ||
| 370 | |||
| 371 | One good use for the additional comments after the "---" marker is for | ||
| 372 | a diffstat, to show what files have changed, and the number of inserted | ||
| 373 | and deleted lines per file. A diffstat is especially useful on bigger | ||
| 374 | patches. Other comments relevant only to the moment or the maintainer, | ||
| 375 | not suitable for the permanent changelog, should also go here. | ||
| 376 | |||
| 377 | See more details on the proper patch format in the following | ||
| 378 | references. | ||
| 379 | |||
| 380 | |||
| 381 | 13) More references for submitting patches | ||
| 306 | 382 | ||
| 307 | Andrew Morton, "The perfect patch" (tpp). | 383 | Andrew Morton, "The perfect patch" (tpp). |
| 308 | <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt> | 384 | <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt> |
| @@ -310,6 +386,14 @@ Andrew Morton, "The perfect patch" (tpp). | |||
| 310 | Jeff Garzik, "Linux kernel patch submission format." | 386 | Jeff Garzik, "Linux kernel patch submission format." |
| 311 | <http://linux.yyz.us/patch-format.html> | 387 | <http://linux.yyz.us/patch-format.html> |
| 312 | 388 | ||
| 389 | Greg KH, "How to piss off a kernel subsystem maintainer" | ||
| 390 | <http://www.kroah.com/log/2005/03/31/> | ||
| 391 | |||
| 392 | Kernel Documentation/CodingStyle | ||
| 393 | <http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle> | ||
| 394 | |||
| 395 | Linus Torvald's mail on the canonical patch format: | ||
| 396 | <http://lkml.org/lkml/2005/4/7/183> | ||
| 313 | 397 | ||
| 314 | 398 | ||
| 315 | ----------------------------------- | 399 | ----------------------------------- |
diff --git a/Documentation/keys.txt b/Documentation/keys.txt index 0321ded4b9ae..b22e7c8d059a 100644 --- a/Documentation/keys.txt +++ b/Documentation/keys.txt | |||
| @@ -195,8 +195,8 @@ KEY ACCESS PERMISSIONS | |||
| 195 | ====================== | 195 | ====================== |
| 196 | 196 | ||
| 197 | Keys have an owner user ID, a group access ID, and a permissions mask. The mask | 197 | Keys have an owner user ID, a group access ID, and a permissions mask. The mask |
| 198 | has up to eight bits each for user, group and other access. Only five of each | 198 | has up to eight bits each for possessor, user, group and other access. Only |
| 199 | set of eight bits are defined. These permissions granted are: | 199 | five of each set of eight bits are defined. These permissions granted are: |
| 200 | 200 | ||
| 201 | (*) View | 201 | (*) View |
| 202 | 202 | ||
| @@ -241,16 +241,16 @@ about the status of the key service: | |||
| 241 | type, description and permissions. The payload of the key is not available | 241 | type, description and permissions. The payload of the key is not available |
| 242 | this way: | 242 | this way: |
| 243 | 243 | ||
| 244 | SERIAL FLAGS USAGE EXPY PERM UID GID TYPE DESCRIPTION: SUMMARY | 244 | SERIAL FLAGS USAGE EXPY PERM UID GID TYPE DESCRIPTION: SUMMARY |
| 245 | 00000001 I----- 39 perm 1f0000 0 0 keyring _uid_ses.0: 1/4 | 245 | 00000001 I----- 39 perm 1f1f0000 0 0 keyring _uid_ses.0: 1/4 |
| 246 | 00000002 I----- 2 perm 1f0000 0 0 keyring _uid.0: empty | 246 | 00000002 I----- 2 perm 1f1f0000 0 0 keyring _uid.0: empty |
| 247 | 00000007 I----- 1 perm 1f0000 0 0 keyring _pid.1: empty | 247 | 00000007 I----- 1 perm 1f1f0000 0 0 keyring _pid.1: empty |
| 248 | 0000018d I----- 1 perm 1f0000 0 0 keyring _pid.412: empty | 248 | 0000018d I----- 1 perm 1f1f0000 0 0 keyring _pid.412: empty |
| 249 | 000004d2 I--Q-- 1 perm 1f0000 32 -1 keyring _uid.32: 1/4 | 249 | 000004d2 I--Q-- 1 perm 1f1f0000 32 -1 keyring _uid.32: 1/4 |
| 250 | 000004d3 I--Q-- 3 perm 1f0000 32 -1 keyring _uid_ses.32: empty | 250 | 000004d3 I--Q-- 3 perm 1f1f0000 32 -1 keyring _uid_ses.32: empty |
| 251 | 00000892 I--QU- 1 perm 1f0000 0 0 user metal:copper: 0 | 251 | 00000892 I--QU- 1 perm 1f000000 0 0 user metal:copper: 0 |
| 252 | 00000893 I--Q-N 1 35s 1f0000 0 0 user metal:silver: 0 | 252 | 00000893 I--Q-N 1 35s 1f1f0000 0 0 user metal:silver: 0 |
| 253 | 00000894 I--Q-- 1 10h 1f0000 0 0 user metal:gold: 0 | 253 | 00000894 I--Q-- 1 10h 001f0000 0 0 user metal:gold: 0 |
| 254 | 254 | ||
| 255 | The flags are: | 255 | The flags are: |
| 256 | 256 | ||
| @@ -637,6 +637,34 @@ call, and the key released upon close. How to deal with conflicting keys due to | |||
| 637 | two different users opening the same file is left to the filesystem author to | 637 | two different users opening the same file is left to the filesystem author to |
| 638 | solve. | 638 | solve. |
| 639 | 639 | ||
| 640 | Note that there are two different types of pointers to keys that may be | ||
| 641 | encountered: | ||
| 642 | |||
| 643 | (*) struct key * | ||
| 644 | |||
| 645 | This simply points to the key structure itself. Key structures will be at | ||
| 646 | least four-byte aligned. | ||
| 647 | |||
| 648 | (*) key_ref_t | ||
| 649 | |||
| 650 | This is equivalent to a struct key *, but the least significant bit is set | ||
| 651 | if the caller "possesses" the key. By "possession" it is meant that the | ||
| 652 | calling processes has a searchable link to the key from one of its | ||
| 653 | keyrings. There are three functions for dealing with these: | ||
| 654 | |||
| 655 | key_ref_t make_key_ref(const struct key *key, | ||
| 656 | unsigned long possession); | ||
| 657 | |||
| 658 | struct key *key_ref_to_ptr(const key_ref_t key_ref); | ||
| 659 | |||
| 660 | unsigned long is_key_possessed(const key_ref_t key_ref); | ||
| 661 | |||
| 662 | The first function constructs a key reference from a key pointer and | ||
| 663 | possession information (which must be 0 or 1 and not any other value). | ||
| 664 | |||
| 665 | The second function retrieves the key pointer from a reference and the | ||
| 666 | third retrieves the possession flag. | ||
| 667 | |||
| 640 | When accessing a key's payload contents, certain precautions must be taken to | 668 | When accessing a key's payload contents, certain precautions must be taken to |
| 641 | prevent access vs modification races. See the section "Notes on accessing | 669 | prevent access vs modification races. See the section "Notes on accessing |
| 642 | payload contents" for more information. | 670 | payload contents" for more information. |
| @@ -665,7 +693,11 @@ payload contents" for more information. | |||
| 665 | 693 | ||
| 666 | void key_put(struct key *key); | 694 | void key_put(struct key *key); |
| 667 | 695 | ||
| 668 | This can be called from interrupt context. If CONFIG_KEYS is not set then | 696 | Or: |
| 697 | |||
| 698 | void key_ref_put(key_ref_t key_ref); | ||
| 699 | |||
| 700 | These can be called from interrupt context. If CONFIG_KEYS is not set then | ||
| 669 | the argument will not be parsed. | 701 | the argument will not be parsed. |
| 670 | 702 | ||
| 671 | 703 | ||
| @@ -689,13 +721,17 @@ payload contents" for more information. | |||
| 689 | 721 | ||
| 690 | (*) If a keyring was found in the search, this can be further searched by: | 722 | (*) If a keyring was found in the search, this can be further searched by: |
| 691 | 723 | ||
| 692 | struct key *keyring_search(struct key *keyring, | 724 | key_ref_t keyring_search(key_ref_t keyring_ref, |
| 693 | const struct key_type *type, | 725 | const struct key_type *type, |
| 694 | const char *description) | 726 | const char *description) |
| 695 | 727 | ||
| 696 | This searches the keyring tree specified for a matching key. Error ENOKEY | 728 | This searches the keyring tree specified for a matching key. Error ENOKEY |
| 697 | is returned upon failure. If successful, the returned key will need to be | 729 | is returned upon failure (use IS_ERR/PTR_ERR to determine). If successful, |
| 698 | released. | 730 | the returned key will need to be released. |
| 731 | |||
| 732 | The possession attribute from the keyring reference is used to control | ||
| 733 | access through the permissions mask and is propagated to the returned key | ||
| 734 | reference pointer if successful. | ||
| 699 | 735 | ||
| 700 | 736 | ||
| 701 | (*) To check the validity of a key, this function can be called: | 737 | (*) To check the validity of a key, this function can be called: |
| @@ -732,7 +768,7 @@ More complex payload contents must be allocated and a pointer to them set in | |||
| 732 | key->payload.data. One of the following ways must be selected to access the | 768 | key->payload.data. One of the following ways must be selected to access the |
| 733 | data: | 769 | data: |
| 734 | 770 | ||
| 735 | (1) Unmodifyable key type. | 771 | (1) Unmodifiable key type. |
| 736 | 772 | ||
| 737 | If the key type does not have a modify method, then the key's payload can | 773 | If the key type does not have a modify method, then the key's payload can |
| 738 | be accessed without any form of locking, provided that it's known to be | 774 | be accessed without any form of locking, provided that it's known to be |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index ab65714d95fc..b433c8a27e2d 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
| @@ -355,10 +355,14 @@ ip_dynaddr - BOOLEAN | |||
| 355 | Default: 0 | 355 | Default: 0 |
| 356 | 356 | ||
| 357 | icmp_echo_ignore_all - BOOLEAN | 357 | icmp_echo_ignore_all - BOOLEAN |
| 358 | If set non-zero, then the kernel will ignore all ICMP ECHO | ||
| 359 | requests sent to it. | ||
| 360 | Default: 0 | ||
| 361 | |||
| 358 | icmp_echo_ignore_broadcasts - BOOLEAN | 362 | icmp_echo_ignore_broadcasts - BOOLEAN |
| 359 | If either is set to true, then the kernel will ignore either all | 363 | If set non-zero, then the kernel will ignore all ICMP ECHO and |
| 360 | ICMP ECHO requests sent to it or just those to broadcast/multicast | 364 | TIMESTAMP requests sent to it via broadcast/multicast. |
| 361 | addresses, respectively. | 365 | Default: 1 |
| 362 | 366 | ||
| 363 | icmp_ratelimit - INTEGER | 367 | icmp_ratelimit - INTEGER |
| 364 | Limit the maximal rates for sending ICMP packets whose type matches | 368 | Limit the maximal rates for sending ICMP packets whose type matches |
