Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1201788rwb; Fri, 7 Oct 2022 09:20:39 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4nZq8etInO+SaMzYgLc/gjfYjxJfTiCL5hLs0dL8o2Y4C1iSWt1s4kL+RLACC67gCdzLZ3 X-Received: by 2002:a17:90b:1c8e:b0:205:783b:fe32 with SMTP id oo14-20020a17090b1c8e00b00205783bfe32mr17554706pjb.39.1665159639519; Fri, 07 Oct 2022 09:20:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665159639; cv=none; d=google.com; s=arc-20160816; b=QuXy2srqJ8nO6igR++JHe4A1kIgwVCVF5vGTj9PbzUTjuQaTkyq2kmWyqaJsCnRF0j 6zT8TABKH7XBb0yoYTxDFwqGBEud1SS7en/i7bQ07yc7bnwCaFmOD4IZkRJp7NFKEtk5 mn9nbWng7L6lEvwsxbJ1e8BNNXst/yqaGx0gNeHhIL1PjXK6Ul7CgNuYfeaJSoTYQgUQ gKlbp3FT4vExFBJZGH18g+RBrwvglWDIKqD+hX2S+sSDQA8mKWaDUy7D4c+r7X+t7eCw sBDTipLZUkUJwBSR5A2zm38MoQ14yR/WoTLCC4NXWDlrxCLJO37+fYCXnhIxR4z+7vj3 zNDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:mime-version :dkim-signature; bh=eWhe/luQNtiek+MCh1Ji3sftnJRDLuDyTuqEnw5KB1Y=; b=qs0WFBCOkxgiOgSwVzR/5Lx19nexiqP8jVV5si7GL5/e29//3LYEbfARmVm7Clm8Sk LD5Wd2KeIWgWyPJiM28FGuQw/tZ+6xUMnhfOsOy2AK1qHrVGZV/rHqLNpfrKPO5bUe0T +Ws4OYtyR7uG+JPSsbNagTpFi2uthq2VjFrNJLSh97sVCBT8PsRikPTokPCPNdNiR2qw V3M6/M/WjLL9Sc+89LwYurW5B7YmkZ30mzqFX/zfz9ZCgiRshPgSGXdoRxEjr3idCiVZ Rizd27mzh0vARYQmUQUrCIyFX8O7s/MuS2Nf0ze07aTIpRw7qvyNbamQNLFgWy8WjcYP IF2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=kYvkpJEZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oo12-20020a17090b1c8c00b00205daac38absi3609021pjb.59.2022.10.07.09.20.25; Fri, 07 Oct 2022 09:20:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=kYvkpJEZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229870AbiJGQAV (ORCPT + 99 others); Fri, 7 Oct 2022 12:00:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229624AbiJGQAT (ORCPT ); Fri, 7 Oct 2022 12:00:19 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D94E01E3E2; Fri, 7 Oct 2022 09:00:17 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id n12so7916234wrp.10; Fri, 07 Oct 2022 09:00:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=eWhe/luQNtiek+MCh1Ji3sftnJRDLuDyTuqEnw5KB1Y=; b=kYvkpJEZGPd8+VTgKqJW75WmXsItnXm/yLExbY4PKAUs3dQ83nWCE4EuMUIDorswrL 6HzflzGb/0Qw34TD0pf6aOVhFxAOqdbtNyypUHj3eXUqtHL3NLcdohMk9/agDFkYS3Sr p6RpOktsZPhVYnwmbP64rfzrmTcS83RTZpEo5iqIHr1pD+3Hs58iH58bLwqURLNzdKf1 NgVUYkDlAK2tp/344Fg1k12xk8zCVvWuaKNzuFV8Vanh+8RWalsRcoh5uF7YMp1kUzcb zsZzKmJM5VgY8xKqyNZV4pAxW7anfXdk7b0FzOqKXUoXNMGu9k48Tmt3kIip8VztOaHY igfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=eWhe/luQNtiek+MCh1Ji3sftnJRDLuDyTuqEnw5KB1Y=; b=FhjX1EcbQTj6BdK2V9TD0wSR9frZzuy3DqIaqKWsTJcJgLVz52Ff4X457uo06HBN/W usMF0FYUnYwwjUXGsJvj2Lgu6sSPKFl7vEPd/yjiAf6ThPpak1mWXb9qfxkag8oW74eO K0xTeHBudzCzpDe24V4vuQKfXCNMKV9UYfV+yvjSNgkb6gNA29De2DvJquGU2cyERtZc lZ+gg2O7u8UBFR5fn7SUhtJ8DT6fDrZYytPh2sVzyNVQqT+/7HeOsQ+5dgyp4KVcOzts pkzA/34cIPyFlpFhfygGltPAo8c0ha3VIx33gwwzFp87vHHiybCmpQUx64H4LIGnBT+1 q2CA== X-Gm-Message-State: ACrzQf1JdNcTEir9g/i7iO9F/jdE64tIpIcN72QQqyCI/rZCDPE0r59y dOQRE8R2+0YIzAgzavm61+U65fXsnByYmdNge52SA3g0EGUdHw== X-Received: by 2002:a5d:59a7:0:b0:22a:47e3:a1b with SMTP id p7-20020a5d59a7000000b0022a47e30a1bmr3647629wrr.319.1665158416381; Fri, 07 Oct 2022 09:00:16 -0700 (PDT) MIME-Version: 1.0 From: Hao Peng Date: Fri, 7 Oct 2022 23:56:47 +0800 Message-ID: Subject: [PATCH] kvm: x86: Keep the lock order consistent To: pbonzini@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Peng Hao srcu read side in critical section may sleep, so it should precede the read lock, while other paths such as kvm_xen_set_evtchn_fast execute srcu_read_lock before acquiring the read lock. Signed-off-by: Peng Hao --- arch/x86/kvm/xen.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 280cb5dc7341..fa6e54b13afb 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -965,8 +965,8 @@ static bool wait_pending_event(struct kvm_vcpu *vcpu, int nr_ports, bool ret = true; int idx, i; - read_lock_irqsave(&gpc->lock, flags); idx = srcu_read_lock(&kvm->srcu); + read_lock_irqsave(&gpc->lock, flags); if (!kvm_gfn_to_pfn_cache_check(kvm, gpc, gpc->gpa, PAGE_SIZE)) goto out_rcu; @@ -987,9 +987,8 @@ static bool wait_pending_event(struct kvm_vcpu *vcpu, int nr_ports, } out_rcu: - srcu_read_unlock(&kvm->srcu, idx); read_unlock_irqrestore(&gpc->lock, flags); - + srcu_read_unlock(&kvm->srcu, idx); return ret; } -- 2.27.0