From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C25221D5AF for ; Fri, 21 Nov 2025 00:20:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763684461; cv=none; b=j+A9mgujupazt3vgzOP7ff7DM7GBiJ/O/10XC7qKt5aUCXiESk9MLbMTujOfXZoltZF0+I2LBgTjMw2an+G9tJJQMV4Yq48CoK7MWvdcgq5jhJXFiCCc+XPQ6oNqw76HyUybWSJFdDiB/o0dGtynK/DbwEEyiBFkE4AkxPsJzOQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763684461; c=relaxed/simple; bh=SQr5tFLgyqdFgaxXIQiGqdGYtlI91c8reoAvg3ay9iM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=djNCmcK759rxHIvqIBgJGHJ8OrjocmIv5bB/cPKFkwqF+pJy6JqABqZMYfG8h2ES2Ojj6YsnX27ImZ6r26fB8cY7JhO84JnggDHxSZWD7PjdnmI5qQxyKbpn/RPWQYxNyUG+h/aAennO+tIjRVlfJq3zifRwUmnkmHrbuHneTug= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=openvpn.net; spf=pass smtp.mailfrom=openvpn.com; dkim=pass (2048-bit key) header.d=openvpn.net header.i=@openvpn.net header.b=Lq2B9E49; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=openvpn.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=openvpn.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=openvpn.net header.i=@openvpn.net header.b="Lq2B9E49" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-477aa218f20so9585855e9.0 for ; Thu, 20 Nov 2025 16:20:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvpn.net; s=google; t=1763684457; x=1764289257; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KCT//YQTHijb5eKzD95V+Wg1fIosKBqiDeTxZ+jvvds=; b=Lq2B9E49f4J2XRPgbpxLkRBJRQZr5aTy0TOAcRPtpYy43upxciaRFVQNS5ChDGGibd XtYWDJkWWg+nOWqT0HKAz7ORZoWt0dP3D7M5MwIkTaqE0SzQxihkiVcxzh6+UMX6yUxp Slb2qLOXwEG8Z7J0N/1tMX2ggufbKgDBaRo9aDOd0iXz9GBle8mPjOtmsSzbzrkba+TB NLrWuK0nLu0zTUXNg479hAkvI4tpGZq5YwVaUsmsBCJA6vjJ6tMqzdAD/P48PlO/Rm/J mHnbMfgAhlZ4Flhp3fqBR0AFRTAGJHY9fqgzrBoYUYaswLB9M/+340xtHz3f2pez54D+ 1Fzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763684457; x=1764289257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KCT//YQTHijb5eKzD95V+Wg1fIosKBqiDeTxZ+jvvds=; b=hoEoeZwnZJ9dW27y2e1++WVO7awtMOwMGPbRZt4yM7YahZbViVmVRsYLYt9ZvZZHP9 bxnaLeDiLr0LnZSoUmT8CAhSkDNOD0bFlzekrc4n2sxNN+CBRFw1okiGvi+bHNxO8YXB 4I7jQDUKUU6h+Ryz7sRjhSsugjl4+vhIvEYAkmtJwyVkjx6zXWrsLtGyJ06pZPJBBDYZ 9Z25DoQnU1SxVvT9R2XaNR0nt4dKDi3+F6+BzISRABCUJCtSe4r/UJDHeWpTPzpj0Rkm IfjjgPKPzl0DYtLValJFS4EpDMfbRM46N4OXrajZsuwFNs8a8F8MESR1Eg77NXvffQbB 2dCA== X-Gm-Message-State: AOJu0Yzloc05LYqd4gCac0BfNTDIiT0rkfqAT4RPT9CTxwAjB3thWTB9 6buoTZ4XHpBQ0FW7q2R3fbtQfliceWiq+1973wFhWT/MneM/X5K0hQdJcQ1+kWdhldIoA9R/RHu nZw+S5fwInGC0UdrxbgLH5o2Yj6Kha4vDrVIt1+7pQztHwW0KzpctzksX9zCC89pCJjE= X-Gm-Gg: ASbGnctcbabCGX4d9DnHao2LWUoNk6xnIHfYVcYY3kvSN0A9CS4HFQu12F6B381INUB h+y8nCL7nfmnQHHhODYp+5LYH8Lievp5lA/LI51vTjClv6Z1SDJgCacG9eHa88DSR9G6m1Rz3Fx JwW8Ma3PI568FNL5uqW1gvoCM4vWDzC4QYvXARIL83v4PTAq7HvC9fk6JruOTKk/Ptmhf/mnFAm J3fnD/WIAhwyloBkjC8FVyWwz/BwUahm2tSJCGv1D3JV8+wmN6YaKKddaR2q6TJuEkOXAXKuP7c kjqmJzpEozIgmG7vV3+Yz5vRMAG818OCTO/sdJup5YNUZdeLR8oFP6jX/3K93CmJuwIvvcPKWhd QfRz8QTQrjOMQcY5QgG29o83j1wXSXwA64MDZ0W9Fuqr741GOHaqw5j5UiqlXvYo0yAsdKS8hph /2h+FAsKYUxBVIix+NXqwEQDbu X-Google-Smtp-Source: AGHT+IFceabA3ARZ0Jtb9z2iRinnBTkuBeaNhsd5xXlRe9ahmVdyJGhXpvKNah8DEV9Au5W5PDvrRw== X-Received: by 2002:a05:600c:450f:b0:46d:ba6d:65bb with SMTP id 5b1f17b1804b1-477c01eb9bdmr4160915e9.31.1763684457291; Thu, 20 Nov 2025 16:20:57 -0800 (PST) Received: from inifinity.mandelbit.com ([2001:67c:2fbc:1:85ee:9871:b95c:24cf]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-477bf226bf7sm15287345e9.11.2025.11.20.16.20.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 16:20:56 -0800 (PST) From: Antonio Quartulli To: netdev@vger.kernel.org Cc: Qingfang Deng , Sabrina Dubroca , Jakub Kicinski , Ralf Lici , linux-kselftest@vger.kernel.org, Shuah Khan , Antonio Quartulli Subject: [RFC net-next 04/13] ovpn: pktid: use bitops.h API Date: Fri, 21 Nov 2025 01:20:35 +0100 Message-ID: <20251121002044.16071-5-antonio@openvpn.net> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251121002044.16071-1-antonio@openvpn.net> References: <20251121002044.16071-1-antonio@openvpn.net> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Qingfang Deng Use bitops.h for replay window to simplify code. Reviewed-by: Sabrina Dubroca Signed-off-by: Qingfang Deng [antonio@openvpn.net: extended commit message] Signed-off-by: Antonio Quartulli --- drivers/net/ovpn/pktid.c | 11 ++++------- drivers/net/ovpn/pktid.h | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/net/ovpn/pktid.c b/drivers/net/ovpn/pktid.c index 2f29049897e3..f1c243b84463 100644 --- a/drivers/net/ovpn/pktid.c +++ b/drivers/net/ovpn/pktid.c @@ -65,7 +65,7 @@ int ovpn_pktid_recv(struct ovpn_pktid_recv *pr, u32 pkt_id, u32 pkt_time) if (likely(pkt_id == pr->id + 1)) { /* well-formed ID sequence (incremented by 1) */ pr->base = REPLAY_INDEX(pr->base, -1); - pr->history[pr->base / 8] |= (1 << (pr->base % 8)); + __set_bit(pr->base, pr->history); if (pr->extent < REPLAY_WINDOW_SIZE) ++pr->extent; pr->id = pkt_id; @@ -77,14 +77,14 @@ int ovpn_pktid_recv(struct ovpn_pktid_recv *pr, u32 pkt_id, u32 pkt_time) unsigned int i; pr->base = REPLAY_INDEX(pr->base, -delta); - pr->history[pr->base / 8] |= (1 << (pr->base % 8)); + __set_bit(pr->base, pr->history); pr->extent += delta; if (pr->extent > REPLAY_WINDOW_SIZE) pr->extent = REPLAY_WINDOW_SIZE; for (i = 1; i < delta; ++i) { unsigned int newb = REPLAY_INDEX(pr->base, i); - pr->history[newb / 8] &= ~BIT(newb % 8); + __clear_bit(newb, pr->history); } } else { pr->base = 0; @@ -103,14 +103,11 @@ int ovpn_pktid_recv(struct ovpn_pktid_recv *pr, u32 pkt_id, u32 pkt_time) if (pkt_id > pr->id_floor) { const unsigned int ri = REPLAY_INDEX(pr->base, delta); - u8 *p = &pr->history[ri / 8]; - const u8 mask = (1 << (ri % 8)); - if (*p & mask) { + if (__test_and_set_bit(ri, pr->history)) { ret = -EINVAL; goto out; } - *p |= mask; } else { ret = -EINVAL; goto out; diff --git a/drivers/net/ovpn/pktid.h b/drivers/net/ovpn/pktid.h index 0262d026d15e..21845f353bc8 100644 --- a/drivers/net/ovpn/pktid.h +++ b/drivers/net/ovpn/pktid.h @@ -34,7 +34,7 @@ struct ovpn_pktid_xmit { */ struct ovpn_pktid_recv { /* "sliding window" bitmask of recent packet IDs received */ - u8 history[REPLAY_WINDOW_BYTES]; + DECLARE_BITMAP(history, REPLAY_WINDOW_SIZE); /* bit position of deque base in history */ unsigned int base; /* extent (in bits) of deque in history */ -- 2.51.2