Commit f3bc632a authored by Chris Wilson's avatar Chris Wilson

drm/i915/selftests: Move igt_atomic_section[] out of the header

Move the definition of the igt_atomic_section[] into a C file, leaving
the declaration in the header so as not to upset headertest!
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200103104516.1757103-1-chris@chris-wilson.co.uk
parent 6056e500
...@@ -252,6 +252,7 @@ i915-$(CONFIG_DRM_I915_SELFTEST) += \ ...@@ -252,6 +252,7 @@ i915-$(CONFIG_DRM_I915_SELFTEST) += \
gem/selftests/igt_gem_utils.o \ gem/selftests/igt_gem_utils.o \
selftests/i915_random.o \ selftests/i915_random.o \
selftests/i915_selftest.o \ selftests/i915_selftest.o \
selftests/igt_atomic.o \
selftests/igt_flush_test.o \ selftests/igt_flush_test.o \
selftests/igt_live_test.o \ selftests/igt_live_test.o \
selftests/igt_mmap.o \ selftests/igt_mmap.o \
......
// SPDX-License-Identifier: MIT
/*
* Copyright © 2018 Intel Corporation
*/
#include <linux/preempt.h>
#include <linux/bottom_half.h>
#include <linux/irqflags.h>
#include "igt_atomic.h"
static void __preempt_begin(void)
{
preempt_disable();
}
static void __preempt_end(void)
{
preempt_enable();
}
static void __softirq_begin(void)
{
local_bh_disable();
}
static void __softirq_end(void)
{
local_bh_enable();
}
static void __hardirq_begin(void)
{
local_irq_disable();
}
static void __hardirq_end(void)
{
local_irq_enable();
}
const struct igt_atomic_section igt_atomic_phases[] = {
{ "preempt", __preempt_begin, __preempt_end },
{ "softirq", __softirq_begin, __softirq_end },
{ "hardirq", __hardirq_begin, __hardirq_end },
{ }
};
...@@ -6,51 +6,12 @@ ...@@ -6,51 +6,12 @@
#ifndef IGT_ATOMIC_H #ifndef IGT_ATOMIC_H
#define IGT_ATOMIC_H #define IGT_ATOMIC_H
#include <linux/preempt.h>
#include <linux/bottom_half.h>
#include <linux/irqflags.h>
static void __preempt_begin(void)
{
preempt_disable();
}
static void __preempt_end(void)
{
preempt_enable();
}
static void __softirq_begin(void)
{
local_bh_disable();
}
static void __softirq_end(void)
{
local_bh_enable();
}
static void __hardirq_begin(void)
{
local_irq_disable();
}
static void __hardirq_end(void)
{
local_irq_enable();
}
struct igt_atomic_section { struct igt_atomic_section {
const char *name; const char *name;
void (*critical_section_begin)(void); void (*critical_section_begin)(void);
void (*critical_section_end)(void); void (*critical_section_end)(void);
}; };
static const struct igt_atomic_section igt_atomic_phases[] = { extern const struct igt_atomic_section igt_atomic_phases[];
{ "preempt", __preempt_begin, __preempt_end },
{ "softirq", __softirq_begin, __softirq_end },
{ "hardirq", __hardirq_begin, __hardirq_end },
{ }
};
#endif /* IGT_ATOMIC_H */ #endif /* IGT_ATOMIC_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment