--- a/drivers/char/mem.c	2008-01-24 17:58:37.000000000 -0500
+++ b/drivers/char/mem.c	2008-03-31 16:30:51.000000000 -0400
@@ -6,6 +6,9 @@
  *  Added devfs support. 
  *    Jan-11-1998, C. Scott Ananian <cananian@alumni.princeton.edu>
  *  Shared /dev/zero mmaping support, Feb 2000, Kanoj Sarcar <kanoj@sgi.com>
+ *
+ *  Added support for the /dev/one device. Originally intended for poly-p-ux
+ *    Feb-09-2008, Marcin Koziuk <marcin.koziuk@gmail.com>
  */
 
 #include <linux/mm.h>
@@ -654,6 +657,23 @@
 	return written ? written : -EFAULT;
 }
 
+static ssize_t read_one(struct file * file, char __user * buf, 
+          size_t count, loff_t *ppos) 
+{ 
+   size_t written; 
+   unsigned long unwritten; 
+   static int one = ~0; 
+ 
+   for (written = 0; written < count; written++) { 
+      unwritten = copy_to_user(&buf[written], &one, 1); 
+      if (unwritten) 
+         break; 
+      cond_resched(); 
+   } 
+       
+   return written ? written : -EFAULT; 
+} 
+
 static int mmap_zero(struct file * file, struct vm_area_struct * vma)
 {
 #ifndef CONFIG_MMU
@@ -724,6 +744,9 @@
 #define open_mem	open_port
 #define open_kmem	open_mem
 #define open_oldmem	open_mem
+#define one_lseek   null_lseek 
+#define write_one   write_null 
+#define mmap_one   mmap_zero
 
 static const struct file_operations mem_fops = {
 	.llseek		= memory_lseek,
@@ -765,6 +788,12 @@
 	.write		= write_zero,
 	.mmap		= mmap_zero,
 };
+static const struct file_operations one_fops = { 
+   .llseek      = one_lseek, 
+   .read      = read_one, 
+   .write      = write_one, 
+   .mmap      = mmap_one, 
+};
 
 /*
  * capabilities for /dev/zero
@@ -854,6 +883,10 @@
 			filp->f_op = &oldmem_fops;
 			break;
 #endif
+		case 13: 
+			filp->f_mapping->backing_dev_info = &zero_bdi; 
+			filp->f_op = &one_fops; 
+			break;
 		default:
 			return -ENXIO;
 	}
@@ -886,6 +919,7 @@
 #ifdef CONFIG_CRASH_DUMP
 	{12,"oldmem",    S_IRUSR | S_IWUSR | S_IRGRP, &oldmem_fops},
 #endif
+	{13,"one",     S_IRUGO | S_IWUGO,           &one_fops},
 };
 
 static struct class *mem_class;
