From: Mukesh R <mrathor@linux.microsoft.com>
To: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: kys@microsoft.com, wei.liu@kernel.org, mhkelley58@gmail.com,
mrathor@linux.microsoft.com
Subject: [PATCH V2 3/3] mshv: Remove unused *_old memory deposit functions
Date: Fri, 11 Sep 2026 17:03:18 -0700 [thread overview]
Message-ID: <20260912000318.2959621-4-mrathor@linux.microsoft.com> (raw)
In-Reply-To: <20260912000318.2959621-1-mrathor@linux.microsoft.com>
Remove the renamed *_old functions, done for ease of review.
Signed-off-by: Mukesh R <mrathor@linux.microsoft.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
---
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 df39a5c587ca..f811bb5c42a1 100644
--- a/drivers/hv/hv_proc.c
+++ b/drivers/hv/hv_proc.c
@@ -183,135 +183,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
prev parent reply other threads:[~2026-09-12 0:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-12 0:03 [PATCH V2 0/3] MSHV: Redesign memory deposit logic Mukesh R
2026-09-12 0:03 ` [PATCH V2 1/3] mshv: Rename memory deposit memory functions to _old Mukesh R
2026-09-12 0:03 ` [PATCH V2 2/3] mshv: Redesign hypervisor memory deposit logic Mukesh R
2026-09-12 0:15 ` sashiko-bot
2026-09-12 0:03 ` Mukesh R [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260912000318.2959621-4-mrathor@linux.microsoft.com \
--to=mrathor@linux.microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhkelley58@gmail.com \
--cc=wei.liu@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.