From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f66.google.com (mail-ej1-f66.google.com [209.85.218.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1EAD7260A for ; Sun, 18 Jan 2026 17:25:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.66 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768757151; cv=none; b=Khm07cZStJWvHdsXeg90BNB4iWGjoUZ/t3ocpUYhi4N+HENVYVb3rjF9RM5y5iEH+3hB2cfZBQChSsLX+lBnmjLKtunTEqF/bV/bKc90QcObT7Zh/CM+kOVaLAbi3p7G0njQXQco9cS7XUikfja31ZLf6oC+trj0lqscPfcKa4I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768757151; c=relaxed/simple; bh=j3F2e06LpHVvNnKvzA1zEParxSFw5XSdqU2iQVCvDgg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=jh4f8153yG6OglEpWCLod/xg9A9TKvJMlSwkvpJ/lhlhvY4f+19T8ypCmSdpSIKTNllaU78h3cij2eL2X0Gn9lpd4uMmEOETNnxSi04m6uj7Vh8NPSwTi8F7jIRL6u6ru6qFODjm5rMTsGnPcd6+WfVcLEkWmRs3pUXZKED1DoM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FkcZEjwh; arc=none smtp.client-ip=209.85.218.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FkcZEjwh" Received: by mail-ej1-f66.google.com with SMTP id a640c23a62f3a-b8765be29d6so518658066b.0 for ; Sun, 18 Jan 2026 09:25:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768757148; x=1769361948; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=P7FJyK5QrGMMJM9DjcugL72w9fXTzE2hbxLjwzxz/20=; b=FkcZEjwhMSivvcHC2rMfLxgMz/r2nKZc5cT59lhu1lXcFIZff9JTO/2ON37jfWxiHp M+CvSWEvIFXqYOtp8Gxyb72O6G7suMi7Q7J3EPvlEe3QtzhLP07dNPpLxNGbSAhy84+E xeFGlmNF1IdbO0SqAOeIMWnlhzqrlXl/EXyCq0kbBCP29fyPSHX36FKH2l/iEAZzlRFt hxdgrHhCtNffNy2bU+CDO+ErTf52MM2HDiDps4YEd/aET5DshztcCHiqLHr/UrNNQOSY Hux6e3XRoR5frCeCmarek8QiG6LU8C0sKg9nW3K7vAF4+IfN4cWSVy/eEgPCSyYfAuK5 m+pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768757148; x=1769361948; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=P7FJyK5QrGMMJM9DjcugL72w9fXTzE2hbxLjwzxz/20=; b=uH/VImx9VyDOp0ciEpcLF9AxJ3ImQZ0tGpu62tdoOhbgitH3PhFv3gQpSDU+WerYEj dvmU+MuXVkqzJojIbEzpAlpZk6yO42p+nW+DvsLF+NMLCdknLDkdYQTIZ9uPCez0/gh9 Z4w9ljASJo8CXGJSHVAuloMg12ImL9JSDEqBZaZApG35jL3mjLyvw6xszYnzI13ylK8c Up+z9AajzN1y9iM4ToBL27MbLhMPWslsSfCItIrqGltA4zyiowx4bgWY3hugTsqGzOE8 micRjs4fG93Kwd22UVTDaFT7ZA8Gw0t9wAKnM+XmLXDJgOM4ohTX8RaQK5znO7u7n97H XYug== X-Forwarded-Encrypted: i=1; AJvYcCWoQVsxY387TWPSVNCRNNAFfT73PG/w1B9+8Fcozr4qhQ2rXHaJwiNAxQ42h5Da115dMuhiDwtoV2sac1M=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2+ACLj8835VSAWo0DXbzHtrFLg6lzCo5pVxfvtoGEg2zi59Pn gITy716mgkxSBxnMgC8MNAX9km0ixDkyO3VtkmHsFEnxS0wsQvNSKv3LbcU4eSMyN28= X-Gm-Gg: AY/fxX6hwfWU//aydbFC4XV/wYvsK9S5LoQirVqvMbnbsEifR0uqfL6CRfzWEA97+vc dIphSmPxVsBuG6BtQplH+fYZD8cr0htTh20pOxtsxWyr8aPPwBNBZAF0+xqBFSqrykw2VTlRL1j k8VweazN7Rfofl/6/YOZh9hXzRv/fgNqwvqS44p8q//AbHuWSuaqJvyuP50JUtF1qhy17UWM1uy qnY6D0A/79vZsebCAXM25H1XP+BRxbIJ3PmM66sMYx97eB/CCpDfT0rzSFL2zS1zMuYoYBlD8lG d8m3h0myflheJ+foTQK5Sb2QfgjB3O+zl0c06VUgqIAxTmy6dLF02Mhi0CzZEDlZeJMDmGh6Ydm gwLUXM6Hbvfw6vqTyxD9KkZN0I6jMsm9OFTH7nHxS/qCXSl3AkrLdHCGOh2m4EnG6P1+qChLZ05 zaHMJmmxUzysQPnweLXdYe8c+nHEorB3mBFbLblIW78oVKVtfyvtvOMJ1xKU6kbJKDPA== X-Received: by 2002:a17:907:c0a:b0:b7a:1be1:983 with SMTP id a640c23a62f3a-b879324ea84mr838997066b.63.1768757147806; Sun, 18 Jan 2026 09:25:47 -0800 (PST) Received: from [192.168.1.100] ([46.248.82.114]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8795a43679sm851144066b.70.2026.01.18.09.25.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 18 Jan 2026 09:25:47 -0800 (PST) Message-ID: <31da0378-59be-42fc-a813-be3946d2b504@gmail.com> Date: Sun, 18 Jan 2026 18:25:46 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] x86/percpu: Make CONFIG_USE_X86_SEG_SUPPORT work with sparse To: Thomas Gleixner , LKML Cc: x86@kernel.org References: <87v7gz0yjv.ffs@tglx> Content-Language: en-US From: Uros Bizjak In-Reply-To: <87v7gz0yjv.ffs@tglx> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 1/18/26 15:45, Thomas Gleixner wrote: > Now that sparse builds enforce the usage of typeof_unqual() the casts in > __raw_cpu_read/write() cause sparse to emit tons of false postive > warnings: > > warning: cast removes address space '__percpu' of expression > > Address this by annotating the casts with __force. > > Reported-by: kernel test robot > Signed-off-by: Thomas Gleixner > Closes: https://lore.kernel.org/oe-kbuild-all/202601181733.YZOf9XU3-lkp@intel.com/ > --- > arch/x86/include/asm/percpu.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > --- a/arch/x86/include/asm/percpu.h > +++ b/arch/x86/include/asm/percpu.h > @@ -137,12 +137,12 @@ > > #define __raw_cpu_read(size, qual, pcp) \ > ({ \ > - *(qual __my_cpu_type(pcp) *)__my_cpu_ptr(&(pcp)); \ > + *(qual __my_cpu_type(pcp) * __force)__my_cpu_ptr(&(pcp)); \ > }) > > -#define __raw_cpu_write(size, qual, pcp, val) \ > -do { \ > - *(qual __my_cpu_type(pcp) *)__my_cpu_ptr(&(pcp)) = (val); \ > +#define __raw_cpu_write(size, qual, pcp, val) \ > +do { \ > + *(qual __my_cpu_type(pcp) * __force)__my_cpu_ptr(&(pcp)) = (val); \ > } while (0) > > #define __raw_cpu_read_const(pcp) __raw_cpu_read(, , pcp) Perhaps these defines can be simplified a bit as: #define __raw_cpu_read(size, qual, pcp) \ (*(qual __my_cpu_type(pcp) * __force)__my_cpu_ptr(&(pcp))) #define __raw_cpu_write(size, qual, pcp, val) \ (*(qual __my_cpu_type(pcp) * __force)__my_cpu_ptr(&(pcp)) = (val)) Uros.