Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp615976ybv; Thu, 13 Feb 2020 06:37:49 -0800 (PST) X-Google-Smtp-Source: APXvYqyAh4mth0ubWXXMzOZpPQshc8WDMQ7UX7sWIhAXsoHK+DXzZ5Kv765dvvVuXXsLF7F/p3d/ X-Received: by 2002:a9d:7602:: with SMTP id k2mr13713370otl.39.1581604669457; Thu, 13 Feb 2020 06:37:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581604669; cv=none; d=google.com; s=arc-20160816; b=j0FcZMqOL2asD7bXuhi553oTds6AuHfLUILSg9MDW89Gd+WhShwRJo31RHJSPKrb1m QRhD2lAp7Wz3ZejPU5NW4cONT/yhjF/FGs1HSTfF5kA+tGXTAbqe5EUMzSGHACsOAB5j A24CFRZnxeUUjQ9coDhfAWkaqvPkErvNhgEOCq87EzHdfSVf3ROdxcIwxomlT8GlXcnx Ft3sQfggAQ/J19dhDlbookM7nT9dpGY1w43V3KUms36cjstqvvV6wx52JYL2HJssf7wN a79Kud8vHjNEA6c/pPOzriY1e9wnA5AUhz1t+VIyVe6CtNE/MP9Gfu6dHekXtg8r2xwZ e2Ww== 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:mime-version :message-id:date:references:organization:in-reply-to:subject:cc:to :from; bh=FfYzD4Qq8oC29F8cad33te79ErnzAvHOI0qmQdMuHaM=; b=z9D5tP6Lu8+yjfwK+CSgJn8Mv8j27qzQYCB9NQ/KpdNQShPZfRTOKSYK5oHTeVT9QV I3zPsfwmND3xdVZqtsGDYxz630ZfvQce8+0WDuWn3mj5haBY7D4yAy25qkAB0T3T70AW whNnceWS6pKs+kyQnKBgZwTa+prQjFmwbHCAi+ZT9ecdrlFS9IqUYWeiXqKb0mBbuosd zrkLW45BZkjRqJjkO4mvZzPeZNNYZadRcII4XYGhPhyCBdblWFIRQ/Ugxa1XD5BNj5BE C/+4l6zjmrSxAXnSfz1UPryvpZxQZq6If7TzEYlYYv3137ovGPUumHRBMdizM13vACPt u29g== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x20si1201062oix.155.2020.02.13.06.37.37; Thu, 13 Feb 2020 06:37:49 -0800 (PST) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727347AbgBMOhW convert rfc822-to-8bit (ORCPT + 99 others); Thu, 13 Feb 2020 09:37:22 -0500 Received: from mga11.intel.com ([192.55.52.93]:21000 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726282AbgBMOhW (ORCPT ); Thu, 13 Feb 2020 09:37:22 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2020 06:37:21 -0800 X-IronPort-AV: E=Sophos;i="5.70,437,1574150400"; d="scan'208";a="227248670" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2020 06:37:18 -0800 From: Jani Nikula To: Michel =?utf-8?Q?D=C3=A4nzer?= , Nathan Chancellor Cc: clang-built-linux@googlegroups.com, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wtautological-constant-out-of-range-compare In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20200211050808.29463-1-natechancellor@gmail.com> <20200211061338.23666-1-natechancellor@gmail.com> <4c806435-f32d-1559-9563-ffe3fa69f0d1@daenzer.net> <20200211203935.GA16176@ubuntu-m2-xlarge-x86> <20200212170734.GA16396@ubuntu-m2-xlarge-x86> Date: Thu, 13 Feb 2020 16:37:15 +0200 Message-ID: <877e0qy2n8.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 12 Feb 2020, Michel Dänzer wrote: > On 2020-02-12 6:07 p.m., Nathan Chancellor wrote: >> On Wed, Feb 12, 2020 at 09:52:52AM +0100, Michel Dänzer wrote: >>> On 2020-02-11 9:39 p.m., Nathan Chancellor wrote: >>>> On Tue, Feb 11, 2020 at 10:41:48AM +0100, Michel Dänzer wrote: >>>>> On 2020-02-11 7:13 a.m., Nathan Chancellor wrote: >>>>>> A recent commit in clang added -Wtautological-compare to -Wall, which is >>>>>> enabled for i915 so we see the following warning: >>>>>> >>>>>> ../drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:1485:22: warning: >>>>>> result of comparison of constant 576460752303423487 with expression of >>>>>> type 'unsigned int' is always false >>>>>> [-Wtautological-constant-out-of-range-compare] >>>>>> if (unlikely(remain > N_RELOC(ULONG_MAX))) >>>>>> ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ >>>>>> >>>>>> This warning only happens on x86_64 but that check is relevant for >>>>>> 32-bit x86 so we cannot remove it. >>>>> >>>>> That's suprising. AFAICT N_RELOC(ULONG_MAX) works out to the same value >>>>> in both cases, and remain is a 32-bit value in both cases. How can it be >>>>> larger than N_RELOC(ULONG_MAX) on 32-bit (but not on 64-bit)? >>>>> >>>> >>>> Hi Michel, >>>> >>>> Can't this condition be true when UINT_MAX == ULONG_MAX? >>> >>> Oh, right, I think I was wrongly thinking long had 64 bits even on 32-bit. >>> >>> >>> Anyway, this suggests a possible better solution: >>> >>> #if UINT_MAX == ULONG_MAX >>> if (unlikely(remain > N_RELOC(ULONG_MAX))) >>> return -EINVAL; >>> #endif >>> >>> >>> Or if that can't be used for some reason, something like >>> >>> if (unlikely((unsigned long)remain > N_RELOC(ULONG_MAX))) >>> return -EINVAL; >>> >>> should silence the warning. >> >> I do like this one better than the former. > > FWIW, one downside of this one compared to all alternatives (presumably) > is that it might end up generating actual code even on 64-bit, which > always ends up skipping the return. I like this better than the UINT_MAX == ULONG_MAX comparison because that creates a dependency on the type of remain. Then again, a sufficiently clever compiler could see through the cast, and flag the warning anyway... BR, Jani. -- Jani Nikula, Intel Open Source Graphics Center