]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: s390: virtio-ccw: don't overwrite config space values
authorCornelia Huck <cornelia.huck@de.ibm.com>
Mon, 29 Jun 2015 14:44:01 +0000 (16:44 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 3 Jul 2015 16:55:18 +0000 (18:55 +0200)
commit125ae4d50739e7526e4bccd3be2521f2cf2ef31e
treead254fb0e1540501d690508b2ddf0eaea38815b8
parent4ad9eb93cfca32fe12325998e640f3bb07942100
KVM: s390: virtio-ccw: don't overwrite config space values

Eric noticed problems with vhost-scsi and virtio-ccw: vhost-scsi
complained about overwriting values in the config space, which
was triggered by a broken implementation of virtio-ccw's config
get/set routines. It was probably sheer luck that we did not hit
this before.

When writing a value to the config space, the WRITE_CONF ccw will
always write from the beginning of the config space up to and
including the value to be set. If the config space up to the value
has not yet been retrieved from the device, however, we'll end up
overwriting values. Keep track of the known config space and update
if needed to avoid this.

Moreover, READ_CONF will only read the number of bytes it has been
instructed to retrieve, so we must not copy more than that to the
buffer, or we might overwrite trailing values.

Reported-by: Eric Farman <farman@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Eric Farman <farman@linux.vnet.ibm.com>
Tested-by: Eric Farman <farman@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
drivers/s390/kvm/virtio_ccw.c