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 77A4BC4332F for ; Fri, 10 Nov 2023 00:14:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E011F280019; Thu, 9 Nov 2023 19:14:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DB154280016; Thu, 9 Nov 2023 19:14:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7A3B280019; Thu, 9 Nov 2023 19:14:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id B39B7280016 for ; Thu, 9 Nov 2023 19:14:17 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8F15340C9F for ; Fri, 10 Nov 2023 00:14:17 +0000 (UTC) X-FDA: 81440122554.11.E021823 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by imf24.hostedemail.com (Postfix) with ESMTP id A0499180002 for ; Fri, 10 Nov 2023 00:14:14 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=kDB2UJbO; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf24.hostedemail.com: domain of lkp@intel.com designates 134.134.136.100 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699575255; 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:in-reply-to: references:dkim-signature; bh=hNKhKrQIZraL2X+7FTJwu8oxuHLa8NGEuB4v+ji3Eng=; b=pTX7JDzF/k9p0C/4/mC26htgUHiOZWP/0Kor9RQ0i3+COrJX5cL96U7bB2EkpMFkQnrf+g wNkRjX9FC7HNekyO8WN5ZhN/UrKnrZFBx6NpSyXcADfQkguvJKp9onDv96ijLIFow7tCEo SoJwulL/+VDFCSgplbkHxPSfQ2Suvok= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=kDB2UJbO; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf24.hostedemail.com: domain of lkp@intel.com designates 134.134.136.100 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699575255; a=rsa-sha256; cv=none; b=Ds+ovYqWD6DIkJI+PpXHYokAxlBGkiAsD4lAB8/N3oO3hrqH7AdLz2xwyHxKpqzYiHX5E6 H/zCvUK+H6pACTxnQ51wS9Alposz/clc1GPZuPtgHxIjtqYTZbDdIUITZYLP29If/AzqB8 nTvGu7ijVX8d9YbfmfsVxhzDVCHhRJg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1699575254; x=1731111254; h=date:from:to:cc:subject:message-id:mime-version; bh=lSnspuMIwuprMq/bH3iGi3403dX/kcExvXa3qR6TZXU=; b=kDB2UJbOJLsVXB7lL33qvxOOn/ZgpkWV6tXZD5HgzHhmylpiaYfjRem8 YpWB17UC8Qi8OMW/Zc5YhYedrw39nFl/n2TzUDbSkKSmRWvGOoENldE4m FOayZX6QvhKJP/zP8/lLSZEsx15irA22Xd41d8ffZ+z8KSjaijYdaYATm 28WaxDh3NRt/8p2kPOhCfFVtjg0uXgxhabGxjC2KZV7MBL7HKBb1sZGVV E0Onj0FKIsmQQGGSafTz3hRnWcRMn2iNY9BWGbRYILfmmBWg3mx7Y5xX0 X24LUnLwkH/Qq6ySkfPwpDWpaFEflNCWb/Guxi5sjT3WEiE/dd+b/L3NX w==; X-IronPort-AV: E=McAfee;i="6600,9927,10889"; a="456597089" X-IronPort-AV: E=Sophos;i="6.03,290,1694761200"; d="scan'208";a="456597089" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2023 16:14:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.03,290,1694761200"; d="scan'208";a="11307866" Received: from lkp-server01.sh.intel.com (HELO 17d9e85e5079) ([10.239.97.150]) by orviesa001.jf.intel.com with ESMTP; 09 Nov 2023 16:14:02 -0800 Received: from kbuild by 17d9e85e5079 with local (Exim 4.96) (envelope-from ) id 1r1F9r-0009Go-2O; Fri, 10 Nov 2023 00:13:59 +0000 Date: Fri, 10 Nov 2023 07:53:20 +0800 From: kernel test robot To: Calvin Owens Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, Kees Cook , Andrew Morton , Linux Memory Management List Subject: fs/proc/base.c:1980:25: sparse: sparse: cast to restricted fmode_t Message-ID: <202311100727.f9HgBYnq-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Queue-Id: A0499180002 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: mc5uorkgfmgr8b4rpcnikajgr6icu4sb X-HE-Tag: 1699575254-720313 X-HE-Meta: U2FsdGVkX1/UlZBmny4y3uhSi1q3sVmUmWxxd5rga+NF+fwd05+nNJ3VS50na46NYWMsIOteRwZrgKbCKsSMzWHl5gzM6lSka4sQZyBBfLvJD2HBbpdtP0emr4RjhOhFkYwa8s3hRb0JfU3yINLtvWS4u9EvJiqgfB8wvuSU9IeWVWJhT4ggpN/RAFNm3PAnQl5Ca9WZB2kyEOAiAk9e0WQIsJ7uixzqrEbYx2a9F6VkTUWCZpGsrwMk5KOHzCVw9OIu05Fjbtfj//aG37L2yysvApRyasoFQXxTl4xTHl/asxE06kDCJ97ABgz3IcQhIkbQgs0yqBZ/BPUPXC1bmr99KILzWla2Hta9Q8tIcNZJVvYGRAlgPdOzXMLRWP9TE+PwJw1OeFctCwmEUMLPbfXHA0XmCNer0892s6h3zGgGWHXh3TH4gNVFFlLyUJzbSc2xgh6y4cVG2dTL6ACZehR3mn59MgG6ZFpuyd3wErm6SfsfC5RGb6IlpJF/jEP2MnoSljkWGU6sB9VMspS/jYr1JcrpgXeUavMUFfxSWjQ6GEfVJSUJnkjlJopRBKou9gspjTRkkhfvQjPsyaFANv4iZch6127A4vQqGqZ2VEJEL+OHdcGRCDIFUasCHfaDfWa5bIDGxaipt3KvU+PMWdVyfajd1d/54G/3y4nSBKCjw9Zq2SeLKLYKiCf4YQqCGvlRL9BRZ2eCFCXA9BdPPIAWTYSwkg45iiapfUW5qORk0Qavfrx/m6v3qgipRea8w4WsS9LhxEUUokOuCvJm+v/5G3Sk6JXpEy4w7ikID6Om540GBAZHsea0CYpQZnFG5PbgN2RZ54gmVFlag9cWd94g79U9Z+LRwtzOQONcTgDM69rXrOexwu7N6LooGMH40uiQDHnSLBp4YxTvkwbHnClgug44BZoHiBrqccQWoyODrkl26wHEMYss5pp6bP0cjuJSecp41VPCdxQc4xI ParOXIN6 DW8VbvrJr6HfTT9k9EGeV0n/+fTPhh5vjNk2S0ZJVqiXB/3jX6GYL+KuW5/So7Tq8YT/l1vh0Sm3MxIerdB6jeQ5/OXH6VVnlH/jEO6IopETLwsUnN+ogyhjXVO6P8plLEzIEVGEdlgwnXgjsyB5/+7kzJkvXt/waXYvCoGzZw/hPx2Oel25mq06gbM1soK5FiXyFGOrgrgd7aXLfOXjn4qnh3kj6Xq7PuZfVx0rGCUWuSiEf6H8GzYZoDrEgLp4+rhP1BYTjoGikzdVZ6CR8ItYJvofDmuygBVUMi0MXTHucFt1gAe3dGoEzsw7GTUK6eriGlixsl+QkgBsmKwfBVxt1KIAfYdoXHxGH7sM+pazjejBW+GYhHD1PXb39LpVreOrIKATPZ5j+6ntbwAe5njgZQS+yCn+a3iBE 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: List-Subscribe: List-Unsubscribe: tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 6bc986ab839c844e78a2333a02e55f02c9e57935 commit: bdb4d100afe9818aebd1d98ced575c5ef143456c procfs: always expose /proc//map_files/ and make it readable date: 8 years ago config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20231110/202311100727.f9HgBYnq-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231110/202311100727.f9HgBYnq-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202311100727.f9HgBYnq-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> fs/proc/base.c:1980:25: sparse: sparse: cast to restricted fmode_t >> fs/proc/base.c:2039:42: sparse: sparse: cast from restricted fmode_t fs/proc/base.c:2138:48: sparse: sparse: cast from restricted fmode_t fs/proc/base.c:1033:24: sparse: sparse: context imbalance in 'oom_adj_read' - different lock contexts for basic block fs/proc/base.c:1136:24: sparse: sparse: context imbalance in 'oom_score_adj_read' - different lock contexts for basic block fs/proc/base.c:2166:13: sparse: sparse: context imbalance in 'timers_start' - wrong count at exit fs/proc/base.c:2192:36: sparse: sparse: context imbalance in 'timers_stop' - unexpected unlock In file included from include/linux/kobject.h:21, from include/linux/device.h:17, from include/linux/node.h:17, from include/linux/swap.h:10, from fs/proc/base.c:66: include/linux/sysfs.h: In function 'sysfs_get_dirent': include/linux/sysfs.h:496:44: warning: pointer targets in passing argument 2 of 'kernfs_find_and_get' differ in signedness [-Wpointer-sign] 496 | return kernfs_find_and_get(parent, name); | ^~~~ | | | const unsigned char * In file included from include/linux/cgroup.h:19, from include/linux/memcontrol.h:22, from include/linux/swap.h:8: include/linux/kernfs.h:424:57: note: expected 'const char *' but argument is of type 'const unsigned char *' 424 | kernfs_find_and_get(struct kernfs_node *kn, const char *name) | ~~~~~~~~~~~~^~~~ In file included from fs/proc/base.c:94: fs/proc/internal.h: In function 'name_to_int': fs/proc/internal.h:117:28: warning: pointer targets in initialization of 'const char *' from 'const unsigned char *' differ in signedness [-Wpointer-sign] 117 | const char *name = qstr->name; | ^~~~ In file included from include/linux/fs.h:7, from include/linux/proc_fs.h:8, from fs/proc/base.c:54: fs/proc/base.c: In function 'proc_fill_cache': fs/proc/base.c:1814:39: warning: pointer targets in initialization of 'const unsigned char *' from 'const char *' differ in signedness [-Wpointer-sign] 1814 | struct qstr qname = QSTR_INIT(name, len); | ^~~~ include/linux/dcache.h:54:52: note: in definition of macro 'QSTR_INIT' 54 | #define QSTR_INIT(n,l) { { { .len = l } }, .name = n } | ^ fs/proc/base.c:1814:39: note: (near initialization for 'qname.name') 1814 | struct qstr qname = QSTR_INIT(name, len); | ^~~~ include/linux/dcache.h:54:52: note: in definition of macro 'QSTR_INIT' 54 | #define QSTR_INIT(n,l) { { { .len = l } }, .name = n } | ^ fs/proc/base.c: In function 'dname_to_vma_addr': fs/proc/base.c:1846:34: warning: pointer targets in passing argument 1 of 'sscanf' differ in signedness [-Wpointer-sign] 1846 | if (sscanf(dentry->d_name.name, "%lx-%lx", start, end) != 2) | ~~~~~~~~~~~~~~^~~~~ | | | const unsigned char * In file included from include/asm-generic/bug.h:13, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/thread_info.h:11, from arch/x86/include/asm/uaccess.h:8, from fs/proc/base.c:50: include/linux/kernel.h:418:12: note: expected 'const char *' but argument is of type 'const unsigned char *' 418 | int sscanf(const char *, const char *, ...); | ^~~~~~~~~~~~ fs/proc/base.c: In function 'proc_map_files_readdir': fs/proc/base.c:2123:49: warning: pointer targets in passing argument 1 of 'snprintf' differ in signedness [-Wpointer-sign] 2123 | info.len = snprintf(info.name, | ~~~~^~~~~ | | | unsigned char * include/linux/kernel.h:405:20: note: expected 'char *' but argument is of type 'unsigned char *' 405 | int snprintf(char *buf, size_t size, const char *fmt, ...); | ~~~~~~^~~ fs/proc/base.c:2135:40: warning: pointer targets in passing argument 3 of 'proc_fill_cache' differ in signedness [-Wpointer-sign] 2135 | p->name, p->len, | ~^~~~~~ | | | unsigned char * fs/proc/base.c:1810:21: note: expected 'const char *' but argument is of type 'unsigned char *' 1810 | const char *name, int len, | ~~~~~~~~~~~~^~~~ fs/proc/base.c: In function 'proc_flush_task_mnt': fs/proc/base.c:2876:19: warning: pointer targets in assignment from 'char *' to 'const unsigned char *' differ in signedness [-Wpointer-sign] 2876 | name.name = buf; | ^ fs/proc/base.c:2888:19: warning: pointer targets in assignment from 'char *' to 'const unsigned char *' differ in signedness [-Wpointer-sign] 2888 | name.name = buf; | ^ fs/proc/base.c:2894:19: warning: pointer targets in assignment from 'char *' to 'const unsigned char *' differ in signedness [-Wpointer-sign] 2894 | name.name = "task"; | ^ fs/proc/base.c:2895:31: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness [-Wpointer-sign] 2895 | name.len = strlen(name.name); | ~~~~^~~~~ | | | const unsigned char * In file included from arch/x86/include/asm/string.h:4, from include/linux/string.h:17, from include/linux/dynamic_debug.h:111, from include/linux/printk.h:277, from include/linux/kernel.h:13: arch/x86/include/asm/string_64.h:64:27: note: expected 'const char *' but argument is of type 'const unsigned char *' 64 | size_t strlen(const char *s); | ~~~~~~~~~~~~^ fs/proc/base.c:2900:19: warning: pointer targets in assignment from 'char *' to 'const unsigned char *' differ in signedness [-Wpointer-sign] 2900 | name.name = buf; vim +1980 fs/proc/base.c bdb4d100afe981 Calvin Owens 2015-09-09 1975 c52a47ace7ef58 Al Viro 2013-06-15 1976 static int 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1977 proc_map_files_instantiate(struct inode *dir, struct dentry *dentry, 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1978 struct task_struct *task, const void *ptr) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1979 { 7b540d0646ce12 Al Viro 2012-08-27 @1980 fmode_t mode = (fmode_t)(unsigned long)ptr; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1981 struct proc_inode *ei; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1982 struct inode *inode; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1983 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1984 inode = proc_pid_make_inode(dir->i_sb, task); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1985 if (!inode) c52a47ace7ef58 Al Viro 2013-06-15 1986 return -ENOENT; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1987 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1988 ei = PROC_I(inode); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1989 ei->op.proc_get_link = proc_map_files_get_link; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1990 bdb4d100afe981 Calvin Owens 2015-09-09 1991 inode->i_op = &proc_map_files_link_inode_operations; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1992 inode->i_size = 64; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1993 inode->i_mode = S_IFLNK; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1994 7b540d0646ce12 Al Viro 2012-08-27 1995 if (mode & FMODE_READ) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1996 inode->i_mode |= S_IRUSR; 7b540d0646ce12 Al Viro 2012-08-27 1997 if (mode & FMODE_WRITE) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1998 inode->i_mode |= S_IWUSR; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 1999 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2000 d_set_d_op(dentry, &tid_map_files_dentry_operations); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2001 d_add(dentry, inode); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2002 c52a47ace7ef58 Al Viro 2013-06-15 2003 return 0; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2004 } 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2005 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2006 static struct dentry *proc_map_files_lookup(struct inode *dir, 00cd8dd3bf95f2 Al Viro 2012-06-10 2007 struct dentry *dentry, unsigned int flags) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2008 { 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2009 unsigned long vm_start, vm_end; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2010 struct vm_area_struct *vma; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2011 struct task_struct *task; c52a47ace7ef58 Al Viro 2013-06-15 2012 int result; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2013 struct mm_struct *mm; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2014 c52a47ace7ef58 Al Viro 2013-06-15 2015 result = -ENOENT; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2016 task = get_proc_task(dir); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2017 if (!task) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2018 goto out; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2019 c52a47ace7ef58 Al Viro 2013-06-15 2020 result = -EACCES; eb94cd96e05d6c Cyrill Gorcunov 2012-05-17 2021 if (!ptrace_may_access(task, PTRACE_MODE_READ)) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2022 goto out_put_task; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2023 c52a47ace7ef58 Al Viro 2013-06-15 2024 result = -ENOENT; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2025 if (dname_to_vma_addr(dentry, &vm_start, &vm_end)) eb94cd96e05d6c Cyrill Gorcunov 2012-05-17 2026 goto out_put_task; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2027 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2028 mm = get_task_mm(task); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2029 if (!mm) eb94cd96e05d6c Cyrill Gorcunov 2012-05-17 2030 goto out_put_task; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2031 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2032 down_read(&mm->mmap_sem); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2033 vma = find_exact_vma(mm, vm_start, vm_end); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2034 if (!vma) 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2035 goto out_no_vma; 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2036 05f564849d4949 Stanislav Kinsbursky 2012-11-26 2037 if (vma->vm_file) 7b540d0646ce12 Al Viro 2012-08-27 2038 result = proc_map_files_instantiate(dir, dentry, task, 7b540d0646ce12 Al Viro 2012-08-27 @2039 (void *)(unsigned long)vma->vm_file->f_mode); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2040 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2041 out_no_vma: 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2042 up_read(&mm->mmap_sem); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2043 mmput(mm); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2044 out_put_task: 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2045 put_task_struct(task); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2046 out: c52a47ace7ef58 Al Viro 2013-06-15 2047 return ERR_PTR(result); 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2048 } 640708a2cff7f8 Pavel Emelyanov 2012-01-10 2049 :::::: The code at line 1980 was first introduced by commit :::::: 7b540d0646ce122f0ba4520412be91e530719742 proc_map_files_readdir(): don't bother with grabbing files :::::: TO: Al Viro :::::: CC: Al Viro -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki