From patchwork Wed May 28 08:57:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qingfang Deng X-Patchwork-Id: 4266 Return-Path: Delivered-To: patchwork@openvpn.net Received: by 2002:a05:7000:ea43:b0:667:60b:5921 with SMTP id ou3csp553815mab; Wed, 28 May 2025 01:57:36 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWGmqPJ7HWO+FX2nLRkn649g9HMqRBpIMPksBxEFwf2EviFwGVwfNIumWwznbV8+HmZOeqcPViH8/U=@openvpn.net X-Google-Smtp-Source: AGHT+IFbPrUJ7mpx+lzyYZZ5k7PYpBmQ/GdbM4JbydP/2Ojf4VQ60Y/qM/XEGASRNzNV3jGK590g X-Received: by 2002:a05:6830:64ca:b0:72a:1d2a:4acf with SMTP id 46e09a7af769-7355d151befmr9116005a34.17.1748422656557; Wed, 28 May 2025 01:57:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748422656; cv=none; d=google.com; s=arc-20240605; b=c+88DEhgWG9n0gJDh2Z8Cf/WTgP1FxCLlT6xGmVtzV4NrKrUiFqSwX1H0KGTAlkxa0 QsnzQ7RW3t/Fwr2CubZONXOsr6o0ELeX6aZuv18q3myQV6WUy5xZsDSvNi26VljfJAD9 X8Quk8NDVfDd0PFAIzurpf4JQsyH1rfI/LTRxMB7gtfVgZiBqiuGuYZKAh2BuE14X/DY Z/nQ1A6nTNvLwOt4voKMVykA+vKMM6eZ5I+mtXFZWNlZXyX8NnR1lLO5JeIqEj9VrDl0 tXFbLGa9BUo62HmKoEtm7wOVWgM4pL/zauCSJM4DUf9/a6EWnFndYV68QTqlwJCGmsTY LtRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=errors-to:content-transfer-encoding:cc:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:message-id:date:to:from:dkim-signature:dkim-signature :dkim-signature:dkim-signature; bh=p4Lg4jaj7Jp9CKjQOl8TaYEeWyG7DKP0Q6ZlZox+MfA=; fh=BsMg/B0Yb/hS/rzP5Npz4luh0IleZm8REk1XWiWRt2A=; b=KlFauEXbIawH3rDJpDcQcm0sSUqeKydfWxllspVczsfvu9H9nznqfIcGkIkel08jc1 KKjzd8dVBrCN6rdY82DSXmkaOO7KwmSRu437hGgu5OcIrwGV5Um+cYxOZCIFkehsIggs yf7t9TbgjS9x7/mXNtn2H6GzRor93c7JZ5Mp3jm3bkC4C6ls9gW6ozU6G/WNgQ8P1lCo GqLpgAE0KAp20N1CejK6YjhJFhtVyQfIo0v2dZlUt5Y5M801y0AV9CCrsW1njG/Ep3gT RkeGN+FnRMcr0hSUuXlmNazq3EwVgbfJy9EpJdh9Craq7TwgmaMemWe3icy4HVm6r6XP 0TaA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.sourceforge.net header.s=beta header.b=Mvq8IDkD; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=OjSAllmS; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=C9UKvafP; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=KBRSseip; spf=pass (google.com: domain of openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@openvpn.net Received: from lists.sourceforge.net (lists.sourceforge.net. [216.105.38.7]) by mx.google.com with ESMTPS id 46e09a7af769-735a49d5db1si206104a34.198.2025.05.28.01.57.36 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 May 2025 01:57:36 -0700 (PDT) Received-SPF: pass (google.com: domain of openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as permitted sender) client-ip=216.105.38.7; Authentication-Results: mx.google.com; dkim=pass header.i=@lists.sourceforge.net header.s=beta header.b=Mvq8IDkD; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=OjSAllmS; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=C9UKvafP; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=KBRSseip; spf=pass (google.com: domain of openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@openvpn.net DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: Subject:MIME-Version:Message-ID:Date:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=p4Lg4jaj7Jp9CKjQOl8TaYEeWyG7DKP0Q6ZlZox+MfA=; b=Mvq8IDkDXjYEvwGyTxatPDtM2f aet784X2iRlHpNGyQnMdngVmaxLbVPgrwMYqxIXMR0fDONALPTkyYYlPP829T4glUUDlkrEGB+UaP KnNDxd6a8PearW2B6X0v9jyZ8n6aCm4vPjmHRjpSh0vdqmPFkq4RXCCR0DlLVtnWET7w=; Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1uKCbJ-00033V-LV; Wed, 28 May 2025 08:57:29 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1uKCbI-00033P-5W for openvpn-devel@lists.sourceforge.net; Wed, 28 May 2025 08:57:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=I68TepidN5h2CgOZusjcMZy35PnEMDyJrLs9SfIxxz0=; b=OjSAllmS2TqC4f42fbqAeXSGW6 Vksxp4SGLa5gojOlXh0LHHVxlD9eN/1Da62uqrvggqSUKskb3jdYyf7ecscGTfZSwEDHsXi1aJhXk qq8nffJtlaoNzjPeBfUbL7rb3ym9ge1U+yJOIrCRbEFZVyUYKWsYv3sttQkWTSs/m9TI=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From :Sender:Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post: List-Owner:List-Archive; bh=I68TepidN5h2CgOZusjcMZy35PnEMDyJrLs9SfIxxz0=; b=C 9UKvafPwSq67elkrCibU6WI2vhi/+EFc6fmL4/gvadQ+O4sLzcIqNQEzDeNf7cO0rP2tMWFHBc9mf NQYrebty7Xufnqvv8qY5LmNwg+pI00e18lCGM51an5x2dZ5x2BVWYwpX/prY8+TPCUnT1YrJxiERk 8EHSAQ8MKGla4bc8=; Received: from mail-pf1-f174.google.com ([209.85.210.174]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.95) id 1uKCbI-0004Sl-23 for openvpn-devel@lists.sourceforge.net; Wed, 28 May 2025 08:57:28 +0000 Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-742c73f82dfso3247334b3a.2 for ; Wed, 28 May 2025 01:57:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748422642; x=1749027442; darn=lists.sourceforge.net; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=I68TepidN5h2CgOZusjcMZy35PnEMDyJrLs9SfIxxz0=; b=KBRSseipCaKqG2iBo0Pp8ukM10zCQjHbAZ5evlsaqF0QXhdZ5VDOUewdyiAdj7KTfd xTjTy8SFlQpiFMCYDYSRSl8nGRmdYrthHE8zQyffJtT/FRqZcf4KFUyZKoWBNLgs1jxj O5rS8AhQ0eZHymsLBsH+ikYhh/89bITeUoqjf3Lj9oONblBs46rvGNqsEiFFiKLdUEgZ uFdTqg5nunvaJJpUGAGztR+60MVx85apGc5J3kZMdJ8fpOCfggeGqFmOp3oXphBGg/23 o0h0G7aGAuakkboHicZYV+/4+/B4OVpLwUtqCkiURzMtA/yVltz7cDjoE+1n24mk5d3g QCLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748422642; x=1749027442; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=I68TepidN5h2CgOZusjcMZy35PnEMDyJrLs9SfIxxz0=; b=PboItRT1Cx/5PnMIH6xX38feg1c2AS7Z3ZGj4i1YsDDAUYjhuftLk2sG4T/Zul/SPz gDOII0Ay5AHVa//+0Jn6Gspj0OJOgdp9+L5BdbQhGlqK5oL9oMiG+D6wrub81uPsrcoK i93l8q58eDXIDVoNfF638enq085uYIlvy+CKqhZIzzmVkj/BInMhTCYu4VH46iDm0n1z 9Vh68i4uSRPuiHXC1b0m4hhQsJoYJ37x+B4sLA4PV25OPmhoWhdmDBZzca5t9Jwto7+D w3KW2TtjsJWohecWYv0o0mjgKLEi7RGsHWxFfHI9JVrztFPkAngl6uGQZXEwdUEI7Cy2 IOYA== X-Gm-Message-State: AOJu0YwIBz5joON4rNYAZxXsXBFsGflTd5082/bDGqUk4r3L5LOL3DWT aRT1Y8U4vQW9KXcTYdGkC1NjzLxNj0sGradWmu/5osooAPRxQnFu5173o1Vx5M7YGkQ= X-Gm-Gg: ASbGncv9oS6c5GDoXls4I+mubRowcYufzUPSxs08ZA3HHcPQ4do22VYMQu8QYKRHLJI 2qPZwQ4YWgSlYC5uH+pclSURFGM2YToAdFe9cFO7r+7qvo1xfFUQouCre0+urpBYd8vFbw8D8kH 17OI+2lx6fjOIjy8yaJEboiIgo9L0xqg/CJ+tATMqNlFHUzN3NhqlYsHrxFOX8xGdZnfG7M9Se6 S7YjcgYKH2cly2o/hUf3qLuzSWhq12bAKP0DWOXhnhlUlIYRW7HSYBF+OCpgRGEVMxamBlMBIuG TMVfS/69abtV7qZqfFZIOaJAtRTHTf65vvAz4JiqnGGd X-Received: by 2002:a05:6a20:3d95:b0:215:e818:9fe3 with SMTP id adf61e73a8af0-2188c374024mr25048091637.27.1748422642149; Wed, 28 May 2025 01:57:22 -0700 (PDT) Received: from gmail.com ([116.237.135.88]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b2d9872dbecsm728897a12.2.2025.05.28.01.57.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 May 2025 01:57:21 -0700 (PDT) From: Qingfang Deng To: openvpn-devel@lists.sourceforge.net Date: Wed, 28 May 2025 16:57:08 +0800 Message-ID: <20250528085717.2964351-1-dqfext@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Headers-End: 1uKCbI-0004Sl-23 Subject: [Openvpn-devel] [PATCH ovpn-net-next] ovpn: pktid: use bitops.h API X-BeenThere: openvpn-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Antonio Quartulli Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox X-GMAIL-THRID: =?utf-8?q?1833354035369507601?= X-GMAIL-MSGID: =?utf-8?q?1833354035369507601?= Use bitops.h for replay window to simplify code. Signed-off-by: Qingfang Deng --- 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 */