From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v4 20/27] xen/arm: Remove devices used by Xen from dom0 device tree Date: Fri, 13 Sep 2013 13:49:27 +0100 Message-ID: <1379076574-28316-21-git-send-email-julien.grall@linaro.org> References: <1379076574-28316-1-git-send-email-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1379076574-28316-1-git-send-email-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: patches@linaro.org, Julien Grall , ian.campbell@citrix.com, andre.przywara@linaro.org, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Devices used by Xen should not be pass-through to dom0. If the device is really usefull for dom0 (for instance the timer and the GIC), it will recreate the node. Signed-off-by: Julien Grall --- xen/arch/arm/domain_build.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 300a64d..82003c1 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -677,7 +677,8 @@ static int handle_node(struct domain *d, struct kernel_info *kinfo, /* Skip theses nodes and the sub-nodes */ if ( dt_match_node(skip_matches, np ) || - platform_device_is_blacklisted(np) ) + platform_device_is_blacklisted(np) || + dt_device_used_by(np) == DOMID_XEN ) { DPRINT(" Skip it!\n"); return 0; @@ -685,15 +686,13 @@ static int handle_node(struct domain *d, struct kernel_info *kinfo, /* * Some device doesn't need to be mapped in Xen: - * - Device used by Xen: Obviously dom0 can't use them * - Memory: the guest will see a different view of memory. It will * be allocated later. * - Disabled device: Linux is able to cope with status="disabled" * property. Therefore these device doesn't need to be mapped. This * solution can be use later for pass through. */ - if ( dt_device_used_by(np) != DOMID_XEN && - !dt_device_type_is_equal(np, "memory") && + if ( !dt_device_type_is_equal(np, "memory") && dt_device_is_available(np) ) { res = map_device(d, np); -- 1.7.10.4