From patchwork Wed Nov 29 16:38:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serhii Popovych X-Patchwork-Id: 842647 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yn5pb1jvSz9t62 for ; Thu, 30 Nov 2017 03:39:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933652AbdK2Qia (ORCPT ); Wed, 29 Nov 2017 11:38:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47724 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932190AbdK2Qi2 (ORCPT ); Wed, 29 Nov 2017 11:38:28 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 533ED461D3; Wed, 29 Nov 2017 16:38:28 +0000 (UTC) Received: from tuxracer.localdomain (ibm-p8-virt-03.lab.eng.rdu.redhat.com [10.12.2.14]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 987095D964; Wed, 29 Nov 2017 16:38:27 +0000 (UTC) From: Serhii Popovych To: linux-kernel@vger.kernel.org Cc: michael@ellerman.id.au, paulus@samba.org, linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org, david@gibson.dropbear.id.au Subject: [PATCH 0/4] Fix use after free in HPT resizing code and related minor improvements Date: Wed, 29 Nov 2017 11:38:22 -0500 Message-Id: <1511973506-65683-1-git-send-email-spopovyc@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 29 Nov 2017 16:38:28 +0000 (UTC) Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org It is possible to trigger use after free during HPT resize causing host kernel to crash. More details and analysis of the problem can be found in change with corresponding subject (KVM: PPC: Book3S HV: Fix use after free in case of multiple resize requests). We need some changes to prepare for the fix, especially make ->error in HPT resize instance single point for tracking allocation state, improve kvmppc_allocate_hpt() and kvmppc_free_hpt() so they can be used more safely. See individual commit description message to get more information on changes presented. Serhii Popovych (4): KVM: PPC: Book3S HV: Drop prepare_done from struct kvm_resize_hpt and cleanups KVM: PPC: Book3S HV: Improve kvmppc_allocate_hpt()/kvmppc_free_hpt() KVM: PPC: Book3S HV: Fix use after free in case of multiple resize requests KVM: PPC: Book3S HV: Remove redundant parameter from resize_hpt_release() arch/powerpc/kvm/book3s_64_mmu_hv.c | 139 +++++++++++++++++++++--------------- 1 file changed, 82 insertions(+), 57 deletions(-)