qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 0/6] Unify memory allocation failure handling


From: Avi Kivity
Subject: [Qemu-devel] [PATCH 0/6] Unify memory allocation failure handling
Date: Thu, 5 Feb 2009 13:08:40 +0200

Memory allocation failures are a very rare condition on virtual-memory
hosts.  They are also very difficult to handle correctly (especially in a
hardware emulation context).  Because of this, it is better to gracefully
terminate emulation rather than executing untested or even unwritten recovery
code paths.

This patchset modifies qemu_malloc() and related functions to terminate
on error, and updates callers not to perform their own error handling.  In
many cases error handling was already missing or incorrect.

Avi Kivity (6):
  Terminate emulation on memory allocation failure
  block: remove error handling from qemu_malloc() callers
  audio: remove error handling from qemu_malloc() callers
  hw: remove error handling from qemu_malloc() callers
  targets: remove error handling from qemu_malloc() callers
  toplevel: remove error handling from qemu_malloc() callers

 aio.c                       |    2 -
 audio/audio.c               |   23 +--
 audio/wavcapture.c          |    5 -
 block-bochs.c               |    2 -
 block-cloop.c               |    9 +-
 block-dmg.c                 |    6 +-
 block-parallels.c           |    2 -
 block-qcow2.c               |   58 +------
 block-raw-posix.c           |    2 -
 block-vmdk.c                |   10 -
 block-vpc.c                 |    4 -
 block-vvfat.c               |   18 +-
 block.c                     |    6 -
 buffered_file.c             |    2 -
 console.c                   |   23 ---
 cris-dis.c                  |   26 +--
 curses.c                    |    2 -
 device_tree.c               |    4 -
 exec.c                      |   25 +--
 gdbstub.c                   |    8 -
 hw/adlib.c                  |    7 -
 hw/apic.c                   |    4 -
 hw/arm_gic.c                |    2 -
 hw/arm_sysctl.c             |    2 -
 hw/baum.c                   |   10 -
 hw/cs4231.c                 |    2 -
 hw/cs4231a.c                |    5 -
 hw/ds1225y.c                |    5 -
 hw/eccmemctl.c              |    2 -
 hw/escc.c                   |    4 -
 hw/esp.c                    |    2 -
 hw/etraxfs_dma.c            |    8 -
 hw/etraxfs_eth.c            |    8 -
 hw/etraxfs_pic.c            |    6 -
 hw/etraxfs_ser.c            |    2 -
 hw/etraxfs_timer.c          |    2 -
 hw/fdc.c                    |    6 -
 hw/fmopl.c                  |   27 +---
 hw/fw_cfg.c                 |    8 -
 hw/g364fb.c                 |    2 -
 hw/gus.c                    |   11 -
 hw/i8259.c                  |    2 -
 hw/ide.c                    |    2 -
 hw/integratorcp.c           |    2 -
 hw/iommu.c                  |    2 -
 hw/jazz_led.c               |    2 -
 hw/m48t59.c                 |    6 -
 hw/mac_dbdma.c              |    2 -
 hw/mac_nvram.c              |    6 -
 hw/mc146818rtc.c            |    4 -
 hw/mipsnet.c                |    2 -
 hw/mpcore.c                 |    2 -
 hw/mst_fpga.c               |    2 -
 hw/musicpal.c               |   14 --
 hw/ne2000.c                 |    2 -
 hw/parallel.c               |    4 -
 hw/pci.c                    |    2 -
 hw/pcnet.c                  |    2 -
 hw/pflash_cfi01.c           |    2 -
 hw/pflash_cfi02.c           |    2 -
 hw/pl031.c                  |    2 -
 hw/ppc.c                    |    7 -
 hw/ppc405_boards.c          |   24 +--
 hw/ppc405_uc.c              |  422 ++++++++++++++++++++-----------------------
 hw/ppc440_bamboo.c          |    2 -
 hw/ppc4xx_devs.c            |   72 ++++----
 hw/ppc4xx_pci.c             |    2 -
 hw/ppc_prep.c               |    2 -
 hw/r2d.c                    |    2 -
 hw/rc4030.c                 |    2 -
 hw/sb16.c                   |    5 -
 hw/sbi.c                    |    2 -
 hw/serial.c                 |    4 -
 hw/sh_intc.c                |    4 +-
 hw/sh_serial.c              |    2 -
 hw/slavio_intctl.c          |    4 -
 hw/slavio_misc.c            |    2 -
 hw/slavio_timer.c           |    2 -
 hw/sparc32_dma.c            |    2 -
 hw/sun4c_intctl.c           |    2 -
 hw/tcx.c                    |    2 -
 hw/usb-bt.c                 |    2 -
 hw/usb-hid.c                |    6 -
 hw/usb-hub.c                |    2 -
 hw/usb-msd.c                |    2 -
 hw/usb-net.c                |    2 -
 hw/usb-serial.c             |    2 -
 hw/usb-uhci.c               |   15 +-
 hw/usb-wacom.c              |    2 -
 hw/versatilepb.c            |    2 -
 hw/vga.c                    |    4 -
 hw/virtio-blk.c             |    3 +-
 hw/virtio.c                 |    3 +-
 hw/vmmouse.c                |    2 -
 keymaps.c                   |   10 +-
 kvm-all.c                   |    7 -
 loader.c                    |    4 -
 migration-exec.c            |    5 -
 migration-tcp.c             |    2 -
 monitor.c                   |    4 -
 net.c                       |   14 --
 qemu-char.c                 |   59 ------
 qemu-malloc.c               |   16 +-
 qemu-nbd.c                  |    2 -
 qemu-tool.c                 |    6 +-
 readline.c                  |    2 -
 savevm.c                    |   19 --
 sdl.c                       |    2 -
 target-alpha/translate.c    |    2 -
 target-arm/helper.c         |    4 -
 target-cris/translate.c     |    2 -
 target-i386/helper.c        |    2 -
 target-i386/kvm.c           |    2 -
 target-m68k/helper.c        |    2 -
 target-mips/translate.c     |    2 -
 target-ppc/helper.c         |    2 -
 target-ppc/kvm_ppc.c        |    4 -
 target-ppc/translate_init.c |    2 -
 target-sh4/translate.c      |    2 -
 target-sparc/helper.c       |    2 -
 usb-bsd.c                   |    2 -
 usb-linux.c                 |   24 +---
 vl.c                        |   16 --
 vnc.c                       |    9 +-
 124 files changed, 314 insertions(+), 956 deletions(-)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]