Commit f3bc632a authored by Chris Wilson's avatar Chris Wilson
Browse files

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -252,6 +252,7 @@ i915-$(CONFIG_DRM_I915_SELFTEST) += \
	gem/selftests/igt_gem_utils.o \
	selftests/i915_random.o \
	selftests/i915_selftest.o \
	selftests/igt_atomic.o \
	selftests/igt_flush_test.o \
	selftests/igt_live_test.o \
	selftests/igt_mmap.o \
+47 −0
Original line number Diff line number Diff line
// 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 },
	{ }
};
+1 −40
Original line number Diff line number Diff line
@@ -6,51 +6,12 @@
#ifndef 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 {
	const char *name;
	void (*critical_section_begin)(void);
	void (*critical_section_end)(void);
};

static const struct igt_atomic_section igt_atomic_phases[] = {
	{ "preempt", __preempt_begin, __preempt_end },
	{ "softirq", __softirq_begin, __softirq_end },
	{ "hardirq", __hardirq_begin, __hardirq_end },
	{ }
};
extern const struct igt_atomic_section igt_atomic_phases[];

#endif /* IGT_ATOMIC_H */