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:
@@ -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);
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user