netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Charles Bueche <charles@bueche.ch>
To: Pekka Pietikainen <pp@ee.oulu.fi>
Cc: "David S. Miller" <davem@redhat.com>, netdev@oss.sgi.com
Subject: Re: changing MTU on b44 breaks eth0
Date: Thu, 06 Nov 2003 23:02:44 +0100	[thread overview]
Message-ID: <1068156163.3496.8.camel@bluez.bueche.ch> (raw)
In-Reply-To: <20031104111555.GA26860@ee.oulu.fi>

Hi all,

sorry for the late answer. I tried to apply the patch mentionned below,
and it reject at Hunk #1. I run linux 2.4.22, my b44.c carry version
0.9.

Can you please send me the full b44.c file so I can try again ?

I'm a bit unsure wheter I should try anyway, your discussions are not
very understable to me. Pardon my ignorance of kernel dumps :-)

I would be very happy if I could simply recompile this particular
module, and not my full kernel after patching a single file. Is there a
way to find the commands originaly used to compile and link this module
from some logs ?

Regards,
Charles

On Tue, 2003-11-04 at 12:15, Pekka Pietikainen wrote:
> On Mon, Nov 03, 2003 at 03:16:18PM -0800, David S. Miller wrote:
> > I think Jeff should merge this upstrea, but I really disagree
> > with the CONFIG_PM ifdefs for the power-management support.
> Fine with me (patch with CONFIG_PM removed included)
> 
> Oh btw., when trying out whether the new code even compiles/loads
> I got the following in rmmod, does it look like something caused
> by generic code or should I look for a reason in b44? :-)
> (This is 2.6.0-test9-bk6).
> 
> kernel BUG at net/core/dev.c:2882!
> invalid operand: 0000 [#1]
> CPU:    0
> EIP:    0060:[<c024d66d>]    Tainted: P  
> EFLAGS: 00010297
> EIP is at free_netdev+0x2d/0x40
> eax: ddfd6800   ebx: ddfd6800   ecx: 1f2e9da0   edx: 00000003
> esi: dff5d000   edi: dff5d054   ebp: de743ec4   esp: de743ec4
> ds: 007b   es: 007b   ss: 0068
> Process rmmod (pid: 18966, threadinfo=de742000 task=c797b320)
> Stack: de743edc e090011d ddfd6800 dff5d000 e0902544 00000000 de743eec
> c01c8c09 
>        dff5d000 dff5d054 de743f04 c0210dd0 dff5d054 dff5d080 e0902590
> e0902590 
>        de743f18 c0210e02 dff5d054 e0902544 c02fb458 de743f2c c0211039
> e0902544 
> Call Trace:
>  [<e090011d>] b44_remove_one+0x3d/0x60 [b44]
>  [<c01c8c09>] pci_device_remove+0x39/0x40
>  [<c0210dd0>] device_release_driver+0x60/0x70
>  [<c0210e02>] driver_detach+0x22/0x40
>  [<c0211039>] bus_remove_driver+0x39/0x70
>  [<c0211434>] driver_unregister+0x14/0x26
>  [<c01c8dc7>] pci_unregister_driver+0x17/0x30
>  [<e09002c2>] b44_cleanup+0x12/0x14 [b44]
>  [<c0136313>] sys_delete_module+0x113/0x190
>  [<c014d8cf>] do_munmap+0x14f/0x1b0
>  [<c014d973>] sys_munmap+0x43/0x60
>  [<c010b2dd>] sysenter_past_esp+0x52/0x71
> 
> Code: 0f 0b 42 0b ab 48 2e c0 eb de c9 e9 93 6e ef ff 8d 76 00 55 
> 
> Trying to reproduce on a fresh non-nvidia-tainted -bk8 rmmod initially worked,
> then I did /sbin/modprobe b44; /sbin/ifup eth0; /sbin/rmmod b44
> managed to trigger another race:
> 
> eth0: no IPv6 routers present
> Unable to handle kernel paging request at virtual address 706647ef
>  printing eip:
> c0254415
> *pde = 00000000
> Oops: 0000 [#1]
> CPU:    0
> EIP:    0060:[<c0254415>]    Not tainted
> EFLAGS: 00010216
> EIP is at rtnetlink_fill_ifinfo+0x2a5/0x480
> eax: 706647e3   ebx: df037800   ecx: 00000ee4   edx: c68fa09c
> esi: 00000000   edi: df037805   ebp: dff8deb4   esp: dff8de88
> ds: 007b   es: 007b   ss: 0068
> Process events/0 (pid: 3, threadinfo=dff8c000 task=c151cc80)
> Stack: c689fd80 00000004 00000004 dff8dea4 00000ee4 00000f60 c68fa000
> 000005dc 
>        c689fd80 ffffffff 00000011 dff8dee4 c02548ac c689fd80 df037800
> 00000011 
>        00000000 00000000 ffffffff df037800 c0335c00 df037800 00000006
> dff8def8 
> Call Trace:
>  [<c02548ac>] rtmsg_ifinfo+0x5c/0xd0
>  [<c0254d95>] rtnetlink_event+0x35/0x62
>  [<c012e47d>] notifier_call_chain+0x2d/0x50
>  [<c024d580>] netdev_wait_allrefs+0xc0/0x110
>  [<c024d6dc>] netdev_run_todo+0x10c/0x1f0
>  [<c010a33f>] __down_failed+0xb/0x14
>  [<c013100b>] worker_thread+0x1bb/0x2a0
>  [<c0254fc0>] linkwatch_event+0x0/0x30
>  [<c011e410>] default_wake_function+0x0/0x30
>  [<c010b206>] ret_from_fork+0x6/0x14
>  [<c011e410>] default_wake_function+0x0/0x30
>  [<c0130e50>] worker_thread+0x0/0x2a0
>  [<c01092a9>] kernel_thread_helper+0x5/0xc
> 
> Code: 8b 50 0c b9 ff ff ff ff 31 c0 83 c2 08 89 d7 f2 ae f7 d1 49 
> 
> --- /usr/src/linux-2.6.0-0.test9.1.67/drivers/net/b44.c	2003-10-25 21:43:30.000000000 +0300
> +++ linux-2.6.0-test9/drivers/net/b44.c	2003-11-04 12:32:13.403426192 +0200
> @@ -25,8 +25,8 @@
>  
>  #define DRV_MODULE_NAME		"b44"
>  #define PFX DRV_MODULE_NAME	": "
> -#define DRV_MODULE_VERSION	"0.91"
> -#define DRV_MODULE_RELDATE	"Oct 3, 2003"
> +#define DRV_MODULE_VERSION	"0.92"
> +#define DRV_MODULE_RELDATE	"Nov 4, 2003"
>  
>  #define B44_DEF_MSG_ENABLE	  \
>  	(NETIF_MSG_DRV		| \
> @@ -942,6 +942,8 @@
>  	b44_init_hw(bp);
>  	spin_unlock_irq(&bp->lock);
>  
> +	b44_enable_ints(bp);
> +	
>  	return 0;
>  }
>  
> @@ -1558,6 +1560,8 @@
>  		netif_wake_queue(bp->dev);
>  		spin_unlock_irq(&bp->lock);
>  
> +		b44_enable_ints(bp);
> +		
>  		return 0;
>  	}
>  	case ETHTOOL_GPAUSEPARAM: {
> @@ -1601,6 +1605,8 @@
>  		}
>  		spin_unlock_irq(&bp->lock);
>  
> +		b44_enable_ints(bp);
> +		
>  		return 0;
>  	}
>  	};
> @@ -1852,11 +1858,53 @@
>  	}
>  }
>  
> +static int b44_suspend(struct pci_dev *pdev, u32 state)
> +{
> +	struct net_device *dev = pci_get_drvdata(pdev);
> +	struct b44 *bp = dev->priv;
> +
> +        if (!netif_running(dev))
> +                 return 0;
> +
> +	del_timer_sync(&bp->timer);
> +
> +	spin_lock_irq(&bp->lock); 
> +
> +	b44_halt(bp);
> +	netif_carrier_off(bp->dev); 
> +	netif_device_detach(bp->dev);
> +	b44_free_rings(bp);
> +
> +	spin_unlock_irq(&bp->lock);
> +	return 0;
> +}
> +
> +static int b44_resume(struct pci_dev *pdev)
> +{
> +	struct net_device *dev = pci_get_drvdata(pdev);
> +	struct b44 *bp = dev->priv;
> +
> +	if (!netif_running(dev))
> +		return 0;
> +
> +	spin_lock_irq(&bp->lock);
> +
> +	b44_init_rings(bp);
> +	b44_init_hw(bp);
> +	netif_device_attach(bp->dev);
> +	spin_unlock_irq(&bp->lock);
> +
> +	b44_enable_ints(bp);
> +	return 0;
> +}
> +
>  static struct pci_driver b44_driver = {
>  	.name		= DRV_MODULE_NAME,
>  	.id_table	= b44_pci_tbl,
>  	.probe		= b44_init_one,
>  	.remove		= __devexit_p(b44_remove_one),
> +        .suspend        = b44_suspend,
> +        .resume         = b44_resume,
>  };
>  
>  static int __init b44_init(void)
-- 
Charles Bueche <charles@bueche.ch>
sand, snow, wave, wind and net -surfer

      parent reply	other threads:[~2003-11-06 22:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1067888106.3366.20.camel@bluez.bueche.ch>
2003-11-03 20:53 ` changing MTU on b44 breaks eth0 Pekka Pietikainen
2003-11-03 23:16   ` David S. Miller
2003-11-04 11:15     ` Pekka Pietikainen
2003-11-04 17:13       ` David S. Miller
2003-11-04 21:19         ` Pekka Pietikainen
2003-11-04 21:20           ` David S. Miller
2003-11-05 21:36             ` Jeff Garzik
2003-11-05 21:35               ` David S. Miller
2003-11-06 22:02       ` Charles Bueche [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1068156163.3496.8.camel@bluez.bueche.ch \
    --to=charles@bueche.ch \
    --cc=davem@redhat.com \
    --cc=netdev@oss.sgi.com \
    --cc=pp@ee.oulu.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).