[1/3] drm/i915: place selftest preparation on a separate function
Commit Message
The selftest preparation logic should also be used by KUnit. So,
place it on a separate function and export it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover.
See [PATCH 0/3] at: https://lore.kernel.org/all/cover.1669897668.git.mchehab@kernel.org/
drivers/gpu/drm/i915/i915_selftest.h | 2 ++
.../gpu/drm/i915/selftests/i915_selftest.c | 22 ++++++++++++-------
2 files changed, 16 insertions(+), 8 deletions(-)
Comments
Hi Mauro,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-intel/for-linux-next-fixes drm-tip/drm-tip drm/drm-next drm-misc/drm-misc-next linus/master v6.1-rc7 next-20221202]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Add-KUnit-support-for-i915-mock-selftests/20221201-203541
base: git://anongit.freedesktop.org/drm-intel for-linux-next
patch link: https://lore.kernel.org/r/c0ebcad250fc68e4822a921d7ea7a63ae16d381f.1669897668.git.mchehab%40kernel.org
patch subject: [PATCH 1/3] drm/i915: place selftest preparation on a separate function
config: i386-randconfig-a004
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/1a66d45e9cb9e62baf4eef1e30ddaed30269d3b9
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Add-KUnit-support-for-i915-mock-selftests/20221201-203541
git checkout 1a66d45e9cb9e62baf4eef1e30ddaed30269d3b9
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/i915/i915_driver.c:52:
In file included from drivers/gpu/drm/i915/display/intel_display_types.h:49:
In file included from drivers/gpu/drm/i915/i915_vma.h:33:
In file included from drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h:12:
In file included from drivers/gpu/drm/i915/i915_active.h:13:
In file included from drivers/gpu/drm/i915/i915_request.h:34:
In file included from drivers/gpu/drm/i915/gem/i915_gem_context_types.h:20:
In file included from drivers/gpu/drm/i915/gt/intel_context_types.h:18:
In file included from drivers/gpu/drm/i915/gt/intel_engine_types.h:23:
>> drivers/gpu/drm/i915/i915_selftest.h:117:55: warning: omitting the parameter name in a function definition is a C2x extension [-Wc2x-extensions]
static inline void i915_prepare_selftests(const char *) {};
^
1 warning generated.
--
In file included from drivers/gpu/drm/i915/i915_sw_fence.c:13:
>> drivers/gpu/drm/i915/i915_selftest.h:117:55: warning: omitting the parameter name in a function definition is a C2x extension [-Wc2x-extensions]
static inline void i915_prepare_selftests(const char *) {};
^
drivers/gpu/drm/i915/i915_sw_fence.c:97:20: warning: unused function 'debug_fence_init_onstack' [-Wunused-function]
static inline void debug_fence_init_onstack(struct i915_sw_fence *fence)
^
drivers/gpu/drm/i915/i915_sw_fence.c:118:20: warning: unused function 'debug_fence_free' [-Wunused-function]
static inline void debug_fence_free(struct i915_sw_fence *fence)
^
3 warnings generated.
vim +117 drivers/gpu/drm/i915/i915_selftest.h
116
> 117 static inline void i915_prepare_selftests(const char *) {};
118 static inline int i915_mock_selftests(void) { return 0; }
119 static inline int i915_live_selftests(struct pci_dev *pdev) { return 0; }
120 static inline int i915_perf_selftests(struct pci_dev *pdev) { return 0; }
121
@@ -44,6 +44,7 @@ struct i915_selftest {
extern struct i915_selftest i915_selftest;
+void i915_prepare_selftests(const char *name);
int i915_mock_selftests(void);
int i915_live_selftests(struct pci_dev *pdev);
int i915_perf_selftests(struct pci_dev *pdev);
@@ -113,6 +114,7 @@ int __i915_subtests(const char *caller,
#else /* !IS_ENABLED(CONFIG_DRM_I915_SELFTEST) */
+static inline void i915_prepare_selftests(const char *) {};
static inline int i915_mock_selftests(void) { return 0; }
static inline int i915_live_selftests(struct pci_dev *pdev) { return 0; }
static inline int i915_perf_selftests(struct pci_dev *pdev) { return 0; }
@@ -127,13 +127,8 @@ static void set_default_test_all(struct selftest *st, unsigned int count)
st[i].enabled = true;
}
-static int __run_selftests(const char *name,
- struct selftest *st,
- unsigned int count,
- void *data)
+void i915_prepare_selftests(const char *name)
{
- int err = 0;
-
while (!i915_selftest.random_seed)
i915_selftest.random_seed = get_random_u32();
@@ -142,10 +137,21 @@ static int __run_selftests(const char *name,
msecs_to_jiffies_timeout(i915_selftest.timeout_ms) :
MAX_SCHEDULE_TIMEOUT;
- set_default_test_all(st, count);
-
pr_info(DRIVER_NAME ": Performing %s selftests with st_random_seed=0x%x st_timeout=%u\n",
name, i915_selftest.random_seed, i915_selftest.timeout_ms);
+}
+EXPORT_SYMBOL_NS_GPL(i915_prepare_selftests, I915_SELFTEST);
+
+static int __run_selftests(const char *name,
+ struct selftest *st,
+ unsigned int count,
+ void *data)
+{
+ int err = 0;
+
+ i915_prepare_selftests(name);
+
+ set_default_test_all(st, count);
/* Tests are listed in order in i915_*_selftests.h */
for (; count--; st++) {