Re: VMware-workstation-4.5.1 on linux-2.6.4-x86_64 host fai

From: Petr Vandrovec
Date: Tue Mar 30 2004 - 16:46:44 EST


On Tue, Mar 30, 2004 at 02:33:31PM +0200, Pavel Machek wrote:
> Hi!
>
> > Hmm, it's a SuSE issue then, nice to know (and easily fixable ;-).
> >
> > > On 2.6.x kernels additionally (problem you are hitting now)
> > > SIO*BRIDGE ioctls were moved from "compatible" to "not so
> > > compatible" group. If you'll just mark them as "compatible", it
> > > will work sufficiently well to get networking in VMware.
> >
> > I found it. Fixed it with this patch:
> >
> > --- include/linux/compat_ioctl.h~ 2004-03-12 18:37:26.000000000 +0100
> > +++ include/linux/compat_ioctl.h 2004-03-24 12:34:30.000000000 +0100
> > @@ -247,10 +247,10 @@
> > COMPATIBLE_IOCTL(SIOCSIFENCAP)
> > COMPATIBLE_IOCTL(SIOCGIFENCAP)
> > COMPATIBLE_IOCTL(SIOCSIFNAME)
> > -/* FIXME: not compatible
> > +/* FIXME: not compatible */
> > COMPATIBLE_IOCTL(SIOCSIFBR)
> > COMPATIBLE_IOCTL(SIOCGIFBR)
> > -*/
> > +/* reactivated for vmware */
> > COMPATIBLE_IOCTL(SIOCSARP)
> > COMPATIBLE_IOCTL(SIOCGARP)
> > COMPATIBLE_IOCTL(SIOCDARP)
>
> Marking ioctl compatible when it is not is pretty nasty, right? What
> about writing conversion functions?

Well, main problem is that VMware uses SIOCSIFBR and SIOCGIFBR with completely
different semantic than everybody else, and for VMware identical translation
is correct for SIOCSIFBR. SIOCGIFBR (for which identical translation is
not correct) does not appear to be used at all.

I'll fill bugreport with VMware. For existing systems correct solution is:
(1a) Mark SIOCSIFBR as COMPATIBLE_IOCTL.
(1b) No change is needed for SIOCGIFBR.
(2) Your bridge control tools must be 64bit app. As they'll not run when built
as 32bit app anyway, no big damage is caused here...

Best regards,
Petr Vandrovec


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/