Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp4688939pxb; Tue, 5 Oct 2021 08:19:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWVWHbZFlsVwAm8kGJEPZu6e+i8R4LE93hYJRPDZn+r87Vl2UoKDKqvcI+mb8pVYkhe9bw X-Received: by 2002:a17:906:4f96:: with SMTP id o22mr25177456eju.169.1633447144437; Tue, 05 Oct 2021 08:19:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633447144; cv=none; d=google.com; s=arc-20160816; b=D49N/4g430hzIGfT5aoimRccFO0bjxJHmVUUax6aI/tncrrDzxVqN0EACo+CboK8nI CV80X4KnfbEcHAY89J/ibklAByQprDXYg6A9SzBr7JUbAVBHJ+1X4k5XwYJjyofcNlt8 iz1HWyvK1RSzor3okJWPnmazkNjdlfzbKzIXvte9Da2t5h6kJhW+XkgCQTSx4pDVEkRE 3SNZ0I/LFvbJmCHU+GyfI57pNJOfWzIC5UuhOt/neq4adRPY2w7PGmWmHmiE+Xr0jG3+ AtndqZhXcnB4UoSzoqsqW5q2PPgW3IbanhkwCrULw+Eenc31beY4TYQ86Z8RWXZbnPD3 1tzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:thread-index:thread-topic :content-transfer-encoding:mime-version:subject:references :in-reply-to:message-id:cc:to:from:date:dkim-signature:dkim-filter; bh=F2x+Hi5WGEvzSTS/iYSt+2Kq3IbtXMx7Ua5K43Tf+8Q=; b=JT8fT8hvh2ZYp5V0dafYFHLV5V0JzQrxpxB9JcMtZgR1VyR93GvWCFZsLfMRnMlA5j 17vwdFwtEQloySo0cjJu35sH+lIAMoX4xJuiX66hTeg0vKvOZlYd0xTfg+A1AfKYffYn 0XZDEfRohjh+axEVGvomPR82XNUUpHQJIGhPoSz51iQwS7CSXPzDSTiYIqU9kpAaqGdY fVbKlh1bAdgnKJVlyC4eE9YSBaEB1RMcwbAzxtP2wBTIgfsWuFvujLHZNn/WapsXRg4F WC4ogd4YwJQs6d4+E2Mob48OCSDQkFx7lsPW3EU5QW11VPSsQNpoRfRVkAhyn8vvjMXh vWsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@efficios.com header.s=default header.b=fWZyv80H; 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=NONE dis=NONE) header.from=efficios.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j3si25985884ejj.448.2021.10.05.08.18.27; Tue, 05 Oct 2021 08:19:04 -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=@efficios.com header.s=default header.b=fWZyv80H; 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=NONE dis=NONE) header.from=efficios.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234282AbhJEPRF (ORCPT + 99 others); Tue, 5 Oct 2021 11:17:05 -0400 Received: from mail.efficios.com ([167.114.26.124]:55550 "EHLO mail.efficios.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231513AbhJEPRE (ORCPT ); Tue, 5 Oct 2021 11:17:04 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id EE21B38D87B; Tue, 5 Oct 2021 11:15:12 -0400 (EDT) Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id kZ6Ruhz5_vwz; Tue, 5 Oct 2021 11:15:12 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id 771A738DEA5; Tue, 5 Oct 2021 11:15:12 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.efficios.com 771A738DEA5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=default; t=1633446912; bh=F2x+Hi5WGEvzSTS/iYSt+2Kq3IbtXMx7Ua5K43Tf+8Q=; h=Date:From:To:Message-ID:MIME-Version; b=fWZyv80Hc57O72INVh6dzebvppxNTTpSCWD6RX6UcVz0TCIG7KNJFBruatsJlbExw a8m1LH2syppBinNohKsGX7Let/OXR1df6ma27SCVmH/cJOlyEpjOnjXwgezNfnyBtT Ysfzbmm+lo0m6osH+K1EFWYLctbOmd5Blockkwo7Y10QWtKV+RwuP+99Djm81eXW80 KKtj5gqs35x3yuV0hBt3DwAHpdU+xi2TuYGECth+9gfop5OvVk2mBE8x9LiSpqNf43 YxLhniS72qCXG3Dxuv3pvMVdS43CxGasiiw7HWsLrHsg5K6ejL9ZnYlk9EpHxqrs7h h/K7AP6Vrbjjg== X-Virus-Scanned: amavisd-new at efficios.com Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id tJJJRKMZDi4F; Tue, 5 Oct 2021 11:15:12 -0400 (EDT) Received: from mail03.efficios.com (mail03.efficios.com [167.114.26.124]) by mail.efficios.com (Postfix) with ESMTP id 5A3A838DE3F; Tue, 5 Oct 2021 11:15:12 -0400 (EDT) Date: Tue, 5 Oct 2021 11:15:12 -0400 (EDT) From: Mathieu Desnoyers To: rostedt Cc: linux-kernel , Linus Torvalds , Paul , Josh Triplett , Lai Jiangshan , "Joel Fernandes, Google" , Pablo Neira Ayuso , Jozsef Kadlecsik , Florian Westphal , "David S. Miller" , Hideaki YOSHIFUJI , David Ahern , Jakub Kicinski , rcu , netfilter-devel , coreteam@netfilter.org, netdev Message-ID: <505004021.2637.1633446912223.JavaMail.zimbra@efficios.com> In-Reply-To: <20211005094728.203ecef2@gandalf.local.home> References: <20211005094728.203ecef2@gandalf.local.home> Subject: Re: [RFC][PATCH] rcu: Use typeof(p) instead of typeof(*p) * MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [167.114.26.124] X-Mailer: Zimbra 8.8.15_GA_4156 (ZimbraWebClient - FF92 (Linux)/8.8.15_GA_4156) Thread-Topic: Use typeof(p) instead of typeof(*p) * Thread-Index: 7dSlbpn4ImaK0wI9+IMWa3C1UuJxjA== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ----- On Oct 5, 2021, at 9:47 AM, rostedt rostedt@goodmis.org wrote: [...] > #define rcu_dereference_raw(p) \ > ({ \ > /* Dependency order vs. p above. */ \ > typeof(p) ________p1 = READ_ONCE(p); \ > - ((typeof(*p) __force __kernel *)(________p1)); \ > + ((typeof(p) __force __kernel)(________p1)); \ > }) AFAIU doing so removes validation that @p is indeed a pointer, so a user might mistakenly try to use rcu_dereference() on an integer, and get away with it. I'm not sure we want to loosen this check. I wonder if there might be another way to achieve the same check without requiring the structure to be declared, e.g. with __builtin_types_compatible_p ? Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com