Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp972781rdb; Tue, 19 Sep 2023 16:36:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH2kE71HuTEUJRlYny1+FkwGFAFyTSj/51iHR+CCAxbE+aWBFy6Y6d3FAoyZzYXp4PVGhsA X-Received: by 2002:a17:902:82c3:b0:1c3:f745:1cd5 with SMTP id u3-20020a17090282c300b001c3f7451cd5mr835297plz.34.1695166565463; Tue, 19 Sep 2023 16:36:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695166565; cv=none; d=google.com; s=arc-20160816; b=QXn/rDDzsSeKYKKQrkTqRn8bb3l12isz+SSRuyg5TCNhYpk9ykOuKzyz/TuHUKI9h3 GjPCoVge7stgByN08xXGJ2K8y0FhCYpG27EQYZmmOwgVCGOjqTZNJjefgAVskJx1nV+r r06T+LU5ACvHt4xPG8X8/KZhKKBMW8oEcKprNz/Nzs61KizYQXlhnPVzgLKmayP2Hl0R h2L6ulC6pn4EQ/LPlwU8c3J+8SDPkzLD/IJLIy7u2dVqRKk+a9EgIJjsZ+OlLvoDTpaJ qCPkrd4pJDbBOwM6X0d89oFkphWxluCsu22386UvIZ0M3fGma92wTLKJFoxVcCaBPk+K YHHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=oaZuXVH/yWX2HfqC1wT9oG9U7tC9Fe66Kju6+PemjNE=; fh=YGNClMwMdPQkL8kLDG/7GHKz9QSCUguv5C97ppkvZ3E=; b=rP1Gz8RlA+qTkjsh/EVMv7MEHwfn5FdPp+QKaQ6bbhJlHOOh1SRSnA2NYxzJiyTZpa wEXwNvsfviDMAngAXopT8Focwpn5WbjaFJosqrm0I7Ec7NchM+YECfQMwgfa7zfRztVR CcuThQa0UYQnn5A2tkhZHVq1KazdFx1tvICYpYgLFOyYHLJo1R7AdOuceb5VV604H00R xYZUnteoe8h2xom86g5dH3olj+e2nWiheA5Gg+4xkrGBMiflK4CMnt2fImrxt9ouE3ls Xpnbq+LKuZutASqzqeHi8u8vhqlHo0zrD/XEVtxpfLtO0oJF0HJYVNkM5payOrU8fiDq yDww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=hxH2gWis; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id kg4-20020a170903060400b001c1e1fe16c7si10393027plb.236.2023.09.19.16.36.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Sep 2023 16:36:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=hxH2gWis; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 0E5BE817C3D5; Tue, 19 Sep 2023 12:51:24 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233001AbjISTvV (ORCPT + 99 others); Tue, 19 Sep 2023 15:51:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60824 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232036AbjISTvU (ORCPT ); Tue, 19 Sep 2023 15:51:20 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA3DC8F; Tue, 19 Sep 2023 12:51:14 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1695153073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oaZuXVH/yWX2HfqC1wT9oG9U7tC9Fe66Kju6+PemjNE=; b=hxH2gWis1h/G6X0KO8PF1cKbP5Ze7IroBs9DlpFMtSTvzIYmZjfGN7d9zGW1rW5aVG5yui nH28E1NuEVBsVNK/+KKe/0gXSEYzFyjvqC8pz+ruKv9q2uqUfIvqG6ItSvoUeFbMkwogfc nnIavRTX8yo7aflQ9wBxDuv6XOnHTSURJQOAh2mDP6Fn5lmlIs22t2YJynb2cl4jLYtoeD i3WzP36kzThI2KBbQDbIcjVYqmMrURmG2r0rZznxyUbTgSlVGGzAKchPM9pgILz6KAUs+j e0Wu9ccdMXdpgT2DJXifCQTEJ//D9t6q/1VRN6lmWIPVI3yKNH8CSMejDAPOuA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1695153073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oaZuXVH/yWX2HfqC1wT9oG9U7tC9Fe66Kju6+PemjNE=; b=v7iZwIgVAXht5h0chh0hokvJsE5IDEj70BLcZ5t7baL2FwOEj3NfsQicLMFBYOO48Nv2Hp Lzfn7jTNZtHxDfCA== To: Petr Mladek , John Ogness Cc: Greg Kroah-Hartman , Jiri Slaby , linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH tty v1 01/74] serial: core: Provide port lock wrappers In-Reply-To: References: <20230914183831.587273-1-john.ogness@linutronix.de> <20230914183831.587273-2-john.ogness@linutronix.de> Date: Tue, 19 Sep 2023 21:51:12 +0200 Message-ID: <87msxiuekv.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 19 Sep 2023 12:51:24 -0700 (PDT) On Tue, Sep 19 2023 at 16:24, Petr Mladek wrote: > On Thu 2023-09-14 20:43:18, John Ogness wrote: > IMHO, it would have been better to pass the flags variable directly > via a macro as it is done in most *_lock_*_irqsafe() APIs. I mean > something like: > > /** > * uart_port_trylock_irqsave - Try to lock the UART port, save and disable interrupts > * @up: Pointer to UART port structure > * @flags: Interrupt flags storage > * > * Returns: True if lock was acquired, false otherwise > */ > #define uart_port_lock_irqsave(up, flags) \ > ({ \ > local_irq_save(flags); \ > uart_port_lock(lock) \ > }) It's worse. 1) Macros are not type safe by themself and rely on type safety of the inner workings. 2) Macros are bad for grep as you can't search for a 'struct foo *' argument. Even semantic parsers have their problems with macro constructs. I just learned that again when doing this. 3) Macros are just horrible to read 4) If you want to out of line the wrapper later, then you still have to keep the macro around because the 'flags' argument is by value and not a pointer. From a code generation point of view it's completely irrelevant whether you have a macro or an inline. That was different 25 years ago, but who cares about museum compilers today. Thanks, tglx