1. 26 4月, 2017 3 次提交
    • S
      xen/9pfs: receive requests from the frontend · 47b70fb1
      Stefano Stabellini 提交于
      Upon receiving an event channel notification from the frontend, schedule
      the bottom half. From the bottom half, read one request from the ring,
      create a pdu and call pdu_submit to handle it.
      
      For now, only handle one request per ring at a time.
      Signed-off-by: NStefano Stabellini <stefano@aporeto.com>
      CC: anthony.perard@citrix.com
      CC: jgross@suse.com
      CC: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      CC: Greg Kurz <groug@kaod.org>
      47b70fb1
    • S
      xen/9pfs: connect to the frontend · f23ef34a
      Stefano Stabellini 提交于
      Write the limits of the backend to xenstore. Connect to the frontend.
      Upon connection, allocate the rings according to the protocol
      specification.
      
      Initialize a QEMUBH to schedule work upon receiving an event channel
      notification from the frontend.
      Signed-off-by: NStefano Stabellini <stefano@aporeto.com>
      CC: anthony.perard@citrix.com
      CC: jgross@suse.com
      CC: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      CC: Greg Kurz <groug@kaod.org>
      f23ef34a
    • S
      xen/9pfs: introduce Xen 9pfs backend · b37eeb02
      Stefano Stabellini 提交于
      Introduce the Xen 9pfs backend: add struct XenDevOps to register as a
      Xen backend and add struct V9fsTransport to register as v9fs transport.
      
      All functions are empty stubs for now.
      Signed-off-by: NStefano Stabellini <stefano@aporeto.com>
      Reviewed-by: NGreg Kurz <groug@kaod.org>
      CC: anthony.perard@citrix.com
      CC: jgross@suse.com
      CC: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      CC: Greg Kurz <groug@kaod.org>
      b37eeb02
  2. 22 4月, 2017 8 次提交
  3. 23 3月, 2017 3 次提交
  4. 22 3月, 2017 1 次提交
  5. 21 3月, 2017 7 次提交
    • P
      configure: Warn about deprecated hosts · 898be3e0
      Peter Maydell 提交于
      We plan to drop support in a future QEMU release for host OSes
      and host architectures for which we have no test machine where
      we can build and run tests. For the 2.9 release, make configure
      print a warning if it is run on such a host, so that the user
      has some warning of the plans and can volunteer to help us
      maintain the port if they need it to continue to function.
      
      This commit flags up as deprecated the CPU architectures:
       * ia64
       * sparc
       * anything which we don't have a TCG port for
         (and which was presumably using TCI)
      and the OSes:
       * GNU/kFreeBSD
       * DragonFly BSD
       * NetBSD
       * OpenBSD
       * Solaris
       * AIX
       * Haiku
      
      It also makes entirely unrecognized host OS strings be
      rejected rather than treated as if they were Linux (which
      likely never worked).
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1490106717-9542-1-git-send-email-peter.maydell@linaro.org
      898be3e0
    • P
      Merge remote-tracking branch 'remotes/gkurz/tags/for-upstream' into staging · 41a56822
      Peter Maydell 提交于
      This pull request fixes a potential QEMU hang in 9pfs and two issues
      reported by Coverity.
      
      # gpg: Signature made Tue 21 Mar 2017 09:57:58 GMT
      # gpg:                using DSA key 0x02FC3AEB0101DBC2
      # gpg: Good signature from "Greg Kurz <groug@kaod.org>"
      # gpg:                 aka "Greg Kurz <groug@free.fr>"
      # gpg:                 aka "Greg Kurz <gkurz@linux.vnet.ibm.com>"
      # gpg:                 aka "Gregory Kurz (Groug) <groug@free.fr>"
      # gpg:                 aka "[jpeg image of size 3330]"
      # 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: 2BD4 3B44 535E C0A7 9894  DBA2 02FC 3AEB 0101 DBC2
      
      * remotes/gkurz/tags/for-upstream:
        9pfs: proxy: assert if unmarshal fails
        9pfs: don't try to flush self and avoid QEMU hang on reset
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      41a56822
    • G
      add opengl_cflags to QEMU_CFLAGS · cc720a5d
      Gerd Hoffmann 提交于
      ... and drop OPENGL_CFLAGS from Makefiles.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Message-id: 1490079888-29029-1-git-send-email-kraxel@redhat.com
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      cc720a5d
    • G
      9pfs: proxy: assert if unmarshal fails · 262169ab
      Greg Kurz 提交于
      Replies from the virtfs proxy are made up of a fixed-size header (8 bytes)
      and a payload of variable size (maximum 64kb). When receiving a reply,
      the proxy backend first reads the whole header and then unmarshals it.
      If the header is okay, it then does the same operation with the payload.
      
      Since the proxy backend uses a pre-allocated buffer which has enough room
      for a header and the maximum payload size, marshalling should never fail
      with fixed size arguments. Any error here is likely to result from a more
      serious corruption in QEMU and we'd better dump core right away.
      
      This patch adds error checks where they are missing and converts the
      associated error paths into assertions.
      
      This should also address Coverity's complaints CID 1348519 and CID 1348520,
      about not always checking the return value of proxy_unmarshal().
      Signed-off-by: NGreg Kurz <groug@kaod.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      262169ab
    • G
      9pfs: don't try to flush self and avoid QEMU hang on reset · d5f2af7b
      Greg Kurz 提交于
      According to the 9P spec [*], when a client wants to cancel a pending I/O
      request identified by a given tag (uint16), it must send a Tflush message
      and wait for the server to respond with a Rflush message before reusing this
      tag for another I/O. The server may still send a completion message for the
      I/O if it wasn't actually cancelled but the Rflush message must arrive after
      that.
      
      QEMU hence waits for the flushed PDU to complete before sending the Rflush
      message back to the client.
      
      If a client sends 'Tflush tag oldtag' and tag == oldtag, QEMU will then
      allocate a PDU identified by tag, find it in the PDU list and wait for
      this same PDU to complete... i.e. wait for a completion that will never
      happen. This causes a tag and ring slot leak in the guest, and a PDU
      leak in QEMU, all of them limited by the maximal number of PDUs (128).
      But, worse, this causes QEMU to hang on device reset since v9fs_reset()
      wants to drain all pending I/O.
      
      This insane behavior is likely to denote a bug in the client, and it would
      deserve an Rerror message to be sent back. Unfortunately, the protocol
      allows it and requires all flush requests to suceed (only a Tflush response
      is expected).
      
      The only option is to detect when we have to handle a self-referencing
      flush request and report success to the client right away.
      
      [*] http://man.cat-v.org/plan_9/5/flushReported-by: NAl Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: NGreg Kurz <groug@kaod.org>
      d5f2af7b
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 940a8ce0
      Peter Maydell 提交于
      fixes for 2.9-rc1, plus removal of -mno-cygwin references
      
      # gpg: Signature made Mon 20 Mar 2017 11:25:07 GMT
      # gpg:                using RSA key 0xBFFBD25F78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
      #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
      
      * remotes/bonzini/tags/for-upstream:
        hax: fix breakage in locking
        configure: remove Cygwin
        xen: do not build backends for targets that do not support xen
        qemu-ga: obey LISTEN_PID when using systemd socket activation
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      940a8ce0
    • G
      audio: catch missing sdl support · 373967b2
      Gerd Hoffmann 提交于
      sdl is probed before audio, so we can simply look at $sdl so see
      whenever we have support or not.  Throw an error in case sdl audio
      is requested without sdl being available.
      Reported-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Tested-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1490000743-3615-1-git-send-email-kraxel@redhat.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      373967b2
  6. 20 3月, 2017 18 次提交