Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753236AbcCYOWs (ORCPT ); Fri, 25 Mar 2016 10:22:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46508 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751831AbcCYOWp (ORCPT ); Fri, 25 Mar 2016 10:22:45 -0400 Subject: Re: [PATCH 3/4] KVM: MMU: reduce the size of mmu_page_path To: Xiao Guangrong References: <1458911978-19430-1-git-send-email-guangrong.xiao@linux.intel.com> <1458911978-19430-3-git-send-email-guangrong.xiao@linux.intel.com> <56F54103.6020508@redhat.com> <56F541C5.6090904@linux.intel.com> <56F54397.9050809@redhat.com> <56F54614.3050300@linux.intel.com> Cc: gleb@kernel.org, mtosatti@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org From: Paolo Bonzini Message-ID: <56F549B0.9040309@redhat.com> Date: Fri, 25 Mar 2016 15:22:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <56F54614.3050300@linux.intel.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 757 Lines: 31 On 25/03/2016 15:07, Xiao Guangrong wrote: >> >> @@ -2037,13 +2037,14 @@ static void mmu_pages_clear_parents(struct >> mmu_page_path *parents) >> { >> struct kvm_mmu_page *sp; >> unsigned int level = 0; >> + unsigned int idx; >> >> do { >> - unsigned int idx = parents->idx[level]; >> sp = parents->parent[level]; >> - if (!sp) >> + if (!sp || WARN_ON(level == PT64_ROOT_LEVEL-1)) >> return; >> >> + idx = parents->idx[level]; >> WARN_ON(idx == INVALID_INDEX); >> clear_unsync_child_bit(sp, idx); >> level++; >> > > Yes, exactly. > > [ actually, we can keep mmu_pages_clear_parents() unchanged ] You cannot because ubsan would complain. :) Paolo