1. 18 9月, 2015 1 次提交
    • M
      Fix bad error handling after memory_region_init_ram() · f8ed85ac
      Markus Armbruster 提交于
      Symptom:
      
          $ qemu-system-x86_64 -m 10000000
          Unexpected error in ram_block_add() at /work/armbru/qemu/exec.c:1456:
          upstream-qemu: cannot set up guest memory 'pc.ram': Cannot allocate memory
          Aborted (core dumped)
      
      Root cause: commit ef701d7b screwed up handling of out-of-memory
      conditions.  Before the commit, we report the error and exit(1), in
      one place, ram_block_add().  The commit lifts the error handling up
      the call chain some, to three places.  Fine.  Except it uses
      &error_abort in these places, changing the behavior from exit(1) to
      abort(), and thus undoing the work of commit 39228250 "exec: Don't
      abort when we can't allocate guest memory".
      
      The three places are:
      
      * memory_region_init_ram()
      
        Commit 49946538 (right after commit ef701d7b) lifted the error
        handling further, through memory_region_init_ram(), multiplying the
        incorrect use of &error_abort.  Later on, imitation of existing
        (bad) code may have created more.
      
      * memory_region_init_ram_ptr()
      
        The &error_abort is still there.
      
      * memory_region_init_rom_device()
      
        Doesn't need fixing, because commit 33e0eb52 (soon after commit
        ef701d7b) lifted the error handling further, and in the process
        changed it from &error_abort to passing it up the call chain.
        Correct, because the callers are realize() methods.
      
      Fix the error handling after memory_region_init_ram() with a
      Coccinelle semantic patch:
      
          @r@
          expression mr, owner, name, size, err;
          position p;
          @@
                  memory_region_init_ram(mr, owner, name, size,
          (
          -                              &error_abort
          +                              &error_fatal
          |
                                         err@p
          )
                                        );
          @script:python@
              p << r.p;
          @@
          print "%s:%s:%s" % (p[0].file, p[0].line, p[0].column)
      
      When the last argument is &error_abort, it gets replaced by
      &error_fatal.  This is the fix.
      
      If the last argument is anything else, its position is reported.  This
      lets us check the fix is complete.  Four positions get reported:
      
      * ram_backend_memory_alloc()
      
        Error is passed up the call chain, ultimately through
        user_creatable_complete().  As far as I can tell, it's callers all
        handle the error sanely.
      
      * fsl_imx25_realize(), fsl_imx31_realize(), dp8393x_realize()
      
        DeviceClass.realize() methods, errors handled sanely further up the
        call chain.
      
      We're good.  Test case again behaves:
      
          $ qemu-system-x86_64 -m 10000000
          qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
          [Exit 1 ]
      
      The next commits will repair the rest of commit ef701d7b's damage.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1441983105-26376-3-git-send-email-armbru@redhat.com>
      Reviewed-by: NPeter Crosthwaite <crosthwaite.peter@gmail.com>
      f8ed85ac
  2. 09 9月, 2015 2 次提交
  3. 10 6月, 2015 1 次提交
  4. 03 6月, 2015 1 次提交
  5. 25 3月, 2015 2 次提交
  6. 10 3月, 2015 2 次提交
  7. 18 2月, 2015 1 次提交
    • M
      hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() · 1ce6be24
      Markus Armbruster 提交于
      Some are called do_info_SUBCOMMAND() (old ones, usually), some
      hmp_info_SUBCOMMAND(), some SUBCOMMAND_info(), sometimes SUBCOMMAND
      pointlessly differs in spelling.
      
      Normalize to hmp_info_SUBCOMMAND(), where SUBCOMMAND is exactly the
      subcommand name with '-' replaced by '_'.
      
      Exceptions:
      
      * sun4m_irq_info(), sun4m_pic_info() renamed to sun4m_hmp_info_irq(),
        sun4m_hmp_info_pic().
      
      * lm32_irq_info(), lm32_pic_info() renamed to lm32_hmp_info_irq(),
        lm32_hmp_info_pic().
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      1ce6be24
  8. 23 12月, 2014 1 次提交
  9. 22 12月, 2014 1 次提交
  10. 20 10月, 2014 1 次提交
    • M
      hw: Convert from BlockDriverState to BlockBackend, mostly · 4be74634
      Markus Armbruster 提交于
      Device models should access their block backends only through the
      block-backend.h API.  Convert them, and drop direct includes of
      inappropriate headers.
      
      Just four uses of BlockDriverState are left:
      
      * The Xen paravirtual block device backend (xen_disk.c) opens images
        itself when set up via xenbus, bypassing blockdev.c.  I figure it
        should go through qmp_blockdev_add() instead.
      
      * Device model "usb-storage" prompts for keys.  No other device model
        does, and this one probably shouldn't do it, either.
      
      * ide_issue_trim_cb() uses bdrv_aio_discard() instead of
        blk_aio_discard() because it fishes its backend out of a BlockAIOCB,
        which has only the BlockDriverState.
      
      * PC87312State has an unused BlockDriverState[] member.
      
      The next two commits take care of the latter two.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NMax Reitz <mreitz@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      4be74634
  11. 24 9月, 2014 1 次提交
  12. 09 9月, 2014 1 次提交
  13. 06 6月, 2014 1 次提交
  14. 28 5月, 2014 1 次提交
  15. 27 2月, 2014 1 次提交
    • M
      sun4m: Add Sun CG3 framebuffer initialisation function · af87bf29
      Mark Cave-Ayland 提交于
      In order to allow the user to choose the framebuffer for sparc-softmmu, add
      -vga tcx and -vga cg3 options to the QEMU command line. If no option is
      specified, the default TCX framebuffer is used.
      
      Since proprietary FCode ROMs use a resolution of 1152x900, slightly relax the
      validation rules to allow both displays to be initiated at the higher
      resolution used by these ROMs upon request (OpenBIOS FCode ROMs default to
      the normal QEMU sun4m default resolution of 1024x768).
      
      Finally move any fprintf(stderr ...) statements in the areas affected by this
      patch over to the new error_report() function.
      Signed-off-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      CC: Blue Swirl <blauwirbel@gmail.com>
      CC: Anthony Liguori <aliguori@amazon.com>
      CC: Peter Maydell <peter.maydell@linaro.org>
      CC: Bob Breuer <breuerr@mc.net>
      CC: Artyom Tarasenko <atar4qemu@gmail.com>
      af87bf29
  16. 11 2月, 2014 1 次提交
  17. 22 11月, 2013 1 次提交
    • M
      sun4m: Add FCode ROM for TCX framebuffer · da87dd7b
      Mark Cave-Ayland 提交于
      Upstream OpenBIOS now implements SBus probing in order to determine the
      contents of a physical bus slot, which is required to allow OpenBIOS to
      identify the framebuffer without help from the fw_cfg interface.
      
      SBus probing works by detecting the presence of an FCode program
      (effectively tokenised Forth) at the base address of each slot, and if
      present executes it so that it creates its own device node in the
      OpenBIOS device tree.
      
      The FCode ROM is generated as part of the OpenBIOS build and should
      generally be updated at the same time.
      Signed-off-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      CC: Blue Swirl <blauwirbel@gmail.com>
      CC: Bob Breuer <breuerr@mc.net>
      CC: Artyom Tarasenko <atar4qemu@gmail.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      da87dd7b
  18. 28 8月, 2013 1 次提交
    • M
      hw: Clean up bogus default boot order · c1654732
      Markus Armbruster 提交于
      We set default boot order "cad" in every single machine definition
      except "pseries" and "moxiesim", even though very few boards actually
      care for boot order, and "cad" makes sense for even fewer.
      
      Machines that care:
      
      * pc and its variants
      
        Accept up to three letters 'a', 'b' (undocumented alias for 'a'),
        'c', 'd' and 'n'.  Reject all others (fatal with -boot).
      
      * nseries (n800, n810)
      
        Check whether order starts with 'n'.  Silently ignored otherwise.
      
      * prep, g3beige, mac99
      
        Extract the first character the machine understands (subset of
        'a'..'f').  Silently ignored otherwise.
      
      * spapr
      
        Accept an arbitrary string (vl.c restricts it to contain only
        'a'..'p', no duplicates).
      
      * sun4[mdc]
      
        Use the first character.  Silently ignored otherwise.
      
      Strip characters these machines ignore from their default boot order.
      
      For all other machines, remove the unused default boot order
      alltogether.
      
      Note that my rename of QEMUMachine member boot_order to
      default_boot_order and QEMUMachineInitArgs member boot_device to
      boot_order has a welcome side effect: it makes every use of boot
      orders visible in this patch, for easy review.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      c1654732
  19. 22 8月, 2013 1 次提交
  20. 30 7月, 2013 4 次提交
  21. 27 7月, 2013 1 次提交
  22. 10 7月, 2013 1 次提交
  23. 04 7月, 2013 2 次提交
  24. 02 6月, 2013 2 次提交
  25. 26 5月, 2013 1 次提交
    • B
      Remove Sun4c, Sun4d and a few CPUs · 6a4e1771
      Blue Swirl 提交于
      Sun4c and Sun4d architectures and related CPUs are not fully implemented
      (especially Sun4c MMU) and there has been no interest for them.
      
      Likewise, a few CPUs (Cypress, Ross etc) are only half implemented.
      
      Remove the machines and CPUs, they can be re-added if needed later.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      6a4e1771
  26. 21 4月, 2013 1 次提交
    • P
      qdev: Drop taddr properties · 21e5181f
      Peter Maydell 提交于
      Drop all the infrastructure for taddr properties (ie ones which
      are 'hwaddr' sized). These are now unused, and any further desired
      use would be rather questionable since device properties shouldn't
      generally depend on a type that is conceptually variable based on
      the target CPU. 32 or 64 bit integer properties should be used instead
      as appropriate for the specific device.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      21e5181f
  27. 09 4月, 2013 1 次提交
    • P
      hw: move headers to include/ · 0d09e41a
      Paolo Bonzini 提交于
      Many of these should be cleaned up with proper qdev-/QOM-ification.
      Right now there are many catch-all headers in include/hw/ARCH depending
      on cpu.h, and this makes it necessary to compile these files per-target.
      However, fixing this does not belong in these patches.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0d09e41a
  28. 28 3月, 2013 1 次提交
  29. 12 3月, 2013 3 次提交
  30. 01 3月, 2013 1 次提交