Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751336AbdLSRo2 (ORCPT ); Tue, 19 Dec 2017 12:44:28 -0500 Received: from mail-qt0-f193.google.com ([209.85.216.193]:39120 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751201AbdLSRoY (ORCPT ); Tue, 19 Dec 2017 12:44:24 -0500 X-Google-Smtp-Source: ACJfBouccgVJNTBMIS7+M8JL/oVufPFo8bf6SeLoa8XDeffiK7Gd6HtqSquK2a4QjiV8rQfGY510SXE492zJm1qfFP8= MIME-Version: 1.0 In-Reply-To: <20171219123030.GD2942@mtr-leonro.local> References: <1502207797-25589-1-git-send-email-vasilyev@ispras.ru> <20170815183158.GB24282@mtr-leonro.local> <20171219123030.GD2942@mtr-leonro.local> From: Selvin Xavier Date: Tue, 19 Dec 2017 23:14:03 +0530 Message-ID: Subject: Re: [PATCH] hw: Fix permissions for OCRDMA_RESET_STATS To: Leon Romanovsky Cc: Anton Vasilyev , Devesh Sharma , Doug Ledford , Sean Hefty , Hal Rosenstock , Michael Mera , linux-rdma@vger.kernel.org, linux-kernel , ldv-project@linuxtesting.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1505 Lines: 44 On Tue, Dec 19, 2017 at 6:00 PM, Leon Romanovsky wrote: >> status = ocrdma_nonemb_mbx_cmd(dev, mqe, dev->stats_mem.va); > > It still doesn't make a lot of sense to me: > > ocrdma_mbx_rdma_stats(): > 1315 if (reset) > 1316 req->reset_stats = reset; > 1317 > 1318 status = ocrdma_nonemb_mbx_cmd(dev, mqe, dev->stats_mem.va); > > > 1117 static int ocrdma_nonemb_mbx_cmd(struct ocrdma_dev *dev, struct ocrdma_mqe *mqe, > 1118 void *payload_va) > 1119 { > 1120 int status; > 1121 struct ocrdma_mbx_rsp *rsp = payload_va; > 1122 > 1123 if ((mqe->hdr.spcl_sge_cnt_emb & OCRDMA_MQE_HDR_EMB_MASK) > 1124 OCRDMA_MQE_HDR_EMB_SHIFT) > 1125 BUG(); > 1126 > 1127 status = ocrdma_mbx_cmd(dev, mqe); > > You are not using rsp and/or payload_va to provide data to ocrdma_mbx_cmd. > > How are you passing reset_stats information to FW? > This is a command where the response size is more than 236 bytes. So this is sent as a non-embedded command where the req/resp will be available in payload_va and phys address of payload_va (payload_pa) will be send down to firmware as MQE. FW will dma the mailbox from the payload_pa and response is transferred back. req->reset_stats = reset; is actually setting the corresponding bit in the request structure @payload_va. FW receives reset_stats once the request is DMA-ed from payload_pa. > Thanks > Thanks, Selvin