Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753464AbcDRRsG (ORCPT ); Mon, 18 Apr 2016 13:48:06 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:52887 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752900AbcDRRsD (ORCPT ); Mon, 18 Apr 2016 13:48:03 -0400 Subject: Re: [PATCH V2] net: ethernet: mellanox: correct page conversion To: Christoph Hellwig References: <1460845412-13120-1-git-send-email-okaya@codeaurora.org> <20160418065447.GA11539@x-vnc01.mtx.labs.mlnx> <20160418143255.GA15203@infradead.org> <20160418151702.GA26565@infradead.org> <5714FB68.3020604@codeaurora.org> <20160418154058.GA4228@infradead.org> Cc: Eli Cohen , "linux-rdma@vger.kernel.org" , "timur@codeaurora.org" , "cov@codeaurora.org" , Yishai Hadas , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" From: Sinan Kaya Message-ID: <57151DCF.4070908@codeaurora.org> Date: Mon, 18 Apr 2016 13:47:59 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <20160418154058.GA4228@infradead.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1410 Lines: 36 On 4/18/2016 11:40 AM, Christoph Hellwig wrote: > On Mon, Apr 18, 2016 at 11:21:12AM -0400, Sinan Kaya wrote: >> I was looking at the code. I don't see how removing virt_to_page + vmap >> would solve the issue. >> >> The code is trying to access the buffer space with direct.buf member >> from the CPU side. This member would become NULL, when this code is >> removed and also in mlx4_en_map_buffer. >> >> ... >> >> What am I missing? > > As mentioned before you'll also need to enforce you hit the nbufs = 1 > case for these. In fact most callers should simply switch to a plain > dma_zalloc_coherent call without all these wrappers. If we have a case > where we really want multiple buffers that don't have to be contiguous > (maybe the MTT case) I'd rather opencode that instead of building this > confusing interface on top of it. > I hit the first problem with CQE. The alloc routine is allocating pages but CQE code is trying to do linear access with direct buf member. I see that this code implements page_list support. I'd like to do the same thing for CQE. Let me know if I'm in the right path. static struct mlx4_eqe *get_eqe(struct mlx4_eq *eq, u32 entry, u8 eqe_factor, u8 eqe_size) -- Sinan Kaya Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project