[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20080529234437.d624a07d.akpm@linux-foundation.org>
Date: Thu, 29 May 2008 23:44:37 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: "Wizard Vandal" <wizard580@...il.com>
Cc: bugme-daemon@...zilla.kernel.org, netdev@...r.kernel.org
Subject: Re: [Bugme-new] [Bug 10835] New: vanilla kernel 2.6.25.4 + TLAN NIC
driver oops or so...
On Fri, 30 May 2008 17:32:07 +1100 "Wizard Vandal" <wizard580@...il.com> wrote:
> > I assume you meant 2.6.25.1 here.
> Maybe... as I said, I don't know is it my luck or something else...
>
> >It could only have been
> > "TLAN: Couldn't allocate memory for received data.\n"
> Again maybe. I looked at sorce, but I'm too little programmer to see why it
> can print such error or fix that.
OK, thanks.
Can you please add the below patch and retest? That at least will tell
us where it is failing. I expect the driver has a memory leak.
> One more thing:
> now, I've tried to remove nf_conntrack_ftp module and kernel crashed.
> Screen not checked, just reset and go away. Keyboard leds again blinks, as
> always when it crashed.
>
> Do I have to post new bug or you can do all checks or whatever without it?
Yes, please send a separate report. Just an emailed one to
netdev@...r.kernel.org
Andrew Morton <akpm@...ux-foundation.org>
will suffice.
Please try to ensure that this netfilter problem is not mixed up with
the tlan one. For example, if tlan has used all the memory up then
perhaps netfilter did a memory allocation, then that failed and we hit
an untested error path.
--- a/drivers/net/tlan.c~a
+++ a/drivers/net/tlan.c
@@ -1580,9 +1580,12 @@ static u32 TLan_HandleRxEOF( struct net_
if (bbuf) {
skb = dev_alloc_skb(frameSize + 7);
- if (skb == NULL)
- printk(KERN_INFO "TLAN: Couldn't allocate memory for received data.\n");
- else {
+ if (skb == NULL) {
+ printk(KERN_INFO "TLAN: Couldn't allocate "
+ "memory for received data: %d.\n",
+ __LINE__);
+ mdelay(1000);
+ } else {
head_buffer = priv->rxBuffer + (priv->rxHead * TLAN_MAX_FRAME_SIZE);
skb_reserve(skb, 2);
t = (void *) skb_put(skb, frameSize);
@@ -1619,8 +1622,12 @@ static u32 TLan_HandleRxEOF( struct net_
head_list->buffer[0].address = pci_map_single(priv->pciDev, new_skb->data, TLAN_MAX_FRAME_SIZE, PCI_DMA_FROMDEVICE);
head_list->buffer[8].address = (u32) t;
TLan_StoreSKB(head_list, new_skb);
- } else
- printk(KERN_WARNING "TLAN: Couldn't allocate memory for received data.\n" );
+ } else {
+ printk(KERN_INFO "TLAN: Couldn't allocate "
+ "memory for received data: %d.\n",
+ __LINE__);
+ mdelay(1000);
+ }
}
head_list->forward = 0;
@@ -2021,7 +2028,10 @@ static void TLan_ResetLists( struct net_
} else {
skb = dev_alloc_skb( TLAN_MAX_FRAME_SIZE + 7 );
if ( skb == NULL ) {
- printk( "TLAN: Couldn't allocate memory for received data.\n" );
+ printk(KERN_INFO "TLAN: Couldn't allocate "
+ "memory for received data: %d.\n",
+ __LINE__);
+ mdelay(1000);
/* If this ever happened it would be a problem */
} else {
skb->dev = dev;
_
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists