From patchwork Sun Aug 12 06:26:31 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denis Efremov X-Patchwork-Id: 176773 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4E7DF2C0083 for ; Sun, 12 Aug 2012 16:24:03 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751173Ab2HLGXT (ORCPT ); Sun, 12 Aug 2012 02:23:19 -0400 Received: from mail-lb0-f174.google.com ([209.85.217.174]:61157 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750889Ab2HLGXS (ORCPT ); Sun, 12 Aug 2012 02:23:18 -0400 Received: by lbbgj3 with SMTP id gj3so851905lbb.19 for ; Sat, 11 Aug 2012 23:23:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=N0xg+/+gee5M6t8qnZndbdCBImJjR/wBAHGPYbnwo3o=; b=XHTsRbbJxHfitFgx3lBgOeQ2CasgVFUx+zYAn5NPt2gmsX/PHnYyL4xLJojiYqTs3S 6pY0kBkHbuiLPfDFG7VZJAATRl/goGPhC1sqaCQ37q1qjghiZq1/SvF4ph3jhmZG2I7t fR3eE0CcBB159nNQ+ebTiRcvHikZU036OO12L/U0vt1y9JLz29poE/2pFRrEvb7YzEmM I+CLgJbkk14jqmTs4WyJ0RJcVfgBrBwWscdPHNvustj5LFBtmhuKorpiXgNSEFTLL3LA qj/k+jgwPbuSJns9wV9bwjsTxmvo4ETfor2zMC2Rd912hBpMtHmHsaeWKyMyBmP/p9UT +0PA== Received: by 10.112.11.38 with SMTP id n6mr4449192lbb.82.1344752596536; Sat, 11 Aug 2012 23:23:16 -0700 (PDT) Received: from localhost.localdomain (37-144-21-94.broadband.corbina.ru. [37.144.21.94]) by mx.google.com with ESMTPS id hz16sm3686655lab.6.2012.08.11.23.23.15 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 11 Aug 2012 23:23:16 -0700 (PDT) From: Denis Efremov To: "David S. Miller" Cc: Denis Efremov , "Michael S. Tsirkin" , Jason Wang , "Eric W. Biederman" , Ian Campbell , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, ldv-project@ispras.ru Subject: [PATCH v2] macvtap: rcu_dereference outside read-lock section Date: Sun, 12 Aug 2012 10:26:31 +0400 Message-Id: <1344752791-21140-1-git-send-email-yefremov.denis@gmail.com> X-Mailer: git-send-email 1.7.7 In-Reply-To: <20120811.181642.1587792778007257202.davem@davemloft.net> References: <20120811.181642.1587792778007257202.davem@davemloft.net> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org rcu_dereference occurs in update section. Replacement by rcu_dereference_protected in order to prevent lockdep complaint. Found by Linux Driver Verification project (linuxtesting.org) Signed-off-by: Denis Efremov Acked-by: Michael S. Tsirkin --- drivers/net/macvtap.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c index 0737bd4..0f0f9ce 100644 --- a/drivers/net/macvtap.c +++ b/drivers/net/macvtap.c @@ -94,7 +94,8 @@ static int get_slot(struct macvlan_dev *vlan, struct macvtap_queue *q) int i; for (i = 0; i < MAX_MACVTAP_QUEUES; i++) { - if (rcu_dereference(vlan->taps[i]) == q) + if (rcu_dereference_protected(vlan->taps[i], + lockdep_is_held(&macvtap_lock)) == q) return i; }