On 10/25/19 8:18 AM, Ajay Kaher wrote:
On 17/10/19, 9:58 PM, "Ajay Kaher" akaher@vmware.com wrote:
This seems to have the same issue as the 4.9 stable version [1], in not touching the arch-specific gup.c variants. [1] https://lore.kernel.org/lkml/6650323f-dbc9-f069-000b-f6b0f941a065@suse.cz/
Thanks Vlastimil for highlighting this here.
Yes, arch-specific gup.c variants also need to handle not only for 4.4.y, however it should be handled till 4.19.y. I believe it's better to start from 4.19.y and then backport those changes till 4.4.y. Affected areas of gup.c (where page->count have been used) are: #1: get_page() used in these files and this is safe as it's defined in mm.h (here it's already taken care of) #2: get_head_page_multiple() has following: VM_BUG_ON_PAGE(page_count(page) == 0, page); Need to change this to: VM_BUG_ON_PAGE(page_ref_zero_or_close_to_overflow(page), page); #3: Some of the files have used page_cache_get_speculative(), page_cache_add_speculative() with combination of compound_head(), this scenario needs to be handled as it was handled here: https://lore.kernel.org/stable/1570581863-12090-7-git-send-email-akaher@vmwa... Please share with me any suggestions or patches if you have already worked on this. Could we handle arch-specific gup.c in different patch sets and let these patches to merge to 4.4.y?
Vlastimil, please suggest if it's fine to merge these patches to 4.4.y
I'm not sure if it makes much sense to merge them without the arch-specific gup support, when we're aware that it's missing.
and handle arch-specific gup.c in different patch sets starts from 4.19.y,
Actually arch-specific gup.c were removed in 4.13, so it's enough to start from 4.9.y, which I'm going to finally look into.
then backport all the way to 4.4.y.
Greg, any suggestion from your side.
- Ajay