diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-01-21 21:36:59 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-01-21 21:36:59 +0300 |
commit | dd7d99dc688d0fc448976f52f8517fbdeccdccda (patch) | |
tree | 4ad59de5d584cf03e772ee153260c24ba0d717bd /mm/sparse.c | |
parent | 42bbdd99221bac206dde2b5e87098177fcd2a48e (diff) | |
parent | def9d2780727cec3313ed3522d0123158d87224d (diff) | |
download | linux-dd7d99dc688d0fc448976f52f8517fbdeccdccda.tar.xz |
Merge 5.5-rc7 into usb-next
We need the USB fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/sparse.c')
-rw-r--r-- | mm/sparse.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mm/sparse.c b/mm/sparse.c index b20ab7cdac86..3822ecbd8a1f 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -777,7 +777,14 @@ static void section_deactivate(unsigned long pfn, unsigned long nr_pages, if (bitmap_empty(subsection_map, SUBSECTIONS_PER_SECTION)) { unsigned long section_nr = pfn_to_section_nr(pfn); - if (!section_is_early) { + /* + * When removing an early section, the usage map is kept (as the + * usage maps of other sections fall into the same page). It + * will be re-used when re-adding the section - which is then no + * longer an early section. If the usage map is PageReserved, it + * was allocated during boot. + */ + if (!PageReserved(virt_to_page(ms->usage))) { kfree(ms->usage); ms->usage = NULL; } |