diff options
| author | Mark Brown <broonie@kernel.org> | 2024-06-23 13:14:18 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2024-06-23 13:14:18 +0100 |
| commit | 17436001a6bc42c7f55dc547ca5b1a873208d91d (patch) | |
| tree | 186b872edc5080b90ef1f8fb88f774d4f242775f /mm/hugetlb.c | |
| parent | 5d0c35feea339e4a3a9c9e99731e4d49ad5ee329 (diff) | |
| parent | d4a0055fdc22381fa256e345095e88d134e354c5 (diff) | |
spi: add devm_spi_optimize_message() helper
Merge series from David Lechner <dlechner@baylibre.com>:
In the IIO subsystem, we are finding that it is common to call
spi_optimize_message() during driver probe since the SPI message
doesn't change for the lifetime of the driver. This patch adds a
devm_spi_optimize_message() helper to simplify this common pattern.
Diffstat (limited to 'mm/hugetlb.c')
| -rw-r--r-- | mm/hugetlb.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 6be78e7d4f6e..f35abff8be60 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5768,8 +5768,20 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, * do_exit() will not see it, and will keep the reservation * forever. */ - if (adjust_reservation && vma_needs_reservation(h, vma, address)) - vma_add_reservation(h, vma, address); + if (adjust_reservation) { + int rc = vma_needs_reservation(h, vma, address); + + if (rc < 0) + /* Pressumably allocate_file_region_entries failed + * to allocate a file_region struct. Clear + * hugetlb_restore_reserve so that global reserve + * count will not be incremented by free_huge_folio. + * Act as if we consumed the reservation. + */ + folio_clear_hugetlb_restore_reserve(page_folio(page)); + else if (rc) + vma_add_reservation(h, vma, address); + } tlb_remove_page_size(tlb, page, huge_page_size(h)); /* |
