Hello Edouard,
I've tried your example using the HEAD kernel (2.6.23.8) on a ppc
machine.
As you said, it is crashing the operating system, and as I am using
xmon, it shows the backtrace and the register states during the failure.
IMHO there is something wrong with the message, which could be
dereferencing the genl header, causing the following message "Unable to
handle kernel paging request for data at address 0x00000008"
I hope this helps.
...
error on genlmsg_multicast -3
Failure
Unable to handle kernel paging request for data at address 0x00000008
Faulting instruction address: 0xc0000000002ebe0c
cpu 0x1: Vector: 300 (Data Access) at [c000000053f53500]
pc: c0000000002ebe0c: .skb_dequeue+0x5c/0x94
lr: c0000000002ebdd8: .skb_dequeue+0x28/0x94
sp: c000000053f53780
msr: 8000000000009032
dar: 8
dsisr: 42000000
current = 0xc000000053a72570
paca = 0xc00000000050d480
pid = 1643, comm = syslogd
enter ? for help
[c000000053f53810] c0000000002efc3c .skb_recv_datagram+0xe8/0x2b8
[c000000053f538f0] c00000000037d8d4 .unix_dgram_recvmsg+0x84/0x348
[c000000053f539f0] c0000000002e443c .sock_recvmsg+0x114/0x160
[c000000053f53c00] c0000000002e5c1c .sys_recvfrom+0xec/0x170
[c000000053f53d90] c000000000309934 .compat_sys_socketcall+0x178/0x214
[c000000053f53e30] c000000000008534 syscall_exit+0x0/0x40
--- Exception: c01 (System Call) at 000000001ff500d0
SP (fff4f600) is in userspace
1:mon> t
[c000000053f53810] c0000000002efc3c .skb_recv_datagram+0xe8/0x2b8
[c000000053f538f0] c00000000037d8d4 .unix_dgram_recvmsg+0x84/0x348
[c000000053f539f0] c0000000002e443c .sock_recvmsg+0x114/0x160
[c000000053f53c00] c0000000002e5c1c .sys_recvfrom+0xec/0x170
[c000000053f53d90] c000000000309934 .compat_sys_socketcall+0x178/0x214
[c000000053f53e30] c000000000008534 syscall_exit+0x0/0x40
--- Exception: c01 (System Call) at 000000001ff500d0
SP (fff4f600) is in userspace
1:mon> r
R00 = 0000000000000000 R16 = 0000000020008ac8
R01 = c000000053f53780 R17 = 0000000020008ac0
R02 = c0000000005e3a60 R18 = 0000000020008aa8
R03 = 0000000000000001 R19 = 0000000020008a80
R04 = 0000000000000001 R20 = 0000000020008a7c
R05 = 0000000000000000 R21 = 0000000020019dfc
R06 = c000000053f53960 R22 = 0000000020019a84
R07 = 0000000000000000 R23 = c000000002df8880
R08 = 0000000000000000 R24 = 0000000000000000
R09 = 0000000000000000 R25 = c000000053f53960
R10 = c0000000481e3508 R26 = 7fffffffffffffff
R11 = 0000000000000000 R27 = c000000053f53c88
R12 = 000003fe00000000 R28 = c00000005aa15c44
R13 = c00000000050d480 R29 = c00000005aa15c30
R14 = 0000000020008b1c R30 = c0000000005aabf8
R15 = 0000000020008ae0 R31 = c000000051fbe280
pc = c0000000002ebe0c .skb_dequeue+0x5c/0x94
lr = c0000000002ebdd8 .skb_dequeue+0x28/0x94
msr = 8000000000009032 cr = 24000488
ctr = c00000000037d850 xer = 0000000020000009 trap = 300
dar = 0000000000000008 dsisr = 42000000
Regards,
Breno
---
Breno Leitão
+55 (16) 8115-3915
IBM Linux Technology Center
On Mon, 2007-11-12 at 17:47 +0100, Edouard Thuleau wrote:
> Hi,
>
> I try to use the generic netlink functionalities in a kernel module.
>
> I looked the doc
> http://www.linux-foundation.org/en/Net:Generic_Netlink_HOWTO and the
> source code of kernel/taskstats.c in the kernel.
> I tried to reproduce the example of the doc (look in the attached
> file) but it doesn't work.
>
> I work on a 2.6.23 kernel and on two different architectures, a
> classic x86 pc and a armv5b board.
> On the PC the genlmsg_multicast function return an error (-3) and the
> system crash totally in the next 5 sec (hard reboot).
> On the arm board, the genlmsg_put function return the NULL value, but
> the module is unload and the system stay stable.
>
> Can you help me ?
> Doude.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-net" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html