| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // SPDX-License-Identifier: MIT
- /*
- * Copyright © 2020 Intel Corporation
- */
- /* Just a quick and causal check of the shmem_utils API */
- static int igt_shmem_basic(void *ignored)
- {
- u32 datum = 0xdeadbeef, result;
- struct file *file;
- u32 *map;
- int err;
- file = shmem_create_from_data("mock", &datum, sizeof(datum));
- if (IS_ERR(file))
- return PTR_ERR(file);
- result = 0;
- err = shmem_read(file, 0, &result, sizeof(result));
- if (err)
- goto out_file;
- if (result != datum) {
- pr_err("Incorrect read back from shmemfs: %x != %x\n",
- result, datum);
- err = -EINVAL;
- goto out_file;
- }
- result = 0xc0ffee;
- err = shmem_write(file, 0, &result, sizeof(result));
- if (err)
- goto out_file;
- map = shmem_pin_map(file);
- if (!map) {
- err = -ENOMEM;
- goto out_file;
- }
- if (*map != result) {
- pr_err("Incorrect read back via mmap of last write: %x != %x\n",
- *map, result);
- err = -EINVAL;
- goto out_map;
- }
- out_map:
- shmem_unpin_map(file, map);
- out_file:
- fput(file);
- return err;
- }
- int shmem_utils_mock_selftests(void)
- {
- static const struct i915_subtest tests[] = {
- SUBTEST(igt_shmem_basic),
- };
- return i915_subtests(tests, NULL);
- }
|