Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp3965386pxb; Mon, 4 Oct 2021 13:53:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJySwiFaLXQshhMy3BOowiQ1MfORzjffyZd8FK5Egsc5KJr5N+tL8tYMKTLxoyp548yhfZN6 X-Received: by 2002:a17:906:585a:: with SMTP id h26mr19411137ejs.31.1633380831772; Mon, 04 Oct 2021 13:53:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633380831; cv=none; d=google.com; s=arc-20160816; b=C4EyBI8rTlZ7o2byhOnmBHUF8M49kds5eZhv9yA4643l15Z3x1hVE1NIMQonePSbao CueYIZJ9agJGoXwubZCdF0QGgk359fOg6VZ7bd6lOWE/epA/y8w8xt789PYvn/cVSZlI kY5lKjmOpjvmpmvDWOIm95Psw6RVo+2krwOiRr8Mm8guu+7uCcw+R7tj9Vjiw9QkS5A2 c+xNB4HJP7YCnmD0SBfW2rZ+u7xAu9trIAJi0ZtrmoUUTwEQcxNUVbeX6uFw1O7eZXKe BXdHhsflAeO4sfnVInoSkq/Cv7deLVjdOlzG0FxqkZrqvjAxJkUSfHexz32yOdwUT/yz B1sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=SgYt949aZNQnDjDSm/7k761HHJhJOPWZR30o9Zy8p+g=; b=ZNODa5sd1yQHr5DBrSofipB+aOtyiv1yxvshl7Soe29ZI0hV5VSRLYgRb29BYNrM1s ZdeC+9GfrGTtoxtgcGDJnvBvqlYbu6Uhyp5pOaFo6K5hs6bH3vOzJJss8ctQcAfmMjrl HAFnOdPy7YxXihGVZ9dzYcQ2pFgpgwXXXXpVG78C7CTgysbObZHdFzXhs/wADt8wrNoF lIrX45qtOv+WlETMrQ3Or5gDMgEsWpLdFHUJRmV58WpRzi74RBe/XENlbiGysfYBErlh f2GSLHui/p34joHp1j1OkTOkinGBi0Oz0rLIpGACQwrteGgQ9h8i4DrLIOvc3/IYnQxC oSrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=PmlLfeTq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i10si21938061ejd.99.2021.10.04.13.53.28; Mon, 04 Oct 2021 13:53:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=PmlLfeTq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237584AbhJDNvo (ORCPT + 99 others); Mon, 4 Oct 2021 09:51:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237765AbhJDNvk (ORCPT ); Mon, 4 Oct 2021 09:51:40 -0400 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B11FC07AE7A; Mon, 4 Oct 2021 06:23:19 -0700 (PDT) Received: by mail-ed1-x536.google.com with SMTP id v18so63742612edc.11; Mon, 04 Oct 2021 06:23:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SgYt949aZNQnDjDSm/7k761HHJhJOPWZR30o9Zy8p+g=; b=PmlLfeTqBn5CPTR2/GuwESNit7xO6PYglZyMZ4jFS+vbDlU26z9OJtG5toU/kine9K kLHFFE0fqBVz0SzDG6Z/yn+gVrvVeJLEgezV2/+xcBRZsjnlbBADgqg8JNc7zBMzsa/k Fuy5MqY6zvXjmvhCctM3X4i4UsI0nHmhajnd6YvsggOZn2cgxuKyEV9sxI1plWajPKff Sq8IOLcTQkHaFVYtE4MROmDeva/uZyoR7LNxzvz4qo7cm7VXUJnv1dH5i2fIM69cqIRa nz96fVIB4FDJPVcy7be4XxfDJ1Yhi6Nus0++dbOJwoH49L5T38qS+xqOJYEHjajKKQwV xPWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SgYt949aZNQnDjDSm/7k761HHJhJOPWZR30o9Zy8p+g=; b=0wEZ19do4q0g30QGrUjEXkauSDlxb9xRKBnkc0E+/XxeKwJE+uww2o9AAoRx3z/82J s+4H8cbsc7rXB0tVTip4zVI99S67jsuofe6Id8JJaMKmamL6l3qad4TfTsRt3U+fzzF0 UhHNi7/FsNttBJhnU+WEMtPsW2sDYvPJKA6E0phLd1hH7ikadHapoYK+O1XNlEpc8qes qZTYGXryp99je91Ougkk9bchfjSsrqgi/TSkTKa/1D46aoQ97jzk3xlvNJPaU5PYFWFt xplfa9PWVQTfSDB+510rkc2W6nt2lM0Tiikzf2kYsZhetMiMqsmgTRFsZ3M7ofSqQt2k McnQ== X-Gm-Message-State: AOAM532GFfxgmjEcImbLA7+sdiLBkWDkzLXBRb/3Wl/ZmiISbg+npvcO Z+7fyI0YmbMHUT5KdxD3gGawpDwjlgBPtPV805w= X-Received: by 2002:a17:907:2855:: with SMTP id el21mr17525279ejc.141.1633353774409; Mon, 04 Oct 2021 06:22:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Andy Shevchenko Date: Mon, 4 Oct 2021 16:22:17 +0300 Message-ID: Subject: Re: [PATCH] gpio: aggregator: Wrap access to gpiochip_fwd.tmp[] To: Geert Uytterhoeven Cc: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , "open list:GPIO SUBSYSTEM" , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 4, 2021 at 3:47 PM Geert Uytterhoeven wrote: > > The tmp[] member of the gpiochip_fwd structure is used to store both the > temporary values bitmap and the desc pointers for operations on multiple > GPIOs. As both are arrays with sizes unknown at compile-time, accessing > them requires offset calculations, which are currently duplicated in > gpio_fwd_get_multiple() and gpio_fwd_set_multiple(). > > Introduce (a) accessors for both arrays and (b) a macro to calculate the > needed storage size. This confines the layout of the tmp[] member into > a single spot, to ease maintenance. ... > +#define fwd_tmp_descs(fwd) (void *)&(fwd)->tmp[BITS_TO_LONGS((fwd)->chip.ngpio)] > + > +#define fwd_tmp_size(ngpios) (BITS_TO_LONGS((ngpios)) + (ngpios)) ... > - fwd = devm_kzalloc(dev, struct_size(fwd, tmp, > - BITS_TO_LONGS(ngpios) + ngpios), GFP_KERNEL); > + fwd = devm_kzalloc(dev, struct_size(fwd, tmp, fwd_tmp_size(ngpios)), > + GFP_KERNEL); Shouldn't we rather use devm_bitmap_zalloc() / bitmap_free()? > if (!fwd) > return ERR_PTR(-ENOMEM); -- With Best Regards, Andy Shevchenko