Received: by 2002:a17:90b:8d0:0:0:0:0 with SMTP id ds16csp389113pjb; Wed, 22 Jul 2020 02:31:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy2hd1Ka11c8Wdy6py7011+JewcTSkSeQs2K48BT7clP1Yex0PVcUmkxZCZ86Q5kbLOlV5O X-Received: by 2002:a05:6402:c06:: with SMTP id co6mr29901298edb.142.1595410275565; Wed, 22 Jul 2020 02:31:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595410275; cv=none; d=google.com; s=arc-20160816; b=yTcv61Yp2GIM6tqOW7t5mglsKXjca4GepH4pLSPuIAYOCkfLSkVOLXJTe3j0oovFsN OvdXfhMAv0l4d9wFPTNmA/6Hc3+Gcm4QYYgcggogD77Ncqb5+uK1DezzVYW07mDtpxRw ZiheR4MnwJgSrVd97JMg2PhBATPJ1RY9OiS4CKfaT35nZs5k8mo1g1WsVZt/nH6+lxVV HPETkEgo7eQNFu4gg6OfC0sVUNVw0+0SjoTWz6VHoJIAkkuyj3X4gEtJ09ZT4Qr3D/Db 4D+Nvl09utWcnwdfseesPYVAo5IJwCSm7QFWSqNWdGBIWvN3M2zSUYRJKBBI8tq0GoX+ YyBg== 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:subject:cc:to:from:dkim-signature; bh=pDsj9nZdzBG+5WY/yle5GyRO0Zn2RK3XNjk1nxrgETU=; b=DVvYmEVJGCpdehrKAaQ9NGdeBAD8WWpL722j8xl9qcrGBTvD1uS8AVkgvswhAYnahR KiAswcM0Q0wW3OrRkGipntV7KnUvVl//1IPZY8N1VaHjrWLi1UXr05YinCXBs1pejOiE dVWOUjpgu6ljNaENfqrmGEvjC07keZbwWY22rOhxC6w6VEKqYC3oN6b1XKtloTiYQvXr J20kBRdLY8gfIwCSAUj9ZIdK9fiIX9o869KMMXMOk1Ri9gJT/elo2PNqrVooGqLo3o2W nWP9uXNidQqSuEZAP3pr7hu2mlJhdmG16i4Q3gOq2g5T0UaBKRQDwymlqrNs7DZtCBmc O01A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ivufnweq; 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 pj28si12223649ejb.330.2020.07.22.02.30.51; Wed, 22 Jul 2020 02:31:15 -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=ivufnweq; 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 S1731479AbgGVJ1k (ORCPT + 99 others); Wed, 22 Jul 2020 05:27:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731338AbgGVJ1j (ORCPT ); Wed, 22 Jul 2020 05:27:39 -0400 Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C365C0619DC for ; Wed, 22 Jul 2020 02:27:39 -0700 (PDT) Received: by mail-pg1-x543.google.com with SMTP id t6so894763pgq.1 for ; Wed, 22 Jul 2020 02:27:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pDsj9nZdzBG+5WY/yle5GyRO0Zn2RK3XNjk1nxrgETU=; b=ivufnweq8/EvEjbxrMe0YH2cjWUQrZ6lhGmtZXxqhuYGPmPGChoQMTCHIh8NYU9P19 0N3NAqzNvWndc7/XaiIClaXDvSjHp4IekSB/ukqBTM7pK7pONsQ6rLaB/3NH5ZNBqX06 ktC+mzxaCE6f0m/kv5CJbPJjBcK0Qx59Lgh4yhoK+jUlLxK/Lq6EJvI7gbX5fb/CGrt0 +pG6uFSXIvGtZhZtlojtoAqVp0v04L5wbesesC/kLdRcDquF2b3lg07jV/LRdwkwCMNH bQ0VROmUB4NqQ2eDa1eMo6F7+AkWrAl7FoKRi8c639M1H+9ZeZpIoUBmafdxQnBvnX0g 0SiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pDsj9nZdzBG+5WY/yle5GyRO0Zn2RK3XNjk1nxrgETU=; b=KewHuoo5ZFUbppubxHwxLOELZbzE35psxhG5LLL7z/DcAmPp/JRjbmOqHTpTruwvRj k0oNHkx5c589E/90L0xKYHxtFD44KzivQbQwHIZnKn+waYbANQjCETaVBwWwHm3DUGNu ENRZtwnrgCO1mDLYUmo4K8bEglb/Td9RJQzch2EojgLBG2aP7bOcuHV5pT+i+boUyP0S 1W5kltfCpmEIx+7ODyYoZuhwyOe3Pm1eIPIyihMjI+DhCwbJc8PXw8wHwarSn89IuHbA MJnwfaD8bjiIy7Luj11qeLV6+lN9UzVl9T36dhjtGzXFewo/yj8jtJ4dcnVEz5BaZvRb tVDw== X-Gm-Message-State: AOAM532A2dHVb/dn8o4v8vY1fpowStImcbprGJAIGHVv/BSIACTm+tWI lI0Hmx+lchZjRThwt6bLRiU= X-Received: by 2002:a62:ceca:: with SMTP id y193mr26982626pfg.11.1595410058758; Wed, 22 Jul 2020 02:27:38 -0700 (PDT) Received: from huyue2.ccdomain.com ([103.29.143.67]) by smtp.gmail.com with ESMTPSA id z26sm23275414pfr.187.2020.07.22.02.27.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Jul 2020 02:27:37 -0700 (PDT) From: Yue Hu To: gregkh@linuxfoundation.org, jslaby@suse.com Cc: linux-kernel@vger.kernel.org, huyue2@yulong.com, zbestahu@163.com Subject: [PATCH] sysrq: use only one slot for loglevels in key table Date: Wed, 22 Jul 2020 17:26:09 +0800 Message-Id: <20200722092610.11504-1-zbestahu@gmail.com> X-Mailer: git-send-email 2.19.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yue Hu Currently, sysrq_key_table[] has 10 slots for same interface to change console loglevel. No specific purpose to do that. Let's use only one slot to save memory space. Also, update the key2index calculation. And remove needless code in help message print path to make the logic simpler. Signed-off-by: Yue Hu --- drivers/tty/sysrq.c | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c index 7c95afa9..3f12910 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c @@ -442,17 +442,8 @@ static void sysrq_handle_unrt(int key) /* Key Operations table and lock */ static DEFINE_SPINLOCK(sysrq_key_table_lock); -static const struct sysrq_key_op *sysrq_key_table[36] = { - &sysrq_loglevel_op, /* 0 */ - &sysrq_loglevel_op, /* 1 */ - &sysrq_loglevel_op, /* 2 */ - &sysrq_loglevel_op, /* 3 */ - &sysrq_loglevel_op, /* 4 */ - &sysrq_loglevel_op, /* 5 */ - &sysrq_loglevel_op, /* 6 */ - &sysrq_loglevel_op, /* 7 */ - &sysrq_loglevel_op, /* 8 */ - &sysrq_loglevel_op, /* 9 */ +static const struct sysrq_key_op *sysrq_key_table[27] = { + &sysrq_loglevel_op, /* 0 - 9 */ /* * a: Don't use for system provided sysrqs, it is handled specially on @@ -507,9 +498,9 @@ static int sysrq_key_table_key2index(int key) int retval; if ((key >= '0') && (key <= '9')) - retval = key - '0'; + retval = 0; else if ((key >= 'a') && (key <= 'z')) - retval = key + 10 - 'a'; + retval = key + 1 - 'a'; else retval = -1; return retval; @@ -577,16 +568,8 @@ void __handle_sysrq(int key, bool check_mask) pr_info("HELP : "); /* Only print the help msg once per handler */ for (i = 0; i < ARRAY_SIZE(sysrq_key_table); i++) { - if (sysrq_key_table[i]) { - int j; - - for (j = 0; sysrq_key_table[i] != - sysrq_key_table[j]; j++) - ; - if (j != i) - continue; + if (sysrq_key_table[i]) pr_cont("%s ", sysrq_key_table[i]->help_msg); - } } pr_cont("\n"); console_loglevel = orig_log_level; -- 1.9.1