On 3/12/20 9:04 PM, Jarkko Sakkinen wrote: > On Sun, Mar 08, 2020 at 01:04:09PM -0400, Waiman Long wrote: >> + /* >> + * Read methods will just return the required length >> + * without any copying if the provided length isn't big >> + * enough. >> + */ >> + if ((ret > 0) && (ret <= buflen) && buffer && >> + copy_to_user(buffer, tmpbuf, ret)) >> + ret = -EFAULT; > Please, reorg and remove redundant parentheses: > > /* > * Read methods will just return the required length > * without any copying if the provided length isn't big > * enough. > */ > if (ret > 0 && ret <= buflen) { > if (buffer && copy_to_user(buffer, tmpbuf, ret)) > ret = -EFAULT; > } > > Now the comment is attached to the exact right thing. The previous > organization is a pain to look at when backtracking commits for > whatever reason in the future. Yes, I can reorganize the code. > I'm also wondering, would it be possible to rework the code in a way > that you don't have check whether buffer is valid on a constant basis? One way to do that is to extract the down_read/up_read block into a helper function and then have 2 separate paths - one for length retrieval and another one for reading the key. I think that will make the code a bit easier easier to read. Thanks, Longman