lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 4 Jul 2019 14:48:27 +0200 From: Robert Richter <rric@...nel.org> To: Peter Zijlstra <peterz@...radead.org> Cc: "Frank Ch. Eigler" <fche@...hat.com>, Mathieu Desnoyers <mathieu.desnoyers@...icios.com>, Jessica Yu <jeyu@...nel.org>, linux-kernel <linux-kernel@...r.kernel.org>, Josh Poimboeuf <jpoimboe@...hat.com>, jikos@...nel.org, mbenes@...e.cz, Petr Mladek <pmladek@...e.com>, Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>, Andrew Morton <akpm@...ux-foundation.org>, rostedt <rostedt@...dmis.org>, Ingo Molnar <mingo@...hat.com>, Martin KaFai Lau <kafai@...com>, Song Liu <songliubraving@...com>, Yonghong Song <yhs@...com>, paulmck <paulmck@...ux.ibm.com>, "Joel Fernandes, Google" <joel@...lfernandes.org>, Ard Biesheuvel <ard.biesheuvel@...aro.org>, Thomas Gleixner <tglx@...utronix.de>, oprofile-list@...ts.sf.net, netdev <netdev@...r.kernel.org>, bpf@...r.kernel.org Subject: Re: [PATCH 2/3] module: Fix up module_notifier return values. On 25.06.19 09:42:14, Peter Zijlstra wrote: > On Mon, Jun 24, 2019 at 04:58:10PM -0400, Frank Ch. Eigler wrote: > > From peterz's comments, the patches, it's not obvious to me how one is > > to choose between 0 (NOTIFY_DONE) and 1 (NOTIFY_OK) in the case of a > > routine success. > > I'm not sure either; what I think I choice was: > > - if I want to completely ignore the callback, use DONE (per the > "Don't care" comment). > > - if we finished the notifier without error, use OK or > notifier_from_errno(0). > > But yes, its a bit of a shit interface. It looks like it was rarely used in earlier kernels as some sort of error detection for the notifier calls, e.g.: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c-int profile_handoff_task(struct task_struct * task) 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c-{ 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c- int ret; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c- read_lock(&handoff_lock); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c- ret = notifier_call_chain(&task_free_notifier, 0, task); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c- read_unlock(&handoff_lock); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c: return (ret == NOTIFY_OK) ? 1 : 0; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2:kernel/profile.c-} So NOTIFY_OK was used to state there is no error, while NOTIFY_DONE says the notifier was executed and there might have been errors. The caller may distinguish the results then. -Robert
Powered by blists - more mailing lists