aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-20 23:00:43 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-20 23:00:43 -0500
commit4c9a44aebeaef35570a67aed17b72a2cf8d0b219 (patch)
treeabb874fe7f50671627b282f6c7fb58db5e75a2e3
parent1f0377ff088ed2971c57debc9b0c3b846ec431fd (diff)
parentcfde819088422503b5c69e03ab7bb90f87121d4d (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-node7
-rw-r--r--Documentation/kernel-parameters.txt6
-rw-r--r--drivers/firmware/dmi_scan.c78
-rw-r--r--drivers/misc/sgi-xp/xpc_main.c34
-rw-r--r--drivers/rtc/class.c1
-rw-r--r--drivers/rtc/rtc-imxdi.c1
-rw-r--r--fs/binfmt_misc.c5
-rw-r--r--fs/binfmt_script.c4
-rw-r--r--fs/exec.c15
-rw-r--r--fs/fat/dir.c5
-rw-r--r--fs/fat/inode.c2
-rw-r--r--fs/fat/misc.c4
-rw-r--r--fs/hfsplus/bitmap.c13
-rw-r--r--fs/hfsplus/btree.c5
-rw-r--r--fs/hfsplus/extents.c24
-rw-r--r--fs/hfsplus/hfsplus_fs.h2
-rw-r--r--fs/hfsplus/super.c15
-rw-r--r--fs/proc/generic.c12
-rw-r--r--fs/read_write.c2
-rw-r--r--include/linux/binfmts.h1
-rw-r--r--include/linux/kernel.h6
-rw-r--r--kernel/kcmp.c1
-rw-r--r--kernel/modsign_pubkey.c15
-rw-r--r--mm/compaction.c26
-rw-r--r--mm/huge_memory.c6
-rw-r--r--mm/memcontrol.c14
-rw-r--r--mm/page-writeback.c25
-rw-r--r--mm/page_alloc.c11
-rwxr-xr-xscripts/checkpatch.pl7
-rw-r--r--security/keys/process_keys.c2
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 @@
1What: /sys/devices/system/node/nodeX/compact
2Date: February 2010
3Contact: Mel Gorman <mel@csn.ul.ie>
4Description:
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 */
17static char dmi_empty_string[] = " "; 17static char dmi_empty_string[] = " ";
18 18
19static 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
121static int __init dmi_checksum(const u8 *buf) 122static 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
442static int __init smbios_present(const char __iomem *p)
443{
444 u8 buf[32];
445<