From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 36E50EB64DA for ; Wed, 19 Jul 2023 08:36:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Jk33c10o95Kt1FsZZu33P0uiG0woOhEmWGibEsrq2ck=; b=U/Al2DV3SYnyh9 giLyu5yinSxLnlSSf+srBY+aOAS/0JmRWpvVAJrf0W7+o7ZZaQoDn4UHQw4jrYAfhSJSktBA3rXKI ZWFsT8g0iEdnwsIvjd6oiuCvNXXLdXfcCmcATPznv4qNLGJs1KSuoac1k4kfjmopOlYHB0RSwTQ1e dgtfApveMnMcf+AjjqgqCTtiuLJTUYSUyDG1MCvbUubjNIQ8q+pXw7OGAgSpSUaxVFNW3CLREMUgJ Oz1WXB6UBlEvj5O/kvta6hVnQan0nV9+9fJQ8PQS02/mZ4W/+nHZXhLvpOrMT1Hmpl98Xw9SBBEN4 ytY1t7Zp1yYCgIzLVuoQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qM2fP-006Olk-2s; Wed, 19 Jul 2023 08:36:15 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qM2fH-006Ohm-0C for linux-arm-kernel@bombadil.infradead.org; Wed, 19 Jul 2023 08:36:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=GT+sqjsBJCrCFnfjlBO9PEjDZvBphMzEEJkH0X1enOQ=; b=BoYDc1NhGOyrXbYBlTVD3hEGIE wj2tjNU8Y7+eYLmAlIxMDnwo5XylIWUYAynzl07l6/ZVtWBX78w6aT0qhpTxr/w8KmBLDg1tGSyNi uoynxwSqMdBfAX2XvsdN++A/sqAEHrrav8JHDBUNj3DAwg28uSVYL+aivgccztWMovjb6k7tDOEgM 2HAB+PtAs2D2bMlJEoqjrkO/4on8F0OF2kqYSgdoz9jeq7wsp8SxIB2aI8xvAHU/4PA04rrR3yUWD EiNqHPBNJGNYib7wAOnRpevpy+84C/jVBn4wO1TnFhE1UO/HMNSAYPek9nr9FLD9U/5Lcs+Q4hjHB FO1RXUWQ==; Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by desiato.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qLo7l-00BoAZ-21 for linux-arm-kernel@lists.infradead.org; Tue, 18 Jul 2023 17:04:35 +0000 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-1b89600a37fso36519095ad.2 for ; Tue, 18 Jul 2023 10:04:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689699808; x=1692291808; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=GT+sqjsBJCrCFnfjlBO9PEjDZvBphMzEEJkH0X1enOQ=; b=XbxFnoY3K8n5MjmOsvk1vk4QDsSBRo9sFeq1bC/f8+42pGBUp6fsTTervq0PZxIP+l DkES1cAEdkigXbFnLUe/1wRMUu7ubjc7VeMnQOC+kZDm6Ar6KEq0oYgQN23ShDICrJtM vw65u2TXA1cRapOGY1n0QnvfLyge1jraFL/29kP2RGN9Je/zxaNoE2y4h9pel3frgDXt RqV6/yISVyARBn6dHG7Y/ruTvDls9BjMZjd9IbF89/XiOVghjc7E/T7kliD6YLtGw3Dv vco9SD/kURWosFNKoyoA7po5lUUuexk+kZEEL7qS4aw7Hm+tFF4NNIGzf6HRmjtqkWEP f8IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689699808; x=1692291808; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GT+sqjsBJCrCFnfjlBO9PEjDZvBphMzEEJkH0X1enOQ=; b=DwcyTC+I5d+taFLFKBUap72j+1MV76vE6aEgigIpFv0uAUmhQn+lWf8+7g9J8kTG7x sb5Pmy7nNe6sh+TE5iymXbowE9XdADNcaWrr/B+HebBayQwHQjT1+wYdlyk83f/5R4Dq HkDgeA1RwqeJqlhmgQKH702jn9NjMnUJsECx32usqfTQP/VubOgmQzv8mUzCMucOaKWG EcXnrUBcyiibU5vrl8MPQ/Vtk6SKmppkaWbOCEcjL1l+Iu8dibiN7pJeOTkf1rqyjC50 t46oSPHuXGdNHgrEZLULcuySMlbYjpNdfWWEfmsgh3NDAVETr1yXP9aAd+Hw3M2BHDxN jNag== X-Gm-Message-State: ABy/qLY2owTzxAtknsWg7JIdYwjFb9bSyena686HMosIZn8FaCI4kNQo xNCdgJZWGZRGzdljFXDuNqg= X-Google-Smtp-Source: APBJJlF/FniITLJA/CjL64d6hguVOAGlCPmAwKTX1K2KiD3CBpmX2EtSlV18R6R4JqrH28iHT0ItqQ== X-Received: by 2002:a17:902:b68f:b0:1b9:e9f3:44c3 with SMTP id c15-20020a170902b68f00b001b9e9f344c3mr13072448pls.4.1689699807648; Tue, 18 Jul 2023 10:03:27 -0700 (PDT) Received: from localhost ([216.228.127.130]) by smtp.gmail.com with ESMTPSA id h12-20020a170902eecc00b001a98f844e60sm2091603plb.263.2023.07.18.10.03.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 10:03:27 -0700 (PDT) Date: Tue, 18 Jul 2023 10:03:25 -0700 From: Yury Norov To: Andy Shevchenko Cc: Alexander Potapenko , catalin.marinas@arm.com, will@kernel.org, pcc@google.com, andreyknvl@gmail.com, linux@rasmusvillemoes.dk, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, eugenis@google.com, syednwaris@gmail.com, william.gray@linaro.org, Arnd Bergmann Subject: Re: [PATCH v3 1/5] lib/bitmap: add bitmap_{set,get}_value() Message-ID: References: <20230717113709.328671-1-glider@google.com> <20230717113709.328671-2-glider@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230718_180433_747718_558CCE14 X-CRM114-Status: GOOD ( 29.86 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBKdWwgMTgsIDIwMjMgYXQgMDU6MDE6MjhQTSArMDMwMCwgQW5keSBTaGV2Y2hlbmtv IHdyb3RlOgo+IE9uIFR1ZSwgSnVsIDE4LCAyMDIzIGF0IDExOjMwOjAwQU0gKzAyMDAsIEFsZXhh bmRlciBQb3RhcGVua28gd3JvdGU6Cj4gPiBPbiBNb24sIEp1bCAxNywgMjAyMyBhdCA1OjUx4oCv UE0gWXVyeSBOb3JvdiA8eXVyeS5ub3JvdkBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiBPbiBNb24s IEp1bCAxNywgMjAyMyBhdCAwMTozNzowNFBNICswMjAwLCBBbGV4YW5kZXIgUG90YXBlbmtvIHdy b3RlOgo+IAo+IC4uLgo+IAo+ID4gPiBXaGVuIG5iaXRzID09IDAsIGNvcHktbGlrZSBmdW5jdGlv bnMgc2hvdWxkbid0IHRvdWNoIGFueSBtZW1vcnkuIFNlZSBob3cKPiA+ID4gb3RoZXIgYml0bWFw IGFuZCBmaW5kX2JpdCBmdW5jdGlvbnMgaG9sZCBpdC4KPiA+IAo+ID4gSSB0aGluayB0aGlzIGlz IGRpZmZlcmVudCBmcm9tIHdoYXQgb3RoZXIgYml0bWFwIGZ1bmN0aW9ucyBkbywgYnV0IGl0Cj4g PiBzaG91bGQgYmUgZW5vdWdoIHRvIGJhaWwgb3V0IG9uICFuYml0cywgaS5lLjoKPiA+IAo+ID4g ICAgIGlmICghbmJpdHMpCj4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gCj4gPiBZb3UgcHJvYmFi bHkgbWVhbnQgYWRkaW5nIGEgX19idWlsdGluX2NvbnN0YW50X3AoKSAod2hpY2ggaXMgdXNlZCBh bGwKPiA+IG92ZXIgdGhlIHBsYWNlIGluIGJpdG1hcC5oKSwgYnV0OgoKTm8sIEkgZGlkbid0IG1l YW4gdGhhdC4KCj4gPiAgLSB0aGUgY29tcGlsZXIgd29uJ3QgaGF2ZSBwcm9ibGVtIG9wdGltaXpp bmcgYXdheSB0aGUgY29kZSBmb3IgYQo+ID4gY29uc3RhbnQgbmJpdHM9MDsKCkxvb2sgYXQgeW91 ciBjb2RlLCBoYXZpbmcgbmJpdHMgPT0gMCBpbiBtaW5kOgoKICAgICAgIGNvbnN0IHNpemVfdCBp bmRleCA9IEJJVF9XT1JEKHN0YXJ0KTsKICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgb2Zmc2V0 ID0gc3RhcnQgJSBCSVRTX1BFUl9MT05HOwogICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBzcGFj ZSA9IEJJVFNfUEVSX0xPTkcgLSBvZmZzZXQ7CiAgICAgICB1bnNpZ25lZCBsb25nIHZhbHVlX2xv dywgdmFsdWVfaGlnaDsKCiAgICAgICBpZiAoc3BhY2UgPj0gbmJpdHMpIC8vIFRoaXMgaXMgYWx3 YXlzIHRoZSBjYXNlCiAgICAgICAgICAgICAgIHJldHVybiAobWFwW2luZGV4XSA+PiBvZmZzZXQp ICYgR0VOTUFTSyhuYml0cyAtIDEsIDApOwogICAgICAgLi4uICAgICAgICAgICAgIF5eICAgICAg ICAgICAgICAgICAgICAgIF5eCiAgICAgICAgICAgICAgICAgICAgICAgVW5jb25kaXRpb25hbCBm ZXRjaCAgICAgV3NoaWZ0LWNvdW50LW92ZXJmbG93CgpUaGFua3MgdG8gR0VOTUFTSygpIGltcGxl bWVudGF0aW9uLCB5b3UnbGwgYmUgd2FybmVkIGJ5IEdFTk1BU0tfSU5QVVRfQ0hFQ0soKQppZiBu Yml0cyBpcyBhIGNvbXBpbGUtdGltZSB2YXJpYWJsZS4gSW4gY2FzZSBvZiBydW50aW1lLCBpdCdz IGEgcHVyZSB1bmRlZiwKbm90IG1lbnRpb25pbmcgdXNlbGVzcywgZXhwZW5zaXZlIGFuZCBkYW5n ZXJvdXMgZmV0Y2guCgo+ID4gIC0gd2UgYW55d2F5IG5lZWQgYSBkeW5hbWljIGNoZWNrIGZvciB0 aGUgY2FzZSBuYml0cyBpcyBub3QgY29uc3RhbnQKPiA+IChmb3IgYm90aCBiaXRtYXBfZ2V0X3Zh bHVlKCkgYW5kIGJpdG1hcF9zZXRfdmFsdWUoKSwgSSBhc3N1bWUpLgo+ID4gCj4gPiBXaGF0IGRv IHlvdSB0aGluaz8KCkkgdGhpbmsgdGhhdCBpbnN0ZWFkIG9mIHNwZWN1bGF0aW9ucywgaXQncyBi ZXR0ZXIgdG8gY292ZXIgbmJpdHMgPT0gMAp3aXRoIHRoZSBleHBsaWNpdCB0ZXN0cyBmb3IgcnVu LSBhbmQgY29tcGlsZS10aW1lLiBUaGF0IHdheSB5b3UncmUKYWx3YXlzIG9uIGEgc2FmZSBzaWRl LgoKYml0bWFwX2dldF92YWwoTlVMTCwgMCwgMCkgc2hvdWxkbid0IGNyYXNoIHRoZSBrZXJuZWwu CiAKPiBUaGUgaWRlYSBiZWhpbmQgaXMgdG8gZWxpbWluYXRlIHRoZSBjb2RlIGNvbXBsZXRlbHkg Zm9yIHRoZSBjYXNlcyBuYml0cyAhPSAwLgo+IEluIHlvdXIgY2FzZSB0aGUgZHluYW1pYyBjaGVj ayB3aWxsIGJlIHRoZXJlLiBUaGF0J3Mgd2hhdCB3ZSB3YW50IHRvIGF2b2lkLgoKQWxleGFuZGVy IGlzIHJpZ2h0IC0gd2UgY2FuJ3QgYXZvaWQgdGVzdGluZyBhZ2FpbnN0IDAgaWYgd2UgbmVlZCB0 bwp0ZXN0IGZvciAwLi4uIEluIGNhc2Ugb2Ygb3RoZXIgZnVuY3Rpb25zIHdlIGhhdmUgaW5saW5l IGFuZCBvdXRsaW5lCmltcGxlbWVudGF0aW9ucywgY29udHJvbGxlZCBieSBzbWFsbF9jb25zdF9u Yml0cygpLgoKQXMgeW91IGNhbiBzZWUsIHRoZSBzbWFsbF9jb25zdF9uYml0cygpIHRlc3RzIGFn YWluc3QgMCBleHBsaWNpdGx5LAphbHRob3VnaCBpdCdzIGZyZWUgYXQgY29tcGlsZSB0aW1lLiBC dXQgaWYgbmJpdHMgPT0gMCwgd2UgcGljawpvdXRsaW5lIHZlcnNpb24gb2YgYSBmdW5jdGlvbiBy ZWdhcmRsZXNzLgoKT24gdGhlaXIgdHVybiwgb3V0bGluZSB2ZXJzaW9ucyBhZ2FpbiBkbyB0aGVp ciB0ZXN0IGFnYWluc3QgbmJpdHMgPT0gMCwKYnV0IG1vc3Qgb2YgdGhlIHRpbWUgaW1wbGljaXRs eS4KCkluIGNhc2Ugb2YgYml0bWFwX3NldF92YWwsIHdlIGFyZSB0b3VjaGluZyBhdCBtYXggMiB3 b3JkcywgYW5kIHRoZXJlJ3MKbm8gcmVhc29uIGZvciBvdXRsaW5lIHZlcnNpb24sIHNvIHdlIGhh dmUgdG8gdGVzdCBuYml0cyBhZ2FpbnN0IDAKaW5zaWRlIGlubGluZSBjb2RlLiAKCkhhdmluZyBh bGwgdGhhdCBpbiBtaW5kLCBhbmQgYmVjYXVzZSBuYml0cyA9PSAwIGlzIG1vc3QgbGlrZWx5IGFu CmVycm9yIHdlJ2QgZm9sbG93IHRoZSBmb2xsb3dpbmcgcnVsZXM6CiAtIG5vIG1lbW9yeSBtdXN0 IGJlIHRvdWNoZWQgYXMgd2UncmUgcG90ZW50aWFsbHkgaW4gZXJyb3IgY29uZGl0aW9uLAogICBh bmQgcG9pbnRlciBtYXkgYmUgY29ycnVwdGVkOwogLSB0aGUgY29zdCBvZiB0aGUgY2hlY2sgbXVz dCBiZSBhcyBtaW5pbWFsIGFzIHBvc3NpYmxlLgoKU28gSSBzdWdnZXN0OgoKICAgICAgICBpZiAo dW5saWtlbHkobmJpdHMgPT0gMCkpCiAgICAgICAgICAgICAgICByZXR1cm47CgpGb3IgcmVhZGVy cyB0aGF0IHdvdWxkIGxpdGVyYWxseSBtZWFuOiB3ZSBkb24ndCBleHBlY3QgdGhhdCwgYW5kIHdl IGZpbmQKaXQgc3VzcGljaW91cywgYnV0IHdlJ2xsIGhhbmRsZSB0aGF0IGFzIGNvcnJlY3QgYXMg d2UgY2FuLgoKQnkgdGhlIHdheSwgQWxleGFuZGVyLCBwbGVhc2UgZHJvcCB0aGF0ICdjb25zdCcg dGhpbmdzLiBUaG9zZSBhcmUgZm9yCnBvaW50ZXJzIG9yIHNvbWUgZ2xvYmFsIHZhcmlhYmxlcywg bm90IGZvciBpbmxpbmUgZnVuY3Rpb25zIHdpdGggNApsaW5lcyBvZiBjb2RlLiAoSWYgeW91IHRo aW5rIGl0IGhlbHBzIHRoZSBjb2RlIHRvIGJlIHNhZmUgdGhhbiBubyAtIGl0J3MKdW5zYWZlIGV2 ZW4gd2l0aCBjb25zdHMuKQoKVGhhbmtzLApZdXJ5CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 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 6660DEB64DC for ; Tue, 18 Jul 2023 17:04:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232243AbjGRREs (ORCPT ); Tue, 18 Jul 2023 13:04:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230159AbjGRREW (ORCPT ); Tue, 18 Jul 2023 13:04:22 -0400 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCBB71FD9 for ; Tue, 18 Jul 2023 10:03:54 -0700 (PDT) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1b8a44ee159so36484855ad.3 for ; Tue, 18 Jul 2023 10:03:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689699808; x=1692291808; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=GT+sqjsBJCrCFnfjlBO9PEjDZvBphMzEEJkH0X1enOQ=; b=XbxFnoY3K8n5MjmOsvk1vk4QDsSBRo9sFeq1bC/f8+42pGBUp6fsTTervq0PZxIP+l DkES1cAEdkigXbFnLUe/1wRMUu7ubjc7VeMnQOC+kZDm6Ar6KEq0oYgQN23ShDICrJtM vw65u2TXA1cRapOGY1n0QnvfLyge1jraFL/29kP2RGN9Je/zxaNoE2y4h9pel3frgDXt RqV6/yISVyARBn6dHG7Y/ruTvDls9BjMZjd9IbF89/XiOVghjc7E/T7kliD6YLtGw3Dv vco9SD/kURWosFNKoyoA7po5lUUuexk+kZEEL7qS4aw7Hm+tFF4NNIGzf6HRmjtqkWEP f8IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689699808; x=1692291808; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GT+sqjsBJCrCFnfjlBO9PEjDZvBphMzEEJkH0X1enOQ=; b=NauJxgP8RCIaLsR55O2zyn3qCf1t7ZkY/CNr4ry06bAFwOSbql2Yp/IiixfVlVSBmq CqWi94em+vPQsPpFOQF8A+1iGUYx2/wPURGz3pFK7C/8uYpeGZocOH1E7d1d5cx1XSoU BUFA9naV3B1oOZnh/aWofD7VlTE4850K3B8f62K4OufMqrl5HqULQ4+XiZgyZ46qHSws PYNlGqZbPts4GnrvCCsGd3SwH5J9ifCN5j0iLXIS70cyX46s/7Ev02fbB6gJ6gD/EalO O2JZWvjtOrJyH+hQIhoYld0yaeG26ghb3SSINCOejdIjiC3fEnaqrO4hLK/G7fTj9CeP rbiA== X-Gm-Message-State: ABy/qLYgQs3olS/bh3T49LkE7I53Y70/aL6LU2OVyjmOmGw15VU07jL3 P2jxavTtIlT/2EDg2/DjSgc= X-Google-Smtp-Source: APBJJlF/FniITLJA/CjL64d6hguVOAGlCPmAwKTX1K2KiD3CBpmX2EtSlV18R6R4JqrH28iHT0ItqQ== X-Received: by 2002:a17:902:b68f:b0:1b9:e9f3:44c3 with SMTP id c15-20020a170902b68f00b001b9e9f344c3mr13072448pls.4.1689699807648; Tue, 18 Jul 2023 10:03:27 -0700 (PDT) Received: from localhost ([216.228.127.130]) by smtp.gmail.com with ESMTPSA id h12-20020a170902eecc00b001a98f844e60sm2091603plb.263.2023.07.18.10.03.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 10:03:27 -0700 (PDT) Date: Tue, 18 Jul 2023 10:03:25 -0700 From: Yury Norov To: Andy Shevchenko Cc: Alexander Potapenko , catalin.marinas@arm.com, will@kernel.org, pcc@google.com, andreyknvl@gmail.com, linux@rasmusvillemoes.dk, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, eugenis@google.com, syednwaris@gmail.com, william.gray@linaro.org, Arnd Bergmann Subject: Re: [PATCH v3 1/5] lib/bitmap: add bitmap_{set,get}_value() Message-ID: References: <20230717113709.328671-1-glider@google.com> <20230717113709.328671-2-glider@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 18, 2023 at 05:01:28PM +0300, Andy Shevchenko wrote: > On Tue, Jul 18, 2023 at 11:30:00AM +0200, Alexander Potapenko wrote: > > On Mon, Jul 17, 2023 at 5:51 PM Yury Norov wrote: > > > On Mon, Jul 17, 2023 at 01:37:04PM +0200, Alexander Potapenko wrote: > > ... > > > > When nbits == 0, copy-like functions shouldn't touch any memory. See how > > > other bitmap and find_bit functions hold it. > > > > I think this is different from what other bitmap functions do, but it > > should be enough to bail out on !nbits, i.e.: > > > > if (!nbits) > > return 0; > > > > You probably meant adding a __builtin_constant_p() (which is used all > > over the place in bitmap.h), but: No, I didn't mean that. > > - the compiler won't have problem optimizing away the code for a > > constant nbits=0; Look at your code, having nbits == 0 in mind: const size_t index = BIT_WORD(start); const unsigned long offset = start % BITS_PER_LONG; const unsigned long space = BITS_PER_LONG - offset; unsigned long value_low, value_high; if (space >= nbits) // This is always the case return (map[index] >> offset) & GENMASK(nbits - 1, 0); ... ^^ ^^ Unconditional fetch Wshift-count-overflow Thanks to GENMASK() implementation, you'll be warned by GENMASK_INPUT_CHECK() if nbits is a compile-time variable. In case of runtime, it's a pure undef, not mentioning useless, expensive and dangerous fetch. > > - we anyway need a dynamic check for the case nbits is not constant > > (for both bitmap_get_value() and bitmap_set_value(), I assume). > > > > What do you think? I think that instead of speculations, it's better to cover nbits == 0 with the explicit tests for run- and compile-time. That way you're always on a safe side. bitmap_get_val(NULL, 0, 0) shouldn't crash the kernel. > The idea behind is to eliminate the code completely for the cases nbits != 0. > In your case the dynamic check will be there. That's what we want to avoid. Alexander is right - we can't avoid testing against 0 if we need to test for 0... In case of other functions we have inline and outline implementations, controlled by small_const_nbits(). As you can see, the small_const_nbits() tests against 0 explicitly, although it's free at compile time. But if nbits == 0, we pick outline version of a function regardless. On their turn, outline versions again do their test against nbits == 0, but most of the time implicitly. In case of bitmap_set_val, we are touching at max 2 words, and there's no reason for outline version, so we have to test nbits against 0 inside inline code. Having all that in mind, and because nbits == 0 is most likely an error we'd follow the following rules: - no memory must be touched as we're potentially in error condition, and pointer may be corrupted; - the cost of the check must be as minimal as possible. So I suggest: if (unlikely(nbits == 0)) return; For readers that would literally mean: we don't expect that, and we find it suspicious, but we'll handle that as correct as we can. By the way, Alexander, please drop that 'const' things. Those are for pointers or some global variables, not for inline functions with 4 lines of code. (If you think it helps the code to be safe than no - it's unsafe even with consts.) Thanks, Yury