Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp180781pxb; Mon, 13 Sep 2021 16:24:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxxTn/kJmZjEoTiBRD4d3g+2c5nCAjYGQmlUdkaQfjApHld6ZYjuPM/jpzf5btxV6v8YQlY X-Received: by 2002:a05:6402:1116:: with SMTP id u22mr15962962edv.262.1631575466011; Mon, 13 Sep 2021 16:24:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631575466; cv=none; d=google.com; s=arc-20160816; b=H6xRK1H1vlybfx/X56TvKrazmUSXtv9YzyeL68K9HxsRaJOq0pVWzAc+fubwLHK6pf niD6NK5RsyEv/Qu4YTlmBCiaPMIJsduKgkuzrTEY7ettnQlLS2VaaiofbVj1nzdCxGsI 5gR828zL2oGX85MSfFMXcl4bmJaqDlCb/Xz/cURpt0GEjzsnX5hDub61FyftOXCK4IRF v8KNVXV6lorzojvtAHspsDO3BWfnBOPjmoIiMLQpAeOCduEFASbdAGvv2AShoRMHmsjd KKpkAGGzmQ2N5OMEHY35KLGJHsCicGw59V1+o9I0KocSYU9k4ar/xyj6O80MdpnUXytl tlkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GrS58kUp4tM98ZDvn5p1ti0Zmen+e2NgqTp2Y9DptHQ=; b=DxBXZqU/2FlOn/zNvDKu6FmRvYpgtATvTjBAtmXi2qXGfepEczxyI9vPpTiaXkm00G iFpxQMQhS2iLQUGjDh64XL5RiFoPsjlqFS9weOruIzU0a7mYBRC148UW/bMXCIMMeCXJ AG6Ut30A+yczWe00d+dnNJnL6BxBvrGBkVi4Pe3gqO8JcXZGUhoAlQL6Tdc7OyUEgVS7 oa4tRRg/HQf+x08RN3LUQIDnL0e0aAum6i0i/Wl4Xt38lRzyKl+9J2vwV09GwyYB6M6A KVSkdxekKTq17jupOeNChpI5xukK0DyPUxDK0WGfMzK0nS+wp1957LDxQKvLlUTeerrg 68uA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Mkq77YQC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j18si8188900edj.436.2021.09.13.16.24.02; Mon, 13 Sep 2021 16:24:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Mkq77YQC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345445AbhIMOtA (ORCPT + 99 others); Mon, 13 Sep 2021 10:49:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:60498 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345656AbhIMOoL (ORCPT ); Mon, 13 Sep 2021 10:44:11 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A166D6197A; Mon, 13 Sep 2021 13:57:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631541451; bh=E06wNBVbgXrk6fcNCYy3JSYoTP/BLRNj1KcnM5hMNzw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mkq77YQCknazCkWgYxsYbKrE6KlEe9YvcJFEHzaNnvEPq2jjiDLPzNODKDw1swZSD LmZ1LajbpjSZb6R2FCvQnKu54vLtXMmRap1rFrgPZoNmj/ZqDaQ/J5+i9YW6Etdqw6 qgaFuYq5BxDYusvez3mRqYQ9/yu5R5a5afQy5qig= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jacob Keller , Gurucharan G , Tony Nguyen , Sasha Levin Subject: [PATCH 5.14 275/334] ice: add lock around Tx timestamp tracker flush Date: Mon, 13 Sep 2021 15:15:29 +0200 Message-Id: <20210913131122.723500884@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131113.390368911@linuxfoundation.org> References: <20210913131113.390368911@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jacob Keller [ Upstream commit 4dd0d5c33c3ebf24a07cae6141648aeb7ba56072 ] The driver didn't take the lock while flushing the Tx tracker, which could cause a race where one thread is trying to read timestamps out while another thread is trying to read the tracker to check the timestamps. Avoid this by ensuring that flushing is locked against read accesses. Fixes: ea9b847cda64 ("ice: enable transmit timestamps for E810 devices") Signed-off-by: Jacob Keller Tested-by: Gurucharan G Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/ice/ice_ptp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c index f54148fb0e21..8970037177fe 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c @@ -1278,6 +1278,8 @@ ice_ptp_flush_tx_tracker(struct ice_pf *pf, struct ice_ptp_tx *tx) { u8 idx; + spin_lock(&tx->lock); + for (idx = 0; idx < tx->len; idx++) { u8 phy_idx = idx + tx->quad_offset; @@ -1290,6 +1292,8 @@ ice_ptp_flush_tx_tracker(struct ice_pf *pf, struct ice_ptp_tx *tx) tx->tstamps[idx].skb = NULL; } } + + spin_unlock(&tx->lock); } /** -- 2.30.2