From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) (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 667D5186E54 for ; Wed, 8 Jan 2025 03:00:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736305213; cv=none; b=kyPf2oeGLPLKy1rUemsgP3dHdoKcKo4ijs9oniU1r05pp7gYUeh5p+QbCdSMsqGptjkSq5vPWJFkBgJygZ5qKRPSQAnHqn9JEJKaDDMUei2kS8L+srft4GdDYgolq6jXYK8FeOmFIy1gzIU8X6UfbQOql+axsUKP7+j9HxMl2Ts= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736305213; c=relaxed/simple; bh=0VG17PRuHlW3P5YOhYh3yyxpCMq13IluxgCP9Xm0xDs=; h=Date:Message-ID:MIME-Version:Content-Type:From:To:Cc:Subject: References:In-Reply-To; b=SU/jAyV5QSZQrLFLosVHUgENqp0/2TOEopARwax6RfG+2DFqmPFp10UCeBOnMpxIbkQ415onWAZA4G380YQyTeOH9jVszT7cjwDBADQcMBel6ukuSleCPYKosT8U4MWg7F4FagirfjNtouAf8n+dRmxdNUx/JP1IcVVjncvGBZk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=paul-moore.com; spf=pass smtp.mailfrom=paul-moore.com; dkim=pass (2048-bit key) header.d=paul-moore.com header.i=@paul-moore.com header.b=SkhrdvN+; arc=none smtp.client-ip=209.85.160.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=paul-moore.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=paul-moore.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=paul-moore.com header.i=@paul-moore.com header.b="SkhrdvN+" Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-46901d01355so145006721cf.0 for ; Tue, 07 Jan 2025 19:00:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paul-moore.com; s=google; t=1736305209; x=1736910009; darn=vger.kernel.org; h=in-reply-to:references:subject:cc:to:from:content-transfer-encoding :mime-version:message-id:date:from:to:cc:subject:date:message-id :reply-to; bh=bbS3FaNV2ZChC2KdX4lKqZIM1KAT1GNHxbb4N/ECpgI=; b=SkhrdvN+J8JTENVLfmuIS1xDu2VFq8eMaxD7b9h0T97d6sfo5RQQzbrmYQ55oCFSXN +icLff8wAyT5so7oaWjos3/jAemR0dp9yR5RGwJVCi2/0F0p3ESU8ID2NBhZf8xWKTgB F3AbtBU4ZLAkqGBVv4l8FSJSgfSzmnTMTwwb/Cnyhf5izNQPptqsIS63nx3crSyALZT3 +351j9AlX4dBN9MsMUq5APdtSiYgWs7KTzVjDkD/+26hV1j1Hu6T8YcBm4qPAjwkl6K9 dsTcAd+QND4Wh2q0myZI8qfSf0Xm3MHlj6w32uo7ZVM7mbBeDmjdQqGZK/2JMzYJB4Zg QY7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736305209; x=1736910009; h=in-reply-to:references:subject:cc:to:from:content-transfer-encoding :mime-version:message-id:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=bbS3FaNV2ZChC2KdX4lKqZIM1KAT1GNHxbb4N/ECpgI=; b=HbaSH43BTGb/MT/yPBRbQu+gJ0CaUUGy54/2fK3ZA7F7sU4tgSzXEV8QNcTDQup2ug VUIpIzaEQ29w+fktfHHqUpwhRcYYKVTANNvqvqPZY0mHf+rNxQnLaKs+6Wm9nGguqSsI IgZyi6Wpn+C6aZSB04a+/lOjEQlYK9rx/CZEmFvA3vqdc5bi85kJYkvAl7xxqG/6cvFV B+Mfgg4LDOI5046EYhy/fpjpNiYRvZFmtEF5od5nv8dElUZF8rJdsfZWDLYbEtUZnNZ+ SGV9EHOEurQPRFY/zELtdXnKAi3PIne/sbOR8XIjKqevs8COSADQUltAihMr3Jmk6KM9 Sqcg== X-Forwarded-Encrypted: i=1; AJvYcCXg9Sd+xNaioYVnAeuUSI52+T3fvbuttWfgF80XYOK/A72sykL8Fw/14G1P/nepdPgu56+8hlja1ioY5jk=@vger.kernel.org X-Gm-Message-State: AOJu0YyTp4632oqh76UXJZ38EXy+HzdP8gmhvZuXaR53RTs9e9wYfqV4 YFYtfGL0YANdqjPIaEwCE+QYauwQJKtWkt4uFQwbNVeEyR/mUS11puSfA0l6pA== X-Gm-Gg: ASbGncsV9SfpkLAMnH3JUOTtnoWowhgW8FS8arxFRE298FmCT0fRjXkgyE7Fs5jdHbL TpVjeB7Ft5QSH6rwPoYeQk4NZYMVrMWqTxmhbuRA4zUNwGvgdxNgNRnAt7fffYi2bIe39OVJeiY hkJEHUCDvw8zeuk5F+LFT30jknumInX5Nd40rY7f2HoN/T18PprVxRdFXMc++zqkYRrp/Q0pUNC iCvEpzEBcSq+E1dRA+B5yaaAa7JJEXy7m91ZHUWd6sPSDcOvyY= X-Google-Smtp-Source: AGHT+IGlvlEtC2oSxSG/w2tS74y+OnJ6UIskVvDabz5llHEY9yRt3+4BKZSyuRVj3w8/8HU/CBRy6w== X-Received: by 2002:a05:6214:20ce:b0:6dd:d24:3072 with SMTP id 6a1803df08f44-6df9b1f453fmr22476186d6.3.1736305209150; Tue, 07 Jan 2025 19:00:09 -0800 (PST) Received: from localhost ([70.22.175.108]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6dd18110450sm187110216d6.44.2025.01.07.19.00.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2025 19:00:08 -0800 (PST) Date: Tue, 07 Jan 2025 22:00:08 -0500 Message-ID: <00d497cd0162f3033c8c7aa57daf4630@paul-moore.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailer: pstg-pwork:20250107_1610/pstg-lib:20250107_1603/pstg-pwork:20250107_1610 From: Paul Moore To: =?UTF-8?q?Christian=20G=C3=B6ttsche?= , selinux@vger.kernel.org Cc: =?UTF-8?q?Christian=20G=C3=B6ttsche?= , Stephen Smalley , Ondrej Mosnacek , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= , =?UTF-8?q?Bram=20Bonn=C3=A9?= , Masahiro Yamada , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Eric Suen , Canfeng Guo Subject: Re: [PATCH RFC v2 15/22] selinux: introduce ebitmap_highest_set_bit() References: <20241216164055.96267-15-cgoettsche@seltendoof.de> In-Reply-To: <20241216164055.96267-15-cgoettsche@seltendoof.de> On Dec 16, 2024 =?UTF-8?q?Christian=20G=C3=B6ttsche?= wrote: > > Introduce an ebitmap function to calculate the highest set bit. > > Signed-off-by: Christian Göttsche > --- > security/selinux/ss/ebitmap.c | 27 +++++++++++++++++++++++++++ > security/selinux/ss/ebitmap.h | 1 + > 2 files changed, 28 insertions(+) > > diff --git a/security/selinux/ss/ebitmap.c b/security/selinux/ss/ebitmap.c > index 43bc19e21960..5d6b5b72b3e5 100644 > --- a/security/selinux/ss/ebitmap.c > +++ b/security/selinux/ss/ebitmap.c > @@ -257,6 +257,33 @@ int ebitmap_contains(const struct ebitmap *e1, const struct ebitmap *e2, > return 1; > } > > +u32 ebitmap_highest_set_bit(const struct ebitmap *e) > +{ > + const struct ebitmap_node *n; > + unsigned long unit; > + u32 pos = 0; > + > + n = e->node; > + if (!n) > + return 0; > + > + while (n->next) > + n = n->next; > + > + for (unsigned int i = EBITMAP_UNIT_NUMS; i > 0; i--) { > + unit = n->maps[i - 1]; > + if (unit == 0) > + continue; > + > + pos = (i - 1) * EBITMAP_UNIT_SIZE; > + while (unit >>= 1) > + pos++; > + break; > + } > + > + return n->startbit + pos; > +} Squash this patch with 16/22. We generally don't add code that isn't used, so squashing this with the caller in 16/22 ensures we have at least one caller. -- paul-moore.com