From nobody Sat Apr 11 12:10:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C344CECAAA1 for ; Fri, 28 Oct 2022 01:48:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235854AbiJ1Bst (ORCPT ); Thu, 27 Oct 2022 21:48:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235104AbiJ1Bsl (ORCPT ); Thu, 27 Oct 2022 21:48:41 -0400 Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com [IPv6:2607:f8b0:4864:20::830]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F2C9AC389 for ; Thu, 27 Oct 2022 18:48:40 -0700 (PDT) Received: by mail-qt1-x830.google.com with SMTP id f22so2714957qto.3 for ; Thu, 27 Oct 2022 18:48:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=RIvfGYehnMa6vIHYYKC8CbCIUzksWXHKOuTYYTC6QyE=; b=cyuxwjjEgSIb7u4uJQfNUyKZwsoP4ZsECrSTZJxHowpz5sUFI0h/S9O4Ph0F9CDeqb jutAHfg4no8JzCg10FjaZYUzxlwcHExfUskHnAe8C0w7obuj/p2pm3pSDTxAvFGxbqnu yrUJqXbZm9hDpwcQb1W1JzZmk3zmw4x7XFBRC9d8bO8zGC6mfQexAGA0isj9MTuor3AS wC832jU/H95L7x120ZV+eS974IF3w3XLlnolJJTP1FQNlW8uXw7hxVsbvvLLl/M+MElh 3BKaac7yFMqAgU0QL8o+e0VQfVU+VwYnlW+yOb94BwBtgSr0APLU8zLlCKn2MIhjNHr0 HpXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RIvfGYehnMa6vIHYYKC8CbCIUzksWXHKOuTYYTC6QyE=; b=bAj94sxcQQ1lBkysj08tZCUOAaHgO+xisM9eH9GkjNflYXGQvDq/vFMzhnSO3fJRe/ 39b94cigrUFxfRK1w7Ge9474rzGS2mpZeLfvf27l1CGHk7hFeIviJeWRu+ifrZxSAnfI c4MQL7TbUle4hDd45vsDyCvsITlEupWE8FttvA/GOg7ONnOvPW3pGJYpT9BWO3dvlQF+ yFVPRpdBcHhiVaSydxcGt/v2L9A6+kAOk0mYAKAANdzHBmY+p7AjACWwldOXIaYcSDCa QanwUsuJymMoN+11YaqyvrxY6qFx2co4ek5NjhRbZ+OR1fwlWFxnbNFaTj6w2bhJoLP5 H7Ig== X-Gm-Message-State: ACrzQf0OiPvodID+9flS0PKAMKzoa25QMIu9o9dLpk+8PCW7FxwXQSGh SYMyt8UpaYq1cnq/4yzMMyjCzvVqWNI= X-Google-Smtp-Source: AMsMyM6pvtfauL443znH2AFXFJIteBfX5dL1uOhAcoRBRHR9NFqJR6y16I1Tmis8U83AH3Vg7jHwpA== X-Received: by 2002:a05:622a:19a0:b0:39c:ba70:e475 with SMTP id u32-20020a05622a19a000b0039cba70e475mr43122367qtc.50.1666921719131; Thu, 27 Oct 2022 18:48:39 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id o8-20020ac841c8000000b0039cd508f1d3sm1704079qtm.75.2022.10.27.18.48.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:38 -0700 (PDT) From: Yury Norov To: linux-kernel@vger.kernel.org, Andy Shevchenko , Rasmus Villemoes , Yury Norov Subject: [PATCH 1/6] bitmap: add bitmap_empty_from() Date: Thu, 27 Oct 2022 18:48:29 -0700 Message-Id: <20221028014834.572819-2-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" New function checks if a bitmap is empty starting from a specific bit. In the following patch, it's used to replace _reg_op(REG_OP_ISFREE). Signed-off-by: Yury Norov --- include/linux/bitmap.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index 40e53a2ecc0d..f84553805c9c 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h @@ -49,6 +49,7 @@ struct device; * bitmap_intersects(src1, src2, nbits) Do *src1 and *src2 overlap? * bitmap_subset(src1, src2, nbits) Is *src1 a subset of *src2? * bitmap_empty(src, nbits) Are all bits zero in *src? + * bitmap_empty_from(src, start, nbits) Are all bits zero in *src = starting from @start? * bitmap_full(src, nbits) Are all bits set in *src? * bitmap_weight(src, nbits) Hamming Weight: number set= bits * bitmap_weight_and(src1, src2, nbits) Hamming Weight of and'ed b= itmap @@ -433,6 +434,16 @@ static __always_inline bool bitmap_full(const unsigned= long *src, unsigned int n return find_first_zero_bit(src, nbits) =3D=3D nbits; } =20 +static __always_inline +bool bitmap_empty_from(const unsigned long *src, unsigned int start, unsig= ned int nbits) +{ + if (small_const_nbits_off(nbits, start)) + return !(src[start/BITS_PER_LONG] & + GENMASK((nbits - 1) % BITS_PER_LONG, start % BITS_PER_LONG)); + + return find_next_bit(src, nbits, start) =3D=3D nbits; +} + static __always_inline unsigned int bitmap_weight(const unsigned long *src, unsigned int nbits) { --=20 2.34.1 From nobody Sat Apr 11 12:10:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E5C1FA3741 for ; Fri, 28 Oct 2022 01:48:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235953AbiJ1Bs4 (ORCPT ); Thu, 27 Oct 2022 21:48:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235168AbiJ1Bsl (ORCPT ); Thu, 27 Oct 2022 21:48:41 -0400 Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 664A1ACA11 for ; Thu, 27 Oct 2022 18:48:41 -0700 (PDT) Received: by mail-qt1-x82d.google.com with SMTP id c23so2706150qtw.8 for ; Thu, 27 Oct 2022 18:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=DS0XWl1Cbm55Pwimv/H351CT6M0z6e8AP3NS0QMe2jY=; b=TsU9DDtchGqKnMoyHMUxHjV8Qlh4o4T7gZdHTFyPH+yl+E+p47xyN0V/lIiPFRdBl+ oN6qGwSxIIXmY/I6PtOgLs36L/1jPOkA2GynFx5SsVGrZYTiRSZa1qUcgVyHWRFA9LGl EZd5rM3gJh5nDL7G8Deu2fk/gdniov82eR5Y8PMcW5dLx5HDLIinataviO0kiWJ8BFQv tHdjoZU5jGsWAj+Fxg4dM2wAQ2WP4oRXva2PJ/WK2wyrcc2dI02gKkdvop0x5SS83xzm yB9aG1fDftIlCeJRr8NaOol+Yaoi292QOp1QR8UtRt8bEnpqOopGVctWGsFzEd9Tx6l0 PtVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DS0XWl1Cbm55Pwimv/H351CT6M0z6e8AP3NS0QMe2jY=; b=R9zootEW0XO+SwuqyXMHtnExepni6g7iUBA0o2pDJle3Lv0UTeWrkLwh5muCbmO+pp wJGVk/qKTVh7gpHUQnSPUes3aDhQFkTsRksNo04FmiBR7ZKA0uSWgu9H/ocMvJaPf0D9 SUcmy3ZzspzqPI01NDtDuuPauTCuOiBQpJTJiUrjFg1rqOGOmY4M4GTazPtsx+IkbWHu iY3lAahg3KCBQrCwLvYyO57Z90lfkcsC9RuGpBx30woP47NpL6Ur4exvbE5KjY00GTPD WIjAOGvzJSYh4iT2sA1M/kLLqldih2OA1HeamsL5XGvX7YfQdG5jsHUXdm4EjM5oaL42 3xvA== X-Gm-Message-State: ACrzQf3BE08y/KztcIkPRw64kMiMP+3AV5Ydfa8Azmq3JwwyNErisi9b 0hv0TUw/hRNKwqLc2bZD4rpqE03YsRc= X-Google-Smtp-Source: AMsMyM5n1elT/uyQgKCOnJAQCDnsSwEcbNuVjB7+pR8vI0N++ilHTBvtroxtNfR/UcDcIqDKlOlNdg== X-Received: by 2002:ac8:5f53:0:b0:39c:e315:114d with SMTP id y19-20020ac85f53000000b0039ce315114dmr45159293qta.346.1666921720240; Thu, 27 Oct 2022 18:48:40 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id g23-20020ac84b77000000b003a4efd59754sm1724032qts.12.2022.10.27.18.48.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:39 -0700 (PDT) From: Yury Norov To: linux-kernel@vger.kernel.org, Andy Shevchenko , Rasmus Villemoes , Yury Norov Subject: [PATCH 2/6] bitmap: replace _reg_op(REG_OP_ALLOC) with bitmap_set() Date: Thu, 27 Oct 2022 18:48:30 -0700 Message-Id: <20221028014834.572819-3-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" _reg_op(REG_OP_ALLOC) duplicates bitmap_set(). Drop it. Signed-off-by: Yury Norov --- lib/bitmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/bitmap.c b/lib/bitmap.c index 1c81413c51f8..28630b57b2ab 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -1317,7 +1317,7 @@ int bitmap_find_free_region(unsigned long *bitmap, un= signed int bits, int order) for (pos =3D 0 ; (end =3D pos + (1U << order)) <=3D bits; pos =3D end) { if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) continue; - __reg_op(bitmap, pos, order, REG_OP_ALLOC); + bitmap_set(bitmap, pos, pos + BIT(order)); return pos; } return -ENOMEM; @@ -1356,7 +1356,8 @@ int bitmap_allocate_region(unsigned long *bitmap, uns= igned int pos, int order) { if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) return -EBUSY; - return __reg_op(bitmap, pos, order, REG_OP_ALLOC); + bitmap_set(bitmap, pos, pos + BIT(order)); + return 0; } EXPORT_SYMBOL(bitmap_allocate_region); =20 --=20 2.34.1 From nobody Sat Apr 11 12:10:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2A10FA373D for ; Fri, 28 Oct 2022 01:48:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235837AbiJ1Bsw (ORCPT ); Thu, 27 Oct 2022 21:48:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235782AbiJ1Bso (ORCPT ); Thu, 27 Oct 2022 21:48:44 -0400 Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 683A7ACA2D for ; Thu, 27 Oct 2022 18:48:42 -0700 (PDT) Received: by mail-qk1-x734.google.com with SMTP id b25so2609201qkk.7 for ; Thu, 27 Oct 2022 18:48:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=AKWEDhFwn+ThPGCDnydjZuc7yxzkqodEM30ZzuABrJA=; b=LyT2cefOPSq6japO6tCAFrOEBVLx0Ph4si20US1N90P5wLTkRNJY3t1oYVvrdSidp1 +yrPVi65R/D7VqqYurnbGZ/XQw0VxPSQRNcyONiLh+lxFXBRwhEg6YsZp2nezdPw4GVk 4EgO9Ye7CjiuiS0+6q9FUcLSHeynX5p8uR5Et+3q26EOp9rKguUo7VSZypYNXJoC8gh0 ss/X6zTx0t9z90GNfEg2eZJrgGd8Vz02Bk7XdF4GTh3nV6BJOozHHUQ5SSDXa3Vd1mJ0 MuNKuB5Uun6SRBFigYAlNESlVfONP+s5HOpGjsSfi9P1k4OuRe5NLoHmZsj2SJeELqzn 0pwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AKWEDhFwn+ThPGCDnydjZuc7yxzkqodEM30ZzuABrJA=; b=GKUd27p/fvahwk/il//SYa64UOw5IGMAcwgweHxxq29FeSu5ZYpruBO5XBw0FjeXEs d0efjAduY5UbW47ld6K9w3fKjBI3EPEjRIXn8WTn5TnjQqIiVRK7BXAZA5xxpmACX1GF WcBsXxQx7UTjjJzBurEu/wPNTSeD+YlGtUWakl4uzhQR9+wP7iICjsiZZX0mJ/RWvlj1 KP4mlqal5FeLm2nUcb8ftzOkA5hvxd/95F7ENq8G47Yoo66VDOLV3V2d4Gj4X1rqe6T3 ONjskfHd060aNm7JTlUkMoBXwv+syf+2KrU1BzIoFrzoM0yHNi/fPBf5GMeHn5YC/B3u HN6g== X-Gm-Message-State: ACrzQf0iBhIo2yBJZMwZDZUxJjxLnFR2UA0vLaNjUCFFwHLnItonOXuM hcIC2ggI4P7XQO9E24UUyeNk+h9Dv0E= X-Google-Smtp-Source: AMsMyM4lcxWUPtZNUOKa55qeOo6Gw3tpZbUy28BpZTbqi+Xn1EmERXRy8RjegbNSaZnZR1CZD/BcjQ== X-Received: by 2002:a05:620a:6d4:b0:6f9:f6af:4cc2 with SMTP id 20-20020a05620a06d400b006f9f6af4cc2mr3731460qky.445.1666921721385; Thu, 27 Oct 2022 18:48:41 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id u15-20020a05622a14cf00b0039a8b075248sm1723722qtx.14.2022.10.27.18.48.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:41 -0700 (PDT) From: Yury Norov To: linux-kernel@vger.kernel.org, Andy Shevchenko , Rasmus Villemoes , Yury Norov Subject: [PATCH 3/6] bitmap: replace _reg_op(REG_OP_RELEASE) with bitmap_clear() Date: Thu, 27 Oct 2022 18:48:31 -0700 Message-Id: <20221028014834.572819-4-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" _reg_op(REG_OP_RELEASE) duplicates bitmap_clear(). Drop it. Signed-off-by: Yury Norov --- lib/bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bitmap.c b/lib/bitmap.c index 28630b57b2ab..813962bdbd93 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -1337,7 +1337,7 @@ EXPORT_SYMBOL(bitmap_find_free_region); */ void bitmap_release_region(unsigned long *bitmap, unsigned int pos, int or= der) { - __reg_op(bitmap, pos, order, REG_OP_RELEASE); + bitmap_clear(bitmap, pos, pos + BIT(order)); } EXPORT_SYMBOL(bitmap_release_region); =20 --=20 2.34.1 From nobody Sat Apr 11 12:10:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70FC8ECAAA1 for ; Fri, 28 Oct 2022 01:49:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235772AbiJ1Bs6 (ORCPT ); Thu, 27 Oct 2022 21:48:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235804AbiJ1Bsp (ORCPT ); Thu, 27 Oct 2022 21:48:45 -0400 Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9D3C3AC4AD for ; Thu, 27 Oct 2022 18:48:43 -0700 (PDT) Received: by mail-qk1-x72b.google.com with SMTP id f8so2606200qkg.3 for ; Thu, 27 Oct 2022 18:48:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=6IF9Itq+l7pSB7LEj0A4UotSxHZaA/dpnq4u6qwUxWA=; b=CgkTQuuaZKVOSuly1y766VzaHMeskYfkNUpQf4ucFCzCJ0KcqwJPOKGJZYZUn9U/oS gUiKpBC8dWz8yJSYfRNv5ObChBFaqGcVgOzs5pVRWqmBs+Az089yfR5rVsrO3qIQ1MH5 RjkSmDllmkiqRco2hgwD38JtvpYaXe320+nECWJ+d6Z11lg+8qYrzg2UCw3gXTSx7QiE ccvG3h3wFrnkH/LVfNg4Ztw4U80IZ4stHMWOjFZFmBrXQZlQKSUGLStCJInubPC7ZYT5 76eUzXjqHShoOO51cxEkNnYNVNx/xASMUMTek7WXk6Fro3uw2UV3EST6LLDuTrOQ+pVd IUUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6IF9Itq+l7pSB7LEj0A4UotSxHZaA/dpnq4u6qwUxWA=; b=NkwHaGbdUvhg+1vDFNX3ibqHq1HmH3kBtiOiswZn4HnVSPNyFnDxucvBHidAxN7XcX ADbtXkxdwWzwW5WiC427AVK6TSXbS5lCWXmwADYWVSFKBK8eZFIh8igM0pojGYK4a0WG mEHvHkWYUc9Ggn0m3u7apA/BM9pVN6sKB3d9pIKugYarnPwaHWb5wOy/79zd7esGmtXT S7P9/MKrJ5wuMqXn1nO11ww3Gb7W4icxuZfJcvCbiT3wmDJeBeN/1IrNU71WvrP2i6C/ eca8/d3jusEeynkVcr7MmjP6o95J65zLVeid7idWysdgBljsEsVZ9yufdZR5zNVuvZJE y36Q== X-Gm-Message-State: ACrzQf0iukDeQXhneir+VbKnGBnSwTdqMISbYAveMDVpCWYUD9aHVbgP LVkRI9zizC/D+jwOb/pSFuzjuHf2uws= X-Google-Smtp-Source: AMsMyM75HKMzogQ0g4EEdQ4MyHZQ55k1MsZ5yjy7/p8es8O9/4JnE6Kc0oiE+jDQKXtgmXnqAUG6DQ== X-Received: by 2002:a05:620a:a46:b0:6f8:7886:6f1b with SMTP id j6-20020a05620a0a4600b006f878866f1bmr10715267qka.1.1666921722477; Thu, 27 Oct 2022 18:48:42 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id q11-20020a37f70b000000b006ce0733caebsm2015725qkj.14.2022.10.27.18.48.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:42 -0700 (PDT) From: Yury Norov To: linux-kernel@vger.kernel.org, Andy Shevchenko , Rasmus Villemoes , Yury Norov Subject: [PATCH 4/6] bitmap: replace _reg_op(REG_OP_ISFREE) with bitmap_empty_from() Date: Thu, 27 Oct 2022 18:48:32 -0700 Message-Id: <20221028014834.572819-5-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" _reg_op(REG_OP_ISFREE) duplicates bitmap_empty_from(). Drop it. Signed-off-by: Yury Norov --- lib/bitmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/bitmap.c b/lib/bitmap.c index 813962bdbd93..389446b6f248 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -1315,7 +1315,7 @@ int bitmap_find_free_region(unsigned long *bitmap, un= signed int bits, int order) unsigned int pos, end; /* scans bitmap by regions of size order */ =20 for (pos =3D 0 ; (end =3D pos + (1U << order)) <=3D bits; pos =3D end) { - if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) + if (!bitmap_empty_from(bitmap, pos, pos + BIT(order))) continue; bitmap_set(bitmap, pos, pos + BIT(order)); return pos; @@ -1354,7 +1354,7 @@ EXPORT_SYMBOL(bitmap_release_region); */ int bitmap_allocate_region(unsigned long *bitmap, unsigned int pos, int or= der) { - if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) + if (!bitmap_empty_from(bitmap, pos, pos + BIT(order))) return -EBUSY; bitmap_set(bitmap, pos, pos + BIT(order)); return 0; --=20 2.34.1 From nobody Sat Apr 11 12:10:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F015EFA373D for ; Fri, 28 Oct 2022 01:49:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235872AbiJ1BtD (ORCPT ); Thu, 27 Oct 2022 21:49:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235808AbiJ1Bsp (ORCPT ); Thu, 27 Oct 2022 21:48:45 -0400 Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 90F58AC2B8 for ; Thu, 27 Oct 2022 18:48:44 -0700 (PDT) Received: by mail-qk1-x735.google.com with SMTP id m6so2609112qkm.4 for ; Thu, 27 Oct 2022 18:48:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=B4DUoigKs4i4MiSm7mPBHdj9bSfZn7HJiVErqHP64bE=; b=UP9smFtqIJjIO979pi3gSZOEWo/rG0oI4HF9M0LEHAkvHp0V+9yCj+EFIWT+WIobvN RfXWB5vQJOGlcZIpP5JRkmeKnkUGDAPNU8TE9KKqlYfpywXW7A4opkitijzTa7Dg7Q6l fRRc7iK57T0KY6v/5JyGUtzB0dVtv54gf9vhTNn0BTQkbUo54qO3ozfQxN+Lqe7a0+me P5/7Q/JRXLtmh2jZ3G+pzxKK4D8uQ56ag8AB6iWUh+hWBZljw85ghQF4Hk+QyWmHrOLk +27V0GcsMkSKqYLgMfpF163SYYnLlGY+BNn/bgGUlSWHdWp510X8wk4rVUCqBj7lFfVw 1POQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=B4DUoigKs4i4MiSm7mPBHdj9bSfZn7HJiVErqHP64bE=; b=4Uhoz6VK+QQ+qUV6HKimQY5bBvOWYP3gEz+jV0gznPm3EGEVCEfg+EI6b2mBTqf3Rn oNFU7Tn4JxTTYpLE1EMAJvfIvsW/SOW3rJezMzDZ1VP6OoKfGCt19qQmWiu1GDPSjvJW VXLpRJp5m4kcgHzOwYPj3oSZmYUXCDy9CBFyFFW7mgk4wzrmouP6qu/HKSrCPadeK99D lln80lMGuBbtEk8Qo5Jxa5gO2rp7CuKqhTSMJaNtDaYIpwxx+VFBnxbqreAX6qHpWvRL 7is7No7sUhhKH3WldUZrbazeNzb9R+h9QDeWJ555ERdp7QyFdBnXgtFH7ablfAkFpU8c 55MQ== X-Gm-Message-State: ACrzQf0Kw2nqktin+WX9p4sv20zZraTJYDqtjdmGxWByo1e4OLqpj4iY qXodrFYDEI0gV4prEGtRe48Z4OIVvhw= X-Google-Smtp-Source: AMsMyM62bQm2oaXxoSO0wsgEfbitbvsBYBDq7GQ+ii63cmFBLU9QqGhopJZuWn3ehRSFDIZuxGUAdA== X-Received: by 2002:a05:620a:2629:b0:6ee:b2cf:aeb5 with SMTP id z41-20020a05620a262900b006eeb2cfaeb5mr36464857qko.62.1666921723522; Thu, 27 Oct 2022 18:48:43 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id l13-20020a05620a28cd00b006f8665f483fsm2120991qkp.85.2022.10.27.18.48.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:43 -0700 (PDT) From: Yury Norov To: linux-kernel@vger.kernel.org, Andy Shevchenko , Rasmus Villemoes , Yury Norov Subject: [PATCH 5/6] bitmap: fix opencoded bitmap_allocate_region() Date: Thu, 27 Oct 2022 18:48:33 -0700 Message-Id: <20221028014834.572819-6-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" bitmap_find_region() opencodes bitmap_allocate_region(). Fix it. Signed-off-by: Yury Norov --- lib/bitmap.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/bitmap.c b/lib/bitmap.c index 389446b6f248..2a85fe16f3fa 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -1315,10 +1315,8 @@ int bitmap_find_free_region(unsigned long *bitmap, u= nsigned int bits, int order) unsigned int pos, end; /* scans bitmap by regions of size order */ =20 for (pos =3D 0 ; (end =3D pos + (1U << order)) <=3D bits; pos =3D end) { - if (!bitmap_empty_from(bitmap, pos, pos + BIT(order))) - continue; - bitmap_set(bitmap, pos, pos + BIT(order)); - return pos; + if (!bitmap_allocate_region(bitmap, pos, order)) + return pos; } return -ENOMEM; } --=20 2.34.1 From nobody Sat Apr 11 12:10:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3709ECAAA1 for ; Fri, 28 Oct 2022 01:49:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236016AbiJ1BtG (ORCPT ); Thu, 27 Oct 2022 21:49:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235783AbiJ1Bsr (ORCPT ); Thu, 27 Oct 2022 21:48:47 -0400 Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F33B3ACA2D for ; Thu, 27 Oct 2022 18:48:45 -0700 (PDT) Received: by mail-qv1-xf32.google.com with SMTP id ml12so3221739qvb.0 for ; Thu, 27 Oct 2022 18:48:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ABM6Qj3NxZjFFbqew+a/nfxO7MCA2/sBgc75TPhkyfM=; b=le7KQwhYNdT4o/G8faZuKZXaCQiXbXPzBmn798kEV24s0tzqVbeGPRvNyLryj9dAlj pPuid4IZ28NwSfPeNRpfKwtRBYyChRs9krVINrXT6P425p7iKXtZg9SnSs9yUfb0xxsu fFMJFPz1jG+sZ5c2m2SBaxXwFDX50BiR4FQOnT7Yriyl9sJNKS5ajPzcryjcyWZSJosn eg4mlVdL2i7njhKs/KZoF//9ih8iepdsjOb2p65+PKgjFUZKRI75wel6G8JladusSbk7 tI6tJ1E2VbPB1b5MRRj0FzEQbivYfo07HZ0onwLeZQTL+4odD9kPgJhJ/M/e0AudE6FS Wzxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ABM6Qj3NxZjFFbqew+a/nfxO7MCA2/sBgc75TPhkyfM=; b=lrj7OxhgMrRRVdEOXbY+LgwL9z04udhy7DNjeH0IDjTLyci3RQIV7JH09Qj+c7gd/I FdOMlzK4fbkbSr2fdtzhDP9o2TcQkPnFT3D7JksH06A6KzEmPuLOybWb8ypzaP5Oh2NC sVqkcak8rJsubxPgcgEzZE1S3rvlVeUuof1V+tYyRV3o+9jiaRykoT0SPKT4lxLYxLmx HErm36xafjXpB5LR5G95IJmojCHsxhhTt/7GMCG0SOcRtcHNDtJStqrkwEpKXUQ25grx m6WWwFN4Xrf2RFLiZyeKWp+hMgzWgFgLzG/3k6UNy7SyoKOPEe1C14xsHzXiYXTwrIwF XvBA== X-Gm-Message-State: ACrzQf2+YmLW1X9kvFdNFMB502PhHxd6D/FMRPZ4YSuehYUZSexnwyGY TBo2MMkDw0SRzkTXq4HdgWP07yQhu1g= X-Google-Smtp-Source: AMsMyM6y5o2f6DKZDjf+gGHOkL8khewfMCHI7Y6dO4VQSwBoYqHYaZTUeck/sHhN2PpD0WPVsCCtlw== X-Received: by 2002:a0c:b256:0:b0:4b1:9f77:91da with SMTP id k22-20020a0cb256000000b004b19f7791damr44783109qve.84.1666921724552; Thu, 27 Oct 2022 18:48:44 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id o18-20020a05620a2a1200b006cddf59a600sm2086846qkp.34.2022.10.27.18.48.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:44 -0700 (PDT) From: Yury Norov To: linux-kernel@vger.kernel.org, Andy Shevchenko , Rasmus Villemoes , Yury Norov Subject: [PATCH 6/6] bitmap: drop _reg_op() Date: Thu, 27 Oct 2022 18:48:34 -0700 Message-Id: <20221028014834.572819-7-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Now that all _reg_op() users are switched to alternative functions, _reg_op() is not needed anymore. Signed-off-by: Yury Norov --- lib/bitmap.c | 76 ---------------------------------------------------- 1 file changed, 76 deletions(-) diff --git a/lib/bitmap.c b/lib/bitmap.c index 2a85fe16f3fa..4aa4e871c95d 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -1220,82 +1220,6 @@ void bitmap_fold(unsigned long *dst, const unsigned = long *orig, } #endif /* CONFIG_NUMA */ =20 -/* - * Common code for bitmap_*_region() routines. - * bitmap: array of unsigned longs corresponding to the bitmap - * pos: the beginning of the region - * order: region size (log base 2 of number of bits) - * reg_op: operation(s) to perform on that region of bitmap - * - * Can set, verify and/or release a region of bits in a bitmap, - * depending on which combination of REG_OP_* flag bits is set. - * - * A region of a bitmap is a sequence of bits in the bitmap, of - * some size '1 << order' (a power of two), aligned to that same - * '1 << order' power of two. - * - * Returns 1 if REG_OP_ISFREE succeeds (region is all zero bits). - * Returns 0 in all other cases and reg_ops. - */ - -enum { - REG_OP_ISFREE, /* true if region is all zero bits */ - REG_OP_ALLOC, /* set all bits in region */ - REG_OP_RELEASE, /* clear all bits in region */ -}; - -static int __reg_op(unsigned long *bitmap, unsigned int pos, int order, in= t reg_op) -{ - int nbits_reg; /* number of bits in region */ - int index; /* index first long of region in bitmap */ - int offset; /* bit offset region in bitmap[index] */ - int nlongs_reg; /* num longs spanned by region in bitmap */ - int nbitsinlong; /* num bits of region in each spanned long */ - unsigned long mask; /* bitmask for one long of region */ - int i; /* scans bitmap by longs */ - int ret =3D 0; /* return value */ - - /* - * Either nlongs_reg =3D=3D 1 (for small orders that fit in one long) - * or (offset =3D=3D 0 && mask =3D=3D ~0UL) (for larger multiword orders.) - */ - nbits_reg =3D 1 << order; - index =3D pos / BITS_PER_LONG; - offset =3D pos - (index * BITS_PER_LONG); - nlongs_reg =3D BITS_TO_LONGS(nbits_reg); - nbitsinlong =3D min(nbits_reg, BITS_PER_LONG); - - /* - * Can't do "mask =3D (1UL << nbitsinlong) - 1", as that - * overflows if nbitsinlong =3D=3D BITS_PER_LONG. - */ - mask =3D (1UL << (nbitsinlong - 1)); - mask +=3D mask - 1; - mask <<=3D offset; - - switch (reg_op) { - case REG_OP_ISFREE: - for (i =3D 0; i < nlongs_reg; i++) { - if (bitmap[index + i] & mask) - goto done; - } - ret =3D 1; /* all bits in region free (zero) */ - break; - - case REG_OP_ALLOC: - for (i =3D 0; i < nlongs_reg; i++) - bitmap[index + i] |=3D mask; - break; - - case REG_OP_RELEASE: - for (i =3D 0; i < nlongs_reg; i++) - bitmap[index + i] &=3D ~mask; - break; - } -done: - return ret; -} - /** * bitmap_find_free_region - find a contiguous aligned mem region * @bitmap: array of unsigned longs corresponding to the bitmap --=20 2.34.1