Signed-off-by: Michael Roth <email address hidden>
e1a0ffb...
by
Michael Contreras <email address hidden>
e1000: Discard packets that are too long if !SBP and !LPE
The e1000_receive function for the e1000 needs to discard packets longer than
1522 bytes if the SBP and LPE flags are disabled. The linux driver assumes
this behavior and allocates memory based on this assumption.
Signed-off-by: Michael Contreras <email address hidden>
Signed-off-by: Anthony Liguori <email address hidden>
(cherry picked from commit b0d9ffcd0251161c7c92f94804dcf599dfa3edeb)
Signed-off-by: Michael Roth <email address hidden>
Note that the vexpress-a9 machine does not have a USB host controller.
Reported-by: David Abdurachmanov <email address hidden>
Signed-off-by: Stefan Hajnoczi <email address hidden>
Signed-off-by: Gerd Hoffmann <email address hidden>
(cherry picked from commit c128d6a6d785eb9235a4f6dbd52f405ab8c60bee)
Signed-off-by: Michael Roth <email address hidden>
8c9283c...
by
Yonit Halperin <email address hidden>
qxl: reload memslots after migration, when qxl is in UNDEFINED mode
The devram memslot stays active when qxl enters UNDEFINED mode (i.e, no
primary surface). If migration has occurred while the device is in
UNDEFINED stae, the memslots have to be reloaded at the destination.
The virtio-scsi config space is, by specification, in guest endian (which
is ill-defined, but there you go). In virtio_scsi_get_config() we set up
all the fields in there, using stl_raw(). Which is a problem for the
max_channel and max_target fields, which are 16-bit, not 32-bit. For
little-endian targets we get away with it by accident, since the first
two bytes will still be correct, and the extra two bytes written (with
zeroes) will be overwritten correctly by the next store.
But for big-endian guests, this means the max_target field ends up as zero,
which means the guest will only recognize a single disk on the virtio-scsi
bus. This patch fixes the problem.
Cc: Paolo Bonzini <email address hidden>
Cc: Paul 'Rusty' Russell <email address hidden>
Signed-off-by: David Gibson <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit 863d1050c96cff91dd478767c0da9cc288575919)
Signed-off-by: Michael Roth <email address hidden>
virtio-scsi: Fix some endian bugs with virtio-scsi
The virtio-scsi specification does not specify the correct endianness for
fields in the request structure. It's therefore best to assume that it is
"guest native" endian since that's the (stupid and poorly defined) norm in
virtio.
However, the qemu device for virtio-scsi has no byteswaps at all, and so
will break if the guest has different endianness from the host. This patch
fixes it by adding tswap() calls for the sense_len and resid fields in
the request structure. In theory status_qualifier needs swaps as well,
but that field is never actually touched. The tag field is a uint64_t, but
since its value is completely arbitrary, it might as well be uint8_t[8]
and so it does not need swapping.
Cc: Paolo Bonzini <email address hidden>
Cc: Paul 'Rusty' Russell <email address hidden>
Signed-off-by: David Gibson <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit 474ee55a18765e7de8f0b2cc00db5d26286bb24d)
Signed-off-by: Michael Roth <email address hidden>
If the connection is interrupted before the first login is successfully
completed qemu-kvm is waiting forever in qemu_aio_wait().
This is fixed by performing an sync login to the target. If the
connection breaks after the first successful login errors are
handled internally by libiscsi.
Signed-off-by: Peter Lieven <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit e829b0bb054ed3389e5b22dad61875e51674e629)
Signed-off-by: Michael Roth <email address hidden>