Re: Cisco VPN with 2.6 kernel

From: Reto Zingg (rzi_at_freesurf.ch)
Date: 05/29/04


Date: Sat, 29 May 2004 01:41:56 +0200

Chris Cox wrote:
> You can get the module to compile if you make the #define for NOREGPARM
> take the other path in Cniapi.h, BUT, when the module loads, it just
> causes the machine to lock up or kernel panic (beware!).
>
> For whatever reason having the __attribute__ thing on the function
> declarations makes the signature not match for the actual function
> definition... I can't even say if the NOREGPARM thing is the right
> soln.
>
> Sure am glad that Cisco holds on to this proprietary client with
> its death grip... hate to see it actually work.

I guess you mean this:

gemini:/ # diff -Naur Cniapi.h.original Cniapi.h
--- Cniapi.h.original 2004-05-29 01:23:11.051315344 +0200
+++ Cniapi.h 2004-05-29 01:23:45.827028632 +0200
@@ -36,11 +36,7 @@
    any functions used by the linux driver need to be declared
    with the following gcc attribute.
 */
-#if defined(CNI_LINUX_INTERFACE)
-#define NOREGPARM __attribute__((regparm(0)))
-#else
 #define NOREGPARM
-#endif

 /**************************** Flags Definitions
****************************/
 #define CNI_USE_BUFFER 0x00000001
gemini:/#

so you can compile, but it dosen't work (as you mentioned)...

gemini:/ # /etc/init.d/vpnclient_init start
Starting /usr/local/bin/vpnclient: /etc/init.d/vpnclient_init: line 148:
10118 Speicherzugriffsfehler /sbin/insmod ${PC}/${VPNMOD_FILE}
Failed (insmod)

it seems that some parts are loaded:

gemini:/ # /etc/init.d/vpnclient_init status
Module Size Used by
cisco_ipsec 392244 1

cipsec0: Fehler beim Auslesen der Schnittstelleninformation: Gerät nicht
gefunden

Status Failed (ifconfig cipsec0) - The virtual interface is not present.

/var/log/messages means:

May 29 01:24:49 gemini kernel: cisco_ipsec: module license 'Proprietary'
taints kernel.
May 29 01:24:49 gemini kernel: Unable to handle kernel NULL pointer
dereference at virtual address 00000000
May 29 01:24:49 gemini kernel: printing eip:
May 29 01:24:49 gemini kernel: fb042cfb
May 29 01:24:49 gemini kernel: *pde = 00000000
May 29 01:24:49 gemini kernel: Oops: 0002 [#1]
May 29 01:24:49 gemini kernel: CPU: 0
May 29 01:24:49 gemini kernel: EIP: 0060
[__crc_filemap_fdatawait+288068/293956] Tainted: PF
May 29 01:24:49 gemini kernel: EIP: 0060:[<fb042cfb>] Tainted: PF
May 29 01:24:49 gemini kernel: EFLAGS: 00210246 (2.6.4-54.5-default)
May 29 01:24:49 gemini kernel: EIP is at CniPluginLoad+0xb/0x20
[cisco_ipsec]
May 29 01:24:49 gemini kernel: eax: fb0545c2 ebx: 00000000 ecx: c0341da8
edx: 00000000
May 29 01:24:49 gemini kernel: esi: fb089800 edi: c0341d98 ebp: dc6c9e3c
esp: dc6c9e3c
May 29 01:24:49 gemini kernel: ds: 007b es: 007b ss: 0068
May 29 01:24:49 gemini kernel: Process insmod (pid: 10118,
threadinfo=dc6c8000 task=f7730d70)
May 29 01:24:49 gemini kernel: Stack: c0341d98 faa22080 00000000 c0341da8
c0132325 00000000 fb02acc0 fb02acc0
May 29 01:24:49 gemini kernel: 00000370 00000370 eccb07a0 dc6c9e8c
c0138dd0 00028211 00200282 00000000
May 29 01:24:49 gemini kernel: eccb0780 00000001 dc6c9eb4 dc6c9ebc
00000000 000036c0 fb05538c 0000036d
May 29 01:24:49 gemini kernel: Call Trace:
May 29 01:24:49 gemini kernel: [__crc_try_to_free_buffers+1926033/2240178]
interceptor_mod_init+0x10/0xb8 [cisco_ipsec]
May 29 01:24:49 gemini kernel: [<faa22080>] interceptor_mod_init+0x10/0xb8
[cisco_ipsec]
May 29 01:24:49 gemini kernel: [sys_init_module+261/5552]
sys_init_module+0x105/0x15b0
May 29 01:24:49 gemini kernel: [<c0132325>] sys_init_module+0x105/0x15b0
May 29 01:24:49 gemini kernel: [file_read_actor+0/224]
file_read_actor+0x0/0xe0
May 29 01:24:49 gemini kernel: [<c0138dd0>] file_read_actor+0x0/0xe0
May 29 01:24:49 gemini kernel: [__kmalloc+0/96] __kmalloc+0x0/0x60
May 29 01:24:49 gemini kernel: [<c0140950>] __kmalloc+0x0/0x60
May 29 01:24:49 gemini kernel: [__crc_try_to_free_buffers+1925905/2240178]
interceptor_init+0x0/0x70 [cisco_ipsec]
May 29 01:24:49 gemini kernel: [<faa22000>] interceptor_init+0x0/0x70
[cisco_ipsec]
May 29 01:24:49 gemini kernel: [selinux_vm_enough_memory+195/208]
selinux_vm_enough_memory+0xc3/0xd0
May 29 01:24:49 gemini kernel: [<c01cdaa3>]
selinux_vm_enough_memory+0xc3/0xd0
May 29 01:24:49 gemini kernel: [selinux_file_permission+352/368]
selinux_file_permission+0x160/0x170
May 29 01:24:49 gemini kernel: [<c01ca300>]
selinux_file_permission+0x160/0x170
May 29 01:24:49 gemini kernel: [__fput+158/240] __fput+0x9e/0xf0
May 29 01:24:49 gemini kernel: [<c0155bce>] __fput+0x9e/0xf0
May 29 01:24:49 gemini kernel: [sysenter_past_esp+82/121]
sysenter_past_esp+0x52/0x79
May 29 01:24:49 gemini kernel: [<c0107dc9>] sysenter_past_esp+0x52/0x79
May 29 01:24:49 gemini kernel:
May 29 01:24:49 gemini kernel: Code: 89 02 8b 45 0c c7 00 e0 49 08 fb b8 00
00 51 24 5d c3 8d 76

anyone an idea?

regards
Reto Zingg