From ba1aedafebcb5cb577c69d412ee3d4de262ccc32 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 1 Oct 2017 16:16:32 +0200 Subject: [PATCH 1/1] mac80211: fix compile error on PowerPC (PPC_85xx) Including linux/interrupt.h in linux/hrtimer.h causes this error message on PowerPC builds on x86, ARM and MIPS it works: CC [M] /backports-4.14-rc2-1/compat/main.o In file included from /backports-4.14-rc2-1/backport-include/linux/printk.h:5:0, from ./include/linux/kernel.h:13, from /backports-4.14-rc2-1/backport-include/linux/kernel.h:3, from ./include/linux/list.h:8, from /backports-4.14-rc2-1/backport-include/linux/list.h:3, from ./include/linux/module.h:9, from /backports-4.14-rc2-1/backport-include/linux/module.h:3, from /backports-4.14-rc2-1/compat/main.c:1: ./include/linux/ratelimit.h: In function 'ratelimit_state_exit': ./include/linux/ratelimit.h:62:11: error: dereferencing pointer to incomplete type 'struct task_struct' current->comm, rs->missed); ^ ./include/linux/printk.h:279:37: note: in definition of macro 'pr_warning' printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ^ ./include/linux/ratelimit.h:61:3: note: in expansion of macro 'pr_warn' pr_warn("%s: %d output lines suppressed due to ratelimiting\n", ^ The backport of the hrtimer_start() functions needs the linux/interrupt.h because some parts are defined there. Fix this by moving the hrtimer_start() backport to the linux/interrupt.h backport header file. Fixes: a8f63a0717f5: ("mac80211: update to backports-4.14-rc2") Signed-off-by: Hauke Mehrtens --- ...ix-compile-error-on-PowerPC-PPC_85xx.patch | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 package/kernel/mac80211/patches/006-header-fix-compile-error-on-PowerPC-PPC_85xx.patch diff --git a/package/kernel/mac80211/patches/006-header-fix-compile-error-on-PowerPC-PPC_85xx.patch b/package/kernel/mac80211/patches/006-header-fix-compile-error-on-PowerPC-PPC_85xx.patch new file mode 100644 index 0000000000..fa35c4b0c7 --- /dev/null +++ b/package/kernel/mac80211/patches/006-header-fix-compile-error-on-PowerPC-PPC_85xx.patch @@ -0,0 +1,81 @@ +From f192535ab136905d87bc75a4e848b66f0aef315e Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 1 Oct 2017 16:05:24 +0200 +Subject: header: fix compile error on PowerPC (PPC_85xx) + +Including linux/interrupt.h in linux/hrtimer.h causes this error message +on PowerPC builds on x86, ARM and MIPS it works: + + CC [M] /backports-4.14-rc2-1/compat/main.o +In file included from /backports-4.14-rc2-1/backport-include/linux/printk.h:5:0, + from ./include/linux/kernel.h:13, + from /backports-4.14-rc2-1/backport-include/linux/kernel.h:3, + from ./include/linux/list.h:8, + from /backports-4.14-rc2-1/backport-include/linux/list.h:3, + from ./include/linux/module.h:9, + from /backports-4.14-rc2-1/backport-include/linux/module.h:3, + from /backports-4.14-rc2-1/compat/main.c:1: +./include/linux/ratelimit.h: In function 'ratelimit_state_exit': +./include/linux/ratelimit.h:62:11: error: dereferencing pointer to incomplete type 'struct task_struct' + current->comm, rs->missed); + ^ +./include/linux/printk.h:279:37: note: in definition of macro 'pr_warning' + printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) + ^ +./include/linux/ratelimit.h:61:3: note: in expansion of macro 'pr_warn' + pr_warn("%s: %d output lines suppressed due to ratelimiting\n", + ^ + +The backport of the hrtimer_start() functions needs the +linux/interrupt.h because some parts are defined there. Fix this by +moving the hrtimer_start() backport to the linux/interrupt.h backport +header file. + +Signed-off-by: Hauke Mehrtens +--- + backport-include/linux/hrtimer.h | 17 ----------------- + backport-include/linux/interrupt.h | 17 ++++++++++++++++- + 2 files changed, 16 insertions(+), 18 deletions(-) + delete mode 100644 backport-include/linux/hrtimer.h + +--- a/backport-include/linux/hrtimer.h ++++ /dev/null +@@ -1,17 +0,0 @@ +-#ifndef _BP_HRTIMER_H +-#define _BP_HRTIMER_H +-#include +-#include_next +-#include +- +-#if LINUX_VERSION_IS_LESS(4,10,0) +-static inline void backport_hrtimer_start(struct hrtimer *timer, s64 time, +- const enum hrtimer_mode mode) +-{ +- ktime_t _time = { .tv64 = time }; +- hrtimer_start(timer, _time, mode); +-} +-#define hrtimer_start LINUX_BACKPORT(hrtimer_start) +-#endif +- +-#endif /* _BP_HRTIMER_H */ +--- a/backport-include/linux/interrupt.h ++++ b/backport-include/linux/interrupt.h +@@ -1,2 +1,17 @@ +-#include ++#ifndef _BP_LINUX_INTERRUPT_H ++#define _BP_LINUX_INTERRUPT_H ++#include + #include_next ++#include ++ ++#if LINUX_VERSION_IS_LESS(4,10,0) ++static inline void backport_hrtimer_start(struct hrtimer *timer, s64 time, ++ const enum hrtimer_mode mode) ++{ ++ ktime_t _time = { .tv64 = time }; ++ hrtimer_start(timer, _time, mode); ++} ++#define hrtimer_start LINUX_BACKPORT(hrtimer_start) ++#endif ++ ++#endif /* _BP_LINUX_INTERRUPT_H */ -- 2.30.2