Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp4129143rwb; Mon, 31 Jul 2023 01:38:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlH0/BU0N9FZTfdmSxqEM5DG4BfZHtp3v/Anye+hgxp/+vEYhcHFsBRTNsHOG0rZetlP9Ctg X-Received: by 2002:a2e:86c8:0:b0:2b9:4805:a039 with SMTP id n8-20020a2e86c8000000b002b94805a039mr5220267ljj.51.1690792728821; Mon, 31 Jul 2023 01:38:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690792728; cv=none; d=google.com; s=arc-20160816; b=z9atc4CkeEr0R/SkbNffzbmvyT9UGHmsrO5Yh0I/B3ggnRlB2YgyB7KIhSAGxcgTwq S5VfDFLy8F1WZTOy3i8XukT3U1fd2IViyMsUjVtpvursiOCoYMTtJaPqr6J0sD5v9utX Pg/86GFejd3Anqqtn83n8+sNTz2quT/+PfBPf7YKVeF0JC9UH6Pau02we4OYrUJXM0ER DMkNzDFyt/PwCwb7TcqZqHvvt+KYEMN0d6kgwehjTRIVrDssQZiqXeqNHAMC/+A3pVn6 z+vwlIru0U1kgnYBupKkyLKnTu07B0e0Wpvx8rv4bXpK0I58AU4dDvBT+tmQhgHSYICV GQAA== 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-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=1lcqkPyNuGvb+x3SXfQDkaOxh3KnSlIJc1HaZt8923Q=; fh=SPoY4avxhZKO9+pY/QEZn3U18bFD7xR02NxDKoRDVG4=; b=Kyb2HPzoL/UjY4bcUS69BaAEI9HEwD5v7gZWj96uVjA2JwoEi2G5bMZk8IpCN5JKlh 9ZNLelOc8xsNjtY5KFixVlQmjEUl8lKXjqDfi5qfN3RXJOPb/sQFHcvip+5M/mOIIN+t GfYWkf3HFVNDmkz3acbAxhCIRx0h9LijqUrmyW3zC84pWAnRBeWQghwUAsJL1Oyka+01 BOlxx6vVimXwJwVajEtlr0/IjzQUeFxfRE+xC+rU87/O5JcjkeD7FFroO26iIF844Jt8 GC1PNfjBosSJq7Sd775UghJkwRTT587NkEzHfHEn1aaFYmnIVWR1fa1oJUBKf6Zf9yTT wq9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=HjjDW8EI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y9-20020a17090668c900b0098884f86e43si6769236ejr.1053.2023.07.31.01.38.23; Mon, 31 Jul 2023 01:38:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=HjjDW8EI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231611AbjGaIVu (ORCPT + 99 others); Mon, 31 Jul 2023 04:21:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39576 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231455AbjGaIVU (ORCPT ); Mon, 31 Jul 2023 04:21:20 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC0A0FA for ; Mon, 31 Jul 2023 01:20:42 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id 8073A1F45F; Mon, 31 Jul 2023 08:20:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1690791641; h=from:from:reply-to: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=1lcqkPyNuGvb+x3SXfQDkaOxh3KnSlIJc1HaZt8923Q=; b=HjjDW8EIxdfZHArVLsCu1zI481/CkE0IKDgKG/j5prhI35M9o3U17rAB2XB8cagxO8Rrrw IJj8A/v/PsHFR5jswJbXzWgGmaFfZHYwUJXZCdfPFQOtb+LHqtX82uzd1XDfH0rWc0QxsU vAl2q/5nmxXdgqyp/TRnNuxepqF9p4g= Received: from suse.cz (pmladek.udp.ovpn2.prg.suse.de [10.100.201.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 0F4EF2C142; Mon, 31 Jul 2023 08:20:41 +0000 (UTC) Date: Mon, 31 Jul 2023 10:20:37 +0200 From: Petr Mladek To: Tejun Heo Cc: Linus Torvalds , Dave Airlie , Arnd Bergmann , LKML Subject: Re: arm32 build warnings in workqueue.c Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 On Fri 2023-06-23 09:47:56, Tejun Heo wrote: > Hello, > > On Fri, Jun 23, 2023 at 11:24:16AM -0700, Linus Torvalds wrote: > ... > > enum { > > [..] > > WORK_STRUCT_FLAG_BITS = WORK_STRUCT_COLOR_SHIFT + > > WORK_STRUCT_COLOR_BITS, > > [..] > > WORK_STRUCT_FLAG_MASK = (1UL << WORK_STRUCT_FLAG_BITS) - 1, > > WORK_STRUCT_WQ_DATA_MASK = ~WORK_STRUCT_FLAG_MASK, > > } > > > > Anyway, that code absolutely has to be fixed. Using enums for types is > > wrong, wrong, wrong. You should consider an enum to be a weakly typed > > integer expression with some specific advantages (the automatic > > incrementing at definition time, and the compiler being able to limit > > ranges in switch() statements and maybe doing limited type warnings > > elsewhere) > > The only benefit I care about is it being visible in the type system and > thus in debug info whether that's the usual one or BTF. This makes a huge > difference in tracing, monitoring and debugging. For one off's, it's fine to > track down the define values. For something more sophisticated (e.g. > non-trivial drgn, bcc and other BPF programs), the macro constants are a > source of sadness and a really dumb and insidious one. Would it help to use const variables? > > +/* Convenience constants - of type 'unsigned long', not 'enum'! */ > > +#define WORK_OFFQ_CANCELING (1ul << __WORK_OFFQ_CANCELING) static const WORK_OFFQ_CANCELING = 1ul << __WORK_OFFQ_CANCELING; It is kind of nasty as well. But it defines the right type and should be visible in debuginfo. Well, it is usable only for local variables. Best Regards, Petr