diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 23:00:43 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 23:00:43 -0500 |
| commit | 4c9a44aebeaef35570a67aed17b72a2cf8d0b219 (patch) | |
| tree | abb874fe7f50671627b282f6c7fb58db5e75a2e3 | |
| parent | 1f0377ff088ed2971c57debc9b0c3b846ec431fd (diff) | |
| parent | cfde819088422503b5c69e03ab7bb90f87121d4d (diff) | |
Merge branch 'akpm' (Andrew's patch-bomb)
Merge the rest of Andrew's patches for -rc1:
"A bunch of fixes and misc missed-out-on things.
That'll do for -rc1. I still have a batch of IPC patches which still
have a possible bug report which I'm chasing down."
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (25 commits)
keys: use keyring_alloc() to create module signing keyring
keys: fix unreachable code
sendfile: allows bypassing of notifier events
SGI-XP: handle non-fatal traps
fat: fix incorrect function comment
Documentation: ABI: remove testing/sysfs-devices-node
proc: fix inconsistent lock state
linux/kernel.h: fix DIV_ROUND_CLOSEST with unsigned divisors
memcg: don't register hotcpu notifier from ->css_alloc()
checkpatch: warn on uapi #includes that #include <uapi/...
revert "rtc: recycle id when unloading a rtc driver"
mm: clean up transparent hugepage sysfs error messages
hfsplus: add error message for the case of failure of sync fs in delayed_sync_fs() method
hfsplus: rework processing of hfs_btree_write() returned error
hfsplus: rework processing errors in hfsplus_free_extents()
hfsplus: avoid crash on failed block map free
kcmp: include linux/ptrace.h
drivers/rtc/rtc-imxdi.c: must include <linux/spinlock.h>
mm: cma: WARN if freed memory is still in use
exec: do not leave bprm->interp on stack
...
| -rw-r--r-- | Documentation/ABI/testing/sysfs-devices-node | 7 | ||||
| -rw-r--r-- | Documentation/kernel-parameters.txt | 6 | ||||
| -rw-r--r-- | drivers/firmware/dmi_scan.c | 78 | ||||
| -rw-r--r-- | drivers/misc/sgi-xp/xpc_main.c | 34 | ||||
| -rw-r--r-- | drivers/rtc/class.c | 1 | ||||
| -rw-r--r-- | drivers/rtc/rtc-imxdi.c | 1 | ||||
| -rw-r--r-- | fs/binfmt_misc.c | 5 | ||||
| -rw-r--r-- | fs/binfmt_script.c | 4 | ||||
| -rw-r--r-- | fs/exec.c | 15 | ||||
| -rw-r--r-- | fs/fat/dir.c | 5 | ||||
| -rw-r--r-- | fs/fat/inode.c | 2 | ||||
| -rw-r--r-- | fs/fat/misc.c | 4 | ||||
| -rw-r--r-- | fs/hfsplus/bitmap.c | 13 | ||||
| -rw-r--r-- | fs/hfsplus/btree.c | 5 | ||||
| -rw-r--r-- | fs/hfsplus/extents.c | 24 | ||||
| -rw-r--r-- | fs/hfsplus/hfsplus_fs.h | 2 | ||||
| -rw-r--r-- | fs/hfsplus/super.c | 15 | ||||
| -rw-r--r-- | fs/proc/generic.c | 12 | ||||
| -rw-r--r-- | fs/read_write.c | 2 | ||||
| -rw-r--r-- | include/linux/binfmts.h | 1 | ||||
| -rw-r--r-- | include/linux/kernel.h | 6 | ||||
| -rw-r--r-- | kernel/kcmp.c | 1 | ||||
| -rw-r--r-- | kernel/modsign_pubkey.c | 15 | ||||
| -rw-r--r-- | mm/compaction.c | 26 | ||||
| -rw-r--r-- | mm/huge_memory.c | 6 | ||||
| -rw-r--r-- | mm/memcontrol.c | 14 | ||||
| -rw-r--r-- | mm/page-writeback.c | 25 | ||||
| -rw-r--r-- | mm/page_alloc.c | 11 | ||||
| -rwxr-xr-x | scripts/checkpatch.pl | 7 | ||||
| -rw-r--r-- | security/keys/process_keys.c | 2 |
30 files changed, 261 insertions, 88 deletions
diff --git a/Documentation/ABI/testing/sysfs-devices-node b/Documentation/ABI/testing/sysfs-devices-node deleted file mode 100644 index 453a210c3ceb..000000000000 --- a/Documentation/ABI/testing/sysfs-devices-node +++ /dev/null | |||
| @@ -1,7 +0,0 @@ | |||
| 1 | What: /sys/devices/system/node/nodeX/compact | ||
| 2 | Date: February 2010 | ||
| 3 | Contact: Mel Gorman <mel@csn.ul.ie> | ||
| 4 | Description: | ||
| 5 | When this file is written to, all memory within that node | ||
| 6 | will be compacted. When it completes, memory will be freed | ||
| 7 | into blocks which have as many contiguous pages as possible | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index ddd84d627185..363e348bff9b 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -446,12 +446,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
| 446 | possible to determine what the correct size should be. | 446 | possible to determine what the correct size should be. |
| 447 | This option provides an override for these situations. | 447 | This option provides an override for these situations. |
| 448 | 448 | ||
| 449 | capability.disable= | ||
| 450 | [SECURITY] Disable capabilities. This would normally | ||
| 451 | be used only if an alternative security model is to be | ||
| 452 | configured. Potentially dangerous and should only be | ||
| 453 | used if you are entirely sure of the consequences. | ||
| 454 | |||
| 455 | ccw_timeout_log [S390] | 449 | ccw_timeout_log [S390] |
| 456 | See Documentation/s390/CommonIO for details. | 450 | See Documentation/s390/CommonIO for details. |
| 457 | 451 | ||
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index b298158cb922..fd3ae6290d71 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | */ | 16 | */ |
| 17 | static char dmi_empty_string[] = " "; | 17 | static char dmi_empty_string[] = " "; |
| 18 | 18 | ||
| 19 | static u16 __initdata dmi_ver; | ||
| 19 | /* | 20 | /* |
| 20 | * Catch too early calls to dmi_check_system(): | 21 | * Catch too early calls to dmi_check_system(): |
| 21 | */ | 22 | */ |
| @@ -118,12 +119,12 @@ static int __init dmi_walk_early(void (*decode)(const struct dmi_header *, | |||
| 118 | return 0; | 119 | return 0; |
| 119 | } | 120 | } |
| 120 | 121 | ||
| 121 | static int __init dmi_checksum(const u8 *buf) | 122 | static int __init dmi_checksum(const u8 *buf, u8 len) |
| 122 | { | 123 | { |
| 123 | u8 sum = 0; | 124 | u8 sum = 0; |
| 124 | int a; | 125 | int a; |
| 125 | 126 | ||
| 126 | for (a = 0; a < 15; a++) | 127 | for (a = 0; a < len; a++) |
| 127 | sum += buf[a]; | 128 | sum += buf[a]; |
| 128 | 129 | ||
| 129 | return sum == 0; | 130 | return sum == 0; |
| @@ -161,8 +162,10 @@ static void __init dmi_save_uuid(const struct dmi_header *dm, int slot, int inde | |||
| 161 | return; | 162 | return; |
| 162 | 163 | ||
| 163 | for (i = 0; i < 16 && (is_ff || is_00); i++) { | 164 | for (i = 0; i < 16 && (is_ff || is_00); i++) { |
| 164 | if(d[i] != 0x00) is_ff = 0; | 165 | if (d[i] != 0x00) |
| 165 | if(d[i] != 0xFF) is_00 = 0; | 166 | is_00 = 0; |
| 167 | if (d[i] != 0xFF) | ||
| 168 | is_ff = 0; | ||
| 166 | } | 169 | } |
| 167 | 170 | ||
| 168 | if (is_ff || is_00) | 171 | if (is_ff || is_00) |
| @@ -172,7 +175,15 @@ static void __init dmi_save_uuid(const struct dmi_header *dm, int slot, int inde | |||
| 172 | if (!s) | 175 | if (!s) |
| 173 | return; | 176 | return; |
| 174 | 177 | ||
| 175 | sprintf(s, "%pUB", d); | 178 | /* |
| 179 | * As of version 2.6 of the SMBIOS specification, the first 3 fields of | ||
| 180 | * the UUID are supposed to be little-endian encoded. The specification | ||
| 181 | * says that this is the defacto standard. | ||
| 182 | */ | ||
| 183 | if (dmi_ver >= 0x0206) | ||
| 184 | sprintf(s, "%pUL", d); | ||
| 185 | else | ||
| 186 | sprintf(s, "%pUB", d); | ||
| 176 | 187 | ||
| 177 | dmi_ident[slot] = s; | 188 | dmi_ident[slot] = s; |
| 178 | } | 189 | } |
| @@ -404,29 +415,57 @@ static int __init dmi_present(const char __iomem *p) | |||
| 404 | u8 buf[15]; | 415 | u8 buf[15]; |
| 405 | 416 | ||
| 406 | memcpy_fromio(buf, p, 15); | 417 | memcpy_fromio(buf, p, 15); |
| 407 | if ((memcmp(buf, "_DMI_", 5) == 0) && dmi_checksum(buf)) { | 418 | if (dmi_checksum(buf, 15)) { |
| 408 | dmi_num = (buf[13] << 8) | buf[12]; | 419 | dmi_num = (buf[13] << 8) | buf[12]; |
| 409 | dmi_len = (buf[7] << 8) | buf[6]; | 420 | dmi_len = (buf[7] << 8) | buf[6]; |
| 410 | dmi_base = (buf[11] << 24) | (buf[10] << 16) | | 421 | dmi_base = (buf[11] << 24) | (buf[10] << 16) | |
| 411 | (buf[9] << 8) | buf[8]; | 422 | (buf[9] << 8) | buf[8]; |
| 412 | 423 | ||
| 413 | /* | ||
| 414 | * DMI version 0.0 means that the real version is taken from | ||
| 415 | * the SMBIOS version, which we don't know at this point. | ||
| 416 | */ | ||
| 417 | if (buf[14] != 0) | ||
| 418 | printk(KERN_INFO "DMI %d.%d present.\n", | ||
| 419 | buf[14] >> 4, buf[14] & 0xF); | ||
| 420 | else | ||
| 421 | printk(KERN_INFO "DMI present.\n"); | ||
| 422 | if (dmi_walk_early(dmi_decode) == 0) { | 424 | if (dmi_walk_early(dmi_decode) == 0) { |
| 425 | if (dmi_ver) | ||
| 426 | pr_info("SMBIOS %d.%d present.\n", | ||
| 427 | dmi_ver >> 8, dmi_ver & 0xFF); | ||
| 428 | else { | ||
| 429 | dmi_ver = (buf[14] & 0xF0) << 4 | | ||
| 430 | (buf[14] & 0x0F); | ||
| 431 | pr_info("Legacy DMI %d.%d present.\n", | ||
| 432 | dmi_ver >> 8, dmi_ver & 0xFF); | ||
| 433 | } | ||
| 423 | dmi_dump_ids(); | 434 | dmi_dump_ids(); |
| 424 | return 0; | 435 | return 0; |
| 425 | } | 436 | } |
| 426 | } | 437 | } |
| 438 | dmi_ver = 0; | ||
| 427 | return 1; | 439 | return 1; |
| 428 | } | 440 | } |
| 429 | 441 | ||
| 442 | static int __init smbios_present(const char __iomem *p) | ||
| 443 | { | ||
| 444 | u8 buf[32]; | ||
| 445< | |||
