aboutsummaryrefslogtreecommitdiff
path: root/emulators/kqemu-kmod
diff options
context:
space:
mode:
authorNorikatsu Shigemura <nork@FreeBSD.org>2005-11-06 09:03:02 +0000
committerNorikatsu Shigemura <nork@FreeBSD.org>2005-11-06 09:03:02 +0000
commit42a477a13cebe674406092c86c36ff02e04665fc (patch)
tree21954ee0709eb2235a4c19c76afc8cfe65d0adc4 /emulators/kqemu-kmod
parent8c4571596ad28495719cc858a18afc3d3dd319a3 (diff)
downloadports-42a477a13cebe674406092c86c36ff02e04665fc.tar.gz
ports-42a477a13cebe674406092c86c36ff02e04665fc.zip
Fix kernel panic after stopping qemu.
Submitted by: pjd
Notes
Notes: svn path=/head/; revision=147435
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;