Hi Borislav,
On Mon, Nov 8, 2021 at 3:21 PM Borislav Petkov bp@alien8.de wrote:
On Mon, Nov 08, 2021 at 03:07:03PM +0100, Geert Uytterhoeven wrote:
I think the addition of __must_check is overkill, leading to the addition of useless error checks and message printing.
See the WARN in notifier_chain_register() - it will already do "message printing".
I mean the addition of useless error checks and message printing _to the callers_.
Many callers call this where it cannot fail, and where nothing can be done in the very unlikely event that the call would ever start to fail.
This is an attempt to remove this WARN() hack in notifier_chain_register() and have the function return a proper error value instead of this "Currently always returns zero." which is bad design.
Some of the registration functions around the tree check that retval and some don't. So if "it cannot fail" those registration either should not return a value or callers should check that return value - what we have now doesn't make a whole lot of sense.
With __must_check callers are required to check, even if they know it cannot fail.
Oh, and then fixing this should avoid stuff like:
if (notifier_registered == false) {
mce_register_decode_chain(&amdgpu_bad_page_nb);
notifier_registered = true;
}
from propagating in the code.
That's unrelated to the addition of __must_check.
I'm not against returning proper errors codes. I'm against forcing callers to check things that cannot fail and to add individual error printing to each and every caller.
Note that in other areas, we are moving in the other direction, to a centralized printing of error messages, cfr. e.g. commit 7723f4c5ecdb8d83 ("driver core: platform: Add an error message to platform_get_irq*()").
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds