Whamcloud - gitweb
smash the HEAD with the contents of b_cmd. HEAD_PRE_CMD_SMASH and
[fs/lustre-release.git] / lustre / kernel_patches / patches / uml-patch-2.4.23-1.patch
@@ -1795,7 +1795,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/chan_user.c um/arch/um/drive
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/cow.h um/arch/um/drivers/cow.h
 --- orig/arch/um/drivers/cow.h 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/cow.h   2004-01-16 03:45:20.000000000 -0500
++++ um/arch/um/drivers/cow.h   2003-12-15 00:32:23.000000000 -0500
 @@ -0,0 +1,41 @@
 +#ifndef __COW_H__
 +#define __COW_H__
@@ -1840,7 +1840,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/cow.h um/arch/um/drivers/cow
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_kern.c um/arch/um/drivers/cow_kern.c
 --- orig/arch/um/drivers/cow_kern.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/cow_kern.c      2004-01-10 05:55:04.000000000 -0500
++++ um/arch/um/drivers/cow_kern.c      2003-10-21 03:26:06.000000000 -0400
 @@ -0,0 +1,630 @@
 +#define COW_MAJOR 60
 +#define MAJOR_NR COW_MAJOR
@@ -1874,7 +1874,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_kern.c um/arch/um/driver
 +      unsigned long *bitmap;
 +      unsigned long bitmap_len;
 +      int bitmap_offset;
-+      int data_offset;
++        int data_offset;
 +      devfs_handle_t devfs;
 +      struct semaphore sem;
 +      struct semaphore io_sem;
@@ -1925,10 +1925,10 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_kern.c um/arch/um/driver
 +static int cow_revalidate(kdev_t rdev);
 +
 +static struct block_device_operations cow_blops = {
-+      .open           = cow_open,
-+      .release        = cow_release,
-+      .ioctl          = cow_ioctl,
-+      .revalidate     = cow_revalidate,
++        .open         = cow_open,
++        .release      = cow_release,
++        .ioctl                = cow_ioctl,
++        .revalidate   = cow_revalidate,
 +};
 +
 +/* Initialized in an initcall, and unchanged thereafter */
@@ -2526,7 +2526,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_sys.h um/arch/um/drivers
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_user.c um/arch/um/drivers/cow_user.c
 --- orig/arch/um/drivers/cow_user.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/cow_user.c      2004-01-10 05:56:22.000000000 -0500
++++ um/arch/um/drivers/cow_user.c      2003-11-08 06:29:47.000000000 -0500
 @@ -0,0 +1,375 @@
 +#include <stddef.h>
 +#include <string.h>
@@ -2691,7 +2691,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_user.c um/arch/um/driver
 +int write_cow_header(char *cow_file, int fd, char *backing_file, 
 +                   int sectorsize, int alignment, long long *size)
 +{
-+      struct cow_header_v3 *header;
++        struct cow_header_v3 *header;
 +      unsigned long modtime;
 +      int err;
 +
@@ -3708,8 +3708,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/harddog_user.c um/arch/um/dr
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/drivers/hostaudio_kern.c
 --- orig/arch/um/drivers/hostaudio_kern.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/hostaudio_kern.c        2004-02-12 05:46:22.000000000 -0500
-@@ -0,0 +1,352 @@
++++ um/arch/um/drivers/hostaudio_kern.c        2003-11-10 00:04:23.000000000 -0500
+@@ -0,0 +1,339 @@
 +/* 
 + * Copyright (C) 2002 Steve Schmidtke 
 + * Licensed under the GPL
@@ -3717,6 +3717,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +
 +#include "linux/config.h"
 +#include "linux/module.h"
++#include "linux/version.h"
 +#include "linux/init.h"
 +#include "linux/slab.h"
 +#include "linux/fs.h"
@@ -3725,18 +3726,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +#include "asm/uaccess.h"
 +#include "kern_util.h"
 +#include "init.h"
-+#include "os.h"
-+
-+struct hostaudio_state {
-+      int fd;
-+};
-+
-+struct hostmixer_state {
-+      int fd;
-+};
-+
-+#define HOSTAUDIO_DEV_DSP "/dev/sound/dsp"
-+#define HOSTAUDIO_DEV_MIXER "/dev/sound/mixer"
++#include "hostaudio.h"
 +
 +/* Only changed from linux_main at boot time */
 +char *dsp = HOSTAUDIO_DEV_DSP;
@@ -3794,7 +3784,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +      if(kbuf == NULL)
 +              return(-ENOMEM);
 +
-+      err = os_read_file(state->fd, kbuf, count);
++        err = hostaudio_read_user(state, kbuf, count, ppos);
 +      if(err < 0)
 +              goto out;
 +
@@ -3825,10 +3815,9 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +      if(copy_from_user(kbuf, buffer, count))
 +              goto out;
 +
-+      err = os_write_file(state->fd, kbuf, count);
++        err = hostaudio_write_user(state, kbuf, count, ppos);
 +      if(err < 0)
 +              goto out;
-+      *ppos += err;
 +
 + out:
 +      kfree(kbuf);
@@ -3871,7 +3860,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +              break;
 +      }
 +
-+      err = os_ioctl_generic(state->fd, cmd, (unsigned long) &data);
++        err = hostaudio_ioctl_user(state, cmd, (unsigned long) &data);
 +
 +      switch(cmd){
 +      case SNDCTL_DSP_SPEED:
@@ -3901,19 +3890,17 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +#endif
 +
 +        state = kmalloc(sizeof(struct hostaudio_state), GFP_KERNEL);
-+        if(state == NULL) 
-+              return(-ENOMEM);
++        if(state == NULL) return(-ENOMEM);
 +
 +        if(file->f_mode & FMODE_READ) r = 1;
 +        if(file->f_mode & FMODE_WRITE) w = 1;
 +
-+      ret = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
++        ret = hostaudio_open_user(state, r, w, dsp);
 +        if(ret < 0){
 +              kfree(state);
 +              return(ret);
 +        }
 +
-+      state->fd = ret;
 +        file->private_data = state;
 +        return(0);
 +}
@@ -3921,15 +3908,16 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +static int hostaudio_release(struct inode *inode, struct file *file)
 +{
 +        struct hostaudio_state *state = file->private_data;
++        int ret;
 +
 +#ifdef DEBUG
 +        printk("hostaudio: release called\n");
 +#endif
 +
-+      os_close_file(state->fd);
++        ret = hostaudio_release_user(state);
 +        kfree(state);
 +
-+        return(0);
++        return(ret);
 +}
 +
 +/* /dev/mixer file operations */
@@ -3943,7 +3931,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +        printk("hostmixer: ioctl called\n");
 +#endif
 +
-+      return(os_ioctl_generic(state->fd, cmd, arg));
++        return(hostmixer_ioctl_mixdev_user(state, cmd, arg));
 +}
 +
 +static int hostmixer_open_mixdev(struct inode *inode, struct file *file)
@@ -3962,11 +3950,9 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +        if(file->f_mode & FMODE_READ) r = 1;
 +        if(file->f_mode & FMODE_WRITE) w = 1;
 +
-+      ret = os_open_file(mixer, of_set_rw(OPENFLAGS(), r, w), 0);
++        ret = hostmixer_open_mixdev_user(state, r, w, mixer);
 +        
 +        if(ret < 0){
-+              printk("hostaudio_open_mixdev failed to open '%s', err = %d\n",
-+                     dsp, -ret);
 +              kfree(state);
 +              return(ret);
 +        }
@@ -3978,15 +3964,16 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 +static int hostmixer_release(struct inode *inode, struct file *file)
 +{
 +        struct hostmixer_state *state = file->private_data;
++      int ret;
 +
 +#ifdef DEBUG
 +        printk("hostmixer: release called\n");
 +#endif
 +
-+      os_close_file(state->fd);
++        ret = hostmixer_release_mixdev_user(state);
 +        kfree(state);
 +
-+        return(0);
++        return(ret);
 +}
 +
 +
@@ -4062,6 +4049,144 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_user.c um/arch/um/drivers/hostaudio_user.c
+--- orig/arch/um/drivers/hostaudio_user.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/hostaudio_user.c        2003-10-21 03:26:06.000000000 -0400
+@@ -0,0 +1,134 @@
++/* 
++ * Copyright (C) 2002 Steve Schmidtke 
++ * Licensed under the GPL
++ */
++
++#include <sys/types.h>
++#include <unistd.h>
++#include <errno.h>
++#include "hostaudio.h"
++#include "user_util.h"
++#include "kern_util.h"
++#include "user.h"
++#include "os.h"
++
++/* /dev/dsp file operations */
++
++ssize_t hostaudio_read_user(struct hostaudio_state *state, char *buffer, 
++                          size_t count, loff_t *ppos)
++{
++#ifdef DEBUG
++        printk("hostaudio: read_user called, count = %d\n", count);
++#endif
++
++        return(os_read_file(state->fd, buffer, count));
++}
++
++ssize_t hostaudio_write_user(struct hostaudio_state *state, const char *buffer,
++                           size_t count, loff_t *ppos)
++{
++      ssize_t ret;
++
++#ifdef DEBUG
++        printk("hostaudio: write_user called, count = %d\n", count);
++#endif
++
++        return(os_write_file(state->fd, buffer, count));
++
++        return(ret);
++}
++
++int hostaudio_ioctl_user(struct hostaudio_state *state, unsigned int cmd, 
++                       unsigned long arg)
++{
++#ifdef DEBUG
++        printk("hostaudio: ioctl_user called, cmd = %u\n", cmd);
++#endif
++
++        return(os_ioctl_generic(state->fd, cmd, arg));
++}
++
++int hostaudio_open_user(struct hostaudio_state *state, int r, int w, char *dsp)
++{
++#ifdef DEBUG
++        printk("hostaudio: open_user called\n");
++#endif
++
++        state->fd = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
++
++        if(state->fd < 0) {
++              printk("hostaudio_open_user failed to open '%s', err = %d\n",
++                     dsp, -state->fd);
++              return(state->fd); 
++      }
++        
++      return(0);
++}
++
++int hostaudio_release_user(struct hostaudio_state *state)
++{
++#ifdef DEBUG
++        printk("hostaudio: release called\n");
++#endif
++        if(state->fd >= 0){
++              os_close_file(state->fd);
++              state->fd = -1;
++        }
++
++        return(0);
++}
++
++/* /dev/mixer file operations */
++
++int hostmixer_ioctl_mixdev_user(struct hostmixer_state *state, 
++                              unsigned int cmd, unsigned long arg)
++{
++#ifdef DEBUG
++        printk("hostmixer: ioctl_user called cmd = %u\n",cmd);
++#endif
++
++      return(os_ioctl_generic(state->fd, cmd, arg));
++}
++
++int hostmixer_open_mixdev_user(struct hostmixer_state *state, int r, int w,
++                             char *mixer)
++{
++#ifdef DEBUG
++        printk("hostmixer: open_user called\n");
++#endif
++
++        state->fd = os_open_file(mixer, of_set_rw(OPENFLAGS(), r, w), 0);
++
++        if(state->fd < 0) {
++              printk("hostaudio_open_mixdev_user failed to open '%s', "
++                     "err = %d\n", mixer, state->fd);
++              return(state->fd); 
++      }
++        
++      return(0);
++}
++
++int hostmixer_release_mixdev_user(struct hostmixer_state *state)
++{
++#ifdef DEBUG
++        printk("hostmixer: release_user called\n");
++#endif
++
++        if(state->fd >= 0){
++              os_close_file(state->fd);
++              state->fd = -1;
++        }
++
++        return 0;
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/line.c um/arch/um/drivers/line.c
 --- orig/arch/um/drivers/line.c        1969-12-31 19:00:00.000000000 -0500
 +++ um/arch/um/drivers/line.c  2003-11-07 03:03:57.000000000 -0500
@@ -4678,7 +4803,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/line.c um/arch/um/drivers/li
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/Makefile um/arch/um/drivers/Makefile
 --- orig/arch/um/drivers/Makefile      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/Makefile        2004-02-12 03:55:08.000000000 -0500
++++ um/arch/um/drivers/Makefile        2003-11-08 09:58:54.000000000 -0500
 @@ -0,0 +1,97 @@
 +# 
 +# Copyright (C) 2000, 2002, 2003 Jeff Dike (jdike@karaya.com)
@@ -4700,7 +4825,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/Makefile um/arch/um/drivers/
 +pcap-libs := -lpcap -L/usr/lib
 +net-objs := net_kern.o net_user.o
 +mconsole-objs := mconsole_kern.o mconsole_user.o
-+hostaudio-objs := hostaudio_kern.o
++hostaudio-objs := hostaudio_kern.o hostaudio_user.o
 +ubd-objs := ubd_kern.o ubd_user.o
 +port-objs := port_kern.o port_user.o
 +harddog-objs := harddog_kern.o harddog_user.o
@@ -5143,8 +5268,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast_user.c um/arch/um/driv
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_kern.c um/arch/um/drivers/mconsole_kern.c
 --- orig/arch/um/drivers/mconsole_kern.c       1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/mconsole_kern.c 2004-02-12 03:09:12.000000000 -0500
-@@ -0,0 +1,560 @@
++++ um/arch/um/drivers/mconsole_kern.c 2003-10-21 03:26:06.000000000 -0400
+@@ -0,0 +1,561 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
 + * Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
@@ -5259,7 +5384,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_kern.c um/arch/um/d
 +      int len;
 +      char *ptr = req->request.data;
 +      
-+      ptr += strlen("log ");
++      ptr += strlen("log");
++      while(isspace(*ptr)) ptr++;
 +
 +      len = req->len - (ptr - req->request.data);
 +      printk("%.*s", len, ptr);
@@ -5531,8 +5657,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_kern.c um/arch/um/d
 +      ptr += strlen("sysrq");
 +      while(isspace(*ptr)) ptr++;
 +
-+      mconsole_reply(req, "", 0, 0);
 +      handle_sysrq(*ptr, &current->thread.regs, NULL, NULL);
++      mconsole_reply(req, "", 0, 0);
 +}
 +#else
 +void mconsole_sysrq(struct mc_request *req)
@@ -7619,7 +7745,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/port.h um/arch/um/drivers/po
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/port_kern.c um/arch/um/drivers/port_kern.c
 --- orig/arch/um/drivers/port_kern.c   1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/port_kern.c     2004-01-10 06:18:49.000000000 -0500
++++ um/arch/um/drivers/port_kern.c     2003-10-21 03:26:06.000000000 -0400
 @@ -0,0 +1,303 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -7844,7 +7970,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/port_kern.c um/arch/um/drive
 +      int fd;
 +
 +      while(1){
-+              if(down_interruptible(&port->sem))
++              if(down_interruptible(&port->sem)) 
 +                      return(-ERESTARTSYS);
 +
 +              spin_lock(&port->lock);
@@ -9222,8 +9348,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp_user.c um/arch/um/driv
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ssl.c um/arch/um/drivers/ssl.c
 --- orig/arch/um/drivers/ssl.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/ssl.c   2004-01-10 06:20:17.000000000 -0500
-@@ -0,0 +1,300 @@
++++ um/arch/um/drivers/ssl.c   2003-11-08 02:57:02.000000000 -0500
+@@ -0,0 +1,306 @@
 +/* 
 + * Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -9456,6 +9582,12 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ssl.c um/arch/um/drivers/ssl
 +
 +static kdev_t ssl_console_device(struct console *c)
 +{
++#if 0 /* This is the 2.5 implementation */
++static struct tty_driver *ssl_console_device(struct console *c, int *index)
++      *index = c->index;
++      return ssl_driver;
++#endif
++
 +      return mk_kdev(TTY_MAJOR, c->index);
 +}
 +
@@ -9930,8 +10062,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/tty.c um/arch/um/drivers/tty
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/drivers/ubd_kern.c
 --- orig/arch/um/drivers/ubd_kern.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/ubd_kern.c      2004-01-21 01:28:43.000000000 -0500
-@@ -0,0 +1,1396 @@
++++ um/arch/um/drivers/ubd_kern.c      2003-12-17 10:48:17.000000000 -0500
+@@ -0,0 +1,1390 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -10411,7 +10543,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/driver
 +                      printk("ubd_handler - physmem_subst_mapping failed, "
 +                             "err = %d\n", -err);
 +      }
-+
++      
 +      spin_lock(&io_request_lock);
 +      ubd_finish(req.error);
 +      reactivate_fd(thread_fd, UBD_IRQ);      
@@ -10667,17 +10799,12 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/driver
 +
 +static void ubd_close(struct ubd *dev)
 +{
-+      if(ubd_do_mmap)
-+              physmem_forget_descriptor(dev->fd);
 +      os_close_file(dev->fd);
-+      if(dev->cow.file != NULL)
-+              return;
-+
-+      if(ubd_do_mmap)
-+              physmem_forget_descriptor(dev->cow.fd);
-+      os_close_file(dev->cow.fd);
-+      vfree(dev->cow.bitmap);
-+      dev->cow.bitmap = NULL;
++      if(dev->cow.file != NULL) {
++              os_close_file(dev->cow.fd);
++              vfree(dev->cow.bitmap);
++              dev->cow.bitmap = NULL;
++      }
 +}
 +
 +static int ubd_open_dev(struct ubd *dev)
@@ -10720,8 +10847,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/driver
 +              err = read_cow_bitmap(dev->fd, dev->cow.bitmap, 
 +                                    dev->cow.bitmap_offset, 
 +                                    dev->cow.bitmap_len);
-+              if(err < 0) 
-+                      goto error;
++              if(err < 0) goto error;
 +
 +              flags = dev->openflags;
 +              flags.w = 0;
@@ -11330,8 +11456,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/driver
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/drivers/ubd_user.c
 --- orig/arch/um/drivers/ubd_user.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/drivers/ubd_user.c      2004-01-10 06:24:52.000000000 -0500
-@@ -0,0 +1,377 @@
++++ um/arch/um/drivers/ubd_user.c      2003-11-08 07:57:49.000000000 -0500
+@@ -0,0 +1,378 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Copyright (C) 2001 Ridgerun,Inc (glonnon@ridgerun.com)
@@ -11347,6 +11473,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +#include <netinet/in.h>
 +#include <sys/time.h>
 +#include <sys/socket.h>
++#include <string.h>
 +#include <sys/mman.h>
 +#include <sys/param.h>
 +#include "asm/types.h"
@@ -11394,7 +11521,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +      int err;
 +
 +      err = os_file_modtime(file, &modtime);
-+      if(err < 0){
++      if(err < 0){
 +              printk("Failed to get modification time of backing file "
 +                     "\"%s\", err = %d\n", file, -err);
 +              return(err);
@@ -11444,17 +11571,17 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +      __u64 size;
 +      __u32 version, align;
 +      char *backing_file;
-+      int fd, err, sectorsize, same, mode = 0644;
++        int fd, err, sectorsize, same, mode = 0644;
 +
-+      fd = os_open_file(file, *openflags, mode);
-+      if(fd < 0){
++        fd = os_open_file(file, *openflags, mode);
++        if(fd < 0){
 +              if((fd == -ENOENT) && (create_cow_out != NULL))
 +                      *create_cow_out = 1;
 +                if(!openflags->w ||
 +                   ((errno != EROFS) && (errno != EACCES))) return(-errno);
 +              openflags->w = 0;
-+              fd = os_open_file(file, *openflags, mode); 
-+              if(fd < 0) 
++                fd = os_open_file(file, *openflags, mode); 
++                if(fd < 0) 
 +                      return(fd);
 +        }
 +
@@ -12028,8 +12155,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm_kern.c um/arch/um/driv
 + */
 diff -Naur -X ../exclude-files orig/arch/um/dyn_link.ld.in um/arch/um/dyn_link.ld.in
 --- orig/arch/um/dyn_link.ld.in        1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/dyn_link.ld.in  2004-01-10 04:28:44.000000000 -0500
-@@ -0,0 +1,171 @@
++++ um/arch/um/dyn_link.ld.in  2003-10-21 03:26:06.000000000 -0400
+@@ -0,0 +1,172 @@
 +OUTPUT_FORMAT("ELF_FORMAT")
 +OUTPUT_ARCH(ELF_ARCH)
 +ENTRY(_start)
@@ -12040,6 +12167,7 @@ diff -Naur -X ../exclude-files orig/arch/um/dyn_link.ld.in um/arch/um/dyn_link.l
 +{
 +  . = START() + SIZEOF_HEADERS;
 +  .interp         : { *(.interp) }
++  . = ALIGN(4096);
 +  __binary_start = .;
 +  . = ALIGN(4096);            /* Init code and data */
 +  _stext = .;
@@ -13636,8 +13764,8 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/Makefile um/arch/um/fs/hos
 +      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
 diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/hppfs/hppfs_kern.c
 --- orig/arch/um/fs/hppfs/hppfs_kern.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/fs/hppfs/hppfs_kern.c   2004-01-08 23:35:58.000000000 -0500
-@@ -0,0 +1,737 @@
++++ um/arch/um/fs/hppfs/hppfs_kern.c   2003-11-08 09:42:49.000000000 -0500
+@@ -0,0 +1,727 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -13800,8 +13928,6 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/
 +      ssize_t n;
 +
 +      read = file->f_dentry->d_inode->i_fop->read;
-+      if(read == NULL)
-+              return(-EOPNOTSUPP);
 +
 +      if(!is_user)
 +              set_fs(KERNEL_DS);
@@ -13900,8 +14026,6 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/
 +      int err;
 +
 +      write = proc_file->f_dentry->d_inode->i_fop->write;
-+      if(write == NULL)
-+              return(-EOPNOTSUPP);
 +
 +      proc_file->f_pos = file->f_pos;
 +      err = (*write)(proc_file, buf, len, &proc_file->f_pos);
@@ -14154,8 +14278,6 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/
 +      int err;
 +
 +      readdir = proc_file->f_dentry->d_inode->i_fop->readdir;
-+      if(readdir == NULL)
-+              return(-EOPNOTSUPP);
 +
 +      proc_file->f_pos = file->f_pos;
 +      err = (*readdir)(proc_file, &dirent, hppfs_filldir);
@@ -14214,8 +14336,6 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/
 +              return(err);
 +
 +      readlink = proc_dentry->d_inode->i_op->readlink;
-+      if(readlink == NULL)
-+              return(-EOPNOTSUPP);
 +      n = (*readlink)(proc_dentry, buffer, buflen);
 +
 +      if(proc_file.f_op->release)
@@ -14237,8 +14357,6 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/
 +              return(err);
 +
 +      follow_link = proc_dentry->d_inode->i_op->follow_link;
-+      if(follow_link == NULL)
-+              return(-EOPNOTSUPP);
 +      n = (*follow_link)(proc_dentry, nd);
 +
 +      if(proc_file.f_op->release)
@@ -14775,6 +14893,58 @@ diff -Naur -X ../exclude-files orig/arch/um/include/helper.h um/arch/um/include/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/include/hostaudio.h um/arch/um/include/hostaudio.h
+--- orig/arch/um/include/hostaudio.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/hostaudio.h     2003-10-21 03:26:06.000000000 -0400
+@@ -0,0 +1,48 @@
++/* 
++ * Copyright (C) 2002 Steve Schmidtke 
++ * Licensed under the GPL
++ */
++
++#ifndef HOSTAUDIO_H
++#define HOSTAUDIO_H
++
++#define HOSTAUDIO_DEV_DSP "/dev/sound/dsp"
++#define HOSTAUDIO_DEV_MIXER "/dev/sound/mixer"
++
++struct hostaudio_state {
++  int fd;
++};
++
++struct hostmixer_state {
++  int fd;
++};
++
++/* UML user-side protoypes */
++extern ssize_t hostaudio_read_user(struct hostaudio_state *state, char *buffer,
++                                 size_t count, loff_t *ppos);
++extern ssize_t hostaudio_write_user(struct hostaudio_state *state, 
++                                  const char *buffer, size_t count, 
++                                  loff_t *ppos);
++extern int hostaudio_ioctl_user(struct hostaudio_state *state, 
++                              unsigned int cmd, unsigned long arg);
++extern int hostaudio_open_user(struct hostaudio_state *state, int r, int w, 
++                             char *dsp);
++extern int hostaudio_release_user(struct hostaudio_state *state);
++extern int hostmixer_ioctl_mixdev_user(struct hostmixer_state *state, 
++                              unsigned int cmd, unsigned long arg);
++extern int hostmixer_open_mixdev_user(struct hostmixer_state *state, int r, 
++                                    int w, char *mixer);
++extern int hostmixer_release_mixdev_user(struct hostmixer_state *state);
++
++#endif /* HOSTAUDIO_H */
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/include/init.h um/arch/um/include/init.h
 --- orig/arch/um/include/init.h        1969-12-31 19:00:00.000000000 -0500
 +++ um/arch/um/include/init.h  2003-10-21 03:26:06.000000000 -0400
@@ -15461,8 +15631,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mconsole_kern.h um/arch/um/i
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mem.h um/arch/um/include/mem.h
 --- orig/arch/um/include/mem.h 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/include/mem.h   2004-01-16 11:14:38.000000000 -0500
-@@ -0,0 +1,29 @@
++++ um/arch/um/include/mem.h   2003-10-21 03:26:06.000000000 -0400
+@@ -0,0 +1,28 @@
 +/* 
 + * Copyright (C) 2002, 2003 Jeff Dike (jdike@addtoit.com)
 + * Licensed under the GPL
@@ -15478,7 +15648,6 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mem.h um/arch/um/include/mem
 +extern int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w);
 +extern int is_remapped(void *virt);
 +extern int physmem_remove_mapping(void *virt);
-+extern void physmem_forget_descriptor(int fd);
 +
 +#endif
 +
@@ -15528,8 +15697,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mem_kern.h um/arch/um/includ
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mem_user.h um/arch/um/include/mem_user.h
 --- orig/arch/um/include/mem_user.h    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/include/mem_user.h      2004-01-10 00:11:06.000000000 -0500
-@@ -0,0 +1,81 @@
++++ um/arch/um/include/mem_user.h      2003-12-14 11:16:03.000000000 -0500
+@@ -0,0 +1,82 @@
 +/*
 + * arch/um/include/mem_user.h
 + *
@@ -15581,6 +15750,7 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mem_user.h um/arch/um/includ
 +extern unsigned long host_task_size;
 +extern unsigned long task_size;
 +
++extern void check_devanon(void);
 +extern int init_mem_user(void);
 +extern int create_mem_file(unsigned long len);
 +extern void setup_memory(void *entry);
@@ -16255,8 +16425,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/syscall_user.h um/arch/um/in
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/checksum.h um/arch/um/include/sysdep-i386/checksum.h
 --- orig/arch/um/include/sysdep-i386/checksum.h        1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/include/sysdep-i386/checksum.h  2004-01-13 23:40:05.000000000 -0500
-@@ -0,0 +1,218 @@
++++ um/arch/um/include/sysdep-i386/checksum.h  2003-10-21 03:26:06.000000000 -0400
+@@ -0,0 +1,217 @@
 +/* 
 + * Licensed under the GPL
 + */
@@ -16265,7 +16435,6 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/checksum.h um/ar
 +#define __UM_SYSDEP_CHECKSUM_H
 +
 +#include "linux/string.h"
-+#include "asm/uaccess.h"
 +
 +/*
 + * computes the checksum of a memory block at buff, length len,
@@ -16320,7 +16489,7 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/checksum.h um/ar
 +
 +/*
 + * These are the old (and unsafe) way of doing checksums, a warning message 
-+ * will be printed if they are used and an exception occurs.
++ * will be printed if they are used and an exeption occurs.
 + *
 + * these functions should go away after some time.
 + */
@@ -16583,7 +16752,7 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_kern.h um/
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_user.h um/arch/um/include/sysdep-i386/frame_user.h
 --- orig/arch/um/include/sysdep-i386/frame_user.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/include/sysdep-i386/frame_user.h        2004-01-14 03:54:47.000000000 -0500
++++ um/arch/um/include/sysdep-i386/frame_user.h        2003-10-21 03:26:06.000000000 -0400
 @@ -0,0 +1,91 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -16643,26 +16812,26 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_user.h um/
 + * it would have to be __builtin_frame_address(1).
 + */
 +
-+#define frame_restorer() \
-+({ \
-+      unsigned long *fp; \
-+\
-+      fp = __builtin_frame_address(0); \
-+      ((unsigned long) (fp + 1)); \
-+})
++static inline unsigned long frame_restorer(void)
++{
++      unsigned long *fp;
++
++      fp = __builtin_frame_address(0);
++      return((unsigned long) (fp + 1));
++}
 +
 +/* Similarly, this returns the value of sp when the handler was first
 + * entered.  This is used to calculate the proper sp when delivering
 + * signals.
 + */
 +
-+#define frame_sp() \
-+({ \
-+      unsigned long *fp; \
-+\
-+      fp = __builtin_frame_address(0); \
-+      ((unsigned long) (fp + 1)); \
-+})
++static inline unsigned long frame_sp(void)
++{
++      unsigned long *fp;
++
++      fp = __builtin_frame_address(0);
++      return((unsigned long) (fp + 1));
++}
 +
 +#endif
 +
@@ -20374,8 +20543,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/irq_user.c um/arch/um/kernel/
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/ksyms.c um/arch/um/kernel/ksyms.c
 --- orig/arch/um/kernel/ksyms.c        1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/ksyms.c  2004-01-23 00:44:09.000000000 -0500
-@@ -0,0 +1,120 @@
++++ um/arch/um/kernel/ksyms.c  2003-12-17 03:22:37.000000000 -0500
+@@ -0,0 +1,119 @@
 +/* 
 + * Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
 + * Licensed under the GPL
@@ -20457,7 +20626,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/ksyms.c um/arch/um/kernel/ksy
 +EXPORT_SYMBOL(os_create_unix_socket);
 +EXPORT_SYMBOL(os_connect_socket);
 +EXPORT_SYMBOL(os_accept_connection);
-+EXPORT_SYMBOL(os_ioctl_generic);
 +EXPORT_SYMBOL(os_rcv_fd);
 +EXPORT_SYMBOL(run_helper);
 +EXPORT_SYMBOL(start_thread);
@@ -20575,7 +20743,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/Makefile um/arch/um/kernel/Ma
 +archmrproper: clean
 diff -Naur -X ../exclude-files orig/arch/um/kernel/mem.c um/arch/um/kernel/mem.c
 --- orig/arch/um/kernel/mem.c  1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/mem.c    2003-12-22 01:25:00.000000000 -0500
++++ um/arch/um/kernel/mem.c    2003-11-13 23:26:35.000000000 -0500
 @@ -0,0 +1,336 @@
 +/* 
 + * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
@@ -20660,7 +20828,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem.c um/arch/um/kernel/mem.c
 +      start = (unsigned long) &__binary_start;
 +      if(uml_physmem != start){
 +              map_memory(uml_physmem, __pa(uml_physmem), start - uml_physmem,
-+                         1, 1, 0);
++                  1, 1, 0);
 +      }
 +
 +      /* this will put all low memory onto the freelists */
@@ -20706,7 +20874,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem.c um/arch/um/kernel/mem.c
 +      }
 +}
 +
-+#ifdef CONFIG_HIGHMEM
++#if CONFIG_HIGHMEM
 +pte_t *kmap_pte;
 +pgprot_t kmap_prot;
 +
@@ -20915,8 +21083,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem.c um/arch/um/kernel/mem.c
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/mem_user.c
 --- orig/arch/um/kernel/mem_user.c     1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/mem_user.c       2004-01-10 00:19:09.000000000 -0500
-@@ -0,0 +1,216 @@
++++ um/arch/um/kernel/mem_user.c       2003-12-14 11:30:57.000000000 -0500
+@@ -0,0 +1,217 @@
 +/*
 + * arch/um/kernel/mem_user.c
 + *
@@ -21002,7 +21170,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/
 +      return(fd);
 +}
 +
-+static int have_devanon(void)
++static int have_devanon = 0;
++
++void check_devanon(void)
 +{
 +      int fd;
 +
@@ -21010,11 +21180,11 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/
 +      fd = open("/dev/anon", O_RDWR);
 +      if(fd < 0){
 +              printk("Not available (open failed with errno %d)\n", errno);
-+              return(0);
++              return;
 +      }
 +
 +      printk("OK\n");
-+      return(1);
++      have_devanon = 1;
 +}
 +
 +static int create_anon_file(unsigned long len)
@@ -21042,7 +21212,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/
 +{
 +      int err, fd;
 +
-+      if(have_devanon())
++      if(have_devanon)
 +              fd = create_anon_file(len);
 +      else fd = create_tmp_file(len);
 +
@@ -21075,7 +21245,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/
 +              os_print_error(fd, "parse_iomem - Couldn't open io file");
 +              goto out;
 +      }
-+
 +      err = os_stat_fd(fd, &buf);
 +      if(err < 0){
 +              os_print_error(err, "parse_iomem - cannot stat_fd file");
@@ -21145,8 +21314,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mprot.h um/arch/um/kernel/mpr
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/kernel/physmem.c um/arch/um/kernel/physmem.c
 --- orig/arch/um/kernel/physmem.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/physmem.c        2004-01-16 23:38:02.000000000 -0500
-@@ -0,0 +1,446 @@
++++ um/arch/um/kernel/physmem.c        2003-11-14 02:59:20.000000000 -0500
+@@ -0,0 +1,349 @@
 +/* 
 + * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
 + * Licensed under the GPL
@@ -21180,7 +21349,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/physmem.c um/arch/um/kernel/p
 +      __u64 offset;
 +      void *virt;
 +      unsigned long phys;
-+      struct list_head list;
 +};
 +
 +struct virtmem_table virtmem_hash;
@@ -21199,59 +21367,16 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/physmem.c um/arch/um/kernel/p
 +DEF_HASH(static, virtmem, struct phys_desc, virt_ptrs, void *, virt, virt_cmp, 
 +       virt_hash);
 +
-+LIST_HEAD(descriptor_mappings);
-+
-+struct desc_mapping {
-+      int fd;
-+      struct list_head list;
-+      struct list_head pages;
-+};
-+
-+static struct desc_mapping *find_mapping(int fd)
-+{
-+      struct desc_mapping *desc;
-+      struct list_head *ele;
-+
-+      list_for_each(ele, &descriptor_mappings){
-+              desc = list_entry(ele, struct desc_mapping, list);
-+              if(desc->fd == fd)
-+                      return(desc);
-+      }
-+
-+      return(NULL);
-+}
-+
-+static struct desc_mapping *descriptor_mapping(int fd)
-+{
-+      struct desc_mapping *desc;
-+
-+      desc = find_mapping(fd);
-+      if(desc != NULL)
-+              return(desc);
-+
-+      desc = kmalloc(sizeof(*desc), GFP_ATOMIC);
-+      if(desc == NULL)
-+              return(NULL);
-+
-+      *desc = ((struct desc_mapping) 
-+              { .fd =         fd,
-+                .list =       LIST_HEAD_INIT(desc->list),
-+                .pages =      LIST_HEAD_INIT(desc->pages) });
-+      list_add(&desc->list, &descriptor_mappings);
-+
-+      return(desc);
-+}
-+
 +int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w)
 +{
-+      struct desc_mapping *fd_maps;
 +      struct phys_desc *desc;
 +      unsigned long phys;
 +      int err;
 +
-+      fd_maps = descriptor_mapping(fd);
-+      if(fd_maps == NULL)
-+              return(-ENOMEM);
++      virt = (void *) ((unsigned long) virt & PAGE_MASK);
++      err = os_map_memory(virt, fd, offset, PAGE_SIZE, 1, w, 0);
++      if(err)
++              goto out;
 +
 +      phys = __pa(virt);
 +      if(find_virtmem_hash(&virtmem_hash, virt) != NULL)
@@ -21262,98 +21387,45 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/physmem.c um/arch/um/kernel/p
 +      if(desc == NULL)
 +              goto out;
 +
-+      *desc = ((struct phys_desc) 
-+              { .virt_ptrs =  { NULL, NULL },
-+                .fd =         fd,
-+                .offset =             offset,
-+                .virt =               virt,
-+                .phys =               __pa(virt),
-+                .list =               LIST_HEAD_INIT(desc->list) });
++      *desc = ((struct phys_desc) { .virt_ptrs =      { NULL, NULL },
++                                    .fd =             fd,
++                                    .offset =         offset,
++                                    .virt =           virt,
++                                    .phys =           __pa(virt) });
 +      insert_virtmem_hash(&virtmem_hash, desc);
-+
-+      list_add(&desc->list, &fd_maps->pages);
-+
-+      virt = (void *) ((unsigned long) virt & PAGE_MASK);
-+      err = os_map_memory(virt, fd, offset, PAGE_SIZE, 1, w, 0);
-+      if(!err)
-+              goto out;
-+
-+      remove_virtmem_hash(&virtmem_hash, desc);
-+      kfree(desc);
++      err = 0;
 + out:
 +      return(err);
 +}
 +
 +static int physmem_fd = -1;
 +
-+static void remove_mapping(struct phys_desc *desc)
++int physmem_remove_mapping(void *virt)
 +{
-+      void *virt = desc->virt;
++      struct phys_desc *desc;
 +      int err;
 +
++      virt = (void *) ((unsigned long) virt & PAGE_MASK);
++      desc = find_virtmem_hash(&virtmem_hash, virt);
++      if(desc == NULL)
++              return(0);
++
 +      remove_virtmem_hash(&virtmem_hash, desc);
-+      list_del(&desc->list);
 +      kfree(desc);
 +
 +      err = os_map_memory(virt, physmem_fd, __pa(virt), PAGE_SIZE, 1, 1, 0);
 +      if(err)
 +              panic("Failed to unmap block device page from physical memory, "
 +                    "errno = %d", -err);
-+}
-+
-+int physmem_remove_mapping(void *virt)
-+{
-+      struct phys_desc *desc;
-+
-+      virt = (void *) ((unsigned long) virt & PAGE_MASK);
-+      desc = find_virtmem_hash(&virtmem_hash, virt);
-+      if(desc == NULL)
-+              return(0);
-+
-+      remove_mapping(desc);
 +      return(1);
 +}
 +
-+void physmem_forget_descriptor(int fd)
-+{
-+      struct desc_mapping *desc;
-+      struct phys_desc *page;
-+      struct list_head *ele, *next;
-+      __u64 offset;
-+      void *addr;
-+      int err;
-+
-+      desc = find_mapping(fd);
-+      if(desc == NULL)
-+              return;
-+
-+      list_for_each_safe(ele, next, &desc->pages){
-+              page = list_entry(ele, struct phys_desc, list);
-+              offset = page->offset;
-+              addr = page->virt;
-+              remove_mapping(page);
-+              err = os_seek_file(fd, offset);
-+              if(err)
-+                      panic("physmem_forget_descriptor - failed to seek "
-+                            "to %lld in fd %d, error = %d\n",
-+                            offset, fd, -err);
-+              err = os_read_file(fd, addr, PAGE_SIZE);
-+              if(err < 0)
-+                      panic("physmem_forget_descriptor - failed to read "
-+                            "from fd %d to 0x%p, error = %d\n",
-+                            fd, addr, -err);
-+      }
-+
-+      list_del(&desc->list);
-+      kfree(desc);
-+}
-+
 +void arch_free_page(struct page *page, int order)
 +{
 +      void *virt;
 +      int i;
 +
-+      for(i = 0; i < (1 << order); i++){
++      for(i = 0; i < 1 << order; i++){
 +              virt = __va(page_to_phys(page + i));
 +              physmem_remove_mapping(virt);
 +      }
@@ -21595,8 +21667,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/physmem.c um/arch/um/kernel/p
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/process.c um/arch/um/kernel/process.c
 --- orig/arch/um/kernel/process.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/process.c        2004-01-31 02:47:57.000000000 -0500
-@@ -0,0 +1,289 @@
++++ um/arch/um/kernel/process.c        2003-11-07 02:09:21.000000000 -0500
+@@ -0,0 +1,288 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -21727,8 +21799,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/process.c um/arch/um/kernel/p
 +      if(err < 0) panic("Waiting for outer trampoline failed - errno = %d", 
 +                        errno);
 +      if(!WIFSIGNALED(status) || (WTERMSIG(status) != SIGKILL))
-+              panic("outer trampoline didn't exit with SIGKILL, "
-+                    "status = %d", status);
++              panic("outer trampoline didn't exit with SIGKILL");
 +
 +      return(arg.pid);
 +}
@@ -21830,7 +21901,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/process.c um/arch/um/kernel/p
 +
 +int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr)
 +{
-+      sigjmp_buf buf;
++      jmp_buf buf;
 +      int n;
 +
 +      *jmp_ptr = &buf;
@@ -24153,8 +24224,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/skas.h um/arch/u
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/uaccess.h um/arch/um/kernel/skas/include/uaccess.h
 --- orig/arch/um/kernel/skas/include/uaccess.h 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/skas/include/uaccess.h   2004-01-17 06:35:41.000000000 -0500
-@@ -0,0 +1,40 @@
++++ um/arch/um/kernel/skas/include/uaccess.h   2003-12-17 01:19:45.000000000 -0500
+@@ -0,0 +1,38 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -24163,8 +24234,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/uaccess.h um/arc
 +#ifndef __SKAS_UACCESS_H
 +#define __SKAS_UACCESS_H
 +
-+#include "asm/errno.h"
-+
 +#define access_ok_skas(type, addr, size) \
 +      ((segment_eq(get_fs(), KERNEL_DS)) || \
 +       (((unsigned long) (addr) < TASK_SIZE) && \
@@ -24176,6 +24245,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/uaccess.h um/arc
 +      return(access_ok_skas(type, addr, size) ? 0 : -EFAULT);
 +}
 +
++#endif
++
 +extern int copy_from_user_skas(void *to, const void *from, int n);
 +extern int copy_to_user_skas(void *to, const void *from, int n);
 +extern int strncpy_from_user_skas(char *dst, const char *src, int count);
@@ -24183,8 +24254,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/uaccess.h um/arc
 +extern int clear_user_skas(void *mem, int len);
 +extern int strnlen_user_skas(const void *str, int len);
 +
-+#endif
-+
 +/*
 + * Overrides for Emacs so that we follow Linus's tabbing style.
 + * Emacs will notice this stuff at the end of the file and automatically
@@ -24425,7 +24494,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mmu.c um/arch/um/kernel/
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/kernel/skas/process.c
 --- orig/arch/um/kernel/skas/process.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/skas/process.c   2004-01-31 02:49:36.000000000 -0500
++++ um/arch/um/kernel/skas/process.c   2003-11-19 03:00:01.000000000 -0500
 @@ -0,0 +1,417 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24617,7 +24686,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 +void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
 +              void (*handler)(int))
 +{
-+      sigjmp_buf switch_buf, fork_buf;
++      jmp_buf switch_buf, fork_buf;
 +
 +      *switch_buf_ptr = &switch_buf;
 +      *fork_buf_ptr = &fork_buf;
@@ -24630,7 +24699,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 +
 +void thread_wait(void *sw, void *fb)
 +{
-+      sigjmp_buf buf, **switch_buf = sw, *fork_buf;
++      jmp_buf buf, **switch_buf = sw, *fork_buf;
 +
 +      *switch_buf = &buf;
 +      fork_buf = fb;
@@ -24692,23 +24761,23 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 +
 +void switch_threads(void *me, void *next)
 +{
-+      sigjmp_buf my_buf, **me_ptr = me, *next_buf = next;
++      jmp_buf my_buf, **me_ptr = me, *next_buf = next;
 +      
 +      *me_ptr = &my_buf;
 +      if(sigsetjmp(my_buf, 1) == 0)
 +              siglongjmp(*next_buf, 1);
 +}
 +
-+static sigjmp_buf initial_jmpbuf;
++static jmp_buf initial_jmpbuf;
 +
 +/* XXX Make these percpu */
 +static void (*cb_proc)(void *arg);
 +static void *cb_arg;
-+static sigjmp_buf *cb_back;
++static jmp_buf *cb_back;
 +
 +int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
 +{
-+      sigjmp_buf **switch_buf = switch_buf_ptr;
++      jmp_buf **switch_buf = switch_buf_ptr;
 +      int n;
 +
 +      *fork_buf_ptr = &initial_jmpbuf;
@@ -24744,7 +24813,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 +
 +void initial_thread_cb_skas(void (*proc)(void *), void *arg)
 +{
-+      sigjmp_buf here;
++      jmp_buf here;
 +
 +      cb_proc = proc;
 +      cb_arg = arg;
@@ -25046,7 +25115,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process_kern.c um/arch/u
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/syscall_kern.c um/arch/um/kernel/skas/syscall_kern.c
 --- orig/arch/um/kernel/skas/syscall_kern.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/skas/syscall_kern.c      2004-01-04 08:20:29.000000000 -0500
++++ um/arch/um/kernel/skas/syscall_kern.c      2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,42 @@
 +/* 
 + * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
@@ -25073,7 +25142,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/syscall_kern.c um/arch/u
 +      nsyscalls++;
 +      syscall = UPT_SYSCALL_NR(&regs->regs);
 +
-+      if((syscall >= NR_syscalls) || (syscall < 1))
++      if((syscall >= NR_syscalls) || (syscall < 0))
 +              res = -ENOSYS;
 +      else res = EXECUTE_SYSCALL(syscall, regs);
 +
@@ -25472,8 +25541,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/tlb.c um/arch/um/kernel/
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/trap_user.c um/arch/um/kernel/skas/trap_user.c
 --- orig/arch/um/kernel/skas/trap_user.c       1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/skas/trap_user.c 2004-01-21 01:17:05.000000000 -0500
-@@ -0,0 +1,66 @@
++++ um/arch/um/kernel/skas/trap_user.c 2003-12-14 11:17:37.000000000 -0500
+@@ -0,0 +1,63 @@
 +/* 
 + * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
 + * Licensed under the GPL
@@ -25495,10 +25564,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/trap_user.c um/arch/um/k
 +      struct skas_regs *r;
 +      struct signal_info *info;
 +      int save_errno = errno;
-+      int save_user;
 +
 +      r = &TASK_REGS(get_current())->skas;
-+      save_user = r->is_user;
 +      r->is_user = 0;
 +      r->fault_addr = SC_FAULT_ADDR(sc);
 +      r->fault_type = SC_FAULT_TYPE(sc);
@@ -25511,7 +25578,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/trap_user.c um/arch/um/k
 +      (*info->handler)(sig, (union uml_pt_regs *) r);
 +
 +      errno = save_errno;
-+      r->is_user = save_user;
 +}
 +
 +extern int missed_ticks[];
@@ -25542,7 +25608,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/trap_user.c um/arch/um/k
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/uaccess.c um/arch/um/kernel/skas/uaccess.c
 --- orig/arch/um/kernel/skas/uaccess.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/skas/uaccess.c   2003-12-22 01:30:09.000000000 -0500
++++ um/arch/um/kernel/skas/uaccess.c   2003-11-11 11:11:26.000000000 -0500
 @@ -0,0 +1,217 @@
 +/* 
 + * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
@@ -25672,7 +25738,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/uaccess.c um/arch/um/ker
 +
 +static int strncpy_chunk_from_user(unsigned long from, int len, void *arg)
 +{
-+      char **to_ptr = arg, *to = *to_ptr;
++        char **to_ptr = arg, *to = *to_ptr;
 +      int n;
 +
 +      strncpy(to, (void *) from, len);
@@ -25777,9 +25843,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/util/Makefile um/arch/um
 +      $(RM) -f mk_ptregs *.o *~
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/util/mk_ptregs.c um/arch/um/kernel/skas/util/mk_ptregs.c
 --- orig/arch/um/kernel/skas/util/mk_ptregs.c  1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/skas/util/mk_ptregs.c    2003-12-22 01:31:11.000000000 -0500
-@@ -0,0 +1,51 @@
-+#include <stdio.h>
++++ um/arch/um/kernel/skas/util/mk_ptregs.c    2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,50 @@
 +#include <asm/ptrace.h>
 +#include <asm/user.h>
 +
@@ -26164,7 +26229,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/smp.c um/arch/um/kernel/smp.c
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_kern.c um/arch/um/kernel/syscall_kern.c
 --- orig/arch/um/kernel/syscall_kern.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/syscall_kern.c   2004-01-10 06:37:46.000000000 -0500
++++ um/arch/um/kernel/syscall_kern.c   2003-11-07 01:41:13.000000000 -0500
 @@ -0,0 +1,343 @@
 +/* 
 + * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
@@ -26303,7 +26368,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_kern.c um/arch/um/ker
 +
 +        error = do_pipe(fd);
 +        if (!error) {
-+              if (copy_to_user(fildes, fd, sizeof(fd)))
++                if (copy_to_user(fildes, fd, sizeof(fd)))
 +                        error = -EFAULT;
 +        }
 +        return error;
@@ -27011,7 +27076,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sys_call_table.c um/arch/um/k
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_user.c um/arch/um/kernel/syscall_user.c
 --- orig/arch/um/kernel/syscall_user.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/syscall_user.c   2003-12-22 01:32:48.000000000 -0500
++++ um/arch/um/kernel/syscall_user.c   2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,48 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27034,7 +27099,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_user.c um/arch/um/ker
 +int record_syscall_start(int syscall)
 +{
 +      int max, index;
-+
++      
 +      max = sizeof(syscall_record)/sizeof(syscall_record[0]);
 +      index = next_syscall_index(max);
 +
@@ -27165,9 +27230,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sysrq.c um/arch/um/kernel/sys
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tempfile.c um/arch/um/kernel/tempfile.c
 --- orig/arch/um/kernel/tempfile.c     1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/tempfile.c       2003-12-22 01:33:38.000000000 -0500
++++ um/arch/um/kernel/tempfile.c       2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,82 @@
-+/*
++/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
 + */
@@ -27251,8 +27316,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tempfile.c um/arch/um/kernel/
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/time.c um/arch/um/kernel/time.c
 --- orig/arch/um/kernel/time.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/time.c   2004-02-12 07:09:48.000000000 -0500
-@@ -0,0 +1,172 @@
++++ um/arch/um/kernel/time.c   2003-12-17 01:08:27.000000000 -0500
+@@ -0,0 +1,164 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -27337,8 +27402,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/time.c um/arch/um/kernel/time
 +static unsigned long long get_host_hz(void)
 +{
 +      char mhzline[16], *end;
-+      unsigned long long mhz;
-+      int ret, mult, rest, len;
++      int ret, mult, mhz, rest, len;
 +
 +      ret = cpu_feature("cpu MHz", mhzline, 
 +                        sizeof(mhzline) / sizeof(mhzline[0]));
@@ -27372,13 +27436,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/time.c um/arch/um/kernel/time
 +
 +void time_init(void)
 +{
-+      /* XXX This is to fill xtime with something real - otherwise by the
-+       * time /proc is mounted, no timers have fired, and xtime is still 0,
-+       * meaning it shows times of Jan 1 1970.  The real fix is to figure
-+       * out why no timers have happened by then.
-+       */
-+      timer();
-+
 +      host_hz = get_host_hz();
 +      if(signal(SIGVTALRM, boot_timer_handler) == SIG_ERR)
 +              panic("Couldn't set SIGVTALRM handler");
@@ -27427,7 +27484,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/time.c um/arch/um/kernel/time
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/time_kern.c um/arch/um/kernel/time_kern.c
 --- orig/arch/um/kernel/time_kern.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/time_kern.c      2004-02-14 06:51:31.000000000 -0500
++++ um/arch/um/kernel/time_kern.c      2003-12-17 01:07:51.000000000 -0500
 @@ -0,0 +1,205 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -27476,17 +27533,17 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/time_kern.c um/arch/um/kernel
 +{
 +      unsigned long long ticks = 0;
 +
-+      if(!timer_irq_inited){
++        if(!timer_irq_inited){
 +              /* This is to ensure that ticks don't pile up when
 +               * the timer handler is suspended */
 +              first_tick = 0;
 +              return;
 +      }
-+
++      
 +      if(first_tick){
 +#if defined(CONFIG_UML_REAL_TIME_CLOCK)
 +              unsigned long long tsc;
-+              /* We've had 1 tick */
++               /* We've had 1 tick */
 +              tsc = time_stamp();
 +
 +              delta += tsc - prev_tsc;
@@ -27720,7 +27777,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tlb.c um/arch/um/kernel/tlb.c
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_kern.c um/arch/um/kernel/trap_kern.c
 --- orig/arch/um/kernel/trap_kern.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/trap_kern.c      2003-12-22 22:48:41.000000000 -0500
++++ um/arch/um/kernel/trap_kern.c      2003-12-14 11:18:05.000000000 -0500
 @@ -0,0 +1,220 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -27781,7 +27838,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_kern.c um/arch/um/kernel
 +      pgd = pgd_offset(mm, page);
 +      pmd = pmd_offset(pgd, page);
 +      do {
-+ survive:
++      survive:
 +              switch (handle_mm_fault(mm, vma, address, is_write)) {
 +              case 1:
 +                      current->min_flt++;
@@ -27944,7 +28001,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_kern.c um/arch/um/kernel
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_user.c um/arch/um/kernel/trap_user.c
 --- orig/arch/um/kernel/trap_user.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/trap_user.c      2004-01-31 02:47:39.000000000 -0500
++++ um/arch/um/kernel/trap_user.c      2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,138 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -28069,7 +28126,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_user.c um/arch/um/kernel
 +
 +void do_longjmp(void *b, int val)
 +{
-+      sigjmp_buf *buf = b;
++      jmp_buf *buf = b;
 +
 +      siglongjmp(*buf, val);
 +}
@@ -28941,10 +28998,10 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/Makefile um/arch/um/kernel
 +clean :
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem.c um/arch/um/kernel/tt/mem.c
 --- orig/arch/um/kernel/tt/mem.c       1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/tt/mem.c 2004-01-31 02:38:28.000000000 -0500
++++ um/arch/um/kernel/tt/mem.c 2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,51 @@
 +/* 
-+ * Copyright (C) 2002 - 2004 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
 + */
 +
@@ -28963,7 +29020,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem.c um/arch/um/kernel/tt
 +      if(!jail || debug)
 +              remap_data(UML_ROUND_DOWN(&_stext), UML_ROUND_UP(&_etext), 1);
 +      remap_data(UML_ROUND_DOWN(&_sdata), UML_ROUND_UP(&_edata), 1);
-+      remap_data(UML_ROUND_DOWN(&__bss_start), UML_ROUND_UP(&_end), 1);
++      remap_data(UML_ROUND_DOWN(&__bss_start), UML_ROUND_UP(brk_start), 1);
 +}
 +
 +#ifdef CONFIG_HOST_2G_2G
@@ -29049,8 +29106,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem_user.c um/arch/um/kern
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/process_kern.c um/arch/um/kernel/tt/process_kern.c
 --- orig/arch/um/kernel/tt/process_kern.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/tt/process_kern.c        2004-01-31 02:39:08.000000000 -0500
-@@ -0,0 +1,535 @@
++++ um/arch/um/kernel/tt/process_kern.c        2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,537 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -29316,12 +29373,14 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/process_kern.c um/arch/um/
 +{
 +      current->thread.request.op = OP_REBOOT;
 +      os_usr1_process(os_getpid());
++      os_kill_process(os_getpid(), 0);
 +}
 +
 +void halt_tt(void)
 +{
 +      current->thread.request.op = OP_HALT;
 +      os_usr1_process(os_getpid());
++      os_kill_process(os_getpid(), 0);
 +}
 +
 +void kill_off_processes_tt(void)
@@ -29456,7 +29515,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/process_kern.c um/arch/um/
 +      protect_memory(start, end - start, 1, w, 1, 1);
 +
 +      start = (unsigned long) UML_ROUND_DOWN(&__bss_start);
-+      end = (unsigned long) UML_ROUND_UP(&_end);
++      end = (unsigned long) UML_ROUND_UP(brk_start);
 +      protect_memory(start, end - start, 1, w, 1, 1);
 +
 +      mprotect_kernel_vm(w);
@@ -30392,7 +30451,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/sysdep.h um/arch/u
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/wait.c um/arch/um/kernel/tt/ptproxy/wait.c
 --- orig/arch/um/kernel/tt/ptproxy/wait.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/tt/ptproxy/wait.c        2004-01-17 05:27:18.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/wait.c        2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,88 @@
 +/**********************************************************************
 +wait.c
@@ -30457,7 +30516,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/wait.c um/arch/um/
 +      pid = debugger->pid;
 +
 +      ip = ptrace(PTRACE_PEEKUSER, pid, PT_IP_OFFSET, 0);
-+      IP_RESTART_SYSCALL(ip);
++      ip = IP_RESTART_SYSCALL(ip);
 +
 +      if(ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip) < 0)
 +              tracer_panic("real_wait_return : Failed to restart system "
@@ -31681,7 +31740,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/uaccess.c um/arch/um/kerne
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/uaccess_user.c um/arch/um/kernel/tt/uaccess_user.c
 --- orig/arch/um/kernel/tt/uaccess_user.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/tt/uaccess_user.c        2004-01-31 02:48:29.000000000 -0500
++++ um/arch/um/kernel/tt/uaccess_user.c        2003-11-12 08:51:13.000000000 -0500
 @@ -0,0 +1,98 @@
 +/* 
 + * Copyright (C) 2001 Chris Emerson (cemerson@chiark.greenend.org.uk)
@@ -31757,7 +31816,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/uaccess_user.c um/arch/um/
 +      struct tt_regs save = TASK_REGS(get_current())->tt;
 +      int ret;
 +      unsigned long *faddrp = (unsigned long *)fault_addr;
-+      sigjmp_buf jbuf;
++      jmp_buf jbuf;
 +
 +      *fault_catcher = &jbuf;
 +      if(sigsetjmp(jbuf, 1) == 0)
@@ -32050,7 +32109,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tty_log.c um/arch/um/kernel/t
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/uaccess_user.c um/arch/um/kernel/uaccess_user.c
 --- orig/arch/um/kernel/uaccess_user.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/uaccess_user.c   2004-01-31 02:48:08.000000000 -0500
++++ um/arch/um/kernel/uaccess_user.c   2003-10-21 03:26:07.000000000 -0400
 @@ -0,0 +1,64 @@
 +/* 
 + * Copyright (C) 2001 Chris Emerson (cemerson@chiark.greenend.org.uk)
@@ -32072,7 +32131,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/uaccess_user.c um/arch/um/ker
 +{
 +      unsigned long *faddrp = (unsigned long *) fault_addr, ret;
 +
-+      sigjmp_buf jbuf;
++      jmp_buf jbuf;
 +      *fault_catcher = &jbuf;
 +      if(sigsetjmp(jbuf, 1) == 0){
 +              (*op)(to, from, n);
@@ -32118,8 +32177,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/uaccess_user.c um/arch/um/ker
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/um_arch.c um/arch/um/kernel/um_arch.c
 --- orig/arch/um/kernel/um_arch.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/um_arch.c        2004-01-10 00:11:09.000000000 -0500
-@@ -0,0 +1,431 @@
++++ um/arch/um/kernel/um_arch.c        2003-12-14 11:19:59.000000000 -0500
+@@ -0,0 +1,432 @@
 +/* 
 + * Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -32539,6 +32598,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/um_arch.c um/arch/um/kernel/u
 +      arch_check_bugs();
 +      check_ptrace();
 +      check_sigio();
++      check_devanon();
 +}
 +
 +/*
@@ -32553,8 +32613,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/um_arch.c um/arch/um/kernel/u
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/umid.c um/arch/um/kernel/umid.c
 --- orig/arch/um/kernel/umid.c 1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/umid.c   2004-01-26 10:13:01.000000000 -0500
-@@ -0,0 +1,327 @@
++++ um/arch/um/kernel/umid.c   2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,324 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -32762,15 +32822,12 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/umid.c um/arch/um/kernel/umid
 +                      printf("Failed to malloc uml_dir - error = %d\n",
 +                             errno);
 +                      uml_dir = name;
-+                      /* Return 0 here because do_initcalls doesn't look at
-+                       * the return value.
-+                       */
 +                      return(0);
 +              }
 +              sprintf(uml_dir, "%s/", name);
 +      }
 +      else uml_dir = name;
-+      return(0);
++      return 0;
 +}
 +
 +static int __init make_uml_dir(void)
@@ -32884,8 +32941,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/umid.c um/arch/um/kernel/umid
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/user_syms.c um/arch/um/kernel/user_syms.c
 --- orig/arch/um/kernel/user_syms.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/kernel/user_syms.c      2004-01-23 00:44:09.000000000 -0500
-@@ -0,0 +1,118 @@
++++ um/arch/um/kernel/user_syms.c      2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,116 @@
 +#include <stdio.h>
 +#include <unistd.h>
 +#include <dirent.h>
@@ -33000,8 +33057,6 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/user_syms.c um/arch/um/kernel
 +
 +EXPORT_SYMBOL(memset);
 +EXPORT_SYMBOL(strstr);
-+EXPORT_SYMBOL(strlen);
-+EXPORT_SYMBOL(printf);
 +
 +EXPORT_SYMBOL(find_iomem);
 diff -Naur -X ../exclude-files orig/arch/um/kernel/user_util.c um/arch/um/kernel/user_util.c
@@ -33272,8 +33327,8 @@ diff -Naur -X ../exclude-files orig/arch/um/link.ld.in um/arch/um/link.ld.in
 +}
 diff -Naur -X ../exclude-files orig/arch/um/main.c um/arch/um/main.c
 --- orig/arch/um/main.c        1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/main.c  2004-01-29 00:48:42.000000000 -0500
-@@ -0,0 +1,199 @@
++++ um/arch/um/main.c  2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,198 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -33424,7 +33479,6 @@ diff -Naur -X ../exclude-files orig/arch/um/main.c um/arch/um/main.c
 +      /* Reboot */
 +      if(ret){
 +              printf("\n");
-+
 +              execvp(new_argv[0], new_argv);
 +              perror("Failed to exec kernel");
 +              ret = 1;
@@ -33475,7 +33529,7 @@ diff -Naur -X ../exclude-files orig/arch/um/main.c um/arch/um/main.c
 + */
 diff -Naur -X ../exclude-files orig/arch/um/Makefile um/arch/um/Makefile
 --- orig/arch/um/Makefile      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/Makefile        2004-02-14 06:26:41.000000000 -0500
++++ um/arch/um/Makefile        2003-12-17 03:02:28.000000000 -0500
 @@ -0,0 +1,174 @@
 +# 
 +# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -33574,9 +33628,9 @@ diff -Naur -X ../exclude-files orig/arch/um/Makefile um/arch/um/Makefile
 +              -DELF_FORMAT=$(ELF_FORMAT) $(M4_MODE_TT) \
 +              -DKERNEL_STACK_SIZE=$$(( 4096 * $$pages )) $< > $@
 +
-+SYMLINK_HEADERS = archparam.h system.h sigcontext.h processor.h ptrace.h \
-+      arch-signal.h
-+SYMLINK_HEADERS := $(foreach header,$(SYMLINK_HEADERS),include/asm-um/$(header))
++SYMLINK_HEADERS = include/asm-um/archparam.h include/asm-um/system.h \
++      include/asm-um/sigcontext.h include/asm-um/processor.h \
++      include/asm-um/ptrace.h include/asm-um/arch-signal.h
 +
 +ARCH_SYMLINKS = include/asm-um/arch arch/um/include/sysdep arch/um/os \
 +      $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
@@ -34563,8 +34617,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap_user.c um/ar
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/file.c
 --- orig/arch/um/os-Linux/file.c       1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/os-Linux/file.c 2004-01-10 06:52:24.000000000 -0500
-@@ -0,0 +1,668 @@
++++ um/arch/um/os-Linux/file.c 2003-11-30 20:18:39.000000000 -0500
+@@ -0,0 +1,669 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -34722,7 +34776,7 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/
 +      sencap = 0;
 +      if(ioctl(fd, SIOCSIFENCAP, &sencap) < 0){
 +              printk("Failed to set slip encapsulation - "
-+                     "errno = %d\n", errno);
++                     "errno = %d\n", errno);
 +              return(-errno);
 +      }
 +
@@ -34734,9 +34788,10 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/
 +      if(fcntl(fd, F_SETOWN, pid) < 0){
 +              int save_errno = errno;
 +
-+              if(fcntl(fd, F_GETOWN, 0) != pid)
++              if(fcntl(fd, F_GETOWN, 0) != pid){
 +                      return(-save_errno);
-+      }
++                }
++        }
 +
 +      return(0);
 +}
@@ -34752,14 +34807,14 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/
 +              return(-errno);
 +      }
 +
-+      if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
-+         (fcntl(master, F_SETOWN, os_getpid()) < 0)){
-+              printk("fcntl F_SETFL or F_SETOWN failed, errno = %d\n", errno);
++        if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
++           (fcntl(master, F_SETOWN, os_getpid()) < 0)){
++                printk("fcntl F_SETFL or F_SETOWN failed, errno = %d\n", errno);
 +              return(-errno);
 +      }
 +
-+      if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0)){
-+              printk("fcntl F_SETFL failed, errno = %d\n", errno);
++        if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0)){
++                printk("fcntl F_SETFL failed, errno = %d\n", errno);
 +              return(-errno);
 +      }
 +
@@ -34976,7 +35031,7 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/
 +      *modtime = buf.ust_mtime;
 +      return(0);
 +}
-+
++ 
 +int os_get_exec_close(int fd, int* close_on_exec)
 +{
 +      int ret;
@@ -35216,7 +35271,7 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/
 +              err = -errno;
 +              goto out;
 +      }
-+
++              
 +      printk("F_SETLK failed, file already locked by pid %d\n", lock.l_pid);
 +      err = save;
 + out:
@@ -35282,7 +35337,7 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/Makefile um/arch/um/os-Linu
 +archmrproper:
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/process.c um/arch/um/os-Linux/process.c
 --- orig/arch/um/os-Linux/process.c    1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/os-Linux/process.c      2004-01-10 06:53:44.000000000 -0500
++++ um/arch/um/os-Linux/process.c      2003-12-18 03:08:34.000000000 -0500
 @@ -0,0 +1,148 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@addtoit.com)
@@ -35417,7 +35472,7 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/process.c um/arch/um/os-Lin
 +        int err;
 +
 +        err = munmap(addr, len);
-+      if(err < 0)
++        if(err < 0) 
 +              return(-errno);
 +        return(0);
 +}
@@ -35499,8 +35554,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/tty.c um/arch/um/os-Linux/t
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/bugs.c
 --- orig/arch/um/sys-i386/bugs.c       1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/sys-i386/bugs.c 2004-01-21 22:42:39.000000000 -0500
