I wish this weren't marked with a warning, what spits this out,
sparse?
I know the kernel is written in C and not C++, but even Stroustrup
mentions this case explicitly in his book:
A void function cannot return a value. However, a call of a
void function doesn't yield a value, so a void function can
use a call of a void function as the expression in a return
statement.
And I see no reason why there's anything wrong with this construct.
--