Re: [PATCH] lib: test_user_copy: style cleanup

From: Nathan Chancellor
Date: Sun Oct 06 2019 - 01:02:16 EST


On Sun, Oct 06, 2019 at 10:30:28AM +1100, Aleksa Sarai wrote:
> While writing the tests for copy_struct_from_user(), I used a construct
> that Linus doesn't appear to be too fond of:
>
> On 2019-10-04, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> > Hmm. That code is ugly, both before and after the fix.
> >
> > This just doesn't make sense for so many reasons:
> >
> > if ((ret |= test(umem_src == NULL, "kmalloc failed")))
> >
> > where the insanity comes from
> >
> > - why "|=" when you know that "ret" was zero before (and it had to
> > be, for the test to make sense)
> >
> > - why do this as a single line anyway?
> >
> > - don't do the stupid "double parenthesis" to hide a warning. Make it
> > use an actual comparison if you add a layer of parentheses.
>
> So instead, use a bog-standard check that isn't nearly as ugly.
>
> Fixes: 341115822f88 ("usercopy: Add parentheses around assignment in test_copy_struct_from_user")
> Fixes: f5a1a536fa14 ("lib: introduce copy_struct_from_user() helper")
> Signed-off-by: Aleksa Sarai <cyphar@xxxxxxxxxx>

I assume the comment diff is a line length/alignment thing? The commit
message does not mention it.

Regardless, thank you for providing the fix that I should have.

Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx>