ksymoops 2.3.4 on i586 2.4.0-0.35mdk.  Options used
     -V (default)
     -k /etc/irda/ksyms-1 (specified)
     -l /etc/irda/modul-1 (specified)
     -o /lib/modules/2.4.0-0.35mdk/ (default)
     -m /usr/src/linux/System.map (default)

Unable to handle kernel NULL pointer dereference at virtual address 00000000
c507b79f
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c507b79f>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 000a8447   ebx: c2e752c0   ecx: c2e752c0   edx: c2e75020
esi: 00000000   edi: c0a2e000   ebp: c0209f18   esp: c0209ee0
ds: 0018   es: 0018   ss: 0018
Process swapper (pid: 0, stackpage=c0209000)
Stack: 0000002f c0a2e000 c3e5bda0 00000001 c0a12000 c0110fc4 c507c93c c0a2e000 
       c3e5bda0 c0209f18 c5094240 c3e5bda0 c3e5bda0 c0201700 00002f00 ffffffff
       ffffff30 00000010 00000282 00000010 00000000 000000ff c091000d c018a656
       [<c01195f0>] [<c010a161>] [<c0107120>] [<ffffe000>] [<c010e840>] [<c0107120>] [<ffffe000>] [<c0107143>] 
       [<c01071a7>] [<c0105000>] [<c0100192>]
Code: 8a 06 88 43 38 80 3e 00 7d 17 8a 46 01 88 43 39 8a 46 02 88 

>>EIP; c507b79f <[irda]irlap_recv_discovery_xid_cmd+14b/1e0>   <=====
Code;  c507b79f <[irda]irlap_recv_discovery_xid_cmd+14b/1e0>
00000000 <_EIP>:
Code;  c507b79f <[irda]irlap_recv_discovery_xid_cmd+14b/1e0>   <=====
   0:   8a 06                     mov    (%esi),%al   <=====
Code;  c507b7a1 <[irda]irlap_recv_discovery_xid_cmd+14d/1e0>
   2:   88 43 38                  mov    %al,0x38(%ebx)
Code;  c507b7a4 <[irda]irlap_recv_discovery_xid_cmd+150/1e0>
   5:   80 3e 00                  cmpb   $0x0,(%esi)
Code;  c507b7a7 <[irda]irlap_recv_discovery_xid_cmd+153/1e0>
   8:   7d 17                     jge    21 <_EIP+0x21> c507b7c0 <[irda]irlap_recv_discovery_xid_cmd+16c/1e0>
Code;  c507b7a9 <[irda]irlap_recv_discovery_xid_cmd+155/1e0>
   a:   8a 46 01                  mov    0x1(%esi),%al
Code;  c507b7ac <[irda]irlap_recv_discovery_xid_cmd+158/1e0>
   d:   88 43 39                  mov    %al,0x39(%ebx)
Code;  c507b7af <[irda]irlap_recv_discovery_xid_cmd+15b/1e0>
  10:   8a 46 02                  mov    0x2(%esi),%al
Code;  c507b7b2 <[irda]irlap_recv_discovery_xid_cmd+15e/1e0>
  13:   88 00                     mov    %al,(%eax)

Aiee, killing interrupt handler
Kernel panic: Attempted to kill the idle task!


[irlap_frame.S]
	call kmalloc_R93d4cfe6
	movl %eax,%ebx
	addl $8,%esp
	testl %ebx,%ebx
	jne .L1898
	pushl $.LC42
.L1904:
	call printk_R1b7d4074
	addl $4,%esp
	jmp .L1880
	.p2align 4,,7
.L1898:
	movl 8(%ebp),%eax
	movl %eax,48(%ebx)
	movl 28(%esp),%edi
	movl 272(%edi),%eax
	movl %eax,44(%ebx)
	movl jiffies_R0da02d67,%eax
	movl %eax,96(%ebx)
	movb (%esi),%al
	movb %al,56(%ebx)
	cmpb $0,(%esi)
	jge .L1899
	movb 1(%esi),%al
	movb %al,57(%ebx)
	movb 2(%esi),%al
	movb %al,58(%ebx)
	addl $3,%esi
	jmp .L1900
	.p2align 4,,7
.L1899:
	/* 
	 *  Check if last frame 
	 */
	if (info->s == 0xff) {
		/*
		 *  We now have some discovery info to deliver!
		 */
		discovery = kmalloc(sizeof(discovery_t), GFP_ATOMIC);
		if (!discovery) {
			WARNING(__FUNCTION__ "(), unable to malloc!\n");
			return;
		}
	      
		discovery->daddr = info->daddr;
		discovery->saddr = self->saddr;
		discovery->timestamp = jiffies;

		discovery->hints.byte[0] = discovery_info[0];
		if (discovery_info[0] & HINT_EXTENSION) {
			discovery->hints.byte[1] = discovery_info[1];
			discovery->charset = discovery_info[2];
			text = (char *) &discovery_info[3];
		} else {
			discovery->hints.byte[1] = 0;
			discovery->charset = discovery_info[1];
			text = (char *) &discovery_info[2];
		}
