From: Jack Lange Date: Sun, 27 Dec 2009 21:50:53 +0000 (-0600) Subject: stability fixes X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=8673ba145e725fd9320de4d090a6c123bac17ada stability fixes --- diff --git a/palacios/src/devices/atapi.h b/palacios/src/devices/atapi.h index ad03ee9..ac6ecf0 100644 --- a/palacios/src/devices/atapi.h +++ b/palacios/src/devices/atapi.h @@ -511,6 +511,8 @@ static int atapi_handle_packet(struct vm_device * dev, struct ide_channel * chan } break; + + case 0x4a: // Get Status/event case 0x51: // read disk info // no-op to keep the Linux CD-ROM driver happy PrintDebug("Error: Read disk info no-op to keep the Linux CD-ROM driver happy\n"); @@ -552,8 +554,7 @@ static int atapi_handle_packet(struct vm_device * dev, struct ide_channel * chan case 0xba: // scan case 0xbb: // set cd speed case 0x4e: // stop play/scan - - case 0x4a: // ??? + default: PrintError("Unhandled ATAPI command %x\n", cmd); atapi_cmd_error(dev, channel, ATAPI_SEN_ILL_REQ, ASC_INV_CMD_FIELD); diff --git a/palacios/src/devices/pci_passthrough.c b/palacios/src/devices/pci_passthrough.c index 89b4e84..fafd303 100644 --- a/palacios/src/devices/pci_passthrough.c +++ b/palacios/src/devices/pci_passthrough.c @@ -187,9 +187,13 @@ static int pci_bar_init(int bar_num, uint32_t * dst,void * private_data) { //v3_irq_restore(irq_state); - pbar->size = ~PCI_IO_BASE(max_val) + 1; + V3_Print("max_val = %x\n", max_val); + + pbar->size = (uint16_t)~PCI_IO_BASE(max_val) + 1; + + V3_Print("IO Bar with %d (%x) ports %x->%x\n", pbar->size, pbar->size, pbar->addr, pbar->addr + pbar->size); // setup a set of null io hooks // This allows the guest to do passthrough IO to these ports // While still reserving them in the IO map diff --git a/palacios/src/palacios/vmm.c b/palacios/src/palacios/vmm.c index 7077d66..c56356d 100644 --- a/palacios/src/palacios/vmm.c +++ b/palacios/src/palacios/vmm.c @@ -74,6 +74,8 @@ static void init_cpu(void * arg) { void Init_V3(struct v3_os_hooks * hooks, int num_cpus) { int i; + V3_Print("V3 Print statement to fix a Kitten page fault bug\n"); + // Set global variables. os_hooks = hooks; diff --git a/palacios/src/palacios/vmm_dev_mgr.c b/palacios/src/palacios/vmm_dev_mgr.c index 65d01f4..a96d27b 100644 --- a/palacios/src/palacios/vmm_dev_mgr.c +++ b/palacios/src/palacios/vmm_dev_mgr.c @@ -312,7 +312,7 @@ struct net_frontend { struct v3_dev_net_ops * ops, v3_cfg_tree_t * cfg, void * priv_data); - + struct list_head net_node; diff --git a/palacios/src/palacios/vmm_sym_swap.c b/palacios/src/palacios/vmm_sym_swap.c index 56e0014..3b1620c 100644 --- a/palacios/src/palacios/vmm_sym_swap.c +++ b/palacios/src/palacios/vmm_sym_swap.c @@ -183,6 +183,8 @@ int v3_swap_flush(struct guest_info * info) { v3_htable_iter_advance(ht_iter); } + V3_Free(ht_iter); + return 0; }