Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp755503pxp; Fri, 11 Mar 2022 14:16:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxsv92dhPokRMqu4Dsk42tuiuJuMCTyhEp3LzptaLEHB2BZ+F1UFkbfPOV1Df/sYgS8I2HX X-Received: by 2002:a62:7981:0:b0:4f7:9e4:96e4 with SMTP id u123-20020a627981000000b004f709e496e4mr12519823pfc.4.1647036991642; Fri, 11 Mar 2022 14:16:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647036991; cv=none; d=google.com; s=arc-20160816; b=S5qe3f18sk0zUvOfa4PxiFDaTQ0EuiPUqghdxAb9x4MFTSza00uf9fccdRYHRtqOZS UAXfPJYnIP2ljQzVZjwAiOhZ0ZdvT8mt4GlqA2VuL1UOLK8/4abr6cmnV7xQMLoogMYj kmLU9jiKKPdDHMRHBEV7Y2kvbuspWKpNRyVnzENWZm+EmDaxfq6O+5fQMd43t641ezx5 OE5gUkxAf5OVVzw2x8iWMEfkKYVBak1i/C/F1ZnrwttR1UT2TS9b3fwgFXIf8a2Y83r7 si10icqtVbByoY7ks+7EjUl+n7zeDp7lxtA3qkYeHaGQb/8rizvQKTq7eFb7bG8OXLna 9k7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:message-id:subject:cc:to:from:date :dkim-signature; bh=BnDuCQ+xx4WQXXGGWLTGM5BBfXfHyLhqd1oAJUJ6xdU=; b=vLv8Bylps/USc8hiy/HSfLh7qVZDGIhz9bqcfr6oPUdlnGLf+Ab3i+xCzMgB1aZ/+Q 9fAZfBVadQ/3I5GQshXmY+IMWgqBvgLN/pCgixqCTNMvr4gQT4daIaV0lVXu47I84y5t 38nyl0t560CS6BT4zIuQ8SuXLcJC3JDwblxgBguXEsT6nj5nrJ+9/F1kAG48BS2UcLIZ QD9I3CzvqEeHj3Ob5I7AAt1HiSbE/Rp3fKwaynEAyOfPGM2e86D8Wdkqf5QJSABcyGc0 V3tNNAEoUfdbUGrqDSCUGOROLJsrJml6ILGw5s4RHiJmviFWcn8X+U52K8JyAcIeBpRD IDeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rere.qmqm.pl header.s=1 header.b=kIyR5n+l; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=rere.qmqm.pl Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id d4-20020a636804000000b003811b993fd3si1212723pgc.681.2022.03.11.14.16.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Mar 2022 14:16:31 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@rere.qmqm.pl header.s=1 header.b=kIyR5n+l; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=rere.qmqm.pl Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5372D23067F; Fri, 11 Mar 2022 13:26:00 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345140AbiCKABA (ORCPT + 99 others); Thu, 10 Mar 2022 19:01:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345131AbiCKAAy (ORCPT ); Thu, 10 Mar 2022 19:00:54 -0500 X-Greylist: delayed 339 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Thu, 10 Mar 2022 15:59:45 PST Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2621EE02C9; Thu, 10 Mar 2022 15:59:44 -0800 (PST) Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 4KF5WG2Pswz9q; Fri, 11 Mar 2022 00:54:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1646956443; bh=ZbM+uUpW63IdB++IxqwwUYhFJXACQMMNBE9FAmZwinc=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=kIyR5n+l/hAW3FQWdIPuou+eqg0mMW5LgNePzkqwxnwkrJSckG4TPJkGwK1xSrTjW 2d7SnTGSBkjBE5DCFm3+w5fAS33HffsMih9f+Lb6ETSfCSgi0Ri/lg/pbftAkVQwxB WsQpEtxuqsoaD+7Doj4Cpa9GnOl51kFUF57MI6fKEcXcRZ8JOopXSoFMkuaBhHKVud MUxq1sXw2E644SG6lRrCHSjzVYjr5bgwSklrSF4o1zY4BVEz6d1G0EJbMH3L9ZmFqh 6s8x/e6xDV79LFHZGarq9eGUTUQPv8u+1OTFAaZ7dtmOMXIvXmBUurzi/xoy2rtkFw CnuvwD5HSkSYw== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.5 at mail Date: Fri, 11 Mar 2022 00:54:00 +0100 From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= To: Linus Torvalds Cc: Xiaomeng Tong , Arnd Bergmann , Greg Kroah-Hartman , Jakob Koschel , Jann Horn , Kees Cook , Linux Kbuild mailing list , Linux Kernel Mailing List , Linux-MM , Netdev Subject: Re: [PATCH 2/6] list: add new MACROs to make iterator invisiable Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Linus, If the macro implementation doesn't have to be pretty, maybe it could go a step further and remember the list_head's offset? That would look something like following (expanding on your patch; not compile tested): #define list_traversal_head(type,name,target_member) \ union { \ struct list_head name; \ type *name##_traversal_type; \ char (*name##_list_head_offset)[offsetof(type, target_member)]; \ } #define list_traversal_entry(ptr, head) \ (typeof(*head##_traversal_type))((void *)ptr - sizeof(**head##_list_head_offset)) #define list_traversal_entry_head(ptr, head) \ (struct list_head *)((void *)ptr + sizeof(**head##_list_head_offset)) #define list_traversal_entry_is_head(ptr, head) \ (list_traversal_entry_head(ptr, head) == (head)) #define list_traversal_next_entry(ptr, head) \ list_traversal_entry(list_traversal_entry_head(ptr, head)->next) #define list_traverse(pos, head) \ for (typeof(*head##_traversal_type) pos = list_traversal_entry((head)->next); \ !list_traversal_entry_head(pos, head) == (head); \ pos = list_traversal_next_entry(pos, head)) [Sorry for lack of citations - I found the thread via https://lwn.net/Articles/887097/] -- Micha? Miros?aw