From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FDEBC433FE for ; Wed, 3 Nov 2021 16:18:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 767B3610FC for ; Wed, 3 Nov 2021 16:18:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232745AbhKCQVQ (ORCPT ); Wed, 3 Nov 2021 12:21:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232101AbhKCQVO (ORCPT ); Wed, 3 Nov 2021 12:21:14 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80C27C061714 for ; Wed, 3 Nov 2021 09:18:37 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id q7-20020a25b007000000b005c1d1377abdso4518152ybf.23 for ; Wed, 03 Nov 2021 09:18:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=reply-to:date:message-id:mime-version:subject:from:to:cc; bh=eD9dW/j7qWODztQefqhaj/ToXeE3Wj/nmDQbWVvMxKk=; b=B7Tuyg6FcQjL73pK9DX41IC4JAWwExMKgucji0qg2qjeczLxUp2CqLYXrZvtjFGdBT 9U1MeUl7T5LeunTuiPha8fNH/D7LkXVMJkCYXYerQRPnEGobJrzvN1E9qVLrXT6K9jIi GfsJbk0YI9inqzgSD/fABK+2I/RLQ0jhjvpB21M/7jOSoEg98GTB0WYtQtLTTa3l5zle CJ/XX4fZdpfd915ZBeqxyPM9YNhI0P4vrI7pxhdZfowe84rrA0uhzHhkK9BzCkC1B/vq Yu4eGUx3D2mf6guZzhRBf+S1PsFUY+8cdKAihax7iSPWUFkQ4FPUSqA90SKJPGMNwAn5 20yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:reply-to:date:message-id:mime-version:subject :from:to:cc; bh=eD9dW/j7qWODztQefqhaj/ToXeE3Wj/nmDQbWVvMxKk=; b=TVBKsDFtWENFruT5mv70BUYKrX96dVQwh4lHTCyl8fZptsMQtl1yiOLhEjkwDbqL1X 0EtMP7UuGKWOUM1vplurtXXdnchshbDcZmXuydGV/PcQFK2DqJjDF2JnKR+2zxtVrh3O B3s7+lXB7jcaMzqv56oN5xRzOPvXcmNllYdaPyKUBCIUUAGg8xcHwgVW7/9NkfzwdzUd ORk+wiTKIXQwpECO8Dq4u3ppfd2eB8zrTQEdFEqdLGSt1lL8X7wNCNLTsDdHlnudDFWG kfWk3/HMXFpN3L420CmU/vt8MEGcojzoDela7TP7bdxJy0K7Tj3EYfCDt1H4LBQrofyo B8CQ== X-Gm-Message-State: AOAM531OQaXNCxcagqDESE25bj8LOWd1bCpdMu8l61sQwC2GFCxMb1is Cm8Z5F1ISmyNYhSgOYPsERjsgX5KJ4E= X-Google-Smtp-Source: ABdhPJwIxMNQnF6M/364DJH8bbgO+NKWv62p+iKm6Tzw44h2sXOq0ZJtujfou4G2qzCC+VnUbJkNvuaAqjE= X-Received: from seanjc798194.pdx.corp.google.com ([2620:15c:90:200:e8d5:d0cd:12fd:266e]) (user=seanjc job=sendgmr) by 2002:a25:d15:: with SMTP id 21mr27811929ybn.141.1635956316718; Wed, 03 Nov 2021 09:18:36 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 3 Nov 2021 09:18:33 -0700 Message-Id: <20211103161833.3769487-1-seanjc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.33.1.1089.g2158813163f-goog Subject: [PATCH] KVM: x86/mmu: Properly dereference rcu-protected TDP MMU sptep iterator From: Sean Christopherson To: Paolo Bonzini Cc: Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Ben Gardon Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Wrap the read of iter->sptep in tdp_mmu_map_handle_target_level() with rcu_dereference(). Shadow pages in the TDP MMU, and thus their SPTEs, are protected by rcu. This fixes a Sparse warning at tdp_mmu.c:900:51: warning: incorrect type in argument 1 (different address spaces) expected unsigned long long [usertype] *sptep got unsigned long long [noderef] [usertype] __rcu *[usertype] sptep Fixes: 7158bee4b475 ("KVM: MMU: pass kvm_mmu_page struct to make_spte") Cc: Ben Gardon Signed-off-by: Sean Christopherson --- arch/x86/kvm/mmu/tdp_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c index 7c5dd83e52de..a54c3491af42 100644 --- a/arch/x86/kvm/mmu/tdp_mmu.c +++ b/arch/x86/kvm/mmu/tdp_mmu.c @@ -897,7 +897,7 @@ static int tdp_mmu_map_handle_target_level(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault, struct tdp_iter *iter) { - struct kvm_mmu_page *sp = sptep_to_sp(iter->sptep); + struct kvm_mmu_page *sp = sptep_to_sp(rcu_dereference(iter->sptep)); u64 new_spte; int ret = RET_PF_FIXED; bool wrprot = false; -- 2.33.1.1089.g2158813163f-goog