Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp270861imm; Thu, 11 Oct 2018 20:24:39 -0700 (PDT) X-Google-Smtp-Source: ACcGV637K2zE2+2HL3wjI1z7phoa5vL0bh8I/tTm3bk3BKfM4SyrudOsZX0AtUFtzdKgrNtaB62P X-Received: by 2002:a63:7b09:: with SMTP id w9-v6mr3871343pgc.385.1539314679877; Thu, 11 Oct 2018 20:24:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539314679; cv=none; d=google.com; s=arc-20160816; b=GEWu9/uadSbuGZfOQHdplU0eCeLZ4Qyw4wVaCE8PoQ2qDQQSNCqrhnfw8jIsv/YrGL 40RwKbGMbLzY0t57XLsQKu28eZBaJ8d292sIf5IWKmuiJBKVKoh9+DUF08XEa+Vipy3O Opes9rd3+YipBzi2VnGg+nohx8Up0E1HngQ2znxHX9cTUlHCXIUJrTC4GR6dqHoqQ2LM AsIDrOs3P56G7xASkufaovm+N4He6baIGQ7NZj8mivZTL+w0N7FIfUeD3mZumm8SrtL1 cxTxjs2UP/1BCJh/SH8m5x53JhP6eKupQGjQGIbka95G9xppSZbWa+N+DK1ZqyPFBWRV JORg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject; bh=iYCCzcS/sq9lZfoH9ehxZwAmzo+nFXB6anTrABdzmeQ=; b=eeGxEuCilsAzP8qQTQSelJZ+9gLO0hraNvCFW/A2imeQJ3QGtGpC6lkAB+MW6qyCBn pFMbSeeII6Q4NPEng1EAvjnk6suKRbUD2YVPWiJp6K2IKtIlSvwa0Tud14BO47RHs32q 92Rk+H0k+wr0OKC0ORc6G4u9c3agMulWn4YhDZd6WhYOnzBKS+mfX4MIDJLnGIkWBgSS 4D5b7fY8XtlSLYbpyIFLNuKJ/j2TrxK1/dGhnV/x8yC7JSoOxIlHMN9gmtY8LX3FWvp9 FzWM2Ut5En4TCZzqRfYapE88KrpKfbomAgSBlpafDDJf9BC4E+0PYx8GlV9jLaU5jyeb dC8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 8-v6si26642002pgr.205.2018.10.11.20.24.24; Thu, 11 Oct 2018 20:24:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727013AbeJLKyV (ORCPT + 99 others); Fri, 12 Oct 2018 06:54:21 -0400 Received: from mga18.intel.com ([134.134.136.126]:27723 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726280AbeJLKyV (ORCPT ); Fri, 12 Oct 2018 06:54:21 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Oct 2018 20:24:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,371,1534834800"; d="scan'208";a="99581467" Received: from ipu5-build.bj.intel.com (HELO [10.238.232.171]) ([10.238.232.171]) by orsmga002.jf.intel.com with ESMTP; 11 Oct 2018 20:21:43 -0700 Subject: Re: question about V4L2_MEMORY_USERPTR on 64bit applications To: "Zhang, Ning A" , "linux-kernel@vger.kernel.org" , "linux-media@vger.kernel.org" References: <1539313441.21249.3.camel@intel.com> From: Bing Bu Cao Message-ID: <91f5d31a-d60e-c810-6b0c-23edddef6f1c@linux.intel.com> Date: Fri, 12 Oct 2018 11:25:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <1539313441.21249.3.camel@intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Ning, unsigned long???userptr; <<<--- this is a 32bit addr. I think it's wrong here,for LP64 data modelmachine(unix-like systems), the actual size ofdata type 'unsigned long'is 8(64bits value)whichis equal to pointer. ? On 10/12/2018 11:04 AM, Zhang, Ning A wrote: > Hi, > > I have question about V4L2_MEMORY_USERPTR on 64bit applications. > > struct v4l2_buffer { > __u32 index; > __u32 type; > __u32 bytesused; > __u32 flags; > __u32 field; > struct timeval timestamp; > struct v4l2_timecode timecode; > __u32 sequence; > > /* memory location */ > __u32 memory; > union { > __u32???????????offset; > unsigned long???userptr; <<<--- this is a 32bit addr. > struct v4l2_plane *planes; > __s32 fd; > } m; > __u32 length; > __u32 reserved2; > __u32 reserved; > }; > > when use a 64bit application, memory from malloc is 64bit address. > memory from GPU (eg, intel i915) are also 64bit address. > > when use these kind of memory as?V4L2_MEMORY_USERPTR, address will be > truncated into 32bit. > > this would be error, but actually not. I really don't understand. > > BR. > Ning.