Skip to content
Snippets Groups Projects
  1. Sep 30, 2015
  2. Sep 29, 2015
  3. Sep 25, 2015
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-cocoa-20150925-1' into staging · 6996a002
      Peter Maydell authored
      
      cocoa queue:
       * fix stuck-key bug if keys were down when QEMU lost focus
       * prompt the user whether they really meant to quit
       * remove the 'open image file' dialog box we used to display
         if the user started QEMU without arguments
      
      # gpg: Signature made Fri 25 Sep 2015 23:17:19 BST using RSA key ID 14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
      # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"
      
      * remotes/pmaydell/tags/pull-cocoa-20150925-1:
        ui/cocoa.m: remove open dialog code
        ui/cocoa.m: prevent stuck key situation
        ui/cocoa.m: verify with user before quitting QEMU
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      6996a002
    • John Arbuckle's avatar
      ui/cocoa.m: remove open dialog code · 365d7f3c
      John Arbuckle authored
      
      Removes the open dialog code that runs when no arguments are supplied with QEMU.
      Not everyone needs a hard drive or cdrom to boot their target. A user might only
      need to use their target's bios to do work. With that said, this patch removes
      the unneeded open dialog code.
      
      Signed-off-by: default avatarJohn Arbuckle <programmingkidx@gmail.com>
      Message-id: 33856864-321C-4367-9170-FB0BF81E789B@gmail.com
      Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      365d7f3c
    • John Arbuckle's avatar
      ui/cocoa.m: prevent stuck key situation · 3b178b71
      John Arbuckle authored
      
      When the user puts QEMU in the background while holding
      down a key, QEMU will not receive the keyup event when
      the user lets go of the key. When the user goes back to
      QEMU, QEMU will think the key is still down causing
      stuck key symptoms. This patch fixes this problem by
      releasing all down keys when QEMU goes into the
      background.
      
      Signed-off-by: default avatarJohn Arbuckle <programmingkidx@gmail.com>
      Message-id: 7A3FA6EE-84C8-4422-A786-C899B7229D32@gmail.com
      Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      3b178b71
    • John Arbuckle's avatar
      ui/cocoa.m: verify with user before quitting QEMU · d9bc14f6
      John Arbuckle authored
      
      This patch prevents the user from accidentally quitting QEMU by pushing
      Command-Q or by pushing the close button on the main window. When
      the user does one of these two things, a dialog box appears verifying
      with the user if he or she wants to quit QEMU.
      
      Signed-off-by: default avatarJohn Arbuckle <programmingkidx@gmail.com>
      Message-id: 29169A74-0347-47F5-934F-A5AD24C225CA@gmail.com
      Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      d9bc14f6
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 9e071429
      Peter Maydell authored
      
      * First batch of MAINTAINERS updates
      * IOAPIC fixes (to pass kvm-unit-tests with -machine kernel_irqchip=off)
      * NBD API upgrades from Daniel
      * strtosz fixes from Marc-André
      * improved support for readonly=on on scsi-generic devices
      * new "info ioapic" and "info lapic" monitor commands
      * Peter Crosthwaite's ELF_MACHINE cleanups
      * docs patches from Thomas and Daniel
      
      # gpg: Signature made Fri 25 Sep 2015 11:20:52 BST using RSA key ID 78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      
      * remotes/bonzini/tags/for-upstream: (52 commits)
        doc: Refresh URLs in the qemu-tech documentation
        docs: describe the QEMU build system structure / design
        typedef: add typedef for QemuOpts
        i386: interrupt poll processing
        i386: partial revert of interrupt poll fix
        ppc: Rename ELF_MACHINE to be PPC specific
        i386: Rename ELF_MACHINE to be x86 specific
        alpha: Remove ELF_MACHINE from cpu.h
        mips: Remove ELF_MACHINE from cpu.h
        sparc: Remove ELF_MACHINE from cpu.h
        s390: Remove ELF_MACHINE from cpu.h
        sh4: Remove ELF_MACHINE from cpu.h
        xtensa: Remove ELF_MACHINE from cpu.h
        tricore: Remove ELF_MACHINE from cpu.h
        or32: Remove ELF_MACHINE from cpu.h
        lm32: Remove ELF_MACHINE from cpu.h
        unicore: Remove ELF_MACHINE from cpu.h
        moxie: Remove ELF_MACHINE from cpu.h
        cris: Remove ELF_MACHINE from cpu.h
        m68k: Remove ELF_MACHINE from cpu.h
        ...
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      9e071429
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20150925.0' into staging · 8bfbbb4b
      Peter Maydell authored
      
      VFIO updates 2015-09-25
      
       - Remove use of g_malloc0_n for glib2.22 compat
      
      # gpg: Signature made Fri 25 Sep 2015 17:58:04 BST using RSA key ID 3BB08B22
      # gpg: Good signature from "Alex Williamson <alex.williamson@redhat.com>"
      # gpg:                 aka "Alex Williamson <alex@shazbot.org>"
      # gpg:                 aka "Alex Williamson <alwillia@redhat.com>"
      # gpg:                 aka "Alex Williamson <alex.l.williamson@gmail.com>"
      
      * remotes/awilliam/tags/vfio-update-20150925.0:
        vfio/pci: Remove use of g_malloc0_n() from quirks
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      8bfbbb4b
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging · 54b37623
      Peter Maydell authored
      
      # gpg: Signature made Fri 25 Sep 2015 16:47:31 BST using RSA key ID C0DE3057
      # gpg: Good signature from "Jeffrey Cody <jcody@redhat.com>"
      # gpg:                 aka "Jeffrey Cody <jeff@codyprime.org>"
      # gpg:                 aka "Jeffrey Cody <codyprime@gmail.com>"
      
      * remotes/cody/tags/block-pull-request:
        sheepdog: refine discard support
        sheepdog: use per AIOCB dirty indexes for non overlapping requests
        Backup: don't do copy-on-read in before_write_notifier
        block: Introduce a new API bdrv_co_no_copy_on_readv()
        sheepdog: add reopen support
        block/nfs: cache allocated filesize for read-only files
        block/nfs: fix calculation of allocated file size
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      54b37623
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/vivier-misc/tags/pull-muldiv64-20150925' into staging · 690b286f
      Peter Maydell authored
      
      Remove muldiv64() by using period instead of frequency
      
      # gpg: Signature made Fri 25 Sep 2015 14:54:37 BST using RSA key ID 3F2FBE3C
      # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>"
      # gpg:                 aka "Laurent Vivier <laurent@vivier.eu>"
      # gpg:                 aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>"
      # gpg: WARNING: This key is not certified with a trusted signature!
      # gpg:          There is no indication that the signature belongs to the owner.
      # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C
      
      * remotes/vivier-misc/tags/pull-muldiv64-20150925:
        net: remove muldiv64()
        bt: remove muldiv64()
        hpet: remove muldiv64()
        arm: clarify the use of muldiv64()
        openrisc: remove muldiv64()
        mips: remove muldiv64()
        pcnet: remove muldiv64()
        rtl8139: remove muldiv64()
        i6300esb: remove muldiv64()
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      690b286f
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging · cdf98182
      Peter Maydell authored
      
      virtio,pc features, fixes
      
      New features:
          vhost-user multiqueue support
          virtio-ccw virtio 1 support
      
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      
      # gpg: Signature made Fri 25 Sep 2015 07:40:35 BST using RSA key ID D28D5469
      # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>"
      # gpg:                 aka "Michael S. Tsirkin <mst@redhat.com>"
      
      * remotes/mst/tags/for_upstream:
        MAINTAINERS: add more devices to the PCI section
        MAINTAINERS: add more devices to the PC section
        vhost-user: add a new message to disable/enable a specific virt queue.
        vhost-user: add multiple queue support
        vhost: introduce vhost_backend_get_vq_index method
        vhost-user: add VHOST_USER_GET_QUEUE_NUM message
        vhost: rename VHOST_RESET_OWNER to VHOST_RESET_DEVICE
        vhost-user: add protocol feature negotiation
        vhost-user: use VHOST_USER_XXX macro for switch statement
        virtio-ccw: enable virtio-1
        virtio-ccw: feature bits > 31 handling
        virtio-ccw: support ring size changes
        virtio: ring sizes vs. reset
        pc: Introduce pc-*-2.5 machine classes
        q35: Move options common to all classes to pc_i440fx_machine_options()
        q35: Move options common to all classes to pc_q35_machine_options()
        virtio-net: unbreak self announcement and guest offloads after migration
        virtio: right size for virtio_queue_get_avail_size
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      cdf98182
    • Hitoshi Mitake's avatar
      sheepdog: refine discard support · e6fd57ea
      Hitoshi Mitake authored
      
      This patch refines discard support of the sheepdog driver. The
      existing discard mechanism was implemented on SD_OP_DISCARD_OBJ, which
      was introduced before fine grained reference counting on newer
      sheepdog. It doesn't care about relations of snapshots and clones and
      discards objects unconditionally.
      
      With this patch, the driver just updates an inode object for updating
      reference. Removing the object is done in sheep process side.
      
      Cc: Teruaki Ishizaki <ishizaki.teruaki@lab.ntt.co.jp>
      Cc: Vasiliy Tolstov <v.tolstov@selfip.ru>
      Cc: Jeff Cody <jcody@redhat.com>
      Signed-off-by: default avatarHitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
      Tested-by: default avatarVasiliy Tolstov <v.tolstov@selfip.ru>
      Message-id: 1441076590-8015-3-git-send-email-mitake.hitoshi@lab.ntt.co.jp
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      e6fd57ea
    • Hitoshi Mitake's avatar
      sheepdog: use per AIOCB dirty indexes for non overlapping requests · 498f2140
      Hitoshi Mitake authored
      
      In the commit 96b14ff85acf, requests for overlapping areas are
      serialized. However, it cannot handle a case of non overlapping
      requests. In such a case, min_dirty_data_idx and max_dirty_data_idx
      can be overwritten by the requests and invalid inode update can
      happen e.g. a case like create(1, 2) and create(3, 4) are issued in
      parallel.
      
      This patch lets SheepdogAIOCB have dirty data indexes instead of
      BDRVSheepdogState for avoiding the above situation.
      
      This patch also does trivial renaming for better description:
      overwrapping -> overlapping
      
      Cc: Teruaki Ishizaki <ishizaki.teruaki@lab.ntt.co.jp>
      Cc: Vasiliy Tolstov <v.tolstov@selfip.ru>
      Cc: Jeff Cody <jcody@redhat.com>
      Signed-off-by: default avatarHitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
      Tested-by: default avatarVasiliy Tolstov <v.tolstov@selfip.ru>
      Message-id: 1441076590-8015-2-git-send-email-mitake.hitoshi@lab.ntt.co.jp
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      498f2140
    • Laurent Vivier's avatar
      net: remove muldiv64() · ab60b748
      Laurent Vivier authored
      
      muldiv64() is used to convert nanoseconds to microseconds.
      
          x = muldiv64(qemu_clock_get_ns(..), 1000000, get_ticks_per_sec());
      
      As  get_ticks_per_sec() is 10^9, it can be replaced by:
      
          x = qemu_clock_get_us(..);
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      ab60b748
    • Laurent Vivier's avatar
      bt: remove muldiv64() · fdfea124
      Laurent Vivier authored
      
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds.
      
      As get_ticks_per_sec() is 10^9,
      
          a = muldiv64(b, get_ticks_per_sec(), 100);
          y = muldiv64(x, get_ticks_per_sec(), 1000000);
      
      can be converted to
      
          a = b * 10000000;
          y = x * 1000;
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      fdfea124
    • Laurent Vivier's avatar
      hpet: remove muldiv64() · 0a4f9240
      Laurent Vivier authored
      
      hpet defines a clock period in femtoseconds but
      then converts it to nanoseconds to use the internal
      timers.
      
      We can define the period in nanoseconds and use it
      directly, this allows to remove muldiv64().
      
      We only need to convert the period to femtoseconds
      to put it in internal hpet capability register.
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0a4f9240
    • Laurent Vivier's avatar
      arm: clarify the use of muldiv64() · 352c98e5
      Laurent Vivier authored
      
      muldiv64() is used to convert microseconds into CPU ticks.
      
      But it is not clear and not commented. This patch uses macro
      to clearly identify what is used: time, CPU frequency and ticks.
      For an elapsed time and a given frequency, we compute how many ticks
       we have.
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarPeter Crosthwaite <crosthwaite.peter@gmail.com>
      Acked-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      352c98e5
    • Laurent Vivier's avatar
      openrisc: remove muldiv64() · ccaf1749
      Laurent Vivier authored
      
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), TIMER_FREQ)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as openrisc timer frequency is 20 MHz, we can also do:
      
          y = x * 50; /* 20 MHz period is 50 ns */
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      ccaf1749
    • Laurent Vivier's avatar
      mips: remove muldiv64() · 683dca6b
      Laurent Vivier authored
      
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), TIMER_FREQ)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as MIPS timer frequency is 100 MHz, we can also do:
      
          y = x * 10; /* 100 MHz period is 10 ns */
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarLeon Alrae <leon.alrae@imgtec.com>
      683dca6b
    • Laurent Vivier's avatar
      pcnet: remove muldiv64() · c6acbe86
      Laurent Vivier authored
      
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as PCI frequency is 33 MHz, we can also do:
      
          y = x * 30; /* 33 MHz PCI period is 30 ns */
      
      Which is much more simple.
      
      This implies a 33.333333 MHz PCI frequency,
      but this is correct.
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      c6acbe86
    • Laurent Vivier's avatar
      rtl8139: remove muldiv64() · 37b9ab92
      Laurent Vivier authored
      
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as PCI frequency is 33 MHz, we can also do:
      
          y = x * 30; /* 33 MHz PCI period is 30 ns */
      
      Which is much more simple.
      
      This implies a 33.333333 MHz PCI frequency,
      but this is correct.
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      37b9ab92
    • Laurent Vivier's avatar
      i6300esb: remove muldiv64() · 9491e9bc
      Laurent Vivier authored
      
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as PCI frequency is 33 MHz, we can also do:
      
          y = x * 30; /* 33 MHz PCI period is 30 ns */
      
      Which is much more simple.
      
      This implies a 33.333333 MHz PCI frequency,
      but this is correct.
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      9491e9bc
    • Wen Congyang's avatar
      Backup: don't do copy-on-read in before_write_notifier · 06c3916b
      Wen Congyang authored
      
      We will copy data in before_write_notifier to do backup.
      It is a nested I/O request, so we cannot do copy-on-read.
      
      The steps to reproduce it:
      1. -drive copy-on-read=on,...  // qemu option
      2. drive_backup -f disk0 /path_to_backup.img // monitor command
      
      Signed-off-by: default avatarWen Congyang <wency@cn.fujitsu.com>
      Tested-by: default avatarJeff Cody <jcody@redhat.com>
      Message-id: 1441682913-14320-3-git-send-email-wency@cn.fujitsu.com
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      06c3916b
    • Wen Congyang's avatar
      block: Introduce a new API bdrv_co_no_copy_on_readv() · 9568b511
      Wen Congyang authored
      
      In some cases, we need to disable copy-on-read, and just
      read the data.
      
      Signed-off-by: default avatarWen Congyang <wency@cn.fujitsu.com>
      Message-id: 1441682913-14320-2-git-send-email-wency@cn.fujitsu.com
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      9568b511
    • Liu Yuan's avatar
      sheepdog: add reopen support · 4da65c80
      Liu Yuan authored
      
      With reopen supported, block-commit (and offline commit) is now supported for
      image files whose base image uses the Sheepdog protocol driver.
      
      Cc: qemu-devel@nongnu.org
      Cc: Jeff Cody <jcody@redhat.com>
      Cc: Kevin Wolf <kwolf@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: default avatarLiu Yuan <liuyuan@cmss.chinamobile.com>
      Message-id: 1440730438-24676-1-git-send-email-namei.unix@gmail.com
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      4da65c80
    • Peter Lieven's avatar
      block/nfs: cache allocated filesize for read-only files · 18a8056e
      Peter Lieven authored
      
      If the file is readonly its not expected to grow so
      save the blocking call to nfs_fstat_async and use
      the value saved at connection time. Also important
      the monitor (and thus the main loop) will not hang
      if block device info is queried and the NFS share
      is unresponsive.
      
      Signed-off-by: default avatarPeter Lieven <pl@kamp.de>
      Reviewed-by: default avatarJeff Cody <jcody@redhat.com>
      Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
      Message-id: 1440671441-7978-1-git-send-email-pl@kamp.de
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      18a8056e
    • Peter Lieven's avatar
      block/nfs: fix calculation of allocated file size · 055c6f91
      Peter Lieven authored
      
      st.st_blocks is always counted in 512 byte units. Do not
      use st.st_blksize as multiplicator which may be larger.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: default avatarPeter Lieven <pl@kamp.de>
      Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
      Reviewed-by: default avatarJeff Cody <jcody@redhat.com>
      Message-id: 1440067607-14547-1-git-send-email-pl@kamp.de
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      055c6f91
    • Thomas Huth's avatar
      doc: Refresh URLs in the qemu-tech documentation · 8e9620a6
      Thomas Huth authored
      
      The TwoOStwo and Willows page seem to have disappeared completely,
      and also some of the other links were not pointing to the right
      locations anymore.
      
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      Message-Id: <1443173916-8895-1-git-send-email-thuth@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      8e9620a6
Loading