Message ID | alpine.WNT.2.00.0904091128270.6048@jbrandeb-desk1.amr.corp.intel.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, Apr 9, 2009 at 8:48 PM, Brandeburg, Jesse <jesse.brandeburg@intel.com> wrote: > > does this patch also fix the issue? Yes. 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 Tested-by: Andy Lutomirski <amluto@gmail.com> The link operational states are still funny, though: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 3: wmaster0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 It looks like all interfaces that don't call netif_carrier_down after registration end up in UNKNOWN until something happens. The case of carrier_on but UNKNOWN doesn't seem to confuse my userspace, but it's still odd. --Andy > > ===== begin ===== > > e1000e: indicate link down at load > > From: Jesse Brandeburg <jesse.brandeburg@intel.com> > > same kind of patch as e1000, let driver explicitly push link state > once link comes up. > > Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> > --- > > drivers/net/e1000e/netdev.c | 6 ++---- > 1 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c > index fb78278..6a0411e 100644 > --- a/drivers/net/e1000e/netdev.c > +++ b/drivers/net/e1000e/netdev.c > @@ -3072,6 +3072,8 @@ static int e1000_open(struct net_device *netdev) > if (test_bit(__E1000_TESTING, &adapter->state)) > return -EBUSY; > > + netif_carrier_off(netdev); > + > /* allocate transmit descriptors */ > err = e1000e_setup_tx_resources(adapter); > if (err) > @@ -5006,10 +5008,6 @@ static int __devinit e1000_probe(struct pci_dev *pdev, > if (!(adapter->flags & FLAG_HAS_AMT)) > e1000_get_hw_control(adapter); > > - /* tell the stack to leave us alone until e1000_open() is called */ > - netif_carrier_off(netdev); > - netif_tx_stop_all_queues(netdev); > - > strcpy(netdev->name, "eth%d"); > err = register_netdev(netdev); > if (err) > -- 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
From: "Brandeburg, Jesse" <jesse.brandeburg@intel.com> Date: Thu, 9 Apr 2009 17:48:04 -0700 (Pacific Daylight Time) > Dave, if we move the netif_carrier_off call to our dev->open like tg3 has, > do you think this is sufficient? Yes. > e1000e: indicate link down at load > > From: Jesse Brandeburg <jesse.brandeburg@intel.com> > > same kind of patch as e1000, let driver explicitly push link state > once link comes up. > > Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> I'll wait to get this via Jeff Kirsher. Thanks. -- 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
On Mon, Apr 13, 2009 at 4:22 PM, David Miller <davem@davemloft.net> wrote: > From: "Brandeburg, Jesse" <jesse.brandeburg@intel.com> > Date: Thu, 9 Apr 2009 17:48:04 -0700 (Pacific Daylight Time) > >> Dave, if we move the netif_carrier_off call to our dev->open like tg3 has, >> do you think this is sufficient? > > Yes. > >> e1000e: indicate link down at load >> >> From: Jesse Brandeburg <jesse.brandeburg@intel.com> >> >> same kind of patch as e1000, let driver explicitly push link state >> once link comes up. >> >> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> > > I'll wait to get this via Jeff Kirsher. > > Thanks. > -- I have added this to my queue and will be sent out with the other e1000 patch I have,in the next day or two.
===== begin ===== e1000e: indicate link down at load From: Jesse Brandeburg <jesse.brandeburg@intel.com> same kind of patch as e1000, let driver explicitly push link state once link comes up. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> --- drivers/net/e1000e/netdev.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index fb78278..6a0411e 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c @@ -3072,6 +3072,8 @@ static int e1000_open(struct net_device *netdev) if (test_bit(__E1000_TESTING, &adapter->state)) return -EBUSY; + netif_carrier_off(netdev); + /* allocate transmit descriptors */ err = e1000e_setup_tx_resources(adapter); if (err) @@ -5006,10 +5008,6 @@ static int __devinit e1000_probe(struct pci_dev *pdev, if (!(adapter->flags & FLAG_HAS_AMT)) e1000_get_hw_control(adapter); - /* tell the stack to leave us alone until e1000_open() is called */ - netif_carrier_off(netdev); - netif_tx_stop_all_queues(netdev); - strcpy(netdev->name, "eth%d"); err = register_netdev(netdev); if (err)