mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/HVM: drop stdvga's "vram_page[]" struct member
No uses are left, hence its setup, teardown, and the field itself can also go away. stdvga_deinit() is then empty and can be dropped as well. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
86c03372e1
commit
3beb4baf2a
3 files changed
+4
-41
No files matched your search
@@ -700,7 +700,6 @@ int hvm_domain_initialise(struct domain *d,
|
||||
return 0;
|
||||
|
||||
fail2:
|
||||
stdvga_deinit(d);
|
||||
vioapic_deinit(d);
|
||||
fail1:
|
||||
if ( is_hardware_domain(d) )
|
||||
@@ -763,7 +762,6 @@ void hvm_domain_destroy(struct domain *d)
|
||||
if ( hvm_funcs.domain_destroy )
|
||||
alternative_vcall(hvm_funcs.domain_destroy, d);
|
||||
|
||||
stdvga_deinit(d);
|
||||
vioapic_deinit(d);
|
||||
|
||||
XFREE(d->arch.hvm.pl_time);
|
||||
|
||||
@@ -116,8 +116,7 @@ static const struct hvm_io_ops stdvga_mem_ops = {
|
||||
void stdvga_init(struct domain *d)
|
||||
{
|
||||
struct hvm_hw_stdvga *s = &d->arch.hvm.stdvga;
|
||||
struct page_info *pg;
|
||||
unsigned int i;
|
||||
struct hvm_io_handler *handler;
|
||||
|
||||
if ( !has_vvga(d) )
|
||||
return;
|
||||
@@ -125,47 +124,15 @@ void stdvga_init(struct domain *d)
|
||||
memset(s, 0, sizeof(*s));
|
||||
spin_lock_init(&s->lock);
|
||||
|
||||
for ( i = 0; i != ARRAY_SIZE(s->vram_page); i++ )
|
||||
/* VGA memory */
|
||||
handler = hvm_next_io_handler(d);
|
||||
if ( handler )
|
||||
{
|
||||
pg = alloc_domheap_page(d, MEMF_no_owner);
|
||||
if ( pg == NULL )
|
||||
break;
|
||||
s->vram_page[i] = pg;
|
||||
clear_domain_page(page_to_mfn(pg));
|
||||
}
|
||||
|
||||
if ( i == ARRAY_SIZE(s->vram_page) )
|
||||
{
|
||||
struct hvm_io_handler *handler;
|
||||
|
||||
/* VGA memory */
|
||||
handler = hvm_next_io_handler(d);
|
||||
|
||||
if ( handler == NULL )
|
||||
return;
|
||||
|
||||
handler->type = IOREQ_TYPE_COPY;
|
||||
handler->ops = &stdvga_mem_ops;
|
||||
}
|
||||
}
|
||||
|
||||
void stdvga_deinit(struct domain *d)
|
||||
{
|
||||
struct hvm_hw_stdvga *s = &d->arch.hvm.stdvga;
|
||||
int i;
|
||||
|
||||
if ( !has_vvga(d) )
|
||||
return;
|
||||
|
||||
for ( i = 0; i != ARRAY_SIZE(s->vram_page); i++ )
|
||||
{
|
||||
if ( s->vram_page[i] == NULL )
|
||||
continue;
|
||||
free_domheap_page(s->vram_page[i]);
|
||||
s->vram_page[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
|
||||
@@ -111,12 +111,10 @@ struct vpci_arch_msix_entry {
|
||||
};
|
||||
|
||||
struct hvm_hw_stdvga {
|
||||
struct page_info *vram_page[64]; /* shadow of 0xa0000-0xaffff */
|
||||
spinlock_t lock;
|
||||
};
|
||||
|
||||
void stdvga_init(struct domain *d);
|
||||
void stdvga_deinit(struct domain *d);
|
||||
|
||||
extern void hvm_dpci_msi_eoi(struct domain *d, int vector);
|
||||
|
||||
|
||||