Re: PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?"

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

 



Jon Mason <jdmason@xxxxxxxxx> :
[...]
> @@ -1005,10 +1018,36 @@ rio_error (struct net_device *dev, int i
>         /* PCI Error, a catastronphic error related to the bus interface
>            occurs, set GlobalReset and HostReset to reset. */
>         if (int_status & HostError) {
> -               printk (KERN_ERR "%s: HostError! IntStatus %4.4x.\n",
> -                       dev->name, int_status);
> +               printk (KERN_ERR "%s: HostError! IntStatus %4.4x. %d
> %d %x %x\n",
> +                       dev->name, int_status, np->cur_tx, np->cur_rx,
> +                       readl (ioaddr + MACCtrl), readw(ioaddr + IntEnable));
>                 writew (GlobalReset | HostReset, ioaddr + ASICCtrl + 2);
> +
> +               /* Free all the skbuffs in the queue. */
> +               for (i = 0; i < RX_RING_SIZE; i++) {
> +                       np->rx_ring[i].status = 0;
> +                       np->rx_ring[i].fraginfo = 0;
> +                       skb = np->rx_skbuff[i];
> +                       if (skb) {
> +                               pci_unmap_single (np->pdev, np->rx_ring[i].fraginfo,
> +                                                 skb->len, PCI_DMA_FROMDEVICE);
> +                               dev_kfree_skb (skb);

It is probably a minor issue right now but skb->len seems inaccurate
(there is no guaranty that skb_put() was issued).

--
Ueimor
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux