Re: Possible regression with msk driver

From: Gleb Kurtsou <gleb.kurtsou_at_gmail.com>
Date: Mon, 16 Nov 2009 22:32:31 +0200
On (16/11/2009 10:13), Pyun YongHyeon wrote:
> On Sun, Nov 15, 2009 at 11:13:10AM +0200, Gleb Kurtsou wrote:
[...]
> > I experience similar problem. After boot msk0 status is active, but I'm
> > not able to send anything:
> > % ping 172.21.21.21
> > PING 172.21.21.21 (172.21.21.21): 56 data bytes
> > ping: sendto: No buffer space available
> > ping: sendto: No buffer space available
> > 
> > After unplugging cable and putting it back everything works as
> > expected:
> > % ping 172.21.21.21
> > PING 172.21.21.21 (172.21.21.21): 56 data bytes
> > 64 bytes from 172.21.21.21: icmp_seq=0 ttl=64 time=0.904 ms
> > 
> > It is 100% reproducible, running recent current.
> > 
> > % uname -a
> > FreeBSD tops 9.0-CURRENT FreeBSD 9.0-CURRENT #17 r199274+c8076f9: Sat Nov 14 22:59:26 EET 2009     root_at_tops:/usr/obj/usr/freebsd-src/local/sys/TOPS  amd64
> > 
> > % ifconfig
> > msk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> >         options=11a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
> >         ether *
> >         inet 172.21.21.22 netmask 0xfffffff8 broadcast 172.21.21.23
> >         inet6 * prefixlen 64 scopeid 0x1
> >         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >         media: Ethernet autoselect (100baseTX <full-duplex>)
> >         status: active
> > 
> > My hardware:
> > mskc0_at_pci0:2:0:0:       class=0x020000 card=0x902d104d chip=0x435311ab rev=0x15 hdr=0x00
> >     vendor     = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
> >     device     = 'Gigabit (88E8039 - http://www.marvell.com/drivers/driverDis)'
> >     class      = network
> >     subclass   = ethernet
> > 
> 
> I guess some changes made to reduce unnecessary controller
> reinitialization seems to cause the issue.
> Would you try attached patch?

Patch fixes the issue. I tried rebooting several times with
connected/disconnected cable. I'll let you know if any problem shows up
later.

Thanks,
Gleb.

> Index: sys/dev/msk/if_msk.c
> ===================================================================
> --- sys/dev/msk/if_msk.c	(revision 199322)
> +++ sys/dev/msk/if_msk.c	(working copy)
> _at__at_ -3198,6 +3198,8 _at__at_
>  	mii = device_get_softc(sc_if->msk_miibus);
>  
>  	mii_tick(mii);
> +	if ((sc_if->msk_flags & MSK_FLAG_LINK) == 0)
> +		msk_miibus_statchg(sc_if->msk_if_dev);
>  	msk_watchdog(sc_if);
>  	callout_reset(&sc_if->msk_tick_ch, hz, msk_tick, sc_if);
>  }
Received on Mon Nov 16 2009 - 19:32:40 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:58 UTC