kernel panic
jan markus
markus.jan na seznam.cz
Pátek Leden 5 20:59:00 CET 2007
Miroslav Kolombo wrote:
> Z toho my vychazi jednoznacny zaver:
> nastavim jako default jadro, co bylo na instalacnich mediich a pockam na
> nejblizsi upgrade kernelu.
>
> Nebo je tahle uvaha spatne?
inu, tot otazka...
upozornuji, ze me nasledujici zavery jsou: nudne, evidentne nespravne,
zavadejici, a v kazdem pripade ukazkou cireho diletantstvi
nuze pojdme na to... ;)
mrknul jsem na:
http://isoredirect.centos.org/centos/4.4/
a stahl odsud "defaultni" jadro kernel-2.6.9-42.EL.src.rpm a
"aktualizovane" jadro kernel-2.6.9-42.0.3.EL.src.rpm
rozbalil a zkoumal zdojaky & zaplaty a porovnaval (moc to neslo) s
ukazkou te "opravne" zaplaty na http://lkml.org/lkml/2003/2/23/156
neco z te opravne zaplaty uz implementovano je, neco ne. kazdopadne jsem
zjistil (pomoci md5sum), ze soubory net/ipv4/icmp.c a net/core/sock.c
jsou identicke v obou jadrech. nejspis tedy nema smysl vracet se k
implicitnimu jadru distribuce, nebot zrejme trpi stejnou vadou, jako
jadro aktualizovane
stoural jsem se v tom, z rozmaru, dal a zameril se na tu konkretni
chybu, kterou jste posilal:
Kernel panic - not syncing: net/ipv4/icmp.c:252:spin_unlock
(net/core/sock.c:cf989aa0) not locked
na inkriminovanem radku icmp.c:252 se naleza toto:
static void icmp_xmit_unlock(void)
{
spin_unlock_bh(&icmp_socket->sk->sk_lock.slock);
}
hmm... tedy zrejme se to snazilo odemknout cosi, co nebylo zamceno.
v te zaplate z lkml.org je tato fukce "opravena" nejak takto:
static void icmp_xmit_unlock(void)
{
if(unlikely(!spin_trylock(&icmp_socket->sk->sk_lock.slock)))
BUG();
}
;) coz tusim v podstate zpusobi jen trochu jiny vypis chyby, ktery jste
posilal a potom to rovnez zpanikari.
takze jak to tak vypada, nasel jste v jadre chybicku. v jake podobe a
komu ji oznamit, to vam bohuzel nepovim
pokud nechcete, aby to priste znovu padlo na ***, mozna by pomohla
nasledujici uprava:
static void icmp_xmit_unlock(void)
{
if(spin_trylock(&icmp_socket->sk->sk_lock.slock))
spin_unlock_bh(&icmp_socket->sk->sk_lock.slock);
}
ale co se stane potom, kdo vi...
je zde nicmene jeste jedna varianta, a totiz, ze jsem vedle jak ta
jedle, a ze mi ted bude nekym nalozeno na zada jak zaslouzim ;)
inu, kdo chce kam...
s pozdravem a pranim vseho dobreho,
-honza
Další informace o konferenci Linux