summaryrefslogtreecommitdiff
path: root/arch/parisc
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2021-10-17 18:53:31 +0200
committerHelge Deller <deller@gmx.de>2021-11-01 07:36:00 +0100
commit3759778e6b8c0d547d77f681a7779edccdf1710a (patch)
tree74ee5e8b5ea37fa4f2a035aac86d031dbd58f640 /arch/parisc
parent0760a9157bc93f660256f7014b936c584f3f8fdd (diff)
parisc: enhance warning regarding usage of O_NONBLOCK
Instead of showing only the very first application which needs recompile, show all of them, but print them only once. Includes typo fix noticed by Colin Ian King. Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/include/asm/thread_info.h1
-rw-r--r--arch/parisc/kernel/sys_parisc.c10
2 files changed, 7 insertions, 4 deletions
diff --git a/arch/parisc/include/asm/thread_info.h b/arch/parisc/include/asm/thread_info.h
index 444588443c04..75657c2c54e1 100644
--- a/arch/parisc/include/asm/thread_info.h
+++ b/arch/parisc/include/asm/thread_info.h
@@ -48,6 +48,7 @@ struct thread_info {
#define TIF_BLOCKSTEP 10 /* branch stepping? */
#define TIF_SECCOMP 11 /* secure computing */
#define TIF_SYSCALL_TRACEPOINT 12 /* syscall tracepoint instrumentation */
+#define TIF_NONBLOCK_WARNING 13 /* warned about wrong O_NONBLOCK usage */
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
index 5f12537318ab..2b34294517a1 100644
--- a/arch/parisc/kernel/sys_parisc.c
+++ b/arch/parisc/kernel/sys_parisc.c
@@ -409,10 +409,12 @@ long parisc_personality(unsigned long personality)
static int FIX_O_NONBLOCK(int flags)
{
- if (flags & O_NONBLOCK_MASK_OUT) {
- struct task_struct *tsk = current;
- pr_warn_once("%s(%d) uses a deprecated O_NONBLOCK value.\n",
- tsk->comm, tsk->pid);
+ if ((flags & O_NONBLOCK_MASK_OUT) &&
+ !test_thread_flag(TIF_NONBLOCK_WARNING)) {
+ set_thread_flag(TIF_NONBLOCK_WARNING);
+ pr_warn("%s(%d) uses a deprecated O_NONBLOCK value."
+ " Please recompile with newer glibc.\n",
+ current->comm, current->pid);
}
return flags & ~O_NONBLOCK_MASK_OUT;
}