diff options
Diffstat (limited to 'target/linux/generic')
-rw-r--r-- | target/linux/generic/patches-4.1/130-MIPS-kernel-fix-sched_getaffinity-with-MT-FPAFF-enab.patch | 35 | ||||
-rw-r--r-- | target/linux/generic/patches-4.1/131-MIPS-export-get_c0_perfcount_int.patch | 40 |
2 files changed, 20 insertions, 55 deletions
diff --git a/target/linux/generic/patches-4.1/130-MIPS-kernel-fix-sched_getaffinity-with-MT-FPAFF-enab.patch b/target/linux/generic/patches-4.1/130-MIPS-kernel-fix-sched_getaffinity-with-MT-FPAFF-enab.patch deleted file mode 100644 index a7bfef347c..0000000000 --- a/target/linux/generic/patches-4.1/130-MIPS-kernel-fix-sched_getaffinity-with-MT-FPAFF-enab.patch +++ /dev/null @@ -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); diff --git a/target/linux/generic/patches-4.1/131-MIPS-export-get_c0_perfcount_int.patch b/target/linux/generic/patches-4.1/131-MIPS-export-get_c0_perfcount_int.patch index 3a3e89833a..bee7673120 100644 --- a/target/linux/generic/patches-4.1/131-MIPS-export-get_c0_perfcount_int.patch +++ b/target/linux/generic/patches-4.1/131-MIPS-export-get_c0_perfcount_int.patch @@ -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; +@@ -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); - unsigned int get_c0_compare_int(void) + void __init plat_time_init(void) { --- a/arch/mips/pistachio/time.c +++ b/arch/mips/pistachio/time.c -@@ -26,6 +26,7 @@ int get_c0_perfcount_int(void) +@@ -21,6 +21,7 @@ unsigned int get_c0_compare_int(void) { - return gic_get_c0_perfcount_int(); + return gic_get_c0_compare_int(); } +EXPORT_SYMBOL_GPL(get_c0_perfcount_int); - void __init plat_time_init(void) + int get_c0_perfcount_int(void) { --- a/arch/mips/ralink/irq.c +++ b/arch/mips/ralink/irq.c -@@ -89,6 +89,7 @@ int get_c0_perfcount_int(void) +@@ -95,6 +95,7 @@ unsigned int get_c0_compare_int(void) { - return rt_perfcount_irq; + return CP0_LEGACY_COMPARE_IRQ; } +EXPORT_SYMBOL_GPL(get_c0_perfcount_int); - unsigned int get_c0_compare_int(void) + static void ralink_intc_irq_handler(unsigned int irq, struct irq_desc *desc) { |