Skip to content

Commit d99bb72

Browse files
jgross1bostrovs
authored andcommitted
x86/xen: remove 32-bit pv leftovers
There are some remaining 32-bit pv-guest support leftovers in the Xen hypercall interface. Remove them. Signed-off-by: Juergen Gross <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Boris Ostrovsky <[email protected]> Signed-off-by: Boris Ostrovsky <[email protected]>
1 parent a67efff commit d99bb72

File tree

2 files changed

+19
-48
lines changed

2 files changed

+19
-48
lines changed

arch/x86/include/asm/xen/hypercall.h

Lines changed: 9 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,7 @@ HYPERVISOR_get_debugreg(int reg)
323323
static inline int
324324
HYPERVISOR_update_descriptor(u64 ma, u64 desc)
325325
{
326-
if (sizeof(u64) == sizeof(long))
327-
return _hypercall2(int, update_descriptor, ma, desc);
328-
return _hypercall4(int, update_descriptor, ma, ma>>32, desc, desc>>32);
326+
return _hypercall2(int, update_descriptor, ma, desc);
329327
}
330328

331329
static inline long
@@ -344,12 +342,7 @@ static inline int
344342
HYPERVISOR_update_va_mapping(unsigned long va, pte_t new_val,
345343
unsigned long flags)
346344
{
347-
if (sizeof(new_val) == sizeof(long))
348-
return _hypercall3(int, update_va_mapping, va,
349-
new_val.pte, flags);
350-
else
351-
return _hypercall4(int, update_va_mapping, va,
352-
new_val.pte, new_val.pte >> 32, flags);
345+
return _hypercall3(int, update_va_mapping, va, new_val.pte, flags);
353346
}
354347

355348
static inline int
@@ -461,36 +454,21 @@ MULTI_update_va_mapping(struct multicall_entry *mcl, unsigned long va,
461454
{
462455
mcl->op = __HYPERVISOR_update_va_mapping;
463456
mcl->args[0] = va;
464-
if (sizeof(new_val) == sizeof(long)) {
465-
mcl->args[1] = new_val.pte;
466-
mcl->args[2] = flags;
467-
} else {
468-
mcl->args[1] = new_val.pte;
469-
mcl->args[2] = new_val.pte >> 32;
470-
mcl->args[3] = flags;
471-
}
457+
mcl->args[1] = new_val.pte;
458+
mcl->args[2] = flags;
472459

473-
trace_xen_mc_entry(mcl, sizeof(new_val) == sizeof(long) ? 3 : 4);
460+
trace_xen_mc_entry(mcl, 3);
474461
}
475462

476463
static inline void
477464
MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr,
478465
struct desc_struct desc)
479466
{
480467
mcl->op = __HYPERVISOR_update_descriptor;
481-
if (sizeof(maddr) == sizeof(long)) {
482-
mcl->args[0] = maddr;
483-
mcl->args[1] = *(unsigned long *)&desc;
484-
} else {
485-
u32 *p = (u32 *)&desc;
486-
487-
mcl->args[0] = maddr;
488-
mcl->args[1] = maddr >> 32;
489-
mcl->args[2] = *p++;
490-
mcl->args[3] = *p;
491-
}
492-
493-
trace_xen_mc_entry(mcl, sizeof(maddr) == sizeof(long) ? 2 : 4);
468+
mcl->args[0] = maddr;
469+
mcl->args[1] = *(unsigned long *)&desc;
470+
471+
trace_xen_mc_entry(mcl, 2);
494472
}
495473

496474
static inline void

drivers/xen/mem-reservation.c

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ void __xenmem_reservation_va_mapping_update(unsigned long count,
3535
for (i = 0; i < count; i++) {
3636
struct page *page = pages[i];
3737
unsigned long pfn = page_to_pfn(page);
38+
int ret;
3839

3940
BUG_ON(!page);
4041

@@ -46,16 +47,10 @@ void __xenmem_reservation_va_mapping_update(unsigned long count,
4647

4748
set_phys_to_machine(pfn, frames[i]);
4849

49-
/* Link back into the page tables if not highmem. */
50-
if (!PageHighMem(page)) {
51-
int ret;
52-
53-
ret = HYPERVISOR_update_va_mapping(
54-
(unsigned long)__va(pfn << PAGE_SHIFT),
55-
mfn_pte(frames[i], PAGE_KERNEL),
56-
0);
57-
BUG_ON(ret);
58-
}
50+
ret = HYPERVISOR_update_va_mapping(
51+
(unsigned long)__va(pfn << PAGE_SHIFT),
52+
mfn_pte(frames[i], PAGE_KERNEL), 0);
53+
BUG_ON(ret);
5954
}
6055
}
6156
EXPORT_SYMBOL_GPL(__xenmem_reservation_va_mapping_update);
@@ -68,21 +63,19 @@ void __xenmem_reservation_va_mapping_reset(unsigned long count,
6863
for (i = 0; i < count; i++) {
6964
struct page *page = pages[i];
7065
unsigned long pfn = page_to_pfn(page);
66+
int ret;
7167

7268
/*
7369
* We don't support PV MMU when Linux and Xen are using
7470
* different page granularity.
7571
*/
7672
BUILD_BUG_ON(XEN_PAGE_SIZE != PAGE_SIZE);
7773

78-
if (!PageHighMem(page)) {
79-
int ret;
74+
ret = HYPERVISOR_update_va_mapping(
75+
(unsigned long)__va(pfn << PAGE_SHIFT),
76+
__pte_ma(0), 0);
77+
BUG_ON(ret);
8078

81-
ret = HYPERVISOR_update_va_mapping(
82-
(unsigned long)__va(pfn << PAGE_SHIFT),
83-
__pte_ma(0), 0);
84-
BUG_ON(ret);
85-
}
8679
__set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
8780
}
8881
}

0 commit comments

Comments
 (0)