kernel: update 4.1 to 4.1.6

Changelog:
* https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.6

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46713
This commit is contained in:
Jonas Gorski
2015-08-23 18:06:11 +00:00
parent 2190f090bb
commit 2d379e796f
11 changed files with 51 additions and 176 deletions

View File

@@ -1,35 +0,0 @@
From: Felix Fietkau <nbd@openwrt.org>
Date: Sun, 19 Jul 2015 00:21:57 +0200
Subject: [PATCH] MIPS: kernel: fix sched_getaffinity with MT FPAFF enabled
p->thread.user_cpus_allowed is zero-initialized and is only filled on
the first sched_setaffinity call.
To avoid adding overhead in the task initialization codepath, simply OR
the returned mask in sched_getaffinity with p->cpus_allowed.
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
--- a/arch/mips/kernel/mips-mt-fpaff.c
+++ b/arch/mips/kernel/mips-mt-fpaff.c
@@ -154,7 +154,7 @@ asmlinkage long mipsmt_sys_sched_getaffi
unsigned long __user *user_mask_ptr)
{
unsigned int real_len;
- cpumask_t mask;
+ cpumask_t allowed, mask;
int retval;
struct task_struct *p;
@@ -173,7 +173,8 @@ asmlinkage long mipsmt_sys_sched_getaffi
if (retval)
goto out_unlock;
- cpumask_and(&mask, &p->thread.user_cpus_allowed, cpu_possible_mask);
+ cpumask_or(&allowed, &p->thread.user_cpus_allowed, &p->cpus_allowed);
+ cpumask_and(&mask, &allowed, cpu_active_mask);
out_unlock:
read_unlock(&tasklist_lock);

View File

@@ -13,61 +13,61 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
--- a/arch/mips/ath79/setup.c
+++ b/arch/mips/ath79/setup.c
@@ -186,6 +186,7 @@ int get_c0_perfcount_int(void)
@@ -181,6 +181,7 @@ const char *get_system_type(void)
{
return ATH79_MISC_IRQ(5);
return ath79_sys_type;
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
unsigned int get_c0_compare_int(void)
int get_c0_perfcount_int(void)
{
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -466,6 +466,7 @@ int get_c0_perfcount_int(void)
{
return ltq_perfcount_irq;
@@ -461,6 +461,7 @@ int __init icu_of_init(struct device_nod
return 0;
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
unsigned int get_c0_compare_int(void)
int get_c0_perfcount_int(void)
{
--- a/arch/mips/mti-malta/malta-time.c
+++ b/arch/mips/mti-malta/malta-time.c
@@ -148,6 +148,7 @@ int get_c0_perfcount_int(void)
@@ -163,6 +163,7 @@ unsigned int get_c0_compare_int(void)
return mips_cpu_perf_irq;
return mips_cpu_timer_irq;
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
unsigned int get_c0_compare_int(void)
static void __init init_rtc(void)
{
--- a/arch/mips/mti-sead3/sead3-time.c
+++ b/arch/mips/mti-sead3/sead3-time.c
@@ -77,6 +77,7 @@ int get_c0_perfcount_int(void)
return MIPS_CPU_IRQ_BASE + cp0_perfcount_irq;
return -1;
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
unsigned int get_c0_compare_int(void)
{
--- a/arch/mips/pistachio/time.c
+++ b/arch/mips/pistachio/time.c
@@ -26,6 +26,7 @@ int get_c0_perfcount_int(void)
{
return gic_get_c0_perfcount_int();
@@ -85,6 +85,7 @@ unsigned int get_c0_compare_int(void)
return gic_get_c0_compare_int();
return MIPS_CPU_IRQ_BASE + cp0_compare_irq;
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
void __init plat_time_init(void)
{
--- a/arch/mips/ralink/irq.c
+++ b/arch/mips/ralink/irq.c
@@ -89,6 +89,7 @@ int get_c0_perfcount_int(void)
--- a/arch/mips/pistachio/time.c
+++ b/arch/mips/pistachio/time.c
@@ -21,6 +21,7 @@ unsigned int get_c0_compare_int(void)
{
return rt_perfcount_irq;
return gic_get_c0_compare_int();
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
unsigned int get_c0_compare_int(void)
int get_c0_perfcount_int(void)
{
--- a/arch/mips/ralink/irq.c
+++ b/arch/mips/ralink/irq.c
@@ -95,6 +95,7 @@ unsigned int get_c0_compare_int(void)
{
return CP0_LEGACY_COMPARE_IRQ;
}
+EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
static void ralink_intc_irq_handler(unsigned int irq, struct irq_desc *desc)
{