Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp609245pxa; Wed, 19 Aug 2020 09:58:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyXa+S8hKauV0PdYvXpo4PY0akr7+COkKQmAkb0+vtfKQ9F8+KAe0NbZNRFS3GDAgLPHf5y X-Received: by 2002:a05:6402:b1b:: with SMTP id bm27mr26188982edb.140.1597856299622; Wed, 19 Aug 2020 09:58:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597856299; cv=none; d=google.com; s=arc-20160816; b=HiAPj4O3bCNyqBnHfeDeUb1WxGGau5CZZYPhicKkFB2OQFHb3PgiR3mT4oMCfrZttp lFtObV1ICuSWjtWII+K1B8g41TSgjO1BYepyzV1EVnb2j/SDLZ+lx5ee2gsazzJFa/5y C6gf7iI0JQJUzXiJ/v1VOG9x7Cd4/t5QPenQ3XiKIlRH5UPv+vn83qCFYcoZzeMB5N6j A14I7Y1xJP/zbIfAPEuZStgpLb7+x5X+cnkWfyFFTTokum+eEOXrPcmzvqgO8YJVPn27 dreE+g9l+Qoj1Q1ssy6sp3dvkfCrPB0aBCYVQ6bajxqvXmuF9JJwA1lSfcmZF+IQ02GG 7B8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=DyPe34DueaqLfEcDqZqm300kn/odPwqy1uJt22bP0Z8=; b=Js1BQYtTu4/rfAwCf7K0vpUmiyp+tigBjR3qk/0uWg5aKIy6z1qY7Ib+qv6AAh1nml MMNOzdKtrEDj7/PG2yhGrHceRmmrAuhGV03l/Z/279BVVE2F6AciVqA3zUWMO5uF/DpC +cC1c+se2/DLlzilgWbucqds+ibZyYKGRYFR1Nm9Q5v1NzbDjcUovc8m9m2rFobEl3B1 cvbAG3LMKjs6cukbq2b5+tZlQF5mNhUXb26AjJuLjHU2hEX/qgonuWDV3xO5c65qp9BS qsUNCF3XLqjAlhuDmOpssiwwKvZ82574gkH+BevUlOGljJmvoGAD8fOK4vRIoocJtulh BwMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=XsGUJB1H; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qt15si15602183ejb.319.2020.08.19.09.57.55; Wed, 19 Aug 2020 09:58:19 -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=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=XsGUJB1H; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726854AbgHSQ4h (ORCPT + 99 others); Wed, 19 Aug 2020 12:56:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726876AbgHSQ4Y (ORCPT ); Wed, 19 Aug 2020 12:56:24 -0400 Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com [IPv6:2607:f8b0:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF8E6C061348 for ; Wed, 19 Aug 2020 09:56:15 -0700 (PDT) Received: by mail-pl1-x644.google.com with SMTP id y6so11118035plt.3 for ; Wed, 19 Aug 2020 09:56:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=DyPe34DueaqLfEcDqZqm300kn/odPwqy1uJt22bP0Z8=; b=XsGUJB1Hdc8az/rXuro1bWhBsdgGdQHjYKQpuunAo8x0WekUdWBNsmSDFJj67GVWVG 5hPdTKlI6scfsCliWtIOLtIYsVj1YwZaDB5Moe7+6/awpbvAiGHWPGqlMMiQH755AjTS vfPiJNDbB+aPu6VjtibhyAOy9LSk3+Tr2jZ+44/eXBtbf+XOZ8K+VQwL9BGEgF8JGQKK 5KG7zpuu/Xea1f/72jgUaeUpmt4D/ORaIe5NpGI/tYWzxvMEzO/L884n90j+BH7HiH1m QMIIcf8a02yI8nCtJ4GjS4kGwrIFsNa8Q8Tri7Y3/f7lv1J5QYlIRrGUMNjHynb2RGMA GacA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=DyPe34DueaqLfEcDqZqm300kn/odPwqy1uJt22bP0Z8=; b=tMFMXVpyCd28VwEun5g/qTZt1w0OmCrXrFAz15Pwp772QQ04bBjcKyei/udoYGzdHQ RQxjcnsjkIBf9dTGApf3kMXz0tE33piNG7CsqqOvUOibwrEqdfViHBPYxegYGn3Z+wiK l8dXU83sJqJ2eNNQ0xDnJsMrYkLVELDUFEwNW8VC9n1aEc7aYWbV4TRetWCwi62wXMGt qJbqrG3QsBD/7J8vInzplsR5nq4THO2nSZQamhJmU/Z168cHek6Xkp/jahf8YHvOwwsB 2WDpEPg/8OjtopmjhPjzwDmpoxW3yRT78eCxrebjuoaM9CXA78uczWwZF0JvfejO6GrV s/VQ== X-Gm-Message-State: AOAM531yw8uoZpzcnU7iGCB6eetwLtdi+CP1A6Svnxg51RdZgwMpgA9z WmSjOURmP3D294HnmUgv6PSdMA== X-Received: by 2002:a17:90a:f2c7:: with SMTP id gt7mr4669042pjb.204.1597856175023; Wed, 19 Aug 2020 09:56:15 -0700 (PDT) Received: from [192.168.1.182] ([66.219.217.173]) by smtp.gmail.com with ESMTPSA id w23sm25765910pgj.5.2020.08.19.09.56.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Aug 2020 09:56:14 -0700 (PDT) Subject: Re: [PATCH] block: convert tasklets to use new tasklet_setup() API To: Allen , James Bottomley Cc: Kees Cook , Allen Pais , jdike@addtoit.com, richard@nod.at, anton.ivanov@cambridgegreys.com, 3chas3@gmail.com, stefanr@s5r6.in-berlin.de, airlied@linux.ie, Daniel Vetter , sre@kernel.org, kys@microsoft.com, deller@gmx.de, dmitry.torokhov@gmail.com, jassisinghbrar@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, maximlevitsky@gmail.com, oakad@yahoo.com, Ulf Hansson , mporter@kernel.crashing.org, alex.bou9@gmail.com, broonie@kernel.org, martyn@welchs.me.uk, manohar.vanga@gmail.com, mitch@sfgoth.com, David Miller , Jakub Kicinski , linux-um@lists.infradead.org, linux-kernel@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, linux-block@vger.kernel.org, linux-arm-kernel@lists.infradead.org, openipmi-developer@lists.sourceforge.net, linux1394-devel@lists.sourceforge.net, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-hyperv@vger.kernel.org, linux-parisc@vger.kernel.org, linux-input@vger.kernel.org, linux-mmc@vger.kernel.org, linux-ntb@googlegroups.com, linux-s390@vger.kernel.org, linux-spi@vger.kernel.org, devel@driverdev.osuosl.org, Romain Perier References: <20200817091617.28119-1-allen.cryptic@gmail.com> <20200817091617.28119-2-allen.cryptic@gmail.com> <202008171228.29E6B3BB@keescook> <161b75f1-4e88-dcdf-42e8-b22504d7525c@kernel.dk> <202008171246.80287CDCA@keescook> <1597780833.3978.3.camel@HansenPartnership.com> <1597849185.3875.7.camel@HansenPartnership.com> From: Jens Axboe Message-ID: <2b1a5987-9b54-d63e-b3da-d3024505776c@kernel.dk> Date: Wed, 19 Aug 2020 10:56:08 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/19/20 9:24 AM, Allen wrote: >> [...] >>>> Since both threads seem to have petered out, let me suggest in >>>> kernel.h: >>>> >>>> #define cast_out(ptr, container, member) \ >>>> container_of(ptr, typeof(*container), member) >>>> >>>> It does what you want, the argument order is the same as >>>> container_of with the only difference being you name the containing >>>> structure instead of having to specify its type. >>> >>> Not to incessantly bike shed on the naming, but I don't like >>> cast_out, it's not very descriptive. And it has connotations of >>> getting rid of something, which isn't really true. >> >> Um, I thought it was exactly descriptive: you're casting to the outer >> container. I thought about following the C++ dynamic casting style, so >> out_cast(), but that seemed a bit pejorative. What about outer_cast()? >> >>> FWIW, I like the from_ part of the original naming, as it has some >>> clues as to what is being done here. Why not just from_container()? >>> That should immediately tell people what it does without having to >>> look up the implementation, even before this becomes a part of the >>> accepted coding norm. >> >> I'm not opposed to container_from() but it seems a little less >> descriptive than outer_cast() but I don't really care. I always have >> to look up container_of() when I'm using it so this would just be >> another macro of that type ... >> > > So far we have a few which have been suggested as replacement > for from_tasklet() > > - out_cast() or outer_cast() > - from_member(). > - container_from() or from_container() > > from_container() sounds fine, would trimming it a bit work? like from_cont(). I like container_from() the most, since it's the closest to contain_of() which is a well known idiom for years. The lines will already be shorter without the need to specify the struct, so don't like the idea of squeezing container into cont for any of them. For most people, cont is usually short for continue, not container. -- Jens Axboe