Messages in this thread | | | Date | Tue, 9 Aug 2011 15:13:31 +0200 | From | Jiri Pirko <> | Subject | Re: [forcedeth bug] Re: [GIT] Networking |
| |
Fri, Aug 05, 2011 at 04:37:33PM CEST, jpirko@redhat.com wrote: >Fri, Aug 05, 2011 at 02:31:37PM CEST, jpirko@redhat.com wrote: >>Fri, Aug 05, 2011 at 02:18:55PM CEST, mingo@elte.hu wrote: >>> >>>* Jiri Pirko <jpirko@redhat.com> wrote: >>> >>>> >> Is DEV_HAS_VLAN set in id->driver_data (L5344) ? >>>> > >>>> >How do i tell that without hacking the driver? >>>> >>>> look in dmesg for line like: >>>> "forcedeth 0000:00:08.0: highdma csum vlan pwrctl mgmt gbit lnktim msi >>>> desc-v3" >>>> >>>> if "vlan" is there, DEV_HAS_VLAN is set >>> >>>[ 3.534489] forcedeth 0000:00:0a.0: highdma csum gbit lnktim desc-v3 >>> >>>Note, this is a pretty old system with an old nvidia chipset and >>>on-board ethernet: >>> >>>00:0a.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3) >>> Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard >>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- >>> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- >>> Latency: 0 (250ns min, 5000ns max) >>> Interrupt: pin A routed to IRQ 11 >>> Region 0: Memory at da100000 (32-bit, non-prefetchable) [size=4K] >>> Region 1: I/O ports at d000 [size=8] >>> Capabilities: [44] Power Management version 2 >>> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+) >>> Status: D0 PME-Enable+ DSel=0 DScale=0 PME- >> >>Please do lspci -nn >> >>There are two CK804 chips: >>0x10DE, 0x0056 >>0x10DE, 0x0057 >> >>I have only the second one handy - Getting the machine as we speak. > >I'm unable to see problems you are referring to on my machine. > >Would you please try following patch if it fixes your issue? It's >in fact returning everything back to the original state (for your card).
Ingo, any news with this?
Thanks.
Jirka
> >diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c >index e55df30..d7d43d4 100644 >--- a/drivers/net/forcedeth.c >+++ b/drivers/net/forcedeth.c >@@ -2763,18 +2763,18 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) > skb->protocol = eth_type_trans(skb, dev); > prefetch(skb->data); > >- vlanflags = le32_to_cpu(np->get_rx.ex->buflow); >- > /* > * There's need to check for NETIF_F_HW_VLAN_RX here. > * Even if vlan rx accel is disabled, > * NV_RX3_VLAN_TAG_PRESENT is pseudo randomly set. > */ >- if (dev->features & NETIF_F_HW_VLAN_RX && >- vlanflags & NV_RX3_VLAN_TAG_PRESENT) { >- u16 vid = vlanflags & NV_RX3_VLAN_TAG_MASK; >+ if (dev->features & NETIF_F_HW_VLAN_RX) { >+ vlanflags = le32_to_cpu(np->get_rx.ex->buflow); >+ if (vlanflags & NV_RX3_VLAN_TAG_PRESENT) { >+ u16 vid = vlanflags & NV_RX3_VLAN_TAG_MASK; > >- __vlan_hwaccel_put_tag(skb, vid); >+ __vlan_hwaccel_put_tag(skb, vid); >+ } > } > napi_gro_receive(&np->napi, skb); > >@@ -5615,7 +5615,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i > goto out_error; > } > >- nv_vlan_mode(dev, dev->features); >+ //nv_vlan_mode(dev, dev->features); > > netif_carrier_off(dev); >
| |