On Tue, Jan 7, 2020 at 2:15 PM Eric Biggers ebiggers@kernel.org wrote:
On Mon, Jan 06, 2020 at 01:58:33PM +0900, Masahiro Yamada wrote:
'PTR_ERR(p) == -E*' is a stronger condition than IS_ERR(p). Hence, IS_ERR(p) is unneeded.
The semantic patch that generates this commit is as follows:
// <smpl> @@ expression ptr; constant error_code; @@ -IS_ERR(ptr) && (PTR_ERR(ptr) == - error_code) +PTR_ERR(ptr) == - error_code // </smpl>
Signed-off-by: Masahiro Yamada masahiroy@kernel.org
Any reason for not doing instead:
ptr == ERR_PTR(-error_code)
?
Because there is no reason to change
PTR_ERR(ptr) == -error_code to ptr == ERR_PTR(-error_code)
if (PTR_ERR(ptr) == -error_code) style seems to be used more often.
But, I think it is just a matter of preference after all. Both work equally fine.
To me it seems weird to use PTR_ERR() on non-error pointers. I even had to double check that it returns a 'long' and not an 'int'. (If it returned an 'int', it wouldn't work...)
- Eric