1. 23 Nov, 2007 9 commits
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99 (December 13, 1992) · ad094925
      Linus Torvalds authored
      net-1: paranoid queue checking to find more bugs.
      
      configuration script version #1.
      
      NFS filesystem client support by Rick Sladkey!
      
      [Original announcement below]
      
      0.99 has no major new features: the NFS client code is now in the
      standard distribution, and the kernel configuration has changed, but
      most of the rest of the changes are fixes - especially the tcp code
      should now be pretty stable (knock wood).
      
      Changes:
      
       - NFS is in. As are some stubs for the soud drivers, although it's only
         stubs right now.
       - various fixes around the place: the serial problems are hopefully
         gone, and there are patches to both TCP/IP and SCSI to make them more
         stable.
       - Minor fixes: the keyboard buglet introduced in 0.98pl6 should be
         gone, and some other bugs are also corrected.  The optimized
         read-ahead code in the filesystems (and the raw device read code) was
         too complicated and seemed to have problems with bad blocks, so I
         rewrote it, and it should hopefully work correctly now (this may have
         been the reason "mkfs -c" didn't work in all cases).  Thanks for some
         good bug-reports I've gotten: I've tried to correct all the problems
         I got reports on.
       - The kernel configuration has been re-thought: I decided to take
         advantage of the possibilities offered by GNU make etc.  This means
         that you no longer can compile the kernel using any other make, but
         there probably aren't many (if any) people doing that anyway.  This
         way I got rid of the extremely ugly SCSI setup, so it was probably
         worth it.
      
      To configure the kernel for your setup, do a
      
              make config
      
      and answer the yes/no questions. After that, do a
      
              make dep
      
      to make the dependencies match your setup.  After that you should still
      go edit the top-level Makefile for some of the configuration information
      as before, but the remaining config things are pretty simple.  Then you
      can make the kernel with a simple "make Image".
      
      The new configuration utility (essentially a stupid shell script coupled
      with some smarts in the Makefiles) tries to minimize compilations: if
      you disable the SCSI code the scsi drivers won't even be compiled, much
      less linked in.  This should be a win on slower machines.
      
      NOTE!!! Use LILO-0.7 to load the 0.98pl5 and newer kernels: any older
      version of lilo is liable to result in weird problems.
      
                      Linus
      ad094925
    • Linus Torvalds's avatar
      [PATCH] Linux-0.98.6 (December 2, 1992) · c0cf5000
      Linus Torvalds authored
      Kai Makisara does the SCSI tape driver.  He's one of the few original
      maintainers still around as such..
      
      isofs introduced by Eric Youngdale, based on the minixfs code.  Eric was
      a physicist, and you can tell he was new to C - he has been
      Pascal-damaged, and has extra semi-colons at the end of block
      statements.  But soon he ended up being one of the core maintainers
      anyway, and took over SCSI maintenance.
      
      More aggressive filesystem read-ahead introduced.
      
      [Original announcement below]
      
      Anyway, 0.98pl6 is hopefully the last release before 0.99: there are a
      few known problems left in this release.  Most notable is the serial
      code: it works for most people, but others still have problems with it.
      I hope this will get fixed within a week (tytso is working on it).  It
      also seems as if the PS/2 mouse code has some problems.
      
      pl6 contains these fixes:
      
       - all the tcp/ip patches I've received (and I fixed one bug that
         gcc-2.3 seems to have found).
       - math-emu patch for the problem that resulted in FPU errors with some
         operations.
       - I fixed gcc-2.3 warnings as well as most of the old warnings.  You
         shouldn't get more than one or two warnings when recompiling the
         whole kernel.
       - /proc filesystem extensions.  Based on ideas (and some code) by
         Darren Senn, but mostly written by yours truly.  More about that
         later.
       - some tty_io fixes (there was a bug in the /dev/console handling when
         you changed VC's while using the general console device).
       - re-organization of the keyboard-driver internal data-structures.  The
         changes are mostly preliminary: they change the keyboard flags to be
         more easily adaptive to a reprogrammable keyboard driver.  No actual
         new features yet.
       - new SCSI drivers: reportedly much faster than the old ones (but not
         all drivers take advantage of it yet..)
       - various other fixes: pty's etc have minor changes.
      
      I hope to make 0.99 in a week or so, and 1.0 after that has been tested
      some.  I hope people will test out pl6 - 0.99 won't be much different,
      and if you don't test pl6, any bugs relating to your particular hardware
      may not be found in time for 0.99...
      
                      Linus
      c0cf5000
    • Linus Torvalds's avatar
      [PATCH] Linux-0.98.4 (November 9, 1992) · 3820d961
      Linus Torvalds authored
      Rename "malloc()/free()" as "kmalloc()/kfree()" to make people more
      aware of some of the limitations.
      
      Math emulator updates to handle the case that Linux (unlike the original
      djgpp target) can get preempted by user space accesses.
      
      Make "ll_rw_blk()" take an array of blocks to read/write.
      
      VFS "notify_change()" callback, to allow the low-level filesystem to
      decide what it wants to do about metadata changes.
      
      Deprecate old "stat()" call by printing out a warning on use.
      
      NR_OPEN is now 256 files per process, and the old "unsigned long" bitops
      needed to go away. This causes lots of syntactic changes in select().
      
      System call tracing implemented for ptrace().
      
      [Original announcement below]
      
       - the inode caching bug (resulting in bad filesystem info when
         mounting/umounting devices) should be gone for good.
      
       - an elusive race-condition in the fs is fixed: this may have been the
         reason some people got fsck errors once in a while.  The
         race-condition was pretty hard to find, and depends on a lot of
         things (buffer cache size, speed of the disk and computer speed).
      
       - fpu emulator patches (mainly for the re-entrancy problem) by me and
         W. Metzenthen.
      
       - various wait-queue changes - the kernel uses the waiting mechanism
         more efficiently now.
      
       - the NFS client support code is there: the actual nfs code is still in
         alpha (although reported to be pretty stable) and has to be gotten
         separately.
      
       - NR_OPEN was changed from 32 to 256 (which is what SunOS seems to use,
         so I hope it won't need any further changes).  This has lead to some
         incompatibilities (GNU emacs and the term program seem to need
         recompilation to work correctly), as the 'select()' system call has a
         slightly changed interface due to the new fd_set definition.
      
       - the process kernel stack is now on a separate page (needed due to the
         fact that the task_struct has now grown to almost 3kB due to the
         NR_OPEN changes).  This also means 'ps' needs patches..  My patches
         to ps-0.98 are available as 'ps-diff.Z' in the same directory as the
         kernel sources and diffs.
      
       - various other changes: system call tracing by Ross Biro. Changed
         ll_rw_block interface (performance reasons: it will eventually be
         changed to accept several requests at once).  Malloc() was changed
         and renamed to kmalloc() due to the new interface.  Some tcp/ip
         patches (inode counting correction and some other changes).
      
      0.98.4 should hopefully be pretty stable: the main problem areas are
      probably still tcp/ip and some of the tty code.  I'd appreciate
      comments, bug-reports etc.
      
                      Linus
      3820d961
    • Linus Torvalds's avatar
      [PATCH] Linux-0.98.2 (October 18, 1992) · c96bf123
      Linus Torvalds authored
      Start virtualizing real mmap() functionlity in the kernel.  The first
      signs of me thinking about this already showed up as some unused header
      files earlier, this fleshes things out some more.  No actual filesystem
      code yet..
      
      This also removes my old simple math emulator, and introduces the new
      and much improved one from Bill Metzenthen.
      
      Bill originally wrote it for the djgpp suite (DJ Delories gcc port to
      DOS extenders).  It was much more accurate and well designed than my
      hackish one, and I was happy to throw my old code away.  The new math
      emulator also did things that I had never bothered with, notably the
      more complex i387 functions (exponentials and trig).
      
      I also fixed the static maximum memory limit: we now generate the kernel
      page tables dynamically rather than having a 16M or 32M static limit.
      
      SCSI updates: removable media support (which also implies re-reading the
      partition table etc)
      
      [Original announcement below]
      
      patch-2 is >150kB compressed, as it contains several big changes. Most
      notable are:
      
       - the new FPU-emulator by Bill Metzenthen.  It's bigger than the old
         one, but thanks to it, linux fpu emulation is no longer a quick hack,
         but a real emulator: it does all the 387(486) math instructions, and
         does them much faster than the old emulator + the soft library.
      
         The new math-emulator means that a separate soft-float library is no
         longer needed.  It also makes even a non-coprocessor system pretty
         useful for limited math-calcs - the complex functions are much faster
         when they no longer have to be calculated using simple functions, and
         even the simpler instructions that my old emulator handled are faster
         using the new one.
      
         The size of the new emulator may mean that people who have little
         RAM, but do have a coprocessor should probably recompile the kernel
         with the emulator disabled.
      
       - various minor mm fixes by me: trapping kernel NULL dereferences,
         cleaning up the page table initializations and the 16MB patches, and
         various other bugfixes.  get_free_page(GFP_ATOMIC) should preserve
         the interrupt flag, so malloc() should be safe now - hopefully no
         more of the tcp/ip memory management problems.
      
         The NULL pointer trapping may result in errors like:
              Unable to handle kernel paging request at address C0000???
              Oops: 0000
              ..... debugging info .....
      
         There were several NULL pointer dereferences in the serial and tty
         drivers, which should now be fixed.  I've also fixed any other errors
         I've seen, but if there are problems in the scsi drivers or similar
         things I cannot test, I'd like to hear about them.
      
       - scsi driver changes by Eric Youngdale.  Preliminary support for
         removable media, and some bug-fixes.  Due to white-space problems
         with eric's patches, the scsi patches are a bit bigger than
         necessary, but they should be ok even though I had to put them in
         partly by hand (and being unable to test them...)
      
       - The new tcp/ip patches that were sent to the NET channel not long
         ago.  Yes, they are alpha, but so is the whole tcp/ip directory, so I
         put them in even thought they haven't been extensively tested (and
         they did have a serious problem in the ioctl code, which I fixed).
      
       - psaux mouse patches by Dean Troyer, as well as the mouse.wait = NULL
         patch.
      
      Before (or after) patching, you should remove the old math-emulator (ie
      "rm -rf /usr/src/linux/kernel/math") as it is no longer needed.  You
      should also do a "make dep" to update dependencies: as usual, I edited
      out the dependancy-changes.  Do a "make clean", edit the main (and net)
      Makefiles to suit your system, and compile.
      
      And finally: I will no longer be making the bootdisks available -
      they'll be made by hlu/jwinstead and will probably be boot+root-disks
      using lilo, as done on the hlu disks.  That may mean that a bootimage
      won't be available at once, but most people who want to use the
      absolutely newest images probably compile them themselves anyway, so
      that shouldn't be a problem.
      
                      Linus
      c96bf123
    • Linus Torvalds's avatar
      [PATCH] Linux-0.97.6 (September 20, 1992) · d9723f6c
      Linus Torvalds authored
      Ted Ts'o did extensive serial driver changes, and fixed up some of the
      tty layer to match.  Tty's now allocated dynamically.
      
      [Original announcement below]
      
      This patch does not contain any major bug-fixes: it corrects named pipes
      that broke with pl5, and has some minor changes in the IO-instructions
      and the hd-driver, but those shouldn't matter for most of you.
      
      It does contain all the scsi-patches that I've gotten so far, so if the
      bootup sequence died on you in the scsi code, pl6 should correct this.
      
      The major part of the patch is tytso's serial line changes, making the
      tty structures dynamic.  No more NR_PTY's - the number of pty's is now
      bounded only by the minor number setup (max 64 pty's) or the amount of
      memory available (opening a pty requires a page of memory for tty
      queues).  Similarly for serial lines.
      
      The above just means that while pl6 can be useful, the changes to pl5
      aren't big enough to worry about.  Most people don't use named pipes, it
      seems, and the other changes are either cosmetic or hardware-dependent.
      I still hope people upgrade, if only so that I can get new bug-reports.
      
      I had hoped to release 0.98 this weekend, but studies and the scsi/hd
      problems put an end to that.  0.98 should be out next weekend or so.
      Expect the tcp/ip subdirectory and possibly some mm changes.
      
                      Linus
      d9723f6c
    • Linus Torvalds's avatar
      [PATCH] Linux-0.97.2 (August 23, 1992) · eb79918f
      Linus Torvalds authored
      We're making ready for big processes, and vm86 mode!
       - Move the kernel to virtual address 0xc0000000 instead of zero.
       - Allocate per-process page tables
      
      We can now have 3GB processes, and more than 64 of them!
      
      [Original announcement below]
      
      As promised, 0.97.pl2 is out today (well, over here it's already
      tomorrow, so I guess I'm 35 minutes late.  Naughty, naughty).  Right
      now, the patch (and full source for those that don't like to patch up
      the system) is available at "nic.funet.fi: pub/OS/Linux/testing/Linus",
      but I'll try to put it on some other sites as well if I'm able and
      energetic enough.  Probably tomorrow - together with a binary for those
      that aren't willing to comple the kernel on their own.
      
      0.97.2 has mostly my mm/fs patches, along with some relatively minor
      diffs by others (including file locking by Doug Evans).  User-level
      changes are minor: but the mm has changed a lot, and the vfs routines
      have been changed to keep track of the error-messages a bit better.
      Also, the vfs-interface to "follow_link()" changed slightly: people who
      are making filesystems should look at the changes (but they are
      relatively minor, and shouldn't result in any problems - both the
      extended fs and minix fs needed just a simple change in their respective
      symlink.c files).
      
      The mm changes /might/ lower performance slightly, as the paging TLB's
      are now flushed at every task-switch due to the new system, but I doubt
      it's noticeable.  The other performance changes (dynamic buffers etc) in
      0.97(.pl1) should overshadow that particular problem.
      
      I hope this release means that these kinds of low-level rewrites aren't
      needed for a while: the last couple of releases have changed some very
      fundamental things.  Nothing seems to have suffered too badly, but I'd
      be happier if it all got tested more thoroughly.  Anyway, discounting
      the ps/free etc suite of programs, everything I have tried has worked
      flawlessly despite the big kernel changes.
      
      I'm still worried about the reports about messed-up buffers, but have
      been unable to reproduce the problem, and nobody has so far
      disillusioned me about my guess that it's a problem with the SCSI code
      (which at least gives me an excuse for not doing anything about it :-).
      Other problems include at least one report of spontaneous re-booting,
      which is totally inexplicable, so I'm blaming hardware once more until I
      can get better data on the thing.
      
      As to patches sent by others: 0.97.2 contains very little of that kind
      of code.  I've been too busy either working, or implementing my own
      changes that I have simply ignored them for the most part.  Remind me
      (or resend them relative to the new kernel) if you have a patch that is
      still needed.
      
      There is one new system call: 'vm86(struct vm86_struct * info)'.  It's
      not ready for general use yet - it works, but will probably need some
      tweaking before being practical.  But supporting a virtual 86 mode was
      so easy after the mm rewrite that I felt it was worth implementing: the
      vm86 code is less than 50 lines of C right now.
      
                      Linus
      
      PS.  The bright spot of the week goes to "The Oxford Beer Trolls" - all
      UK inhabitants should probably be locked into some (big) mental
      institution and TOBT should probably have a wing of their own, but
      thanks to them linux can now call itself "beerware" :-)
      eb79918f
    • Linus Torvalds's avatar
      [PATCH] Linux-0.97 (August 1, 1992) · ddc733f4
      Linus Torvalds authored
      Move <xxx.h> to <linux/xxxx.h>
      
      Variable-sized buffer blocks and dynamic buffer cache allocation. The VM
      knows how to shrink it automatically!
      
      Add support for "fast" interrupt handlers for serial lines.
      
      Update copyrights to say 1992 too.
      
      Remove broken VESA video card handling.
      
      Separate out partition handling code ("genhd").
      
      Make init unkillable.
      
      Norwegian keyboard map.
      
      Future Domain SCSI controller driver by Rik Faith.
      
      Changes in 0.97:
      
       - The VESA-support was removed.  I'd be happy to put it back once it
         works on all hardware.  Instead of the VESA-code, I finally put in
         the automatic SVGA setup patches.  See the top-level Makefile.
      
       - The IRQ code has solidified, and should work on all machines.  Not
         all of the SCSI drivers use it yet, so I expect patches for that..
      
       - Serial interrupts are handled slightly differently, and performance
         should be up.  I've sent out a few alpha-releases, and testing seems
         to indicate that's actually true this time.  Reactions have ranged
         from "nice" to "wonderful" :-)
      
       - The buffer-cache and memory management code has been edited quite a
         bit.  ps/free etc programs that reads kernel memory directly no
         longer work, and even a recompilation won't be enough.  They actually
         need editing before they work.
      
         The buffer-cache now grows and shrinks dynamically depending on how
         much free memory there is.  Shift+PrintScreen will give some memory
         statistics.  (Ctrl+PrSc gives task-info, ALT+PrSc gives current
         register values).
      
         The mm code changes removed some race-conditions in the VM code, and
         I also tried to make the Out-of-swapspace error less severe (better
         thrashing-detection etc).
      
       - The super-block code has been cleaned up.  Especially the extended fs
         needs to be edited a bit to take advantage of the new setup, and I
         expect Remy Card will have a patch out eventually.
      
       - include-files have been moved around some more: there are still some
         names that clash with the standard headers, but not many.
      
       - Unswappable processes implemented: by default only 'init' is
         unswappable.  This is a bit safer in low-memory conditions, as at
         least init won't die due to low memory.  I also made killing init
         impossible: if init doesn't recognize a signal, it simply won't get
         it.  Some other changes ("while (1) fork();" won't kill the machine
         for non-root users etc)
      
       - The new SCSI drivers are in.  These make the kernel noticeably
         bigger, but you can leave them out if you don't want them.
      
       - The floppy- and hd-drivers print out more debugging-info in case of
         errors: this might be irritating if you have hardware that works, but
         often gives soft-errors.  On the other hand, some old debugging-info
         was removed - notably for user-level protection errors etc.
      
       - Various minor fixes.  I haven't made cdiffs (and I haven't gotten any
         requests for them, so I probably never will), but they would be
         pretty big.
      
      Things that I didn't have time for:
      
       - I wanted to rewrite the tty drivers to be more "streams-like" (ie not
         an actual streams-implementation, but some of the ideas from
         streams).  I never got around to it: there was simply too much else
         to do.
      
       - I got a lot of patches, and some went in, others didn't.  If you
         think your patch was important, please re-send it relative to the new
         version.
      
      I'd like comments on the new system: performance / clarity of code etc.
      0.97 should correct all known bugs (at least the ones I know about), but
      I guess that's just wishful thinking.
      
      Note that the dynamic buffer-code also handles differently-sized
      buffers, but that the rest of the system (block device drivers,
      filesystem code etc) cannot yet take advantage of this - there is still
      some coding needed.
      
      		Linus
      ddc733f4
    • Linus Torvalds's avatar
      [PATCH] Linux-0.96-pre (April 21, 1992) · d1e6fdb2
      Linus Torvalds authored
      More VFS layer work: remove more special cases, and take advantage of
      the virtual VFS functions (close and select).  Add fchown/fchgrp and
      [f]truncate.
      
      Orest Zborowski shows up, and works on porting X11 to X.  This needs a
      lot of infrastructure support: ioperm() for user-mode IO port access,
      and SVR style virtual terminal ioctl's to make porting easier.  Perhaps
      more importantly, the mmap() system call shows up, even if it right now
      is limited only to a direct /dev/mem remapping.
      
      [Original changelog below]
      
      - truncate/ftruncate/fchmod/fchown system calls
      
              note that there aren't any library functions for these, so they
              aren't very useful yet...
      
              [f]truncate needed a change in the logic of the internal
              truncate VFS call - anybody that has any nonstandard filesystem
              probably needs to look it up.
      
      - io-bitmap syscalls giving root-processes access to selected io ports
        from user space.  There is a "ioperm()" system call that lets the
        process select which ports it wants to enable/disable (all ports
        disabled as default) as well as a (standard sysv?) ioctl interface
        that X uses.
      
              again, no library stubs, but it allows things like reading and
              setting the cmos clock without using /dev/port, as well as
              control over the VGA registers...
      
      - mmap for /dev/mem
      
              more things needed for X...
      
      - the signal-handling fixes needed for gdb
      
              These aren't yet complete: serial lines still send signals under
              interrupts that can result in problems (ie ptrace doesn't
              correctly get them), but that's pretty unlikely (and will be
              fixed in the final 0.96).  Breakpoints should work etc..
      
      - multiple shared libraries
      
              Up to 6 simultaneous shared libraries/process: the patches were
              originally by pmacdona, but they were heavily changed by me, and
              I think they work in a more natural manner now.  One user-level
              change is that the libraries are now checked for read and
              execute permissions for safety-reasons.
      
      - cleaned up special files.
      
              read/write/ioctl no longer has special-case code: it is all
              handled with tables to functions.  This will mean that the SCSI
              patches won't patch in quite cleanly into 0.96: you'll need to
              add the code that sets up the functions.
      
              Again: device drivers and vfs-filesystem hackers need to look
              into the changes, although they are pretty logical (earlier
              versions just didn't implement all the vfs-routines)
      
              Note that the vfs-code for select is still not used: select is
              hardcoded for the devices it supports right now.
      
      - ptrace() has a new interface
      
              as gdb for versions < 0.95c don't work on the new version, and
              gdb won't work very well at all on 0.95c[+], there was no reason
              not to break ptrace.  Thus 0.96 has a new calling convention for
              ptrace, and the old ptrace library function no longer works.
              I'm including the new ptrace library function at the end of this
              post.
      
      - mount() takes 4 arguments, and checks that only the super-user can
        mount/umount things.
      
              Happily this shouldn't break any old binaries.
      
      - some general cleanups
      d1e6fdb2
    • Linus Torvalds's avatar
      0.96c second patch · 6f8473c7
      Linus Torvalds authored
      The subject pretty much says it all: I've sent out the "weekly patch"
      and I'd be very interested in comments. As with patch1, there are some
      very fundamental changes in the kernel, and they might have some
      problems. I'd want as many as possible to test out linux-0.96c.pl2, as
      that has always been the best way to test out the changes. Everything
      works on my machine, but that doesn't guarantee it will work on other
      setups...
      
      The MAJOR change in 0.96c.pl2 is the totally rewritten sleep/wakeup
      code. That, together with the IRQ code introduced in pl1 and slightly
      edited in pl2, means that two very fundamental things in the linux
      kernel have changed in the last two weeks. The code is cleaner, easier
      to add devices to, and hopefully faster, but it's still a bit risky to
      change this kind of very low-level behaviour.
      
      Select() is now implemented using the vfs jump tables, and thanks to the
      better sleep/wakup interface, select() performance should be noticeably
      better. At least xload seems to give lower load-averages, and I hope
      ka9q will work better with the new kernel. Note that things like the
      tty code doesn't yet take full advantage of the new features the
      rewritten sleep offers, but I wanted to get a good testing-release out
      before actually tweaking all the routines to use the new interface.
      
      The IRQ routines have changed slightly, and all known bugs are fixed.
      
      While I'm most interested to hear comments about the IRQ and
      select/sleep/wakup code, there are a few other changes in pl2:
      
       - Swiss keyboard support.
      
       - Screen blanking now only reacts to key-presses and kernel messages:
      normal tty output doesn't make the screen unblank.
      
       - DOS-fs version 5 is in. It wouldn't hurt to try it out. It's
      somewhat alpha still, but it seems to work. mtools should be a thing of
      the past once the dosfs is a bit more tested.
      
       - core-file magic number, and a minor bug in ptrace is fixed
      
       - a bus-mouse is supported. I'd like to hear if it still works after I
      did the select() patches "blind" (I can't test it on my machine).
      
       - iopl changing is possible (but requires root priviledges): this
      allows access to all IO ports, as well as the interrupt flag. Don't use
      it unless /absolutely/ necessary: a bug in your program will most likely
      crash the machine if you are running with IO priviledges. It's needed
      for some X VGA drivers.
      
      As a result of all the changes, the diff is pretty big. Apply and build
      it with something like:
      
              cd /usr/src
              zcat linux-0.96c.patch2.Z | patch -p0
              cd linux
              make dep
              make clean
              make Image
      
      assuming you have the 0.96c.pl1 kernel in /usr/src/linux. I've had some
      reports that my patches won't always go in cleanly: I know for a fact
      that patch1 patches cleanly (I rebuilt 0.96c.pl1 by downloading it all
      from banjo), so the error is in your end.
      
      Possible problems:
      
       - The VESA code in setup.S has some problems. I haven't even looked
      into it yet, so if it won't work for you, please either (a) use the
      unpatched setup.S from 0.96c, or (b) try to find the problem and tell
      me. (b) is preferable, of course. I'd like to have VESA support, but
      if the bug isn't found, I'll have to use the non-VESA version for 0.97.
      
       - The IRQ code in 0.96c.pl1 could overrun the stack if linux got
      un-ending interrupt requests, resulting in a re-boot. With pl2, this
      shouldn't happen: linux should print out something like "Recursive
      interrupt on IRQx. Shutting down" and simply disable the problematic
      IRQ line. If you see this message, I'd be very interested to hear about
      it (which IRQ, what devices you have, etc).
      
       - And any new or old bugs I haven't found yet.
      
      I have one report that 0.96c.pl1 has problems with the inode table, and
      panics on bootup with a "no more inodes in mem" report. Can anybody
      confirm this sighting? I haven't found the reason for it, and haven't
      seen it myself. I'm hoping it's an installation problem, but if anybody
      else sees the same behaviour, I'm SOL.
      
                  Linus
      6f8473c7