brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · b279fe8 Raw
64 lines · c
1// SPDX-License-Identifier: MIT2/*3 * Copyright © 2020 Intel Corporation4 */5 6/* Just a quick and causal check of the shmem_utils API */7 8static int igt_shmem_basic(void *ignored)9{10	u32 datum = 0xdeadbeef, result;11	struct file *file;12	u32 *map;13	int err;14 15	file = shmem_create_from_data("mock", &datum, sizeof(datum));16	if (IS_ERR(file))17		return PTR_ERR(file);18 19	result = 0;20	err = shmem_read(file, 0, &result, sizeof(result));21	if (err)22		goto out_file;23 24	if (result != datum) {25		pr_err("Incorrect read back from shmemfs: %x != %x\n",26		       result, datum);27		err = -EINVAL;28		goto out_file;29	}30 31	result = 0xc0ffee;32	err = shmem_write(file, 0, &result, sizeof(result));33	if (err)34		goto out_file;35 36	map = shmem_pin_map(file);37	if (!map) {38		err = -ENOMEM;39		goto out_file;40	}41 42	if (*map != result) {43		pr_err("Incorrect read back via mmap of last write: %x != %x\n",44		       *map, result);45		err = -EINVAL;46		goto out_map;47	}48 49out_map:50	shmem_unpin_map(file, map);51out_file:52	fput(file);53	return err;54}55 56int shmem_utils_mock_selftests(void)57{58	static const struct i915_subtest tests[] = {59		SUBTEST(igt_shmem_basic),60	};61 62	return i915_subtests(tests, NULL);63}64