Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp5033625ybb; Tue, 24 Mar 2020 09:43:18 -0700 (PDT) X-Google-Smtp-Source: ADFU+vucNQklJZ9HCP4uuZUAp+LgowALIFZh2RiGfPKPZ5w18wg5T+j7eDQVL9+rL3e1/QISbFSf X-Received: by 2002:a9d:2c01:: with SMTP id f1mr13313766otb.67.1585068197987; Tue, 24 Mar 2020 09:43:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585068197; cv=none; d=google.com; s=arc-20160816; b=y2Kuo5lja7wRmcsXhaOAETeHBSH1wKazhvMZXVXeEREDK4ppmmddJY5xZHM24mRFcV zv7O+SCnU4L7VxLa+e47n9IcwQg/Jlt3OhXrbwpi7HxGvlnurKGtCE+85p/i0Zyz/orp 2bchBKRbj60klxF7pe0f7w77GSS/vAU0mXqNtL0bUp+g6dqKiIhK8k9gCUqvV5ucTz75 XRE3ncBM7rjn3Vew0QwePr+VHCPi0LjJkbIFm1bWmLI2up/Kiod5huX2EyFZwj7rSRXs Uzz6IqYE0v0F+pk5JRGLQaBuRzQKgQGW4aG9U9TUkWRU0gwTw58FlUCZ9e7rNrZJDymT F5pg== 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:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=XEAcgrtzlQ0nzsuAIOz6lRZnZyzpLkzKdjSUsUmbaiY=; b=dx2bMkdTdEXTWtCe6BDL3mzaNkUoIBTsk7/FrWpqN8gXe6zXP495aL75LL50IJJanc crbrzj8phY+BpyoAc+M8mIvSjeU+TGXHWwe5Air7YKNF2epXmmzv/vJNUuquarWPuEU8 QhGgGvyhVo4TjlSJepYUaAW264OVMRzOSaEa12kFhAl7KVBKbVuDoeM1QaOZCwvcRLKe 9tz3MFHGDmxLBXWSxbSn1ZDBMsQc3EbPUtyGSHEmdlTcpWaXkWo0yTqEmdY2SsCV7lDR +G2h5JOf8CYLq5tvKePxewRi1nsF6Go5Ji9Z5IOS4ujzFbiJXG5mkbjTJ12hSW8MWnCr WNOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b="DyaeVbt/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w9si2008118oti.216.2020.03.24.09.43.05; Tue, 24 Mar 2020 09:43:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b="DyaeVbt/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727907AbgCXQlZ (ORCPT + 99 others); Tue, 24 Mar 2020 12:41:25 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:40949 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725767AbgCXQlY (ORCPT ); Tue, 24 Mar 2020 12:41:24 -0400 Received: by mail-ed1-f67.google.com with SMTP id w26so15126670edu.7 for ; Tue, 24 Mar 2020 09:41:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=XEAcgrtzlQ0nzsuAIOz6lRZnZyzpLkzKdjSUsUmbaiY=; b=DyaeVbt/mnGOvxpYTVSUTvxDPVQYVS3x1eaUPvsh7Rnx3FOM/j8k6No0xzupqKHlBl grkrG08s2C8Y2S6RpApRxXhiSNAT115kCoNJQmXFlNcT27zq7jafr0hzEJ1L4puKWJWF n5mHXzOpLZGae3EMG6VJK7HG0w8XHQ66cfXo4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=XEAcgrtzlQ0nzsuAIOz6lRZnZyzpLkzKdjSUsUmbaiY=; b=MMsdo1H8SJINLzkjDiZ8A0lrD3E6Gs7yUrGy+pxKqSa6qXnpTLWGkac6QiIo8tvjYI Nf8Hz2TVrxi93c6VMAc4opt9BhL8TWgL+BnjTapcwr3CeZ4MrykZ27M1odRSG1Flrrxc ij0f9Cxw9+OVwo7EcGFxyfpimM0qj/8hsOKZ/CKUQsVpcLW3a4mEga6uMIqkeUMjggZe D/2F09A1RNCfJq+NTDJpBS0kBSa0VHrdeW4ekQzQYdrfWZUok87QBzNwAMbhytnameJ0 FFsOd28FlIJHYBg96F9uzUs3xsVFJ/vpmZlRQzUdWzEDZooq7WwvZsxoas/oZK5XeD4f /CUg== X-Gm-Message-State: ANhLgQ0O5UG1VXq2U89r+Y4w3R/6LJ7WSRj61VABKg7FdZQQoyMijapO y8GD6EfWNs6KOrhZMY86t/0BpUFNQVo= X-Received: by 2002:a50:f383:: with SMTP id g3mr4367772edm.316.1585068082741; Tue, 24 Mar 2020 09:41:22 -0700 (PDT) Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com. [209.85.208.45]) by smtp.gmail.com with ESMTPSA id t13sm1399435edw.49.2020.03.24.09.41.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 24 Mar 2020 09:41:22 -0700 (PDT) Received: by mail-ed1-f45.google.com with SMTP id i24so21504844eds.1 for ; Tue, 24 Mar 2020 09:41:22 -0700 (PDT) X-Received: by 2002:a05:651c:50e:: with SMTP id o14mr17538229ljp.241.1585067617805; Tue, 24 Mar 2020 09:33:37 -0700 (PDT) MIME-Version: 1.0 References: <86D80EA7-9087-4042-8119-12DD5FCEAA87@amacapital.net> In-Reply-To: <86D80EA7-9087-4042-8119-12DD5FCEAA87@amacapital.net> From: Linus Torvalds Date: Tue, 24 Mar 2020 09:33:21 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RESEND][PATCH v3 14/17] static_call: Add static_cond_call() To: Andy Lutomirski Cc: Peter Zijlstra , "the arch/x86 maintainers" , Linux Kernel Mailing List , Steven Rostedt , Masami Hiramatsu , Daniel Bristot de Oliveira , Jason Baron , Thomas Gleixner , Ingo Molnar , Nadav Amit , Peter Anvin , Andrew Lutomirski , Ard Biesheuvel , Josh Poimboeuf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 24, 2020 at 9:22 AM Andy Lutomirski wrote= : > > I haven=E2=80=99t checked if static calls currently support return values= , but > the conditional case only makes sense for functions that return void. > > Aside from that, it might be nice for passing NULL in to warn or bug > when the NULL pointer is stored instead of silently NOPping out the > call in cases where having a real implementation isn=E2=80=99t optional. Both good points. I take back my question. And it aside from warning about passing in NULL then it doesn't work, I wonder if we could warn - at build time - when then using the COND version with a function that doesn't return void? Of course, one alternative is to just say "instead of using NOP, use 'xorl %eax,%eax'", and then we'd have the rule that a NULL conditional function returns zero (or NULL). I _think_ a "xorl %eax,%eax ; retq" is just three bytes and would fit in the tailcall slot too. Linus