From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4F74C001DF for ; Fri, 4 Aug 2023 09:32:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4D4222802E4; Fri, 4 Aug 2023 05:32:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 484042802E1; Fri, 4 Aug 2023 05:32:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 373E12802E4; Fri, 4 Aug 2023 05:32:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 2590F2802E1 for ; Fri, 4 Aug 2023 05:32:05 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CB4111CA60D for ; Fri, 4 Aug 2023 09:32:04 +0000 (UTC) X-FDA: 81085905768.13.3E8F045 Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf29.hostedemail.com (Postfix) with ESMTP id 99A16120015 for ; Fri, 4 Aug 2023 09:32:02 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=rasmusvillemoes.dk header.s=google header.b=cCylAwlh; spf=pass (imf29.hostedemail.com: domain of linux@rasmusvillemoes.dk designates 209.85.167.54 as permitted sender) smtp.mailfrom=linux@rasmusvillemoes.dk; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691141522; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YJcUmqfH4he3+bj4rk9cnVccev5fkfdS9FI/A70DRUM=; b=tzgIDqCUi5sBho+pioHyHpr8791DO3d/pjftYSGsJSoYoYiDLCiGZe4QTiMnxn3rORiDKg 9bFV+bJan7yFPAk7r6Wreevw8KxkE3Gg4Y3iFNr0wZ8MJd51HbNHYJujElK7ozEKTvlHYh KDAue0txPvS1fh2l3KbAZNtkGM1EKO0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691141522; a=rsa-sha256; cv=none; b=hM7i+Xdkmcl8IiOl5UZFqxzKkUqdFBFna0tLe5LsDDPuVEW6r6+jxnCHF+EsCfTY4pteuE dTo62XU3+L5Hg0AtmIDu4e/Lj7ZakC1K27uhVq4aIDpErS/f25MYy+Q/mE/Smn/jtdptd1 g+59QqOPiYpokr/1Jf0XnaSc6tiGCPQ= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=rasmusvillemoes.dk header.s=google header.b=cCylAwlh; spf=pass (imf29.hostedemail.com: domain of linux@rasmusvillemoes.dk designates 209.85.167.54 as permitted sender) smtp.mailfrom=linux@rasmusvillemoes.dk; dmarc=none Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-4fe463420fbso3159584e87.3 for ; Fri, 04 Aug 2023 02:32:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; t=1691141520; x=1691746320; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=YJcUmqfH4he3+bj4rk9cnVccev5fkfdS9FI/A70DRUM=; b=cCylAwlhK/Nj+MiccN4dGpLcZdR67okmXEdejoGLTfpXZ/mc+QXp0t48Ofw5xHg4yc ne1BbGyQsqIxZl8ZOMGfCOVqrCxZWkKKKevKXfREcDpH5yBngWvQxEl3hyoK/PoNaN+G O3nteNbaR50yDvqNHclMoYEXmkYN6yETvCmds= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691141520; x=1691746320; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YJcUmqfH4he3+bj4rk9cnVccev5fkfdS9FI/A70DRUM=; b=bH1rD074aPx/3Nap3i+Kdo+EPsS87M4yOT62DzdRPWiJHJg1y/naZN4n1h1Sf9aWzQ lPRhH+WadFEn0e1d4CfmVgPxzUBpdS/2npnKR9seUqpE2EmxDNtiU/SkO+++GyT2wLsq HYWZrFRYDSumlj9I3kTgpAnCtmbgwNCzPbnh8yDIXi4BE1nEXKOPAyY58lTUuhEf4IfC D5rcAAZOD7wbLpUWHUp2nJtCPKbFgQ5Dm7Jl+A+D2rDpHraYfDpVGmITwiW8g7FPWsW+ dfHm0Pt5I2utloxjWDfeJFwkX+9mwS8Wm/LjY7h1FDXqq5mU2yTAbc1+CPhH80uWPErJ gX5g== X-Gm-Message-State: AOJu0YyyHoRuqZxr4OTQdrW/nqS3Doig73MjMvvabkhZ8EFAq6Xj12EQ QrtyiIuzphDjeL+EBgTpDBo3QA== X-Google-Smtp-Source: AGHT+IGsqil9ckKmE45ZEi9RLr7R3/pogXB0t2FoWx2GpBX6OwB+NH3pxc17YH3E8MnXBP4sNaqz/g== X-Received: by 2002:a05:6512:158f:b0:4f8:67f0:7253 with SMTP id bp15-20020a056512158f00b004f867f07253mr1071071lfb.49.1691141520453; Fri, 04 Aug 2023 02:32:00 -0700 (PDT) Received: from [172.16.11.116] ([81.216.59.226]) by smtp.gmail.com with ESMTPSA id t4-20020ac24c04000000b004fe09920fe5sm304024lfq.47.2023.08.04.02.31.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Aug 2023 02:31:59 -0700 (PDT) Message-ID: <71ce8516-21cb-32c6-84d3-b3f9bb3d625b@rasmusvillemoes.dk> Date: Fri, 4 Aug 2023 11:31:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v1 4/4] lib/vsprintf: Split out sprintf() and friends Content-Language: en-US, da To: Andy Shevchenko , Marco Elver , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, linux-mm@kvack.org Cc: Petr Mladek , Steven Rostedt , Sergey Senozhatsky , Alexander Potapenko , Dmitry Vyukov , Andrew Morton References: <20230804082619.61833-1-andriy.shevchenko@linux.intel.com> <20230804082619.61833-5-andriy.shevchenko@linux.intel.com> From: Rasmus Villemoes In-Reply-To: <20230804082619.61833-5-andriy.shevchenko@linux.intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 99A16120015 X-Rspam-User: X-Stat-Signature: dt9gbqdkutyud8rmhgprt5o11oqr61dw X-Rspamd-Server: rspam03 X-HE-Tag: 1691141522-378614 X-HE-Meta: U2FsdGVkX19eJ8wAJNWqEB78QZmYIw3r3hNZKzt3iY6ib0UbLK5+RoLKeHXigq1NhHbZaBNaw2vY9f0ut/Ayx6AOPWz2hhq3Q+Eec5VnN/IhzSAzqV8KOaNIbaIqdkqgJzMGTsvSf+ph7kVnT8IKQyBTY/qccWUjA7QnG7+KvHjujEbSuYIKfZ4XuR94tbnpZkeAdXbaXWs1XCmNrCwhXlzGPfOHEI4SFe5To5K9H7GrrcMaGfcTRtCS2D2u5zUdEhfh1ly4JVrPP8/NlcS4qtvUZWgc+x5A8ufG61iNITGBJC4fNuv3ZNBspqRn6lt+Off17ds1CLF/s61ihBr+DDFL4Rjwnki97Fu3Ejfc4kdDrJcB/lpBnRGIPn9np6NQnrVVw1f595DvEAj9wsH8XvngLdmjaTkx1jHZ7DIsprY8ggMTomofcUJ6jH6HeUsrb1BGnyxZkXWyzh3WLRuBIIUyTa4H416W/AeUdN3tdj0qeCN++qDaSHszl0d3Fog72lwZFEm038LC8N8A6Wb5Z7LHhXAD8sp78jtGRR6mG9Tq9qWalFfnepohdTLUdMvzssBsuS6YKVeYQ28hQvujgd8wSHZxArZLe7g2HsO0GNoyReNrr0CIo7U7dIX/FiTU6P9DeFFBr2acjlUVrmOOYuXn/QxI3UEjTzrj/vxekjyfiYVdJS9zS9AIFodDCRAfUDgHn/3nEsHe4i5/1myuXmCKUpNLn/NBtM72HKdUKMSI2uHGjZBs0FkyF94nzcy1LOpGB4I0lM51yNA9D054vYxF1EUYkcbdUa5VurZt8i14iV/t8e/6Kgc/darvoNaby0Nn5h8FGe0ab7oWdLt/Rd+ecx8L3dxmu49CkqAyLg5RtfekbsILCdaHoJ5+zPEpmOEnKKEmCfaajtxgJZm3bH9yIXYLLMgJJkogGu1LA503WDLD5Q3StfEEg/prihG54rmMOk1VjWD1u8pSxQv /ZgjyYsT WbtYri0wY8SSxBij5iXkCbr9ZoR3ztc3DDNWVx3F1mg+qgZ97jR+BCc9w9LFdO2s4O8nmkyKK2z9pNdtlb6tYHR241vE3udXsl5Kl2S2sK2cvvm4dMNfkWETl4icRd1gF8LWA7go/bA2eKamOz+ufeRMJEe6kSM0gn6rt4og5z5QqBt2gjbEEF+XuRzDhGnZIBr+oxQSbk2TRn/hwOfUpWx2ZVyQL2xX4byqjoy3ViycD6M/ucJttVEEd/IzVUWb4LWmWKZ4fRECNjbXqVTFMekItCk3b2SbSjzjKKzC7czzmGX4OgrXQs/qVcHmCdO1fJtpiNW9M/yHVnXGUUEl0Pjv4tJUmZV/8HQAVfipc+kOy2WT3i4cP2Gh4LQ/NIJ95SCHeYyevhCgJMNZ4UV9Um6au4/mYKBHnVgKh X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 04/08/2023 10.26, Andy Shevchenko wrote: > kernel.h is being used as a dump for all kinds of stuff for a long time. > sprintf() and friends are used in many drivers without need of the full > kernel.h dependency train with it. > > Here is the attempt on cleaning it up by splitting out sprintf() and > friends. > > Signed-off-by: Andy Shevchenko > --- > include/linux/kernel.h | 30 +----------------------------- > include/linux/sprintf.h | 24 ++++++++++++++++++++++++ > lib/vsprintf.c | 1 + > 3 files changed, 26 insertions(+), 29 deletions(-) > create mode 100644 include/linux/sprintf.h > > diff --git a/include/linux/kernel.h b/include/linux/kernel.h > index b9e76f717a7e..cee8fe87e9f4 100644 > --- a/include/linux/kernel.h > +++ b/include/linux/kernel.h > @@ -29,6 +29,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -203,35 +204,6 @@ static inline void might_fault(void) { } > > void do_exit(long error_code) __noreturn; > > -extern int num_to_str(char *buf, int size, > - unsigned long long num, unsigned int width); > - > -/* lib/printf utilities */ > - > -extern __printf(2, 3) int sprintf(char *buf, const char * fmt, ...); > -extern __printf(2, 0) int vsprintf(char *buf, const char *, va_list); > -extern __printf(3, 4) > -int snprintf(char *buf, size_t size, const char *fmt, ...); > -extern __printf(3, 0) > -int vsnprintf(char *buf, size_t size, const char *fmt, va_list args); > -extern __printf(3, 4) > -int scnprintf(char *buf, size_t size, const char *fmt, ...); > -extern __printf(3, 0) > -int vscnprintf(char *buf, size_t size, const char *fmt, va_list args); > -extern __printf(2, 3) __malloc > -char *kasprintf(gfp_t gfp, const char *fmt, ...); > -extern __printf(2, 0) __malloc > -char *kvasprintf(gfp_t gfp, const char *fmt, va_list args); > -extern __printf(2, 0) > -const char *kvasprintf_const(gfp_t gfp, const char *fmt, va_list args); > - > -extern __scanf(2, 3) > -int sscanf(const char *, const char *, ...); > -extern __scanf(2, 0) > -int vsscanf(const char *, const char *, va_list); > - > -extern int no_hash_pointers_enable(char *str); > - > extern int get_option(char **str, int *pint); > extern char *get_options(const char *str, int nints, int *ints); > extern unsigned long long memparse(const char *ptr, char **retptr); > diff --git a/include/linux/sprintf.h b/include/linux/sprintf.h > new file mode 100644 > index 000000000000..00d1fdc70a3e > --- /dev/null > +++ b/include/linux/sprintf.h > @@ -0,0 +1,24 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _LINUX_KERNEL_SPRINTF_H_ > +#define _LINUX_KERNEL_SPRINTF_H_ > + > +#include > + Shouldn't this at least also include compiler_attributes.h, to make it self-contained? As Marco said, please just declare no_hash_pointers in this file as well. Perhaps with a comment about not accessing it unless one has good reason, but I suppose that's true in general for all kernel global variables, so maybe not worth it for this one. Rasmus