kvm-s390: implement config_changed for virtio on s390
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 18 Nov 2008 21:44:13 +0000 (22:44 +0100)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 29 Dec 2008 22:56:11 +0000 (09:26 +1030)
commitbe3c5832d51174ef7f21cefd6ad612dabdcb62fd
tree320f5ed69cbbb82d211ed721294296e3eff858e7
parentc29834584ea4eafccf2f62a0b8a32e64f792044c
kvm-s390: implement config_changed for virtio on s390

This patch implements config_changed for the s390 virtio transport.

We use the least significant bit of the interrupt parameter field
to decide, if this interrupt should call the virtio virtqueue callback
or the config_changed callback.

This method is compatible with old host and guest code. Old 64 bit guests
will not check the bit and trigger a harmless additional vring_interrupt
call. Old host code will never set this bit, this is also safe.

This patch also takes care of a potential future 31 bit virtio transport
for s390. On 31 bit _LC_PFAULT_INTPARM and __LC_EXT_PARAMS are identical.
We exploit the alignment of the token and fold the change bit into the
lsb of the token itself.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
drivers/s390/kvm/kvm_virtio.c