This is done by a narrowly aimed 'udev trigger' call that shouldn't
retrigger anything else. No related modules need to be loaded manually
now, they're builtin.
Resolves: rhbz#672527
---
loader/init.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/loader/init.c b/loader/init.c
index 51ab2a2..18ff83b 100644
--- a/loader/init.c
+++ b/loader/init.c
@@ -343,9 +343,10 @@ static int getSyslog(gchar **addr, gchar **virtiolog) {
if (onQEMU()) {
/* look for virtio-serial logging on a QEMU machine. */
- printf("Loading virtio_pci module... ");
- if (mlLoadModule("virtio_pci", NULL)) {
- fprintf(stderr, "Error loading virtio_pci module.\n");
+ printf("Looking for the virtio ports... ");
+ if (system("/sbin/udevadm trigger --action=add --sysname-match='vport*'") ||
+ system("/sbin/udevadm settle")) {
+ fprintf(stderr, "Error calling udevadm trigger to get virtio ports.\n");
sleep(5);
} else {
printf("done.\n");