From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id CEB6BF6D2 for ; Thu, 12 Jan 2017 20:10:28 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 12 Jan 2017 11:10:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,219,1477983600"; d="scan'208";a="29644225" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.220.38]) ([10.237.220.38]) by orsmga002.jf.intel.com with ESMTP; 12 Jan 2017 11:10:25 -0800 To: Jerin Jacob , dev@dpdk.org References: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484212646-10338-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484212646-10338-17-git-send-email-jerin.jacob@caviumnetworks.com> Cc: konstantin.ananyev@intel.com, thomas.monjalon@6wind.com, bruce.richardson@intel.com, jianbo.liu@linaro.org, viktorin@rehivetech.com, santosh.shukla@caviumnetworks.com, Stephen Hurd , Ajit Khaparde From: Ferruh Yigit Message-ID: Date: Thu, 12 Jan 2017 19:10:24 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <1484212646-10338-17-git-send-email-jerin.jacob@caviumnetworks.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v3 16/29] net/bnxt: use eal I/O device memory read/write API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2017 19:10:29 -0000 On 1/12/2017 9:17 AM, Jerin Jacob wrote: <...> > #define B_CP_DB_REARM(cpr, raw_cons) \ > - (*(uint32_t *)((cpr)->cp_doorbell) = (DB_CP_REARM_FLAGS | \ > - RING_CMP(cpr->cp_ring_struct, raw_cons))) > + rte_write32((DB_CP_REARM_FLAGS | \ Just asking, can this be rte_write32_relaxed() since there is explicit memory barrier defined for B_CP_DIS_DB but not for here? > + RING_CMP(((cpr)->cp_ring_struct), raw_cons)), \ > + ((cpr)->cp_doorbell)) > > #define B_CP_DIS_DB(cpr, raw_cons) \ > - rte_smp_wmb(); \ > - (*(uint32_t *)((cpr)->cp_doorbell) = (DB_CP_FLAGS | \ > - RING_CMP(cpr->cp_ring_struct, raw_cons))) > + rte_write32((DB_CP_FLAGS | \ > + RING_CMP(((cpr)->cp_ring_struct), raw_cons)), \ > + ((cpr)->cp_doorbell)) > <...> > @@ -80,11 +82,12 @@ static int bnxt_hwrm_send_message_locked(struct bnxt *bp, void *msg, > for (; i < bp->max_req_len; i += 4) { > bar = (uint8_t *)bp->bar0 + i; > *(volatile uint32_t *)bar = 0; Should this line be removed? > + rte_write32(0, bar); > } > > /* Ring channel doorbell */ > bar = (uint8_t *)bp->bar0 + 0x100; > - *(volatile uint32_t *)bar = 1; > + rte_write32(1, bar); > > /* Poll for the valid bit */ > for (i = 0; i < HWRM_CMD_TIMEOUT; i++) { <...>