Skip site navigation (1)Skip section navigation (2)
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>