From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chen, Tiejun" Subject: Re: [PATCH v12] introduce XENMEM_reserved_device_memory_map Date: Wed, 22 Jul 2015 20:55:11 +0800 Message-ID: <55AF92AF.4080107@intel.com> References: <1437528607-19315-1-git-send-email-tiejun.chen@intel.com> <1437528607-19315-2-git-send-email-tiejun.chen@intel.com> <55AF8F9B0200007800093F69@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <55AF8F9B0200007800093F69@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , xen-devel@lists.xen.org Cc: Kevin Tian , Keir Fraser , Tim Deegan , Ian Jackson , Ian Campbell , Yang Z Zhang List-Id: xen-devel@lists.xenproject.org > +#ifdef HAS_PASSTHROUGH > + case XENMEM_reserved_device_memory_map: > + { > + struct get_reserved_device_memory grdm; > + > + if ( unlikely(start_extent) ) > + return -ENOSYS; > + > + if ( copy_from_guest(&grdm.map, compat, 1) || > + !compat_handle_okay(grdm.map.buffer, grdm.map.nr_entries) ) > + return -EFAULT; > + > + if ( grdm.map.flags & ~XENMEM_RDM_ALL ) > + return -EINVAL; > + > + grdm.used_entries = 0; > + rc = iommu_get_reserved_device_memory(get_reserved_device_memory, > + &grdm); > + Just as you asked me previously, Here if RDM doesn't exist, so grdm.map.nr_entries = grdm.used_entries = 0, and rc = 0, right? > + if ( !rc && grdm.map.nr_entries < grdm.used_entries ) > + rc = -ENOBUFS; > + grdm.map.nr_entries = grdm.used_entries; > + if ( __copy_to_guest(compat, &grdm.map, 1) ) So can we still do this copy here? Thanks Tiejun