- 22 Dec, 2011 19 commits
-
-
Paolo Bonzini authored
Using the main loop code from QEMU enables tools to operate fully asynchronously. Advantages include better Windows portability (for some definition of portability) over glib's. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Move the buffer from NBDExport to a new structure, so that it will be possible to have multiple in-flight requests for the same export (and for the same client too---we get that for free). Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Wrap the common parameters of nbd_trip and nbd_negotiate in a single opaque struct. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Group the receiving of a response and the associated data into a new function. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Fail invalid requests with EINVAL instead of dropping them into the void. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Group the sending of a reply and the associated data into a new function. Without corking, the caller would be forced to leave 12 free bytes at the beginning of the data pointer. Not too ugly, but still ugly. :) Using nbd_do_send_reply everywhere will help when the routine will set up the write handler that re-enters the send coroutine. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Use TCP_CORK to remove a violation of encapsulation, that would later require nbd_trip to know too much about an NBD reply. We could also switch to sendmsg (qemu_co_sendv) later, it is even easier once coroutines are in. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
The size of the buffer is in practice part of the protocol. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
The argument is write-only. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Chunyan Liu authored
Update ioctl(s) in nbd_init() to detect device busy early. Current nbd_init() issues NBD_CLEAR_SOCKET before NBD_SET_SOCKET, if issuing "qemu-nbd -c /dev/nbd0 disk.img" twice, the second time won't detect EBUSY in nbd_init(), but in nbd_client will report EBUSY and do clear socket (the 1st time command will be affacted too because of no socket any more.) No change to previous version. Signed-off-by:
Chunyan Liu <cyliu@suse.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
bdrv_read and bdrv_write return negative errno values, not -1. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Allow sending up to 16 requests, and drive the replies to the coroutine that did the request. The code is written to be exactly the same as before this patch when MAX_NBD_REQUESTS == 1 (modulo the extra mutex and state). Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
qemu-nbd has a limit of slightly less than 1M per request. Work around this in the nbd block driver. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Outside coroutines, avoid busy waiting on EAGAIN by temporarily making the socket blocking. The API of qemu_recvv/qemu_sendv is slightly different from do_readv/do_writev because they do not handle coroutines. It returns the number of bytes written before encountering an EAGAIN. The specificity of yielding on EAGAIN is entirely in qemu-coroutine.c. Reviewed-by:
MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 21 Dec, 2011 1 commit
-
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 20 Dec, 2011 20 commits
-
-
Andrzej Zaborowski authored
Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Response format r6 includes a subset of the status bits; clear the clear-on-read bits which are read by an r6 response. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Fix some bugs in our implementation of the APP_CMD status bit: * the response to an ACMD should have APP_CMD set, not cleared * if an illegal ACMD is sent then the next command should be handled as a normal command This requires that we split "card is expecting an ACMD" from the state of the APP_CMD status bit (the latter indicates both "expecting ACMD" and "that was an ACMD"). Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Correct how we handle the type B ("cleared on valid command") status bits. In particular, the CURRENT_STATE bits in a response should be the state of the card when it received that command, not the state when it received the preceding command. (This is one of the issues noted in LP:597641.) Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
App commands in an invalid state should set ILLEGAL_COMMAND, not merely return a zero response. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Handle returning CRC and locked-card errors in the same code path we use for other responses. This makes no difference in behaviour but means that these error responses will be printed by the debug logging code. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Add an extra sd_illegal value to the sd_rsp_type_t enum so that sd_app_command() and sd_normal_command() can tell sd_do_command() that the command was illegal. This is needed so we can do things like reset certain status bits only on receipt of a valid command. For the moment, just use it to pull out the setting of the ILLEGAL_COMMAND status bit into sd_do_command(). Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Fix a typo that meant that ADDRESS_ERRORs setting or clearing write protection would clear every other bit in the status register. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
If we fail to validate the CRC for an SD command we should be setting COM_CRC_ERROR, not clearing it. (This bug actually has no effect currently because sd_req_crc_validate() always returns success.) Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Add a clarifying comment about what the CARD_STATUS_[ABC] macros are defining. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Fix bugs in the code determining whether to accept a command when the SD card is locked. Most notably, we had the condition completely reversed, so we would accept all the commands we should refuse and refuse all the commands we should accept. Correct this by refactoring the enormous if () clause into a separate function. We had also missed ACMD42 off the list of commands which are accepted in locked state: add it. This is one of the two problems reported in LP:597641. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andrzej Zaborowski <andrew.zaborowski@intel.com>
-
Peter Maydell authored
Now that all sysbus MMIO regions are MemoryRegions, mmio[n].memory is never NULL, and we can remove some unnecessary conditionals. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Alon Levy authored
since commit f9b29ca03 included in release 2.31 (docs below say 2.32 but that is not correct) and onwards g_thread_init is deprecated and calling it is not required: http://developer.gnome.org/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-init g_thread_init has been deprecated since version 2.32 and should not be used in newly-written code. This function is no longer necessary. The GLib threading system is automatically initialized at the start of your program. Fixes bulid failure when warnings are treated as errors on fedora 17. I only tested the change to vl.c, and copy pasted to the two other locations (couldn't decide if a wrapper for calling g_thread_init is uglier). Signed-off-by:
Alon Levy <alevy@redhat.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Hervé Poussineau authored
Signed-off-by:
Hervé Poussineau <hpoussin@reactos.org> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-