Re: [PATCH v2] mm/mmap.c: use IS_ERR_VALUE to check return value of get_unmapped_area

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Tue, Oct 15, 2019 at 8:33 PM Michal Hocko <mhocko@xxxxxxxx> wrote:
On Sat 12-10-19 18:25:12, Gaowei Pu wrote:
> get_unmapped_area already cover the offset_in_page() check and returned
> with error ptr. So replace offset_in_page() with IS_ERR_VALUE().

I have to say that I found offset_in_page check quite unintuitive. It is
a relict from the past I suspect. A newer code seems to use
IS_ERR_VALUE. If we want to make the code consistent then I am for it.
Could you check other users as well? git grep suggests checking
kernel/events/uprobes.c, mm/mmap.c and mm/mremap.c.
I only noticed the offset_in_page check after returned from get_unmapped_area is redundant.
So I just replace the places where get_unmapped_area returned. As you mentioned, IS_ERR_VALUE maybe
the newer code to check the error ptr compared to offset_in_page which is really unintuitive and therefore I will
replace them in mm/mmap.c and mm/mremap.c.
I would simply use the following for the changelog
"
get_unmapped_area returns an address or -errno on failure. Historically
we have checked for the failure by offset_in_page() which is correct but
quite hard to read. Newer code started using IS_ERR_VALUE which is much
easier to read. Convert remaining users of offset_in_page as well.

This shouldn't introduce any functional changes.
"

OK, I will use your changelog and resend a patch. Thanks.

> 2.23.0
>

--
Michal Hocko
SUSE Labs

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux