virtio: set device index in common code.
authorRusty Russell <rusty@rustcorp.com.au>
Fri, 30 May 2008 20:09:42 +0000 (15:09 -0500)
committerRusty Russell <rusty@rustcorp.com.au>
Fri, 30 May 2008 05:09:42 +0000 (15:09 +1000)
commitb769f579081943f14e0ff03b7b0bd3a11cf14625
tree026d89b6d937af43af4a692bcf547e032f0c58cc
parent5610bd1524332fe7d651eb56cc780e32763a2ac3
virtio: set device index in common code.

Anthony Liguori points out that three different transports use the virtio code,
but each one keeps its own counter to set the virtio_device's index field.  In
theory (though not in current practice) this means that names could be
duplicated, and that risk grows as more transports are created.

So we move the selection of the unique virtio_device.index into the common code
in virtio.c, which has the side-benefit of removing duplicate code.

The only complexity is that lguest and S/390 use the index to uniquely identify
the device in case of catastrophic failure before register_virtio_device() is
called: now we use the offset within the descriptor page as a unique identifier
for the printks.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Carsten Otte <cotte@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Chris Lalancette <clalance@redhat.com>
Cc: Anthony Liguori <anthony@codemonkey.ws>
drivers/lguest/lguest_device.c
drivers/s390/kvm/kvm_virtio.c
drivers/virtio/virtio.c
drivers/virtio/virtio_pci.c