Patchwork Help: major pppoe regression since 2.6.35 (panic on first ppp conection)?

login
register
mail settings
Submitter Jarek Poplawski
Date Dec. 25, 2010, 12:10 p.m.
Message ID <20101225121044.GA1841@del.dom.local>
Download mbox | patch
Permalink /patch/76668/
State RFC
Delegated to: David Miller
Headers show

Comments

Jarek Poplawski - Dec. 25, 2010, 12:10 p.m.
On Fri, Dec 24, 2010 at 04:13:25PM +0100, Jarek Poplawski wrote:
> On Fri, Dec 24, 2010 at 11:22:25AM +0000, Joel Soete wrote:
> > Hello Jarek,
> Hi Joel,
> 
> > Ok I get a clean 2.6.37-rc7 vanilla src and apply your debugging
> > patch and grab the attached syslog-2.6.37-rc7-t2.gz with obviously a
> > lot of "warning" (but as well as with Eric's patch, kernel survived
> > to a lynx connection to ftp.eu.kernel.org to download of a snapshot
> > patch ;<) )
> 
> Yes, even more than I expected... I hope the list will forgive us ;-)

Alas the list rejected your message (try to limit it to ~200kb next
time).

Anyway, it looks like the sundance driver is the main guilty. The
patch below removes one obvious bug but there could be something more.
Please, apply this one and my previous debugging patch to the clean
2.6.37-rc7. (If there're still warnings the first ~20kb should do.)

Thanks,
Jarek P.
---

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Joel Soete - Dec. 25, 2010, 1:51 p.m.
Hello Jarek,

On 12/25/2010 12:10 PM, Jarek Poplawski wrote:
> On Fri, Dec 24, 2010 at 04:13:25PM +0100, Jarek Poplawski wrote:
>> On Fri, Dec 24, 2010 at 11:22:25AM +0000, Joel Soete wrote:
>>> Hello Jarek,
>> Hi Joel,
>>
[snip]
>
> Alas the list rejected your message (try to limit it to ~200kb next
> time).
>
Ah ok I will take care next ;<)

> Anyway, it looks like the sundance driver is the main guilty. The
> patch below removes one obvious bug but there could be something more.
> Please, apply this one and my previous debugging patch to the clean
> 2.6.37-rc7. (If there're still warnings the first ~20kb should do.)
>
> Thanks,
> Jarek P.
> ---
>
> diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
> index 3ed2a67..b409d7e 100644
> --- a/drivers/net/sundance.c
> +++ b/drivers/net/sundance.c
> @@ -1016,7 +1016,7 @@ static void init_ring(struct net_device *dev)
>
>   	/* Fill in the Rx buffers.  Handle allocation failure gracefully. */
>   	for (i = 0; i<  RX_RING_SIZE; i++) {
> -		struct sk_buff *skb = dev_alloc_skb(np->rx_buf_sz);
> +		struct sk_buff *skb = dev_alloc_skb(np->rx_buf_sz + 2);
>   		np->rx_skbuff[i] = skb;
>   		if (skb == NULL)
>   			break;
> @@ -1407,7 +1407,7 @@ static void refill_rx (struct net_device *dev)
>   		struct sk_buff *skb;
>   		entry = np->dirty_rx % RX_RING_SIZE;
>   		if (np->rx_skbuff[entry] == NULL) {
> -			skb = dev_alloc_skb(np->rx_buf_sz);
> +			skb = dev_alloc_skb(np->rx_buf_sz + 2);
>   			np->rx_skbuff[entry] = skb;
>   			if (skb == NULL)
>   				break;		/* Better luck next round. */
>
I don't have any more warnings :<)

Awesome job.

Thanks a lot for help and I wish you a Happy new year,
	J.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index 3ed2a67..b409d7e 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -1016,7 +1016,7 @@  static void init_ring(struct net_device *dev)
 
 	/* Fill in the Rx buffers.  Handle allocation failure gracefully. */
 	for (i = 0; i < RX_RING_SIZE; i++) {
-		struct sk_buff *skb = dev_alloc_skb(np->rx_buf_sz);
+		struct sk_buff *skb = dev_alloc_skb(np->rx_buf_sz + 2);
 		np->rx_skbuff[i] = skb;
 		if (skb == NULL)
 			break;
@@ -1407,7 +1407,7 @@  static void refill_rx (struct net_device *dev)
 		struct sk_buff *skb;
 		entry = np->dirty_rx % RX_RING_SIZE;
 		if (np->rx_skbuff[entry] == NULL) {
-			skb = dev_alloc_skb(np->rx_buf_sz);
+			skb = dev_alloc_skb(np->rx_buf_sz + 2);
 			np->rx_skbuff[entry] = skb;
 			if (skb == NULL)
 				break;		/* Better luck next round. */