Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp877514pxj; Fri, 14 May 2021 19:30:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzJyKa8ZAH4MvJe374T26w6AZ4SiTB+IDkyIH/IdDN1OjI7fVV1SYDv3O5bjUieF/Y5ifD X-Received: by 2002:a17:906:4d02:: with SMTP id r2mr50870734eju.464.1621045839358; Fri, 14 May 2021 19:30:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621045839; cv=none; d=google.com; s=arc-20160816; b=ywUWKjYsVhOeuQxSJd06YadFF7OAidb2ZGxw3ZBmJozbDf5Qmd/zy4zAZ4SaXzErW7 9cwJlsnU0ymGkndbId8LjKx4J0Sw2oz7HJNrvX/JNbD1XmLqWcwfAIxqXXaFYJBihbpN 5fFu2++7EPVOCdSLmsSB8cMODS6JszfzE3arUHzffnwdmB0r20nWMR7rejbYzHlQDzov bUwvhGfkShnWKC1IAHHrMXL+iaUv2feKSYzQAF8rHZUQGnYfGQagrU5Z+ubECFxnUIq5 3cd8/GP6iYOs3uUllh5VKzRBMvUB0fw875l9B2/Q0nwYJ4zrZwDSZrxV9lzK+ERTIq1H 6LTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=61B9WevOpoQNzFK6pLWh/9kRzelEclfMSAISHfMU93Y=; b=pJelDj3TGynvOj0tW+W6eJ8S7H9MLPlmyxMjQ8+CHl5fZnQsS4xRchH0RP8zEDwsCR voEGpMoSuD7E8dv4GHx+pzV1uiutyGiCbwgaM9h5LKXihTaqVAG6L9RUP1Evnpsmxjj7 HDsKPkWd7jMAmHuTb/Gk7EW5p8+Y7mso0MDEplujIqCt2Bj17FwKBbQnCH00Ci9E9GsX JQYNzLfLxTm44khVOJog+1JA3DgyV4P+B5ghXe8F2ewSQ2Olg1ubwqkpfNJzqJkb28HP rDDx4kgoYZABTubBESK3F8E4KS+BwdzHvOjVwDffq2wBUmPVKPYhVuDVVuwpkLTerM/P RM/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RNmz0J1a; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rs6si5445353ejb.266.2021.05.14.19.30.15; Fri, 14 May 2021 19:30:39 -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=@gmail.com header.s=20161025 header.b=RNmz0J1a; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232383AbhENV5s (ORCPT + 99 others); Fri, 14 May 2021 17:57:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39774 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229942AbhENV5r (ORCPT ); Fri, 14 May 2021 17:57:47 -0400 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0ABBBC06174A; Fri, 14 May 2021 14:56:34 -0700 (PDT) Received: by mail-ed1-x52a.google.com with SMTP id df21so197557edb.3; Fri, 14 May 2021 14:56:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=61B9WevOpoQNzFK6pLWh/9kRzelEclfMSAISHfMU93Y=; b=RNmz0J1aLaw8+M7+c0F7byA0Y4WlTDkH0/GVNq2A2Dcl+2DeFi+G/+OMM0BmVHFnKY B6SHXMfoOkj2fT144kQMOmuRYumhpWpohYe0rfxh7mhuFrAwfTPHgcu2l2dzrrE8NvJh Pyw6/fhUwH+s7nnvCVFOUfVawcw1p370VQE1ddLdi1lySoEies2jRVZopAvnQ0HzI1Fx B8kfmr9/H7LkWyJSdKZq5B1/KAiEKYkCsZ53YpJpojnkqMfmZul6YGXR4/xSc4YEkfRI 7fN2b226XTAtJlDDWPPjwZfdwG44yl7Y/8ihzf08V+3C+0qJeWSQDVxD0hbMJ8615sNZ IEzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=61B9WevOpoQNzFK6pLWh/9kRzelEclfMSAISHfMU93Y=; b=c54TOzAIS67uetgWwsiTjkQ0le2WItMSC7VLEYlPqTUE3g/r6b0DpIasAZPaEvDV3y 5pugV9eC0Whu6NKL5TGg2pSO1I6ooavRFcLelZYVmkEP01QFkDvWDDgE7SYa9b5yYd7Y ZnM/0NQEmTIlxC5Yj6Zj0TNhi++E67V0TeT8fpsburR5/gYfNuxnAFsN0iXRZPj0C550 Gc37N48lnbNEwd2A6lspe5FT7RfXHpqQgFWdk2blpKDGxURzwPopQFi/xMtFqyQfhl0N kLG+Ci3cbK/gTM7XXFQ+9Pg1giLVUSTvAkNmDbbYQZN1ifzRjm1TWf2v4a66YNQCHDEY 1cJQ== X-Gm-Message-State: AOAM531RdCzDZBHhTmG0K8xRrjzlC/mCH/xSfBCpveEiucTBFA8wEsPz 8FVXGlcl97sXqQENBOElIkc= X-Received: by 2002:aa7:c7cc:: with SMTP id o12mr59525984eds.291.1621029392754; Fri, 14 May 2021 14:56:32 -0700 (PDT) Received: from [192.168.2.120] (pd9e5a369.dip0.t-ipconnect.de. [217.229.163.105]) by smtp.gmail.com with ESMTPSA id d25sm4220668ejd.59.2021.05.14.14.56.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 14 May 2021 14:56:32 -0700 (PDT) Subject: Re: [PATCH] [v2] platform/surface: aggregator: avoid clang -Wconstant-conversion warning To: Arnd Bergmann , Hans de Goede Cc: Arnd Bergmann , platform-driver-x86@vger.kernel.org, Nathan Chancellor , Nick Desaulniers , linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com References: <20210514200453.1542978-1-arnd@kernel.org> From: Maximilian Luz Message-ID: Date: Fri, 14 May 2021 23:56:27 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <20210514200453.1542978-1-arnd@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/05/2021 22:04, Arnd Bergmann wrote: > From: Arnd Bergmann > > Clang complains about the assignment of SSAM_ANY_IID to > ssam_device_uid->instance: > > drivers/platform/surface/surface_aggregator_registry.c:478:25: error: implicit conversion from 'int' to '__u8' (aka 'unsigned char') changes value from 65535 to 255 [-Werror,-Wconstant-conversion] > { SSAM_VDEV(HUB, 0x02, SSAM_ANY_IID, 0x00) }, > ~ ^~~~~~~~~~~~ > include/linux/surface_aggregator/device.h:71:23: note: expanded from macro 'SSAM_ANY_IID' > #define SSAM_ANY_IID 0xffff > ^~~~~~ > include/linux/surface_aggregator/device.h:126:63: note: expanded from macro 'SSAM_VDEV' > SSAM_DEVICE(SSAM_DOMAIN_VIRTUAL, SSAM_VIRTUAL_TC_##cat, tid, iid, fun) > ^~~ > include/linux/surface_aggregator/device.h:102:41: note: expanded from macro 'SSAM_DEVICE' > .instance = ((iid) != SSAM_ANY_IID) ? (iid) : 0, \ > ^~~ > > The assignment doesn't actually happen, but clang checks the type limits > before checking whether this assignment is reached. Replace the ?: > operator with a __builtin_choose_expr() invocation that avoids the > warning for the untaken part. > > Fixes: eb0e90a82098 ("platform/surface: aggregator: Add dedicated bus and device type") > Cc: platform-driver-x86@vger.kernel.org > Signed-off-by: Arnd Bergmann Thanks! This looks good to me. Reviewed-by: Maximilian Luz > --- > v2: use __builtin_choose_expr() instead of a cast to shut up the warning > --- > include/linux/surface_aggregator/device.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h > index 4441ad667c3f..6ff9c58b3e17 100644 > --- a/include/linux/surface_aggregator/device.h > +++ b/include/linux/surface_aggregator/device.h > @@ -98,9 +98,9 @@ struct ssam_device_uid { > | (((fun) != SSAM_ANY_FUN) ? SSAM_MATCH_FUNCTION : 0), \ > .domain = d, \ > .category = cat, \ > - .target = ((tid) != SSAM_ANY_TID) ? (tid) : 0, \ > - .instance = ((iid) != SSAM_ANY_IID) ? (iid) : 0, \ > - .function = ((fun) != SSAM_ANY_FUN) ? (fun) : 0 \ > + .target = __builtin_choose_expr((tid) != SSAM_ANY_TID, (tid), 0), \ > + .instance = __builtin_choose_expr((iid) != SSAM_ANY_IID, (iid), 0), \ > + .function = __builtin_choose_expr((fun) != SSAM_ANY_FUN, (fun), 0) > > /** > * SSAM_VDEV() - Initialize a &struct ssam_device_id as virtual device with >