RE: [PATCH V1 3/3] mshv: Remove unused *_old memory deposit functions
From: Michael Kelley <hidden>
Date: 2026-09-08 18:03:13
Also in:
lkml
From: Mukesh R <redacted> Sent: Monday, September 7, 2026 7:14 PM
Remove the renamed *_old functions. Signed-off-by: Mukesh R <redacted>
Reviewed-by: Michael Kelley <redacted>
quoted hunk ↗ jump to hunk
--- drivers/hv/hv_proc.c | 129 ------------------------------------------- 1 file changed, 129 deletions(-)diff --git a/drivers/hv/hv_proc.c b/drivers/hv/hv_proc.c index 0ebede0bc8b4..dfae4b933fa9 100644 --- a/drivers/hv/hv_proc.c +++ b/drivers/hv/hv_proc.c@@ -187,135 +187,6 @@ int hv_deposit_memory_node(int node, u64 pt_id, u64 hv_status) } EXPORT_SYMBOL_GPL(hv_deposit_memory_node); -/* - * See struct hv_deposit_memory. The first u64 is partition ID, the rest - * are GPAs. - */ -#define HV_DEPOSIT_MAX_OLD (HV_HYP_PAGE_SIZE / sizeof(u64) - 1) - -/* Deposits exact number of pages. Must be called with interrupts enabled. */ -static int hv_call_deposit_pages_old(int node, u64 partition_id, u32 num_pages) -{ - struct page **pages, *page; - int *counts; - int num_allocations; - int i, j, page_count; - int order; - u64 status; - int ret; - u64 base_pfn; - struct hv_deposit_memory *input_page; - unsigned long flags; - - if (num_pages > HV_DEPOSIT_MAX_OLD) - return -E2BIG; - if (!num_pages) - return 0; - - /* One buffer for page pointers and counts */ - page = alloc_page(GFP_KERNEL); - if (!page) - return -ENOMEM; - pages = page_address(page); - - counts = kzalloc_objs(int, HV_DEPOSIT_MAX_OLD); - if (!counts) { - free_page((unsigned long)pages); - return -ENOMEM; - } - - /* Allocate all the pages before disabling interrupts */ - i = 0; - - while (num_pages) { - /* Find highest order we can actually allocate */ - order = 31 - __builtin_clz(num_pages); - - while (1) { - pages[i] = alloc_pages_node(node, GFP_KERNEL, order); - if (pages[i]) - break; - if (!order) { - ret = -ENOMEM; - num_allocations = i; - goto err_free_allocations; - } - --order; - } - - split_page(pages[i], order); - counts[i] = 1 << order; - num_pages -= counts[i]; - i++; - } - num_allocations = i; - - local_irq_save(flags); - - input_page = *this_cpu_ptr(hyperv_pcpu_input_arg); - - input_page->partition_id = partition_id; - - /* Populate gpa_page_list - these will fit on the input page */ - for (i = 0, page_count = 0; i < num_allocations; ++i) { - base_pfn = page_to_pfn(pages[i]); - for (j = 0; j < counts[i]; ++j, ++page_count) - input_page->gpa_page_list[page_count] = base_pfn + j; - } - status = hv_do_rep_hypercall(HVCALL_DEPOSIT_MEMORY, - page_count, 0, input_page, NULL); - local_irq_restore(flags); - if (!hv_result_success(status)) { - hv_status_err(status, "\n"); - ret = hv_result_to_errno(status); - goto err_free_allocations; - } - - ret = 0; - goto free_buf; - -err_free_allocations: - for (i = 0; i < num_allocations; ++i) { - base_pfn = page_to_pfn(pages[i]); - for (j = 0; j < counts[i]; ++j) - __free_page(pfn_to_page(base_pfn + j)); - } - -free_buf: - free_page((unsigned long)pages); - kfree(counts); - return ret; -} - -static int __maybe_unused hv_deposit_memory_node_old(int node, u64 partition_id, u64 hv_status) -{ - u32 num_pages = 1; - - switch (hv_result(hv_status)) { - case HV_STATUS_INSUFFICIENT_MEMORY: - break; - case HV_STATUS_INSUFFICIENT_CONTIGUOUS_MEMORY: - num_pages = HV_MAX_CONTIGUOUS_ALLOCATION_PAGES; - break; - - case HV_STATUS_INSUFFICIENT_CONTIGUOUS_ROOT_MEMORY: - num_pages = HV_MAX_CONTIGUOUS_ALLOCATION_PAGES; - fallthrough; - case HV_STATUS_INSUFFICIENT_ROOT_MEMORY: - if (!hv_root_partition()) { - hv_status_err(hv_status, "Unexpected root memory deposit\n"); - return -ENOMEM; - } - partition_id = HV_PARTITION_ID_SELF; - break; - - default: - hv_status_err(hv_status, "Unexpected!\n"); - return -ENOMEM; - } - return hv_call_deposit_pages_old(node, partition_id, num_pages); -} - bool hv_result_needs_memory(u64 status) { switch (hv_result(status)) { --2.51.2.vfs.0.1