lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <591B1FC2.1090402@aoifes.com> Date: Tue, 16 May 2017 17:50:26 +0200 From: Rafa Corvillo <rafael.corvillo@...fes.com> To: Andrew Lunn <andrew@...n.ch> Cc: Stephen Hemminger <stephen@...workplumber.org>, netdev@...r.kernel.org Subject: Re: [ISSUE: sky2 - rx error] Link stops working under heavy traffic load connected to a mv88e6176 > On Tue, May 16, 2017 at 03:09:17PM +0200, Rafa Corvillo wrote: >>>> Adding 8 bytes (sky2->netdev->mtu + ETH_HLEN + VLAN_HLEN + 8 >>>> (EDSA_HLEN)) does not fix the error, because the interface keep >>>> having a maximum length of 1518 bytes (sky2->netdev->mtu + ETH_HLEN >>>> + VLAN_HLEN). >>> >>> Did you check the value being written to here: >>> >>> /* >>> * The receiver hangs if it receives frames larger than the >>> * packet buffer. As a workaround, truncate oversize frames, but >>> * the register is limited to 9 bits, so if you do frames > 2052 >>> * you better get the MTU right! >>> */ >>> thresh = sky2_get_rx_threshold(sky2); >>> if (thresh > 0x1ff) >>> sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_TRUNC_OFF); >>> else { >>> sky2_write16(hw, SK_REG(sky2->port, RX_GMF_TR_THR), thresh); >>> sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_TRUNC_ON); >>> } >>> >>> >>> What is thresh? >> >> The value of thresh is 380. > > So that is 1528. Yes, this is the result of the roundup function. > > You could hack it and try 0x1ff. I have forced the value of thresh to 0x1ff and the rx error still appears. > > Also, check that in sky2_rx_add(), le->length is set to 4K. > The value of le->length is set to 1520. Rafa
Powered by blists - more mailing lists