Subject: Re: skge - no traffic and oops after ifdown - 3.3-rc1 main tree (resend)

From: Alban Browaeys <[email-masked]>
Date: Fri, 03 Feb 2012 01:56:27 +0100

Le vendredi 27 janvier 2012 à 09:18 -0800, Stephen Hemminger a écrit :
> On Fri, 27 Jan 2012 12:05:57 +0100
> Alban Browaeys <[email-masked]> wrote:
> 
> > I opened https://bugzilla.kernel.org/show_bug.cgi?id=42665 namely oops
> > attachement and :
> > 
> > skge crash after attempt to setup as dhcp then ifdown
> > 
> > commit d0249e44432aa0ffcf710b64449b8eaa3722547e
> > Author: stephen hemminger <[email-masked]>
> > Date:   Thu Jan 19 14:37:18 2012 +0000
> > 
> >     skge: check for PCI dma mapping errors
> > 
> >     Driver should check for mapping errors.
> >     Machines with limited DMA maps may return an error when a PCI map is
> >     requested (not an issue on standard x86).
> > 
> >     Also use upper/lower 32 bits macros for clarity.
> > 
> >     Signed-off-by: Stephen Hemminger <[email-masked]>
> >     Signed-off-by: David S. Miller <[email-masked]>
> > 
> > 
> > leads to failure to ifup <skge interface> if this one is setup as dhcp (static
> > "works" but no traffic) then an ifdown leads to the attached oops.
> > 
> > Reverting this commit fixes both issues (traffic and ifdown) at least until
> > mainline tree commit 87f71ae2dd7471c1b4c94100be1f218e91dc64c3 .
> > 
> > 
> >   *-network:2
> >        description: Ethernet interface
> >        produit: 88E8001 Gigabit Ethernet Controller
> >        fabriquant: Marvell Technology Group Ltd.
> >        identifiant matériel: d
> >        information bus: pci@0000:01:0d.0
> >        nom logique: eth0
> >        version: 13
> >        numéro de série: 00:18:f3:02:33:79
> >        taille: 100Mbit/s
> >        capacité: 1Gbit/s
> >        bits: 32 bits
> >        horloge: 66MHz
> >        fonctionnalités: bus_master cap_list rom ethernet physical tp 10bt
> > 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
> >        configuration: autonegotiation=on broadcast=yes driver=skge
> > driverversion=1.14 duplex=full latency=64 maxlatency=31 mingnt=23 multicast=yes
> > port=twisted pair promiscuous=yes speed=100Mbit/s
> >        ressources: irq:23 mémoire:fbff8000-fbffbfff portE/S:d400(taille=256)
> > mémoire:fbfa0000-fbfbffff
> > 
> > 
> > 
> > 01:0d.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit
> > Ethernet Controller (rev 13)
> >     Subsystem: ASUSTeK Computer Inc. Marvell 88E8001 Gigabit Ethernet
> > Controller (Asus)
> >     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
> > Stepping- SERR+ FastB2B- DisINTx-
> >     Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
> > <MAbort- >SERR- <PERR- INTx-
> >     Latency: 64 (5750ns min, 7750ns max), Cache Line Size: 16 bytes
> >     Interrupt: pin A routed to IRQ 23
> >     Region 0: Memory at fbff8000 (32-bit, non-prefetchable) [size=16K]
> >     Region 1: I/O ports at d400 [size=256]
> >     Expansion ROM at fbfa0000 [disabled] [size=128K]
> >     Capabilities: <access denied>
> >     Kernel driver in use: skge
> > 
> > 01:0d.0 0200: 11ab:4320 (rev 13)
> >     Subsystem: 1043:811a
> > 
> > arch i686.
> > 
> > 
> > 
> > Best regards,
> > Alban
> > 
> 
> Could you send me the backtrace from the OOPS?
> 
it was in the bug report :) Here it is . Looking at objdump -S output
this happens in skge_rx_clean call to dev_kfree_skb.

BR,
Alban