[Hardware] Re: Kernel panic в Мастер 2.4 (fealnx, Myson BC001)

Sergey Vlasov vsu на altlinux.ru
Вс Дек 19 19:52:20 MSK 2004


On Sun, Dec 19, 2004 at 06:19:06PM +0200, Yuri N. Glibovetz wrote:
> http://lists.altlinux.ru/pipermail/sisyphus/2003-December/031179.html
> http://lists.altlinux.ru/pipermail/sisyphus/2003-December/031194.html
> http://lists.altlinux.ru/pipermail/sisyphus/2003-December/031231.html
> http://lists.altlinux.ru/pipermail/sisyphus/2003-December/031258.html
> http://lists.altlinux.ru/pipermail/sisyphus/2003-December/031271.html
> 
> Интересно, чем закончилась эта история?

А ничем - тогда так ничего и не раскопали.

> Кстати если верить другим источникам, место Oops локализовано.
> fealnx.c:netdev_rx:
> 
> >/* Check if the packet is long enough to accept without copying
> >   to a minimally-sized skbuff. */
> >if (pkt_len < rx_copybreak &&
> >    (skb = dev_alloc_skb(pkt_len + 2)) != NULL) {
> >     skb->dev = dev;
> >     skb_reserve(skb, 2);    /* 16 byte align the IP header */
> >                             /* Call copy + cksum if available. */
> >
> >#if ! defined(__alpha__)
> >     eth_copy_and_sum(skb,
> >         np->cur_rx->skbuff->tail, pkt_len, 0);
> >     skb_put(skb, pkt_len);
> >#else
> >     memcpy(skb_put(skb, pkt_len),
> >           np->cur_rx->skbuff->tail, pkt_len);
> >#endif
> >} else {
> >     skb_put(skb = np->cur_rx->skbuff, pkt_len);
> >     np->cur_rx->skbuff = NULL;
> >     if (np->really_rx_count == RX_RING_SIZE)
> >        np->lack_rxbuf = np->cur_rx;
> >     --np->really_rx_count;   // <----- это здесь
> >}

В данном случае oops был в другом месте - в intr_handler():

			/* Free the original skb. */
			pci_unmap_single(np->pci_dev, np->cur_tx->buffer,
				np->cur_tx->skbuff->len, PCI_DMA_TODEVICE);
			dev_kfree_skb_irq(np->cur_tx->skbuff);

В np->cur_tx->skbuff оказался NULL.

Это весьма похоже на проблему, исправленую в 2.6 вот этим патчем:

http://linux.bkbits.net:8080/linux-2.6/cset@406b2395GEYyN1xve0b-r-4zWwj-iQ

Причём в 2.4 этого патча до сих пор нет (хотя после него в 2.6 была
целая серия из 11 патчей, которые вошли и в 2.4).  Странно.  Видимо,
эти карточки никому не нужны.

А вот что там за "another problem in the RX path" - не совсем понятно.
-------------- next part --------------
z'╣ЛmjшZr··э╡г+╧╤чtж╕zz-jЖ╒∙╕Еy<╘y╙i√'╤*'Ч≤)╡('jш╚y(Ё{_=o+^╟7╛rz-jЖ╒∙╕ЕyJЕ├шiЪЫb╡ш√ыb·Лk╩Зb╔ЙФj)┘╙ща╙чЩ╚miхfz{lЪm4Ц]╣ВВ{yв⌡МОз╤ж°├g╖╣╦╖


Подробная информация о списке рассылки Hardware