NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-arm/43339: IPL_NONE == IPL_SOFTNET on arm ports and it causes assertion panic



>Number:         43339
>Category:       port-arm
>Synopsis:       IPL_NONE == IPL_SOFTNET on arm ports and it causes assertion 
>panic
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-arm-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat May 22 16:50:00 +0000 2010
>Originator:     Izumi Tsutsui
>Release:        NetBSD 5.99.29
>Organization:
>Environment:
System: NetBSD 5.99.29 (GENERIC) updated around 201005221600Z
Architecture: arm
Machine: shark
>Description:
shark GENERIC kernel gets the following panic on remote login:

panic: pool 'synpl' is IPL_NONE, but called from interrupt context

The pool 'synpl' is allocated in sys/netinet/tcp_input.c:
---
        pool_init(&syn_cache_pool, sizeof(struct syn_cache), 0, 0, 0,
            "synpl", NULL, IPL_SOFTNET);
---

But in most arm ports, IPL_SOFTNET == IPL_NONE in <machine/intr.h>:
---
#define IPL_NONE        0
#ifdef __HAVE_FAST_SOFTINTS
#define IPL_SOFTCLOCK   1
#define IPL_SOFTBIO     2
#define IPL_SOFTNET     3
#define IPL_SOFTSERIAL  4
#define IPL_VM          5
#define IPL_SCHED       6
#define IPL_HIGH        7

#define NIPL            8
#else
#define IPL_SOFTCLOCK   IPL_NONE
#define IPL_SOFTBIO     IPL_NONE
#define IPL_SOFTNET     IPL_NONE
#define IPL_SOFTSERIAL  IPL_NONE
#define IPL_VM          1
#define IPL_SCHED       2
#define IPL_HIGH        3

#define NIPL            4
#endif
---

>How-To-Repeat:
Boot GENERIC kernels with options DIAGNOSTIC on arm ports
and use TCP connections.

>Fix:
Set proper IPL_SOFTfoo values?
Disable options DIAGNOSTIC in all GENERIC kernels for workaround?
---
Izumi Tsutsui



Home | Main Index | Thread Index | Old Index