Received: by 10.223.176.5 with SMTP id f5csp1189594wra; Wed, 7 Feb 2018 14:25:31 -0800 (PST) X-Google-Smtp-Source: AH8x224HLPDwyjpWk4kZttX5wkFPR3tFF684MVsTAfRE6dnQuorJPPmf2xe3LFgSJUq5O0WlIfsF X-Received: by 2002:a17:902:8f90:: with SMTP id z16-v6mr7592225plo.370.1518042331826; Wed, 07 Feb 2018 14:25:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518042331; cv=none; d=google.com; s=arc-20160816; b=pi3LUa4r1qFxo1bSdSQuBk3JNFkNfsQS+r7aNLEBR50jk8aNHHmpsdxQWy/0Ur5Hw1 R1R7Tdaw+7D268ccM7GKO8y5kmou1hQRf9knPTlSmQb+qFizvD6x6h2dhrMTnG/YwgAI j5Yw82FNjrKtueGTp2azKUyMwOln6/kboEnQqFmPPNwgUwzG714D6qDpk+UW0Wt+/dn8 By1EuXgVhbss1z308pVUC9Whfp+/RjOXe0cFAQPmxCB83+HHSbf4Ri3ZBauJ/JeeiwJL EtDwKcA1jsatNd579hIFyWTnAELOLnIN0WxRvLR+A0at6iHIliidqGRFh4S/t8mwI+l6 Jaaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=mYU1ORIxNhUtmPSl6aN6iICkQzRVU9RcuMs2GAjXlD8=; b=KwD6n0XzQOPlMWKcAbp3XNGutu4JcFgT4wmISYEtpxr6FSx9JbA5+gQov3+mAawfjw 2/TkVXi7ovzoWw+A0bNoP3CLH21h7iSdpO8du0n8wICQn1iEXtLDld59HTl9M1FtO7wX 1z6abFsIAwUCeBOQGh3cI+RWOC6HBSDyuTtB8OlmuwmWWOM8n9FgxkTkq7d3qV1SZozF TGBrKVDqAoU4Nkda0IYm9FRyfJOg6FM2VjpuVdhlKQg6o2JdpM27i9D1tJpDUVQOdYL3 /laVLBPS/B/Gtr1s72isGhPsOmU+ABHZIHG9H6v2a+ZBVvReK7t8d5FoS7zKefO71v0Q YKcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=MQzne7vt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 69-v6si1708230plb.573.2018.02.07.14.25.18; Wed, 07 Feb 2018 14:25:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=MQzne7vt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751835AbeBGWYb (ORCPT + 99 others); Wed, 7 Feb 2018 17:24:31 -0500 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:36063 "EHLO out2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750736AbeBGWYa (ORCPT ); Wed, 7 Feb 2018 17:24:30 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id C208120D53; Wed, 7 Feb 2018 17:24:29 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Wed, 07 Feb 2018 17:24:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=mYU1ORIxNhUtmPSl6aN6iICkQzRVU9RcuMs2GAjXlD8=; b=MQzne7vt dqOwVZEljoVuqZvdshC1PcT0Z1PY800hDOXP0Wqdy4U87XR80au1qxCzbB/gKaXG aP9LORxj8P7ubaLLRSUFA6QnlKJWRJOP+VKfVOpi7WJXsXMyHhon0AI25KFK/gKJ liKQdMx5+M0+JZjkO7YSDeIrogzz9R97WCCa5lHftsvorIY/Z96esSBTy+z0fayD DZEKA4rMO0JgzawScF1XU4ZrW+kossFfQoqhS4ZLUc9dYBQDQAnTY9YRWip2ErOQ uKbTEss9+5EPW1w+zYYnA6qw1xwVm/Mn8vSLnjWr62vc9XA41UAIcKWsCWnXNDvB 175cL2qsKrAO7A== X-ME-Sender: Received: from localhost (unknown [109.236.90.209]) by mail.messagingengine.com (Postfix) with ESMTPA id 5565F7E2E5; Wed, 7 Feb 2018 17:24:28 -0500 (EST) From: Simon Gaiser To: xen-devel@lists.xenproject.org Cc: Simon Gaiser , Boris Ostrovsky , Juergen Gross , linux-kernel@vger.kernel.org Subject: [PATCH 2/2] xen: xenbus: WARN_ON XS_TRANSACTION_{START,END} misuse Date: Wed, 7 Feb 2018 23:22:36 +0100 Message-Id: <20180207222236.7434-2-simon@invisiblethingslab.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180207222236.7434-1-simon@invisiblethingslab.com> References: <20180207222236.7434-1-simon@invisiblethingslab.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As the previous commit shows it's quite easy to confuse the transaction reference counting by ending a transaction twice. So at least try to detect and report it. Signed-off-by: Simon Gaiser --- drivers/xen/xenbus/xenbus_xs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c index 3e59590c7254..aed954b09b9b 100644 --- a/drivers/xen/xenbus/xenbus_xs.c +++ b/drivers/xen/xenbus/xenbus_xs.c @@ -137,11 +137,20 @@ static uint32_t xs_request_enter(struct xb_req_data *req) void xs_request_exit(struct xb_req_data *req) { + unsigned int users_old; + spin_lock(&xs_state_lock); + users_old = xs_state_users; xs_state_users--; if ((req->type == XS_TRANSACTION_START && req->msg.type == XS_ERROR) || req->type == XS_TRANSACTION_END) xs_state_users--; + if (WARN_ON(xs_state_users > users_old)) + /* + * Someone misused XS_TRANSACTION_{START,END}. Reset the + * reference counter so we might survive. + */ + xs_state_users = 0; spin_unlock(&xs_state_lock); if (xs_suspend_active && !xs_state_users) -- 2.15.1