From patchwork Wed Mar 9 10:27:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuseppe CAVALLARO X-Patchwork-Id: 594955 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1EA02140BB4 for ; Wed, 9 Mar 2016 21:28:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932238AbcCIK2k (ORCPT ); Wed, 9 Mar 2016 05:28:40 -0500 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:44049 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932144AbcCIK20 (ORCPT ); Wed, 9 Mar 2016 05:28:26 -0500 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.15.0.59/8.15.0.59) with SMTP id u29AQbAD002623; Wed, 9 Mar 2016 11:27:46 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 21j1h050pv-1 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 09 Mar 2016 11:27:46 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 27C6631; Wed, 9 Mar 2016 10:27:44 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas24.st.com [10.75.90.94]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id ECDD31221; Wed, 9 Mar 2016 10:27:43 +0000 (GMT) Received: from [10.52.139.40] (10.52.139.40) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 9 Mar 2016 11:27:43 +0100 Message-ID: <56DFFA9E.7060602@st.com> Date: Wed, 9 Mar 2016 11:27:42 +0100 From: Giuseppe CAVALLARO User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Tomeu Vizoso , Fabrice GASNIER CC: Dinh Nguyen , "devicetree@vger.kernel.org" , =?UTF-8?B?SGVpa28gU3TDvGJuZXI=?= , , "open list:ARM/Rockchip SoC..." , LAKML , =?UTF-8?B?QW5kcmVhcyBGw6Ry?= =?UTF-8?B?YmVy?= , Gabriel Fernandez , Alexandre TORGUE , =?UTF-8?B?RnJhbmsgU2Now6RmZXI=?= , LKML Subject: Re: [PATCH v3 0/8] arm64: rockchip: Initial GeekBox enablement References: <1457294038-14243-1-git-send-email-afaerber@suse.de> <56DD7172.4000707@suse.de> <2714888.1DdqvJZ8cb@diego> <56DD7593.5060003@suse.de> <56DD8176.2080603@st.com> <56DD8FBE.9010200@suse.de> <56DD99A4.5030004@st.com> <56DDA26C.3050301@suse.de> <56DDA3D5.3090209@st.com> <56DDB749.1020808@suse.de> <56DE7E1D.5070508@st.com> <56DFE55B.2090806@st.com> <56DFE64B.8060606@st.com> <56DFF253.9050208@st.com> In-Reply-To: <56DFF253.9050208@st.com> X-Originating-IP: [10.52.139.40] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-03-09_07:, , signatures=0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hello Tomeu, Andreas, On 3/9/2016 10:52 AM, Giuseppe CAVALLARO wrote: >> * today's linux-next: probe failed >> >> * today's linux-next + revert of 88f8b1bb41c6 stmmac: Fix 'eth0: No >> PHY found' regression: probe succeeded but no network at all >> >> * today's linux-next + revert of 88f8b1bb41c6 (stmmac: Fix 'eth0: No >> PHY found' regression) + revert of 0e80bdc9a72d (stmmac: first frame >> prep at the end of xmit routine): probe succeeded, dhcp succeeds and >> nfsroot works for a few seconds before timing out > > ok, I was looking at this problem now that seems to related > the "stmmac: first frame prep at the end of xmit routine" > that, at first glance, is breaking the gmac 3.50 with normal descriptor. I have no Hw where to test this use case. So, I wonder if may I ask you to test some patch. This first patch adds a missing barrier to the normal routine that inits the descriptor. Barrier was needed to well manage the OWN descriptor and it was not added in case of normal desc case after the xmit rework. Then I will check the algo behind the new xmit and in case of problems, if you agree, we will decide to revert it because it aimed to add an optimization. Let me know if you agree. Regards Peppe diff --git a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c index e13228f..4392610 100644 --- a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c +++ b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c @@ -210,7 +210,7 @@ static void ndesc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len, tdes1 &= ~TDES1_FIRST_SEGMENT; if (likely(csum_flag)) - tdes1 |= (TX_CIC_FULL) << TDES1_CHECKSUM_INSERTION_SHIFT; + tdes1 |= (TX_CIC_FULL << TDES1_CHECKSUM_INSERTION_SHIFT); else tdes1 &= ~(TX_CIC_FULL << TDES1_CHECKSUM_INSERTION_SHIFT); @@ -220,6 +220,13 @@ static void ndesc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len, if (tx_own) tdes1 |= TDES0_OWN; + if (is_fs & tx_own) + /* When the own bit, for the first frame, has to be set, all + * descriptors for the same frame has to be set before, to + * avoid race condition. + */ + wmb(); + p->des1 = tdes1; }