Date: Mon, 3 Mar 2008 19:44:35 +0100 From: Roman Divacky <rdivacky@FreeBSD.org> To: fchang@cs.ubc.ca Cc: freebsd-emulation@FreeBSD.org Subject: Re: patch for /usr/ports/emulators/vmware3 Message-ID: <20080303184435.GA73429@freebsd.org> In-Reply-To: <Pine.GSO.4.60.0803030908590.24210@cascade.cs.ubc.ca> References: <Pine.GSO.4.60.0803030908590.24210@cascade.cs.ubc.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 03, 2008 at 09:16:20AM -0800, fchang@cs.ubc.ca wrote: > Hi all: > > I finally got /usr/ports/emulator/vmware3 working on FreeBSD 7.0 i386. > There were 3 changes needed: > > 1) The avail_end kernel variable no longer exists; I googled and was > able to use Kip Macy's suggested replacement code > http://lists.freebsd.org/pipermail/freebsd-current/2007-January/068377.html > > 2) One of the assembly routine cannot compile, but fortunately that > routine is unused, so I just commented it out using an "#if 0" block > > 3) One file uses the old FILEDESC_LOCK and FILEDESC_UNLOCK. > Based on suggestion I found on mailing lists, I believe it is > equivalent to the new FILEDESC_SLOCK and FILEDESC_SUNLOCK. > > With the 3 changes, I was able to run vmware3 and boot up Windows XP in it. > It appears stable on my machine. > > Here is the patch: > > > --- work/vmware-distrib/vmmon-only/freebsd/driver.c.old 2008-03-03 > 17:03:25.000000000 +0000 > +++ work/vmware-distrib/vmmon-only/freebsd/driver.c 2008-03-03 > 17:04:13.000000000 +0000 > @@ -397,12 +397,12 @@ > if ((error = falloc(td, &fp, &fd)) != 0) > return error; > > - FILEDESC_LOCK(p->p_fd); > + FILEDESC_SLOCK(p->p_fd); > fp->f_data = data; > fp->f_flag = flags & FMASK; > fp->f_ops = &vmmon_fileops; > fp->f_type = DTYPE_SOCKET; > - FILEDESC_UNLOCK(p->p_fd); > + FILEDESC_SUNLOCK(p->p_fd); I dont think this is correct. you are modifying the filedescriptor while holding "shared lock". unless I am wrong it should be changed to FILEDESC_XLOCK/XUNLOCK thnx for your work! roman
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080303184435.GA73429>