-@@ -0,0 +1,222 @@
++++ um/arch/um/sys-i386/bugs.c 2003-11-15 02:54:48.000000000 -0500
+@@ -0,0 +1,221 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -35520,8 +35575,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/
 +#define MAXTOKEN 64
 +
 +/* Set during early boot */
-+int host_has_cmov = 1;
-+int host_has_xmm = 0;
++int cpu_has_cmov = 1;
++int cpu_has_xmm = 0;
 +
 +static char token(int fd, char *buf, int len, char stop)
 +{
@@ -35679,37 +35734,36 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/
 +              return;
 +      }
 +      if(check_cpu_flag("cmov", &have_it)) 
-+              host_has_cmov = have_it;
++              cpu_has_cmov = have_it;
 +      if(check_cpu_flag("xmm", &have_it)) 
-+              host_has_xmm = have_it;
++              cpu_has_xmm = have_it;
 +}
 +
 +int arch_handle_signal(int sig, union uml_pt_regs *regs)
 +{
-+      unsigned char tmp[2];
++      unsigned long ip;
 +
 +      /* This is testing for a cmov (0x0f 0x4x) instruction causing a
 +       * SIGILL in init.
 +       */
 +      if((sig != SIGILL) || (TASK_PID(get_current()) != 1)) return(0);
 +
-+      if (copy_from_user_proc(tmp, (void *) UPT_IP(regs), 2))
-+              panic("SIGILL in init, could not read instructions!\n");
-+      if((tmp[0] != 0x0f) || ((tmp[1] & 0xf0) != 0x40))
++      ip = UPT_IP(regs);
++      if((*((char *) ip) != 0x0f) || ((*((char *) (ip + 1)) & 0xf0) != 0x40))
 +              return(0);
 +
-+      if(host_has_cmov == 0)
++      if(cpu_has_cmov == 0)
 +              panic("SIGILL caused by cmov, which this processor doesn't "
 +                    "implement, boot a filesystem compiled for older "
 +                    "processors");
-+      else if(host_has_cmov == 1)
++      else if(cpu_has_cmov == 1)
 +              panic("SIGILL caused by cmov, which this processor claims to "
 +                    "implement");
-+      else if(host_has_cmov == -1)
++      else if(cpu_has_cmov == -1)
 +              panic("SIGILL caused by cmov, couldn't tell if this processor "
 +                    "implements it, boot a filesystem compiled for older "
 +                    "processors");
-+      else panic("Bad value for host_has_cmov (%d)", host_has_cmov);
++      else panic("Bad value for cpu_has_cmov (%d)", cpu_has_cmov);
 +      return(0);
 +}
 +
