diff --git a/kernel/sched/perf_error_detection.c b/kernel/sched/perf_error_detection.c
index 6b2927eea66ad7e0f615f4cb354526917a328a38..0e1dd0fde030b0a4b035357ba7a6b1f2a6b7f977 100644
--- a/kernel/sched/perf_error_detection.c
+++ b/kernel/sched/perf_error_detection.c
@@ -81,7 +81,16 @@ void overflow_handler(int signum,siginfo_t *oh, void *blah) {
 }
 
 int perf_event_open(struct perf_event_attr *hw_event_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) {
+	mm_segment_t fs;
+	int ret;
 
-	return syscall(__NR_perf_event_open,hw_event_uptr, pid, cpu,
-			group_fd, flags);
+	fs = get_fs();     /* save previous value */
+
+	set_fs (get_ds()); /* use kernel limit */
+
+	ret = syscall(__NR_perf_event_open,hw_event_uptr, pid, cpu, group_fd, flags);
+
+	set_fs(fs);
+
+	return ret;
 }
diff --git a/kernel/sched/perf_error_detection.h b/kernel/sched/perf_error_detection.h
index fd5ccf445a8572f0a20143d20bf93ad5fdd2bba4..a8cb9e6351dc4351b8fbb08acf7f80fb7db23f38 100644
--- a/kernel/sched/perf_error_detection.h
+++ b/kernel/sched/perf_error_detection.h
@@ -5,7 +5,8 @@
 #include "sched.h"
 #include <linux/signal.h>
 #include <linux/ioctl.h>
-#include <stdio.h>
+#include <linux/fs.h>
+
 //#include <include/linux/smp.h>
 #endif
 
diff --git a/sound/oss/dmabuf.c b/sound/oss/dmabuf.c
index c5dd396c66a22613a2537a5e8cfb0b9b5ca58637..92866d436ed5d32d898db52c7430b7e1a976adce 100644
--- a/sound/oss/dmabuf.c
+++ b/sound/oss/dmabuf.c
@@ -19,7 +19,7 @@
  *                   an explicit wake_up. The return value from schedule_timeout
  *		     can be used instead; if 0, the wakeup was due to the timeout.
  *
- * Rob Riggs		Added persistent DMA buffers (1998/10/17)
+ * Rob Riggs		Added persistent DMA buffers (1998/10/17)#include <asm/segment.h>
  */
 
 #define BE_CONSERVATIVE