]> xenbits.xensource.com Git - xen.git/commitdiff
x86/HVM: drop stdvga's "sr[]" struct member
authorJan Beulich <jbeulich@suse.com>
Tue, 12 Nov 2024 13:08:24 +0000 (14:08 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 12 Nov 2024 13:08:24 +0000 (14:08 +0100)
No consumers are left, hence the producer and the array itself can also
go away. The static sr_mask[] is then orphaned and hence needs dropping,
too.

This is part of XSA-463 / CVE-2024-45818

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
(cherry picked from commit 7aba44bdd78aedb97703811948c3b69ccff85032)

xen/arch/x86/hvm/stdvga.c
xen/arch/x86/include/asm/hvm/io.h

index 9b7455c58b36745b27910cd3d6a9f14d54d6cf63..818dba67d7b7e1cb80c5fedc02ee2f380237d890 100644 (file)
 #define VGA_MEM_BASE 0xa0000
 #define VGA_MEM_SIZE 0x20000
 
-/* force some bits to zero */
-static const uint8_t sr_mask[8] = {
-    (uint8_t)~0xfc,
-    (uint8_t)~0xc2,
-    (uint8_t)~0xf0,
-    (uint8_t)~0xc0,
-    (uint8_t)~0xf1,
-    (uint8_t)~0xff,
-    (uint8_t)~0xff,
-    (uint8_t)~0x00,
-};
-
 static int stdvga_outb(uint64_t addr, uint8_t val)
 {
     struct hvm_hw_stdvga *s = &current->domain->arch.hvm.stdvga;
@@ -61,12 +49,6 @@ static int stdvga_outb(uint64_t addr, uint8_t val)
         s->sr_index = val;
         break;
 
-    case 0x3c5:                 /* sequencer data register */
-        rc = (s->sr_index < sizeof(s->sr));
-        if ( rc )
-            s->sr[s->sr_index] = val & sr_mask[s->sr_index] ;
-        break;
-
     case 0x3ce:                 /* graphics address register */
         s->gr_index = val;
         break;
index 375c12a466f241d82b899b6a7a5e78eecb208002..d17cf20fd4e163f5622ea95f6a51be60e4db3d06 100644 (file)
@@ -123,7 +123,6 @@ struct vpci_arch_msix_entry {
 
 struct hvm_hw_stdvga {
     uint8_t sr_index;
-    uint8_t sr[8];
     uint8_t gr_index;
     struct page_info *vram_page[64];  /* shadow of 0xa0000-0xaffff */
     spinlock_t lock;