Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fault-inject: improve build for CONFIG_FAULT_INJECTION=n

The fault-inject.h users across the kernel need to add a lot of #ifdef
CONFIG_FAULT_INJECTION to cater for shortcomings in the header. Make
fault-inject.h self-contained for CONFIG_FAULT_INJECTION=n, and add stubs
for DECLARE_FAULT_ATTR(), setup_fault_attr(), should_fail_ex(), and
should_fail() to allow removal of conditional compilation.

[akpm@linux-foundation.org: repair fallout from no longer including debugfs.h into fault-inject.h]
[akpm@linux-foundation.org: fix drivers/misc/xilinx_tmr_inject.c]
[akpm@linux-foundation.org: Add debugfs.h inclusion to more files, per Stephen]
Link: https://lkml.kernel.org/r/20240813121237.2382534-1-jani.nikula@intel.com
Fixes: 6ff1cb355e62 ("[PATCH] fault-injection capabilities infrastructure")
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Jani Nikula and committed by
Andrew Morton
6ce2082f a15bec6a

+40 -7
+1
drivers/gpu/drm/msm/msm_drv.c
··· 7 7 8 8 #include <linux/dma-mapping.h> 9 9 #include <linux/fault-inject.h> 10 + #include <linux/debugfs.h> 10 11 #include <linux/of_address.h> 11 12 #include <linux/uaccess.h> 12 13
+1
drivers/iommu/iommufd/selftest.c
··· 7 7 #include <linux/iommu.h> 8 8 #include <linux/xarray.h> 9 9 #include <linux/file.h> 10 + #include <linux/debugfs.h> 10 11 #include <linux/anon_inodes.h> 11 12 #include <linux/fault-inject.h> 12 13 #include <linux/platform_device.h>
+1
drivers/misc/xilinx_tmr_inject.c
··· 12 12 #include <asm/xilinx_mb_manager.h> 13 13 #include <linux/module.h> 14 14 #include <linux/of.h> 15 + #include <linux/debugfs.h> 15 16 #include <linux/platform_device.h> 16 17 #include <linux/fault-inject.h> 17 18
+1
drivers/nvme/host/fault_inject.c
··· 6 6 */ 7 7 8 8 #include <linux/moduleparam.h> 9 + #include <linux/debugfs.h> 9 10 #include "nvme.h" 10 11 11 12 static DECLARE_FAULT_ATTR(fail_default_attr);
+1
drivers/ufs/core/ufs-fault-injection.c
··· 3 3 #include <linux/kconfig.h> 4 4 #include <linux/types.h> 5 5 #include <linux/fault-inject.h> 6 + #include <linux/debugfs.h> 6 7 #include <linux/module.h> 7 8 #include <ufs/ufshcd.h> 8 9 #include "ufs-fault-injection.h"
+29 -7
include/linux/fault-inject.h
··· 2 2 #ifndef _LINUX_FAULT_INJECT_H 3 3 #define _LINUX_FAULT_INJECT_H 4 4 5 + #include <linux/err.h> 6 + #include <linux/types.h> 7 + 8 + struct dentry; 9 + struct kmem_cache; 10 + 5 11 #ifdef CONFIG_FAULT_INJECTION 6 12 7 - #include <linux/types.h> 8 - #include <linux/debugfs.h> 13 + #include <linux/atomic.h> 9 14 #include <linux/configfs.h> 10 15 #include <linux/ratelimit.h> 11 - #include <linux/atomic.h> 12 16 13 17 /* 14 18 * For explanation of the elements of this struct, see ··· 55 51 bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags); 56 52 bool should_fail(struct fault_attr *attr, ssize_t size); 57 53 54 + #else /* CONFIG_FAULT_INJECTION */ 55 + 56 + struct fault_attr { 57 + }; 58 + 59 + #define DECLARE_FAULT_ATTR(name) struct fault_attr name = {} 60 + 61 + static inline int setup_fault_attr(struct fault_attr *attr, char *str) 62 + { 63 + return 0; /* Note: 0 means error for __setup() handlers! */ 64 + } 65 + static inline bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags) 66 + { 67 + return false; 68 + } 69 + static inline bool should_fail(struct fault_attr *attr, ssize_t size) 70 + { 71 + return false; 72 + } 73 + 74 + #endif /* CONFIG_FAULT_INJECTION */ 75 + 58 76 #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS 59 77 60 78 struct dentry *fault_create_debugfs_attr(const char *name, ··· 112 86 } 113 87 114 88 #endif /* CONFIG_FAULT_INJECTION_CONFIGFS */ 115 - 116 - #endif /* CONFIG_FAULT_INJECTION */ 117 - 118 - struct kmem_cache; 119 89 120 90 #ifdef CONFIG_FAIL_PAGE_ALLOC 121 91 bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order);
+1
include/linux/mmc/host.h
··· 10 10 #include <linux/sched.h> 11 11 #include <linux/device.h> 12 12 #include <linux/fault-inject.h> 13 + #include <linux/debugfs.h> 13 14 14 15 #include <linux/mmc/core.h> 15 16 #include <linux/mmc/card.h>
+1
include/ufs/ufshcd.h
··· 17 17 #include <linux/blk-mq.h> 18 18 #include <linux/devfreq.h> 19 19 #include <linux/fault-inject.h> 20 + #include <linux/debugfs.h> 20 21 #include <linux/msi.h> 21 22 #include <linux/pm_runtime.h> 22 23 #include <linux/dma-direction.h>
+1
kernel/futex/core.c
··· 34 34 #include <linux/compat.h> 35 35 #include <linux/jhash.h> 36 36 #include <linux/pagemap.h> 37 + #include <linux/debugfs.h> 37 38 #include <linux/plist.h> 38 39 #include <linux/memblock.h> 39 40 #include <linux/fault-inject.h>
+1
lib/fault-inject.c
··· 2 2 #include <linux/kernel.h> 3 3 #include <linux/init.h> 4 4 #include <linux/random.h> 5 + #include <linux/debugfs.h> 5 6 #include <linux/sched.h> 6 7 #include <linux/stat.h> 7 8 #include <linux/types.h>
+1
mm/fail_page_alloc.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0 2 2 #include <linux/fault-inject.h> 3 + #include <linux/debugfs.h> 3 4 #include <linux/error-injection.h> 4 5 #include <linux/mm.h> 5 6
+1
mm/failslab.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0 2 2 #include <linux/fault-inject.h> 3 3 #include <linux/error-injection.h> 4 + #include <linux/debugfs.h> 4 5 #include <linux/slab.h> 5 6 #include <linux/mm.h> 6 7 #include "slab.h"