@@ -36248,8 +36302,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ksyms.c um/arch/um/sys-i386
 +EXPORT_SYMBOL(csum_partial_copy_to);
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ldt.c um/arch/um/sys-i386/ldt.c
 --- orig/arch/um/sys-i386/ldt.c        1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/sys-i386/ldt.c  2004-01-19 04:01:11.000000000 -0500
-@@ -0,0 +1,94 @@
++++ um/arch/um/sys-i386/ldt.c  2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,92 @@
 +/*
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -36265,8 +36319,6 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ldt.c um/arch/um/sys-i386/l
 +#ifdef CONFIG_MODE_TT
 +extern int modify_ldt(int func, void *ptr, unsigned long bytecount);
 +
-+/* XXX this needs copy_to_user and copy_from_user */
-+
 +int sys_modify_ldt_tt(int func, void *ptr, unsigned long bytecount)
 +{
 +      if(verify_area(VERIFY_READ, ptr, bytecount)) return(-EFAULT);
@@ -37715,8 +37767,8 @@ diff -Naur -X ../exclude-files orig/arch/um/util/Makefile um/arch/um/util/Makefi
 +archmrproper : clean
 diff -Naur -X ../exclude-files orig/arch/um/util/mk_constants_kern.c um/arch/um/util/mk_constants_kern.c
 --- orig/arch/um/util/mk_constants_kern.c      1969-12-31 19:00:00.000000000 -0500
-+++ um/arch/um/util/mk_constants_kern.c        2004-01-10 06:54:51.000000000 -0500
-@@ -0,0 +1,25 @@
++++ um/arch/um/util/mk_constants_kern.c        2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,24 @@
 +#include "linux/kernel.h"
 +#include "linux/stringify.h"
 +#include "asm/page.h"
@@ -37730,7 +37782,6 @@ diff -Naur -X ../exclude-files orig/arch/um/util/mk_constants_kern.c um/arch/um/
 +{
 +  print_head();
 +  print_constant_int("UM_KERN_PAGE_SIZE", PAGE_SIZE);
-+
 +  print_constant_str("UM_KERN_EMERG", KERN_EMERG);
 +  print_constant_str("UM_KERN_ALERT", KERN_ALERT);
 +  print_constant_str("UM_KERN_CRIT", KERN_CRIT);
@@ -38220,7 +38271,7 @@ diff -Naur -X ../exclude-files orig/drivers/char/Makefile um/drivers/char/Makefi
    KEYBD    =
 diff -Naur -X ../exclude-files orig/drivers/char/mem.c um/drivers/char/mem.c
 --- orig/drivers/char/mem.c    2003-12-16 22:16:27.000000000 -0500
-+++ um/drivers/char/mem.c      2004-01-05 11:23:32.000000000 -0500
++++ um/drivers/char/mem.c      2003-12-16 22:17:25.000000000 -0500
 @@ -220,7 +220,8 @@
        ssize_t read = 0;
        ssize_t virtr = 0;
@@ -38397,8 +38448,8 @@ diff -Naur -X ../exclude-files orig/fs/bad_inode.c um/fs/bad_inode.c
        inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
        inode->i_op = &bad_inode_ops;   
 diff -Naur -X ../exclude-files orig/include/asm-i386/hardirq.h um/include/asm-i386/hardirq.h
---- orig/include/asm-i386/hardirq.h    2004-01-11 22:46:12.000000000 -0500
-+++ um/include/asm-i386/hardirq.h      2004-02-14 06:28:59.000000000 -0500
+--- orig/include/asm-i386/hardirq.h    2003-12-16 22:16:35.000000000 -0500
++++ um/include/asm-i386/hardirq.h      2003-12-17 02:16:13.000000000 -0500
 @@ -4,6 +4,7 @@
  #include <linux/config.h>
  #include <linux/threads.h>
@@ -38590,7 +38641,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/arch-signal-i386.h um/include
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/atomic.h um/include/asm-um/atomic.h
 --- orig/include/asm-um/atomic.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/atomic.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/atomic.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_ATOMIC_H
 +#define __UM_ATOMIC_H
@@ -38600,7 +38651,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/atomic.h um/include/asm-um/at
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/bitops.h um/include/asm-um/bitops.h
 --- orig/include/asm-um/bitops.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/bitops.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/bitops.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_BITOPS_H
 +#define __UM_BITOPS_H
@@ -38630,7 +38681,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/bugs.h um/include/asm-um/bugs
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/byteorder.h um/include/asm-um/byteorder.h
 --- orig/include/asm-um/byteorder.h    1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/byteorder.h      2004-01-16 03:32:58.000000000 -0500
++++ um/include/asm-um/byteorder.h      2003-12-16 22:26:55.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_BYTEORDER_H
 +#define __UM_BYTEORDER_H
@@ -38670,7 +38721,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/cobalt.h um/include/asm-um/co
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/current.h um/include/asm-um/current.h
 --- orig/include/asm-um/current.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/current.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/current.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,34 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -38739,7 +38790,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/div64.h um/include/asm-um/div
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/dma.h um/include/asm-um/dma.h
 --- orig/include/asm-um/dma.h  1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/dma.h    2004-01-16 03:32:59.000000000 -0500
++++ um/include/asm-um/dma.h    2003-12-15 00:26:39.000000000 -0500
 @@ -0,0 +1,10 @@
 +#ifndef __UM_DMA_H
 +#define __UM_DMA_H
@@ -38795,7 +38846,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/fcntl.h um/include/asm-um/fcn
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/fixmap.h um/include/asm-um/fixmap.h
 --- orig/include/asm-um/fixmap.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/fixmap.h 2004-02-14 06:29:00.000000000 -0500
++++ um/include/asm-um/fixmap.h 2003-12-17 02:16:14.000000000 -0500
 @@ -0,0 +1,89 @@
 +#ifndef __UM_FIXMAP_H
 +#define __UM_FIXMAP_H
@@ -38898,7 +38949,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/floppy.h um/include/asm-um/fl
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/hardirq.h um/include/asm-um/hardirq.h
 --- orig/include/asm-um/hardirq.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/hardirq.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/hardirq.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_HARDIRQ_H
 +#define __UM_HARDIRQ_H
@@ -38918,7 +38969,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/hdreg.h um/include/asm-um/hdr
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/highmem.h um/include/asm-um/highmem.h
 --- orig/include/asm-um/highmem.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/highmem.h        2004-02-14 06:29:00.000000000 -0500
++++ um/include/asm-um/highmem.h        2003-12-17 02:16:14.000000000 -0500
 @@ -0,0 +1,12 @@
 +#ifndef __UM_HIGHMEM_H
 +#define __UM_HIGHMEM_H
@@ -38948,7 +38999,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/hw_irq.h um/include/asm-um/hw
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/ide.h um/include/asm-um/ide.h
 --- orig/include/asm-um/ide.h  1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/ide.h    2004-01-16 23:40:52.000000000 -0500
++++ um/include/asm-um/ide.h    2003-12-15 00:29:05.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_IDE_H
 +#define __UM_IDE_H
@@ -38993,7 +39044,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ioctls.h um/include/asm-um/io
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/io.h um/include/asm-um/io.h
 --- orig/include/asm-um/io.h   1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/io.h     2004-01-16 03:32:59.000000000 -0500
++++ um/include/asm-um/io.h     2003-12-15 00:26:39.000000000 -0500
 @@ -0,0 +1,25 @@
 +#ifndef __UM_IO_H
 +#define __UM_IO_H
@@ -39133,7 +39184,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/mman.h um/include/asm-um/mman
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/mmu_context.h um/include/asm-um/mmu_context.h
 --- orig/include/asm-um/mmu_context.h  1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/mmu_context.h    2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/mmu_context.h    2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,72 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -39255,7 +39306,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/msgbuf.h um/include/asm-um/ms
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/mtrr.h um/include/asm-um/mtrr.h
 --- orig/include/asm-um/mtrr.h 1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/mtrr.h   2004-02-12 05:46:29.000000000 -0500
++++ um/include/asm-um/mtrr.h   2003-12-17 10:48:33.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_MTRR_H
 +#define __UM_MTRR_H
@@ -39275,7 +39326,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/namei.h um/include/asm-um/nam
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/page.h um/include/asm-um/page.h
 --- orig/include/asm-um/page.h 1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/page.h   2004-01-16 03:32:58.000000000 -0500
++++ um/include/asm-um/page.h   2003-12-15 00:26:37.000000000 -0500
 @@ -0,0 +1,68 @@
 +/* 
 + * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
@@ -39352,12 +39403,14 @@ diff -Naur -X ../exclude-files orig/include/asm-um/page_offset.h um/include/asm-
 +#define PAGE_OFFSET_RAW (uml_physmem)
 diff -Naur -X ../exclude-files orig/include/asm-um/param.h um/include/asm-um/param.h
 --- orig/include/asm-um/param.h        1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/param.h  2004-02-13 02:26:52.000000000 -0500
-@@ -0,0 +1,22 @@
++++ um/include/asm-um/param.h  2003-10-21 03:26:07.000000000 -0400
+@@ -0,0 +1,24 @@
 +#ifndef _UM_PARAM_H
 +#define _UM_PARAM_H
 +
-+#define HZ 100
++#ifndef HZ
++#define HZ 52
++#endif
 +
 +#define EXEC_PAGESIZE   4096
 +
@@ -39388,7 +39441,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/pci.h um/include/asm-um/pci.h
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/pgalloc.h um/include/asm-um/pgalloc.h
 --- orig/include/asm-um/pgalloc.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/pgalloc.h        2004-02-14 06:29:00.000000000 -0500
++++ um/include/asm-um/pgalloc.h        2003-12-17 02:16:14.000000000 -0500
 @@ -0,0 +1,164 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -39556,7 +39609,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/pgalloc.h um/include/asm-um/p
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/pgtable.h um/include/asm-um/pgtable.h
 --- orig/include/asm-um/pgtable.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/pgtable.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/pgtable.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,413 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -39993,7 +40046,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/posix_types.h um/include/asm-
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/processor-generic.h um/include/asm-um/processor-generic.h
 --- orig/include/asm-um/processor-generic.h    1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/processor-generic.h      2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/processor-generic.h      2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,177 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -40174,7 +40227,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/processor-generic.h um/includ
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/processor-i386.h um/include/asm-um/processor-i386.h
 --- orig/include/asm-um/processor-i386.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/processor-i386.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/processor-i386.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,35 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -40232,7 +40285,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/processor-ppc.h um/include/as
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-generic.h um/include/asm-um/ptrace-generic.h
 --- orig/include/asm-um/ptrace-generic.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/ptrace-generic.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/ptrace-generic.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,74 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -40310,7 +40363,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-generic.h um/include/a
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-i386.h um/include/asm-um/ptrace-i386.h
 --- orig/include/asm-um/ptrace-i386.h  1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/ptrace-i386.h    2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/ptrace-i386.h    2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,46 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -40380,7 +40433,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/rwlock.h um/include/asm-um/rw
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/rwsem.h um/include/asm-um/rwsem.h
 --- orig/include/asm-um/rwsem.h        1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/rwsem.h  2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/rwsem.h  2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,10 @@
 +#ifndef __UM_RWSEM_H__
 +#define __UM_RWSEM_H__
@@ -40412,7 +40465,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/segment.h um/include/asm-um/s
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/semaphore.h um/include/asm-um/semaphore.h
 --- orig/include/asm-um/semaphore.h    1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/semaphore.h      2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/semaphore.h      2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SEMAPHORE_H
 +#define __UM_SEMAPHORE_H
@@ -40496,7 +40549,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-ppc.h um/include/a
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/siginfo.h um/include/asm-um/siginfo.h
 --- orig/include/asm-um/siginfo.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/siginfo.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/siginfo.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SIGINFO_H
 +#define __UM_SIGINFO_H
@@ -40506,7 +40559,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/siginfo.h um/include/asm-um/s
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/signal.h um/include/asm-um/signal.h
 --- orig/include/asm-um/signal.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/signal.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/signal.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,22 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -40532,7 +40585,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/signal.h um/include/asm-um/si
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/smp.h um/include/asm-um/smp.h
 --- orig/include/asm-um/smp.h  1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/smp.h    2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/smp.h    2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,19 @@
 +#ifndef __UM_SMP_H
 +#define __UM_SMP_H
@@ -40555,7 +40608,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/smp.h um/include/asm-um/smp.h
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/smplock.h um/include/asm-um/smplock.h
 --- orig/include/asm-um/smplock.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/smplock.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/smplock.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SMPLOCK_H
 +#define __UM_SMPLOCK_H
@@ -40585,7 +40638,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sockios.h um/include/asm-um/s
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/softirq.h um/include/asm-um/softirq.h
 --- orig/include/asm-um/softirq.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/softirq.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/softirq.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,13 @@
 +#ifndef __UM_SOFTIRQ_H
 +#define __UM_SOFTIRQ_H
@@ -40602,7 +40655,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/softirq.h um/include/asm-um/s
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/spinlock.h um/include/asm-um/spinlock.h
 --- orig/include/asm-um/spinlock.h     1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/spinlock.h       2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/spinlock.h       2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,10 @@
 +#ifndef __UM_SPINLOCK_H
 +#define __UM_SPINLOCK_H
@@ -40616,7 +40669,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/spinlock.h um/include/asm-um/
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/statfs.h um/include/asm-um/statfs.h
 --- orig/include/asm-um/statfs.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/statfs.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/statfs.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef _UM_STATFS_H
 +#define _UM_STATFS_H
@@ -40636,7 +40689,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/stat.h um/include/asm-um/stat
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/string.h um/include/asm-um/string.h
 --- orig/include/asm-um/string.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/string.h 2004-01-16 03:32:58.000000000 -0500
++++ um/include/asm-um/string.h 2003-12-16 22:26:55.000000000 -0500
 @@ -0,0 +1,7 @@
 +#ifndef __UM_STRING_H
 +#define __UM_STRING_H
@@ -40647,7 +40700,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/string.h um/include/asm-um/st
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/system-generic.h um/include/asm-um/system-generic.h
 --- orig/include/asm-um/system-generic.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/system-generic.h 2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/system-generic.h 2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,50 @@
 +#ifndef __UM_SYSTEM_GENERIC_H
 +#define __UM_SYSTEM_GENERIC_H
@@ -40701,7 +40754,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/system-generic.h um/include/a
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/system-i386.h um/include/asm-um/system-i386.h
 --- orig/include/asm-um/system-i386.h  1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/system-i386.h    2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/system-i386.h    2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,39 @@
 +#ifndef __UM_SYSTEM_I386_H
 +#define __UM_SYSTEM_I386_H
@@ -40780,7 +40833,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/termios.h um/include/asm-um/t
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/timex.h um/include/asm-um/timex.h
 --- orig/include/asm-um/timex.h        1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/timex.h  2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/timex.h  2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,18 @@
 +#ifndef __UM_TIMEX_H
 +#define __UM_TIMEX_H
@@ -40807,7 +40860,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/tlb.h um/include/asm-um/tlb.h
 +#include <asm-generic/tlb.h>
 diff -Naur -X ../exclude-files orig/include/asm-um/types.h um/include/asm-um/types.h
 --- orig/include/asm-um/types.h        1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/types.h  2004-01-16 03:32:58.000000000 -0500
++++ um/include/asm-um/types.h  2003-12-15 00:26:37.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_TYPES_H
 +#define __UM_TYPES_H
@@ -40817,7 +40870,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/types.h um/include/asm-um/typ
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/uaccess.h um/include/asm-um/uaccess.h
 --- orig/include/asm-um/uaccess.h      1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/uaccess.h        2004-02-14 06:28:59.000000000 -0500
++++ um/include/asm-um/uaccess.h        2003-12-17 02:16:13.000000000 -0500
 @@ -0,0 +1,99 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -40940,7 +40993,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/unaligned.h um/include/asm-um
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/unistd.h um/include/asm-um/unistd.h
 --- orig/include/asm-um/unistd.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/unistd.h 2004-02-14 06:29:00.000000000 -0500
++++ um/include/asm-um/unistd.h 2003-12-17 02:16:14.000000000 -0500
 @@ -0,0 +1,121 @@
 +/* 
 + * Copyright (C) 2000, 2001  Jeff Dike (jdike@karaya.com)
@@ -41065,7 +41118,7 @@ diff -Naur -X ../exclude-files orig/include/asm-um/unistd.h um/include/asm-um/un
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/user.h um/include/asm-um/user.h
 --- orig/include/asm-um/user.h 1969-12-31 19:00:00.000000000 -0500
-+++ um/include/asm-um/user.h   2004-02-14 06:31:38.000000000 -0500
++++ um/include/asm-um/user.h   2003-12-17 02:18:31.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_USER_H
 +#define __UM_USER_H
@@ -41094,8 +41147,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/xor.h um/include/asm-um/xor.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/linux/blk.h um/include/linux/blk.h
---- orig/include/linux/blk.h   2004-01-11 22:46:30.000000000 -0500
-+++ um/include/linux/blk.h     2004-02-14 06:29:18.000000000 -0500
+--- orig/include/linux/blk.h   2002-09-15 12:13:19.000000000 -0400
++++ um/include/linux/blk.h     2003-12-17 02:16:30.000000000 -0500
 @@ -320,6 +320,24 @@
  #define DEVICE_REQUEST do_ida_request
  #define DEVICE_NR(device) (MINOR(device) >> 4)
@@ -41123,7 +41176,7 @@ diff -Naur -X ../exclude-files orig/include/linux/blk.h um/include/linux/blk.h
  /* provide DEVICE_xxx defaults, if not explicitly defined
 diff -Naur -X ../exclude-files orig/include/linux/fs.h um/include/linux/fs.h
 --- orig/include/linux/fs.h    2003-12-16 22:16:36.000000000 -0500
-+++ um/include/linux/fs.h      2004-02-14 06:28:59.000000000 -0500
++++ um/include/linux/fs.h      2003-12-17 02:16:13.000000000 -0500
 @@ -320,6 +320,8 @@
  #include <linux/ncp_fs_i.h>
  #include <linux/proc_fs_i.h>
@@ -41255,8 +41308,8 @@ diff -Naur -X ../exclude-files orig/include/linux/hppfs_fs_i.h um/include/linux/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/linux/kernel.h um/include/linux/kernel.h
---- orig/include/linux/kernel.h        2004-01-11 22:46:12.000000000 -0500
-+++ um/include/linux/kernel.h  2004-02-14 06:28:59.000000000 -0500
+--- orig/include/linux/kernel.h        2003-02-27 13:04:27.000000000 -0500
++++ um/include/linux/kernel.h  2003-12-17 02:16:13.000000000 -0500
 @@ -49,7 +49,7 @@
  # define ATTRIB_NORET  __attribute__((noreturn))
  # define NORET_AND     noreturn,
@@ -41267,8 +41320,8 @@ diff -Naur -X ../exclude-files orig/include/linux/kernel.h um/include/linux/kern
  #else
  #define FASTCALL(x)   x
 diff -Naur -X ../exclude-files orig/include/linux/kernel_stat.h um/include/linux/kernel_stat.h
---- orig/include/linux/kernel_stat.h   2004-01-11 22:46:12.000000000 -0500
-+++ um/include/linux/kernel_stat.h     2004-02-14 06:28:59.000000000 -0500
+--- orig/include/linux/kernel_stat.h   2003-08-29 17:26:25.000000000 -0400
++++ um/include/linux/kernel_stat.h     2003-12-17 02:16:13.000000000 -0500
 @@ -12,7 +12,7 @@
   * used by rstatd/perfmeter
   */
@@ -41280,7 +41333,7 @@ diff -Naur -X ../exclude-files orig/include/linux/kernel_stat.h um/include/linux
  struct kernel_stat {
 diff -Naur -X ../exclude-files orig/include/linux/mm.h um/include/linux/mm.h
 --- orig/include/linux/mm.h    2003-12-16 22:16:36.000000000 -0500
-+++ um/include/linux/mm.h      2004-02-14 06:28:59.000000000 -0500
++++ um/include/linux/mm.h      2003-12-17 02:16:13.000000000 -0500
 @@ -438,6 +438,18 @@
  extern struct page * FASTCALL(__alloc_pages(unsigned int gfp_mask, unsigned int order, zonelist_t *zonelist));
  extern struct page * alloc_pages_node(int nid, unsigned int gfp_mask, unsigned int order);
@@ -41345,7 +41398,7 @@ diff -Naur -X ../exclude-files orig/include/linux/mm.h um/include/linux/mm.h
  }
 diff -Naur -X ../exclude-files orig/include/linux/proc_mm.h um/include/linux/proc_mm.h
 --- orig/include/linux/proc_mm.h       1969-12-31 19:00:00.000000000 -0500
-+++ um/include/linux/proc_mm.h 2004-02-14 06:30:22.000000000 -0500
++++ um/include/linux/proc_mm.h 2003-12-17 02:17:30.000000000 -0500
 @@ -0,0 +1,48 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -41408,8 +41461,8 @@ diff -Naur -X ../exclude-files orig/include/linux/shmem_fs.h um/include/linux/sh
        unsigned long           flags;
        struct list_head        list;
 diff -Naur -X ../exclude-files orig/include/linux/tty.h um/include/linux/tty.h
---- orig/include/linux/tty.h   2004-01-11 22:46:12.000000000 -0500
-+++ um/include/linux/tty.h     2004-02-14 06:28:59.000000000 -0500
+--- orig/include/linux/tty.h   2003-08-29 17:26:26.000000000 -0400
++++ um/include/linux/tty.h     2003-12-17 02:16:13.000000000 -0500
 @@ -309,6 +309,9 @@
        spinlock_t read_lock;
        /* If the tty has a pending do_SAK, queue it here - akpm */
@@ -41493,8 +41546,8 @@ diff -Naur -X ../exclude-files orig/MAINTAINERS um/MAINTAINERS
  USB "USBNET" DRIVER
  P:    David Brownell
 diff -Naur -X ../exclude-files orig/Makefile um/Makefile
---- orig/Makefile      2004-02-14 06:26:12.000000000 -0500
-+++ um/Makefile        2004-02-14 06:26:19.000000000 -0500
+--- orig/Makefile      2003-12-16 22:16:23.000000000 -0500
++++ um/Makefile        2003-12-16 22:17:22.000000000 -0500
 @@ -5,7 +5,15 @@
  
  KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)