Subject: Re: ax25 rose Re: kernel panic linux-2.6.27-rc7

From: Bernard Pidoux F6BVP <[email-masked]>
Date: Wed, 01 Oct 2008 00:49:02 +0200

Jarek,

With the patch #2, there have been only one reboot after the machine was 
frozen. I did not notice that was happening for there was no kernel 
panic message but a frozen display only.
Then I could only write down partially the values displayed after 
AX25_DBG: c446c220, c..... 3, 5, 240
Second number was not 000000 as it is most of the time.
The machine rebooted after the usual 60 seconds delay and since then 
there was no kernel panic.
This is the first time kernel 2.6.27-rc7 does not panic within a minute.
The system is up since about 20 minutes now with frequent AX25_DBG messages.

I am sorry that I must go to sleep now to be at work early in the morning.
I will be away from my Linux box for a few days.
Then we should probably interrupt this interesting bug hunting.
I will send more results when I am back.

Thank you and best regards,

Bernard

Jarek Poplawski wrote:
> On Tue, Sep 30, 2008 at 10:59:35PM +0200, Bernard Pidoux F6BVP wrote:
>> Jarek,
>>
>> Yes I am using n2kpci/8390 driver.
>> The second patch seems to have removed the inconsistent lock state.
> 
> It's fine: this patch is only for this one (simpler) problem.
> 
>> But the kernel panic still occured systematically.
>> However I did not catch netconsole messages since the patch prevented  
>> transmission to remote console via ethernet.
>>
>> Before the machine rebooted I only noted the following information at  
>> the bottom of the local console page :
>>
>> EIP: [<.....>] datagram_poll + 0xe9/0xf0
>>
>> Does it help ?
> 
> Probably the beginning of the same oops as before.
> 
> Here is a debugging patch #2, which should give us more details.
> Apply after reverting debugging patch #1 (lib8390 patch should stay).
> Alas the oops in datagram_poll is still possible.
> 
> Thanks,
> Jarek P.
> 
> ---
> 
>  net/core/sock.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/net/core/sock.c b/net/core/sock.c
> index 2d358dd..3ad8eaa 100644
> --- a/net/core/sock.c
> +++ b/net/core/sock.c
> @@ -960,6 +960,15 @@ void sk_free(struct sock *sk)
>  {
>  	struct sk_filter *filter;
>  
> +	if (sk->sk_socket) {
> +		printk("AX25_DBG: %p, %p, %u, %u, %u, %p\n", sk, sk->sk_socket,
> +			 sk->sk_family, sk->sk_type, sk->sk_protocol, sk->sk_socket->sk);
> +		if (sk->sk_family == 3 && sk->sk_type == 5 && sk->sk_protocol == 240) {
> +			WARN_ON_ONCE(1);
> +			sock_orphan(sk);
> +		}
> +	}
> +
>  	if (sk->sk_destruct)
>  		sk->sk_destruct(sk);
>  
> 
>