summaryrefslogtreecommitdiffstats
path: root/kmod/kvm.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-09-29 00:32:30 +0200
committerLouis Burda <quent.burda@gmail.com>2022-09-29 00:32:30 +0200
commit9cce829d8a794848b0699c3f9a84b2a057221a90 (patch)
treef1efcf63354a6fd971974a027b8d6dc56b1da470 /kmod/kvm.c
parent297900bdb5d58224bb1d65f5632a179de825c11d (diff)
downloadcachepc-9cce829d8a794848b0699c3f9a84b2a057221a90.tar.gz
cachepc-9cce829d8a794848b0699c3f9a84b2a057221a90.zip
Adapt kernel module for sev-snp machine
Diffstat (limited to 'kmod/kvm.c')
-rw-r--r--kmod/kvm.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/kmod/kvm.c b/kmod/kvm.c
index 4c35157..4deb4fa 100644
--- a/kmod/kvm.c
+++ b/kmod/kvm.c
@@ -69,6 +69,26 @@ cachepc_kvm_proc_write(struct file *file, const char *buf, size_t buflen, loff_t
return 0;
}
+loff_t
+cachepc_kvm_proc_lseek(struct file *file, loff_t off, int mode)
+{
+ switch (mode) {
+ case SEEK_SET:
+ file->f_pos = off;
+ break;
+ case SEEK_CUR:
+ file->f_pos += off;
+ break;
+ case SEEK_END:
+ file->f_pos = cachepc_msrmts_count * sizeof(uint16_t) + off;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return file->f_pos;
+}
+
void
cachepc_kvm_prime_probe_test(void *p)
{
@@ -355,6 +375,7 @@ cachepc_kvm_init(void)
cachepc_proc_ops.proc_open = cachepc_kvm_proc_open;
cachepc_proc_ops.proc_read = cachepc_kvm_proc_read;
cachepc_proc_ops.proc_write = cachepc_kvm_proc_write;
+ cachepc_proc_ops.proc_lseek = cachepc_kvm_proc_lseek;
cachepc_proc_ops.proc_release = cachepc_kvm_proc_close;
cachepc_proc_ops.proc_ioctl = cachepc_kvm_ioctl;
proc_create("cachepc", 0644, NULL, &cachepc_proc_ops);