Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp2000185ybe; Tue, 3 Sep 2019 06:39:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqxweO0G7LitJ9YxlnV6RZdmdSCTSWeRkOUj5Vhg8Gq0pDlpEBbSLLPNwAQICkUJ5jywzPJU X-Received: by 2002:a17:902:6a82:: with SMTP id n2mr33681393plk.53.1567517998609; Tue, 03 Sep 2019 06:39:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567517998; cv=none; d=google.com; s=arc-20160816; b=CZ1c1Nc20sFr1x0DiLeziPPAq0bCZavJNei+g+usbdd2yX8IgDPdJWWgEL7Ww4QjWL EOeuK1aoCDtgbX/j3PdtCY5Lm7DoOxSZ1f3rjQeWhoH5jcfefaIr4K6vex4QJT+5fQZj velXb6MCKbeHq8qhdDJND+7mc2yhzH2X+C7+ZAMJ8NzwSzx01ljDzifokVDLGSBPCWwM M5sP9i5yGbcPkaAAthg3PtOktQRCM5l3NXOrW44Hj8wsnYmMMPsN2su9TENHWZb9+4RZ vWfaj3Ing2ZhyC7OadFQ0DaU6vaEQXjP7sU1lEAqVxyDqe9XlIqmHU1i4deqZUoTwgPs fUxg== 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:organization :mime-version:message-id:date:subject:cc:to:from; bh=ODf9ub9d8lPHsCUVTF/ephW8yXDgcE8i+Boc4lgSy/4=; b=GFNtMG62lBkqoOwHxp2vx2CANc1wgAB+m8lVf/nF4c7khna0mND4U5i3L+wDf728TB 3OH4Grl7fim+l+2kJcgLPNIK8AIV+31GoUn8+/Xb7qUOTL1ejWRpMT7DZUgj34vRPseo vkeCASNb8LEIKJQ1ljLul3pF0HERKI33TALaDxmTD4ttqfQPUHARtin7zdbLby08J9Z0 LFkMwEUGQXY1zs2AwrQmfTCwMnLnNADrW7TmWwK9qANwpqWrwYRtsMyvOtaJFk0H42mL Y83xrlNnl3ZNPFRS3eBsvhlMA60glDVfeumA0HSfroDsWkIcDYWy13R+a6oZ/QClLAGT yw8Q== 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 t23si640355pjy.61.2019.09.03.06.39.42; Tue, 03 Sep 2019 06:39:58 -0700 (PDT) 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 S1729296AbfICNhl (ORCPT + 99 others); Tue, 3 Sep 2019 09:37:41 -0400 Received: from mga03.intel.com ([134.134.136.65]:29014 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727941AbfICNhl (ORCPT ); Tue, 3 Sep 2019 09:37:41 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Sep 2019 06:37:39 -0700 X-IronPort-AV: E=Sophos;i="5.64,463,1559545200"; d="scan'208";a="182125814" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Sep 2019 06:37:36 -0700 From: Jani Nikula To: linux-kernel@vger.kernel.org Cc: jani.nikula@intel.com, Joonas Lahtinen , Rodrigo Vivi , intel-gfx@lists.freedesktop.org, Vishal Kulkarni , netdev@vger.kernel.org, Greg Kroah-Hartman , linux-usb@vger.kernel.org, Andrew Morton , Julia Lawall Subject: [PATCH 1/2] linux/kernel.h: add yesno(), onoff(), enableddisabled(), plural() helpers Date: Tue, 3 Sep 2019 16:37:30 +0300 Message-Id: <20190903133731.2094-1-jani.nikula@intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The kernel has plenty of ternary operators to choose between constant strings, such as condition ? "yes" : "no", as well as value == 1 ? "" : "s": $ git grep '? "yes" : "no"' | wc -l 258 $ git grep '? "on" : "off"' | wc -l 204 $ git grep '? "enabled" : "disabled"' | wc -l 196 $ git grep '? "" : "s"' | wc -l 25 Additionally, there are some occurences of the same in reverse order, split to multiple lines, or otherwise not caught by the simple grep. Add helpers to return the constant strings. Remove existing equivalent and conflicting functions in i915, cxgb4, and USB core. Further conversion can be done incrementally. While the main goal here is to abstract recurring patterns, and slightly clean up the code base by not open coding the ternary operators, there are also some space savings to be had via better string constant pooling. Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Cc: Vishal Kulkarni Cc: netdev@vger.kernel.org Cc: Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org Cc: Andrew Morton Cc: linux-kernel@vger.kernel.org Cc: Julia Lawall Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/i915_utils.h | 15 ------------- .../ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 11 ---------- drivers/usb/core/config.c | 5 ----- drivers/usb/core/generic.c | 5 ----- include/linux/kernel.h | 21 +++++++++++++++++++ 5 files changed, 21 insertions(+), 36 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h index 2987219a6300..9754e277622f 100644 --- a/drivers/gpu/drm/i915/i915_utils.h +++ b/drivers/gpu/drm/i915/i915_utils.h @@ -355,19 +355,4 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms) #define MBps(x) KBps(1000 * (x)) #define GBps(x) ((u64)1000 * MBps((x))) -static inline const char *yesno(bool v) -{ - return v ? "yes" : "no"; -} - -static inline const char *onoff(bool v) -{ - return v ? "on" : "off"; -} - -static inline const char *enableddisabled(bool v) -{ - return v ? "enabled" : "disabled"; -} - #endif /* !__I915_UTILS_H */ diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c index d692251ee252..d0be14d93df7 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c @@ -2023,17 +2023,6 @@ static const struct file_operations rss_debugfs_fops = { /* RSS Configuration. */ -/* Small utility function to return the strings "yes" or "no" if the supplied - * argument is non-zero. - */ -static const char *yesno(int x) -{ - static const char *yes = "yes"; - static const char *no = "no"; - - return x ? yes : no; -} - static int rss_config_show(struct seq_file *seq, void *v) { struct adapter *adapter = seq->private; diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c index 9d6cb709ca7b..7da06aa06ced 100644 --- a/drivers/usb/core/config.c +++ b/drivers/usb/core/config.c @@ -19,11 +19,6 @@ #define USB_MAXCONFIG 8 /* Arbitrary limit */ -static inline const char *plural(int n) -{ - return (n == 1 ? "" : "s"); -} - static int find_next_descriptor(unsigned char *buffer, int size, int dt1, int dt2, int *num_skipped) { diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c index 1ac9c1e5f773..95a87b6cd35f 100644 --- a/drivers/usb/core/generic.c +++ b/drivers/usb/core/generic.c @@ -24,11 +24,6 @@ #include #include "usb.h" -static inline const char *plural(int n) -{ - return (n == 1 ? "" : "s"); -} - static int is_rndis(struct usb_interface_descriptor *desc) { return desc->bInterfaceClass == USB_CLASS_COMM diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 4fa360a13c1e..3375f054aefd 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -1008,4 +1008,25 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } /* OTHER_WRITABLE? Generally considered a bad idea. */ \ BUILD_BUG_ON_ZERO((perms) & 2) + \ (perms)) + +static inline const char *yesno(bool v) +{ + return v ? "yes" : "no"; +} + +static inline const char *onoff(bool v) +{ + return v ? "on" : "off"; +} + +static inline const char *enableddisabled(bool v) +{ + return v ? "enabled" : "disabled"; +} + +static inline const char *plural(long v) +{ + return v == 1 ? "" : "s"; +} + #endif -- 2.20.1