Patchwork [5/5] pc: remove bochs bios debug ports

login
register
mail settings
Submitter Gerd Hoffmann
Date Dec. 12, 2012, 9:15 a.m.
Message ID <1355303742-3263-6-git-send-email-kraxel@redhat.com>
Download mbox | patch
Permalink /patch/205460/
State New
Headers show

Comments

Gerd Hoffmann - Dec. 12, 2012, 9:15 a.m.
Prehistoric leftover, zap it.  We poweroff via acpi these days.

And having a port (0x501,0x502) where any random guest write will make
qemu exit -- with no way to turn it off -- is a bad joke anyway.  If
anyone has a real use case for this (I can see this being useful for
regression testing), then make it part of debugcon or testdev so it
isn't present by default.
---
 hw/pc.c |   41 -----------------------------------------
 1 files changed, 0 insertions(+), 41 deletions(-)
Anthony Liguori - Dec. 12, 2012, 1:53 p.m.
Gerd Hoffmann <kraxel@redhat.com> writes:

> Prehistoric leftover, zap it.  We poweroff via acpi these days.
>
> And having a port (0x501,0x502) where any random guest write will make
> qemu exit -- with no way to turn it off -- is a bad joke anyway.  If
> anyone has a real use case for this (I can see this being useful for
> regression testing), then make it part of debugcon or testdev so it
> isn't present by default.

I use 0x501 for my test suite so please don't remove it blindly.

Regards,

Anthony Liguori

> ---
>  hw/pc.c |   41 -----------------------------------------
>  1 files changed, 0 insertions(+), 41 deletions(-)
>
> diff --git a/hw/pc.c b/hw/pc.c
> index cc4b260..0997c72 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -524,34 +524,6 @@ static void handle_a20_line_change(void *opaque, int irq, int level)
>      cpu_x86_set_a20(cpu, level);
>  }
>  
> -/***********************************************************/
> -/* Bochs BIOS debug ports */
> -
> -static void bochs_bios_write(void *opaque, uint32_t addr, uint32_t val)
> -{
> -    static const char shutdown_str[8] = "Shutdown";
> -    static int shutdown_index = 0;
> -
> -    switch(addr) {
> -    case 0x8900:
> -        /* same as Bochs power off */
> -        if (val == shutdown_str[shutdown_index]) {
> -            shutdown_index++;
> -            if (shutdown_index == 8) {
> -                shutdown_index = 0;
> -                qemu_system_shutdown_request();
> -            }
> -        } else {
> -            shutdown_index = 0;
> -        }
> -        break;
> -
> -    case 0x501:
> -    case 0x502:
> -        exit((val << 1) | 1);
> -    }
> -}
> -
>  int e820_add_entry(uint64_t address, uint64_t length, uint32_t type)
>  {
>      int index = le32_to_cpu(e820_table.count);
> @@ -569,14 +541,6 @@ int e820_add_entry(uint64_t address, uint64_t length, uint32_t type)
>      return index;
>  }
>  
> -static const MemoryRegionPortio bochs_bios_portio_list[] = {
> -    { 0x500, 1, 1, .write = bochs_bios_write, }, /* 0x500 */
> -    { 0x501, 1, 1, .write = bochs_bios_write, }, /* 0x501 */
> -    { 0x501, 2, 2, .write = bochs_bios_write, }, /* 0x501 */
> -    { 0x8900, 1, 1, .write = bochs_bios_write, }, /* 0x8900 */
> -    PORTIO_END_OF_LIST(),
> -};
> -
>  static void *bochs_bios_init(void)
>  {
>      void *fw_cfg;
> @@ -584,11 +548,6 @@ static void *bochs_bios_init(void)
>      size_t smbios_len;
>      uint64_t *numa_fw_cfg;
>      int i, j;
> -    PortioList *bochs_bios_port_list = g_new(PortioList, 1);
> -
> -    portio_list_init(bochs_bios_port_list, bochs_bios_portio_list,
> -                     NULL, "bochs-bios");
> -    portio_list_add(bochs_bios_port_list, get_system_io(), 0x0);
>  
>      fw_cfg = fw_cfg_init(BIOS_CFG_IOPORT, BIOS_CFG_IOPORT + 1, 0, 0);
>  
> -- 
> 1.7.1

Patch

diff --git a/hw/pc.c b/hw/pc.c
index cc4b260..0997c72 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -524,34 +524,6 @@  static void handle_a20_line_change(void *opaque, int irq, int level)
     cpu_x86_set_a20(cpu, level);
 }
 
-/***********************************************************/
-/* Bochs BIOS debug ports */
-
-static void bochs_bios_write(void *opaque, uint32_t addr, uint32_t val)
-{
-    static const char shutdown_str[8] = "Shutdown";
-    static int shutdown_index = 0;
-
-    switch(addr) {
-    case 0x8900:
-        /* same as Bochs power off */
-        if (val == shutdown_str[shutdown_index]) {
-            shutdown_index++;
-            if (shutdown_index == 8) {
-                shutdown_index = 0;
-                qemu_system_shutdown_request();
-            }
-        } else {
-            shutdown_index = 0;
-        }
-        break;
-
-    case 0x501:
-    case 0x502:
-        exit((val << 1) | 1);
-    }
-}
-
 int e820_add_entry(uint64_t address, uint64_t length, uint32_t type)
 {
     int index = le32_to_cpu(e820_table.count);
@@ -569,14 +541,6 @@  int e820_add_entry(uint64_t address, uint64_t length, uint32_t type)
     return index;
 }
 
-static const MemoryRegionPortio bochs_bios_portio_list[] = {
-    { 0x500, 1, 1, .write = bochs_bios_write, }, /* 0x500 */
-    { 0x501, 1, 1, .write = bochs_bios_write, }, /* 0x501 */
-    { 0x501, 2, 2, .write = bochs_bios_write, }, /* 0x501 */
-    { 0x8900, 1, 1, .write = bochs_bios_write, }, /* 0x8900 */
-    PORTIO_END_OF_LIST(),
-};
-
 static void *bochs_bios_init(void)
 {
     void *fw_cfg;
@@ -584,11 +548,6 @@  static void *bochs_bios_init(void)
     size_t smbios_len;
     uint64_t *numa_fw_cfg;
     int i, j;
-    PortioList *bochs_bios_port_list = g_new(PortioList, 1);
-
-    portio_list_init(bochs_bios_port_list, bochs_bios_portio_list,
-                     NULL, "bochs-bios");
-    portio_list_add(bochs_bios_port_list, get_system_io(), 0x0);
 
     fw_cfg = fw_cfg_init(BIOS_CFG_IOPORT, BIOS_CFG_IOPORT + 1, 0, 0);