diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-25 18:38:13 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-25 18:38:13 -0500 |
| commit | d2a0476307e67a6e6a293563a4f4ad4ec79ac0e5 (patch) | |
| tree | 45abc67e451fae6c0c4403014bb1cda4d2a1fe3a | |
| parent | 6dba6ecba7d937e9b04b46f6cdff25e574f64857 (diff) | |
| parent | 61bd0943bc410c9f0daf0965535cb92ce76e1e8a (diff) | |
Merge branch 'akpm' (patches from Andrew Morton)
Merge misc fixes from Andrew Morton.
* emailed patches from Andrew Morton akpm@linux-foundation.org>:
MAINTAINERS: change mailing list address for Altera UART drivers
Makefile: fix build with make 3.80 again
MAINTAINERS: update L: misuses
Makefile: fix extra parenthesis typo when CC_STACKPROTECTOR_REGULAR is enabled
ipc,mqueue: remove limits for the amount of system-wide queues
memcg: change oom_info_lock to mutex
mm, thp: fix infinite loop on memcg OOM
drivers/fmc/fmc-write-eeprom.c: fix decimal permissions
drivers/iommu/omap-iommu-debug.c: fix decimal permissions
mm, hwpoison: release page on PageHWPoison() in __do_fault()
| -rw-r--r-- | MAINTAINERS | 8 | ||||
| -rw-r--r-- | Makefile | 8 | ||||
| -rw-r--r-- | drivers/fmc/fmc-write-eeprom.c | 2 | ||||
| -rw-r--r-- | drivers/iommu/omap-iommu-debug.c | 4 | ||||
| -rw-r--r-- | include/linux/ipc_namespace.h | 2 | ||||
| -rw-r--r-- | ipc/mq_sysctl.c | 18 | ||||
| -rw-r--r-- | ipc/mqueue.c | 6 | ||||
| -rw-r--r-- | mm/huge_memory.c | 9 | ||||
| -rw-r--r-- | mm/memcontrol.c | 6 | ||||
| -rw-r--r-- | mm/memory.c | 15 |
10 files changed, 40 insertions, 38 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 85b3dd8008b7..df8869d49c3f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -538,7 +538,7 @@ F: arch/alpha/ | |||
| 538 | ALTERA UART/JTAG UART SERIAL DRIVERS | 538 | ALTERA UART/JTAG UART SERIAL DRIVERS |
| 539 | M: Tobias Klauser <tklauser@distanz.ch> | 539 | M: Tobias Klauser <tklauser@distanz.ch> |
| 540 | L: linux-serial@vger.kernel.org | 540 | L: linux-serial@vger.kernel.org |
| 541 | L: nios2-dev@sopc.et.ntust.edu.tw (moderated for non-subscribers) | 541 | L: nios2-dev@lists.rocketboards.org (moderated for non-subscribers) |
| 542 | S: Maintained | 542 | S: Maintained |
| 543 | F: drivers/tty/serial/altera_uart.c | 543 | F: drivers/tty/serial/altera_uart.c |
| 544 | F: drivers/tty/serial/altera_jtaguart.c | 544 | F: drivers/tty/serial/altera_jtaguart.c |
| @@ -2611,9 +2611,9 @@ DC395x SCSI driver | |||
| 2611 | M: Oliver Neukum <oliver@neukum.org> | 2611 | M: Oliver Neukum <oliver@neukum.org> |
| 2612 | M: Ali Akcaagac <aliakc@web.de> | 2612 | M: Ali Akcaagac <aliakc@web.de> |
| 2613 | M: Jamie Lenehan <lenehan@twibble.org> | 2613 | M: Jamie Lenehan <lenehan@twibble.org> |
| 2614 | W: http://twibble.org/dist/dc395x/ | ||
| 2615 | L: dc395x@twibble.org | 2614 | L: dc395x@twibble.org |
| 2616 | L: http://lists.twibble.org/mailman/listinfo/dc395x/ | 2615 | W: http://twibble.org/dist/dc395x/ |
| 2616 | W: http://lists.twibble.org/mailman/listinfo/dc395x/ | ||
| 2617 | S: Maintained | 2617 | S: Maintained |
| 2618 | F: Documentation/scsi/dc395x.txt | 2618 | F: Documentation/scsi/dc395x.txt |
| 2619 | F: drivers/scsi/dc395x.* | 2619 | F: drivers/scsi/dc395x.* |
| @@ -8443,8 +8443,8 @@ TARGET SUBSYSTEM | |||
| 8443 | M: Nicholas A. Bellinger <nab@linux-iscsi.org> | 8443 | M: Nicholas A. Bellinger <nab@linux-iscsi.org> |
| 8444 | L: linux-scsi@vger.kernel.org | 8444 | L: linux-scsi@vger.kernel.org |
| 8445 | L: target-devel@vger.kernel.org | 8445 | L: target-devel@vger.kernel.org |
| 8446 | L: http://groups.google.com/group/linux-iscsi-target-dev | ||
| 8447 | W: http://www.linux-iscsi.org | 8446 | W: http://www.linux-iscsi.org |
| 8447 | W: http://groups.google.com/group/linux-iscsi-target-dev | ||
| 8448 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git master | 8448 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git master |
| 8449 | S: Supported | 8449 | S: Supported |
| 8450 | F: drivers/target/ | 8450 | F: drivers/target/ |
| @@ -605,10 +605,11 @@ endif | |||
| 605 | ifdef CONFIG_CC_STACKPROTECTOR_REGULAR | 605 | ifdef CONFIG_CC_STACKPROTECTOR_REGULAR |
| 606 | stackp-flag := -fstack-protector | 606 | stackp-flag := -fstack-protector |
| 607 | ifeq ($(call cc-option, $(stackp-flag)),) | 607 | ifeq ($(call cc-option, $(stackp-flag)),) |
| 608 | $(warning Cannot use CONFIG_CC_STACKPROTECTOR: \ | 608 | $(warning Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: \ |
| 609 | -fstack-protector not supported by compiler)) | 609 | -fstack-protector not supported by compiler) |
| 610 | endif | 610 | endif |
| 611 | else ifdef CONFIG_CC_STACKPROTECTOR_STRONG | 611 | else |
| 612 | ifdef CONFIG_CC_STACKPROTECTOR_STRONG | ||
| 612 | stackp-flag := -fstack-protector-strong | 613 | stackp-flag := -fstack-protector-strong |
| 613 | ifeq ($(call cc-option, $(stackp-flag)),) | 614 | ifeq ($(call cc-option, $(stackp-flag)),) |
| 614 | $(warning Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: \ | 615 | $(warning Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: \ |
| @@ -618,6 +619,7 @@ else | |||
| 618 | # Force off for distro compilers that enable stack protector by default. | 619 | # Force off for distro compilers that enable stack protector by default. |
| 619 | stackp-flag := $(call cc-option, -fno-stack-protector) | 620 | stackp-flag := $(call cc-option, -fno-stack-protector) |
| 620 | endif | 621 | endif |
| 622 | endif | ||
| 621 | KBUILD_CFLAGS += $(stackp-flag) | 623 | KBUILD_CFLAGS += $(stackp-flag) |
| 622 | 624 | ||
| 623 | # This warning generated too much noise in a regular build. | 625 | # This warning generated too much noise in a regular build. |
diff --git a/drivers/fmc/fmc-write-eeprom.c b/drivers/fmc/fmc-write-eeprom.c index ee5b47904130..9bb2cbd5c9f2 100644 --- a/drivers/fmc/fmc-write-eeprom.c +++ b/drivers/fmc/fmc-write-eeprom.c | |||
| @@ -27,7 +27,7 @@ FMC_PARAM_BUSID(fwe_drv); | |||
| 27 | /* The "file=" is like the generic "gateware=" used elsewhere */ | 27 | /* The "file=" is like the generic "gateware=" used elsewhere */ |
| 28 | static char *fwe_file[FMC_MAX_CARDS]; | 28 | static char *fwe_file[FMC_MAX_CARDS]; |
| 29 | static int fwe_file_n; | 29 | static int fwe_file_n; |
| 30 | module_param_array_named(file, fwe_file, charp, &fwe_file_n, 444); | 30 | module_param_array_named(file, fwe_file, charp, &fwe_file_n, 0444); |
| 31 | 31 | ||
| 32 | static int fwe_run_tlv(struct fmc_device *fmc, const struct firmware *fw, | 32 | static int fwe_run_tlv(struct fmc_device *fmc, const struct firmware *fw, |
| 33 | int write) | 33 | int write) |
diff --git a/drivers/iommu/omap-iommu-debug.c b/drivers/iommu/omap-iommu-debug.c index d97fbe4fb9b1..80fffba7f12d 100644 --- a/drivers/iommu/omap-iommu-debug.c +++ b/drivers/iommu/omap-iommu-debug.c | |||
| @@ -354,8 +354,8 @@ DEBUG_FOPS(mem); | |||
| 354 | return -ENOMEM; \ | 354 | return -ENOMEM; \ |
| 355 | } | 355 | } |
| 356 | 356 | ||
| 357 | #define DEBUG_ADD_FILE(name) __DEBUG_ADD_FILE(name, 600) | 357 | #define DEBUG_ADD_FILE(name) __DEBUG_ADD_FILE(name, 0600) |
| 358 | #define DEBUG_ADD_FILE_RO(name) __DEBUG_ADD_FILE(name, 400) | 358 | #define DEBUG_ADD_FILE_RO(name) __DEBUG_ADD_FILE(name, 0400) |
| 359 | 359 | ||
| 360 | static int iommu_debug_register(struct device *dev, void *data) | 360 | static int iommu_debug_register(struct device *dev, void *data) |
| 361 | { | 361 | { |
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index e7831d203737..35e7eca4e33b 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h | |||
| @@ -118,9 +118,7 @@ extern int mq_init_ns(struct ipc_namespace *ns); | |||
| 118 | * the new maximum will handle anyone else. I may have to revisit this | 118 | * the new maximum will handle anyone else. I may have to revisit this |
| 119 | * in the future. | 119 | * in the future. |
| 120 | */ | 120 | */ |
| 121 | #define MIN_QUEUESMAX 1 | ||
| 122 | #define DFLT_QUEUESMAX 256 | 121 | #define DFLT_QUEUESMAX 256 |
| 123 | #define HARD_QUEUESMAX 1024 | ||
| 124 | #define MIN_MSGMAX 1 | 122 | #define MIN_MSGMAX 1 |
| 125 | #define DFLT_MSG 10U | 123 | #define DFLT_MSG 10U |
| 126 | #define DFLT_MSGMAX 10 | 124 | #define DFLT_MSGMAX 10 |
diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c index 383d638340b8..5bb8bfe67149 100644 --- a/ipc/mq_sysctl.c +++ b/ipc/mq_sysctl.c | |||
| @@ -22,6 +22,16 @@ static void *get_mq(ctl_table *table) | |||
| 22 | return which; | 22 | return which; |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | static int proc_mq_dointvec(ctl_table *table, int write, | ||
| 26 | void __user *buffer, size_t *lenp, loff_t *ppos) | ||
| 27 | { | ||
| 28 | struct ctl_table mq_table; | ||
| 29 | memcpy(&mq_table, table, sizeof(mq_table)); | ||
| 30 | mq_table.data = get_mq(table); | ||
| 31 | |||
| 32 | return proc_dointvec(&mq_table, write, buffer, lenp, ppos); | ||
| 33 | } | ||
| 34 | |||
| 25 | static int proc_mq_dointvec_minmax(ctl_table *table, int write, | 35 | static int proc_mq_dointvec_minmax(ctl_table *table, int write, |
| 26 | void __user *buffer, size_t *lenp, loff_t *ppos) | 36 | void __user *buffer, size_t *lenp, loff_t *ppos) |
| 27 | { | 37 | { |
| @@ -33,12 +43,10 @@ static int proc_mq_dointvec_minmax(ctl_table *table, int write, | |||
| 33 | lenp, ppos); | 43 | lenp, ppos); |
| 34 | } | 44 | } |
| 35 | #else | 45 | #else |
| 46 | #define proc_mq_dointvec NULL | ||
| 36 | #define proc_mq_dointvec_minmax NULL | 47 | #define proc_mq_dointvec_minmax NULL |
| 37 | #endif | 48 | #endif |
| 38 | 49 | ||
| 39 | static int msg_queues_limit_min = MIN_QUEUESMAX; | ||
| 40 | static int msg_queues_limit_max = HARD_QUEUESMAX; | ||
| 41 | |||
| 42 | static int msg_max_limit_min = MIN_MSGMAX; | 50 | static int msg_max_limit_min = MIN_MSGMAX; |
| 43 | static int msg_max_limit_max = HARD_MSGMAX; | 51 | static int msg_max_limit_max = HARD_MSGMAX; |
| 44 | 52 | ||
| @@ -51,9 +59,7 @@ static ctl_table mq_sysctls[] = { | |||
| 51 | .data = &init_ipc_ns.mq_queues_max, | 59 | .data = &init_ipc_ns.mq_queues_max, |
| 52 | .maxlen = sizeof(int), | 60 | .maxlen = sizeof(int), |
| 53 | .mode = 0644, | 61 | .mode = 0644, |
| 54 | .proc_handler = proc_mq_dointvec_minmax, | 62 | .proc_handler = proc_mq_dointvec, |
| 55 | .extra1 = &msg_queues_limit_min, | ||
| 56 | .extra2 = &msg_queues_limit_max, | ||
| 57 | }, | 63 | }, |
| 58 | { | 64 | { |
| 59 | .procname = "msg_max", | 65 | .procname = "msg_max", |
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index ccf1f9fd263a..c3b31179122c 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
| @@ -433,9 +433,9 @@ static int mqueue_create(struct inode *dir, struct dentry *dentry, | |||
| 433 | error = -EACCES; | 433 | error = -EACCES; |
| 434 | goto out_unlock; | 434 | goto out_unlock; |
| 435 | } | 435 | } |
| 436 | if (ipc_ns->mq_queues_count >= HARD_QUEUESMAX || | 436 | |
| 437 | (ipc_ns->mq_queues_count >= ipc_ns->mq_queues_max && | 437 | if (ipc_ns->mq_queues_count >= ipc_ns->mq_queues_max && |
| 438 | !capable(CAP_SYS_RESOURCE))) { | 438 | !capable(CAP_SYS_RESOURCE)) { |
| 439 | error = -ENOSPC; | 439 | error = -ENOSPC; |
| 440 | goto out_unlock; | 440 | goto out_unlock; |
| 441 | } | ||
