Look at /usr/lib/vmware/modules/source/vmnet.tar (from vmware build 799)
Inside this tar should be a file vmnet-only/vnetInt.h
This file needs to be patched as follows:
after
#define DEV_KFREE_SKB(skb, type) dev_kfree_skb(skb)
#define SKB_INCREF(skb) atomic_inc(&(skb)->users)
add the following
#ifdef KERNEL_2_4_0
#define SKB_IS_CLONE_OF(clone, skb) ( \
skb_cloned(clone) \
)
#else
then, skip over the following original lines
# define SKB_IS_CLONE_OF(clone, skb) ( \
skb_datarefp(clone) == skb_datarefp(skb) \
)
and after these lines add this final endif
# endif
---------------------
This made my vmware work again... YMMV
On 04-May-2001 pac@xxxxxxxxxxxxxx wrote:
>
> I just fixed the vmware modules two work with 2.4.X kernels,
> now it looks like you have returned the code to its original state.
> I used the old modules from vmware, but now the system locks up tight
> (the whole, system, no consoles, cant ssh/telnet in).
>
> Using 2.4.3-xfs kernel tree, on Duron system.
> Linux bistro 2.4.3-xfs #1 Thu May 3 11:52:51 CDT 2001 i686 unknown
>
>>make: Entering directory `/root/tmp/vmware-config1/vmnet-only'
>>bridge.c: In function `VNetBridgeReceiveFromDev':
>>bridge.c:788: warning: implicit declaration of function `skb_shinfo'
>>make: Leaving directory `/root/tmp/vmware-config1/vmnet-only'
>>Unable to make a vmnet module that can be loaded in the running kernel:
>>/root/tmp/vmware-config1/vmnet.o: unresolved symbol skb_shinfo
>>There is probably a light difference of kernel configuration between the set
>>of
>>C header files you specified and your running kernel. You may want to rebuild
>>a
>>kernel based on that directory, or specify another directory.
>>
>>For more information on how to troubleshoot module-related problems, please
>>have
>>a look at "http://www.vmware.com/download/modules/modules.html".
> --
>
> Here is the info I used to "fix" the problem in the first place
> for 2.4.2 and above kernels (no XFS)
> (its not fixed in the xfs kernels ):
>
>>> : patch -p0 < patch-skb
>>> patching file vmnet-only/vnetInt.h
>>> Hunk #1 FAILED at 16.
>>> 1 out of 1 hunk FAILED -- saving rejects to file vmnet-only/vnetInt.h.rej
>>>
>>> Im not patch expert, so Im sorta lost.. i attached the file just in
>>> case you can illuminate the problem.
>>
>>Maybe you need to remove '\r' from my patch, if your news browser did
>>not do it: tr -d "\r" < patch-skb > patch-skb-ok; patch -p0 < patch-skb-ok
> >
>>'patch' program just removes lines marked with '- ' and adds lines
>>marked with '+ ' into file, checking that ' ' marked lines are really
>>in file to verify that it patches correct file at correct position.
>>
>>If it will not help, just replace
>>
>>skb_datarefp(clone) == skb_datarefp(skb)
>>
>>with
>>
>>skb_shinfo(clone) == skb_shinfo(clone)
>>
>>In old kernels there was only reference counter at the end of SKB, so
>>function was named skb_datarefp(). Now there is more info stored here,
>>so function was renamed to skb_shinfo() (from SHared INFOrmation)...
> >
>
> -Phil C.
> .---------------------------------------------------------
>| P. A. Carinhas, Ph.D. | pac@xxxxxxxxxxxxxx |
>| Fortuitous Technologies Inc. | http://fortuitous.com |
>| Linux Training Services | Tel : 1-512 467-2154 |
>| Contract, In-house, & Onsite | 800 : 1-877 467-2154 |
> ---------------------------------------------------------
--
John M. Trostel
Linux OS Engineer
Connex
jtrostel@xxxxxxxxxx
|