Page MenuHomeFreeBSD

D36234.id109427.diff
No OneTemporary

D36234.id109427.diff

Index: sys/kern/kern_cpuset.c
===================================================================
--- sys/kern/kern_cpuset.c
+++ sys/kern/kern_cpuset.c
@@ -1743,9 +1743,28 @@
return (0);
}
+/*
+ * TODO: At least powerpc64 and powerpc64le kernels panic with
+ * exception 0x480 (instruction segment exception) when copyin/copyout,
+ * are set as a function pointer in cpuset_copy_cb struct and called by
+ * an external module (like pfsync). Tip: copyin/copyout have an ifunc
+ * resolver function.
+ */
+static int
+cpuset_copyin(const void *uaddr, void *kaddr, size_t len)
+{
+ return(copyin(uaddr, kaddr, len));
+}
+
+static int
+cpuset_copyout(const void *kaddr, void *uaddr, size_t len)
+{
+ return(copyout(kaddr, uaddr, len));
+}
+
static const struct cpuset_copy_cb copy_set = {
- .cpuset_copyin = copyin,
- .cpuset_copyout = copyout
+ .cpuset_copyin = cpuset_copyin,
+ .cpuset_copyout = cpuset_copyout
};
#ifndef _SYS_SYSPROTO_H_

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 24, 11:15 AM (7 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32074374
Default Alt Text
D36234.id109427.diff (947 B)

Event Timeline