Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/*
 2 * SPDX-License-Identifier: MIT
 3 *
 4 * Copyright © 2017 Intel Corporation
 5 */
 6
 7#include <linux/fs.h>
 8#include <linux/mount.h>
 9#include <linux/pagemap.h>
10
11#include "i915_drv.h"
12#include "i915_gemfs.h"
13
14int i915_gemfs_init(struct drm_i915_private *i915)
15{
16	struct file_system_type *type;
17	struct vfsmount *gemfs;
18
19	type = get_fs_type("tmpfs");
20	if (!type)
21		return -ENODEV;
22
23	/*
24	 * By creating our own shmemfs mountpoint, we can pass in
25	 * mount flags that better match our usecase.
26	 *
27	 * One example, although it is probably better with a per-file
28	 * control, is selecting huge page allocations ("huge=within_size").
29	 * Currently unused due to bandwidth issues (slow reads) on Broadwell+.
30	 */
31
32	gemfs = kern_mount(type);
33	if (IS_ERR(gemfs))
34		return PTR_ERR(gemfs);
35
36	i915->mm.gemfs = gemfs;
37
38	return 0;
39}
40
41void i915_gemfs_fini(struct drm_i915_private *i915)
42{
43	kern_unmount(i915->mm.gemfs);
44}