aboutsummaryrefslogtreecommitdiffstats
path: root/emulators/kqemu-kmod
diff options
context:
space:
mode:
authornork <nork@FreeBSD.org>2005-11-06 17:03:02 +0800
committernork <nork@FreeBSD.org>2005-11-06 17:03:02 +0800
commit559f14ef352503046bbce85795d66561b115d25f (patch)
tree7c2c219a4ab23670a41a4f5b367b74e210247e3b /emulators/kqemu-kmod
parentb2a24d5605c3a887901ec7408ab39f8527a5db0e (diff)
downloadfreebsd-ports-gnome-559f14ef352503046bbce85795d66561b115d25f.tar.gz
freebsd-ports-gnome-559f14ef352503046bbce85795d66561b115d25f.tar.zst
freebsd-ports-gnome-559f14ef352503046bbce85795d66561b115d25f.zip
Fix kernel panic after stopping qemu.
Submitted by: pjd
Diffstat (limited to 'emulators/kqemu-kmod')
-rw-r--r--emulators/kqemu-kmod/Makefile1
-rw-r--r--emulators/kqemu-kmod/files/patch-kqemu-freebsd.c15
2 files changed, 9 insertions, 7 deletions
diff --git a/emulators/kqemu-kmod/Makefile b/emulators/kqemu-kmod/Makefile
index 1257adadb797..03f84aa01af2 100644
--- a/emulators/kqemu-kmod/Makefile
+++ b/emulators/kqemu-kmod/Makefile
@@ -7,6 +7,7 @@
PORTNAME= kqemu
PORTVERSION= 0.7.2
+PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= http://fabrice.bellard.free.fr/qemu/
PKGNAMESUFFIX= -kmod
diff --git a/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c b/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c
index 27eb0420a4ff..ac413bb54912 100644
--- a/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c
+++ b/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c
@@ -1,5 +1,5 @@
---- kqemu-freebsd.c.orig Mon Aug 15 01:34:06 2005
-+++ kqemu-freebsd.c Tue Oct 25 21:08:43 2005
+--- kqemu-freebsd.c.orig Sun Aug 14 18:34:06 2005
++++ kqemu-freebsd.c Thu Nov 3 17:15:47 2005
@@ -3,32 +3,55 @@
#include <sys/param.h>
#include <sys/systm.h>
@@ -228,7 +228,7 @@
static char log_buf[4096];
-@@ -176,47 +227,159 @@
+@@ -176,47 +227,160 @@
va_end(ap);
}
@@ -312,6 +312,7 @@
+ *dev = make_dev(&kqemu_cdevsw, unit2minor(unit),
+ UID_ROOT, GID_WHEEL, 0660, "kqemu%d", unit);
+ if (*dev != NULL) {
++ dev_ref(*dev);
+ (*dev)->si_flags |= SI_CHEAPCLONE;
+ }
+ }
@@ -393,7 +394,7 @@
{
int error = 0;
int ret;
-@@ -231,8 +394,9 @@
+@@ -231,8 +395,9 @@
break;
}
d1 = *(struct kqemu_init *)addr;
@@ -405,7 +406,7 @@
if (s == NULL) {
error = ENOMEM;
break;
-@@ -248,9 +412,16 @@
+@@ -248,9 +413,16 @@
}
ctx = kqemu_get_cpu_state(s);
*ctx = *(struct kqemu_cpu_state *)addr;
@@ -422,7 +423,7 @@
*(struct kqemu_cpu_state *)addr = *ctx;
break;
}
-@@ -265,10 +436,22 @@
+@@ -265,10 +437,22 @@
/* ARGSUSED */
static int
@@ -446,7 +447,7 @@
}
/* ARGSUSED */
-@@ -276,15 +459,55 @@
+@@ -276,15 +460,55 @@
kqemu_modevent(module_t mod __unused, int type, void *data __unused)
{
int error = 0;