Changes from NetBSD 1.3 to NetBSD 1.3.1: Kernel changes: - Don't panic in cluster_rbuild when DIAGNOSTIC is defined - just count the number of times we hit the "too much memory" case. - Fix a security hole in vm_mmap.c as described on bugtraq. - Fix a bug in uipc_usrreq.c which could be exploited to cause a panic. - Fix I/O region mapping bug on EISA Buslogic cards. - Fix problem with synchronous opens and mounts (from Lite2) - Now that O_FSYNC works, give it the symbol that XPG4.2 expects, and document all of this. - Fix an NFS client crash that happened with a combination of amd and Linux or SVR4 binaries. - Fix a problem where the NFS client code would not recover from a TCP connection being broken (mount point dead; reboot needed). (Solaris 2.5.1 NFS servers close TCP connections after 400 seconds of idletime.) - A trivial NULL-protect fix to the hp300-derived pmaps can protect kernels from crashing in certain rare conditions possibly related to paging activity, or in a more easily reproduced case where mlock() is used with any kind of shared vm map. - Fix the in_cksum odd-byte starting/finishing case for big-endian as well as little-endian. (from PR 4434). - Avoid some deadlocks that can show up on diskless systems or when doing NFS paging. Kernel networking changes: - Fix the TCP/IP "stretch ACK violation" bug documented in internet draft draft-ietf-tcpimpl-prob-02.txt. Also, fix another bug in the header prediction case where an ACK would not be sent when it should be. - Implement tcp_drain(). - Ensure the TCP persist timer is running if the send window reaches zero. Part of the fix for kern/2335 (pete@daemon.net). - If we fail to allocate mbufs for the outgoing TCP segment, free the header and abort. - When running the slow TCP timer, skip PCBs in LISTEN state. - When processing the TCP persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net). - Implement a queue for TCP delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections. - Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates. Need to do this since some of the above comes from Lite2. - Fix an mbuf leak and a possible use of an mbuf after it has been freed, in the TCP input code. - Fix a TCP bug that would cause a FIN at the end of some data not to be ACKed, requiring an additional packet exchange in order to close the connection. - Fix a bug in the SYN cache code that could time out a SYN cache entry far too soon under certain circumstances. - Add some multicast defines to netinet/in.h - allow receipt of more than one message in recvmsg syscall. Fixes PR#4700 (Jean-Luc Richier). - Make insertion and removal of sockets from the partial and incoming connection queue O(constant) rather than O(N). Generic device driver changes: - Fix vnd bug that required us to flush all buffers (and caused unpredictable lossage when that didn't work). - Allow NE2000 boards to work on Alphas (alignment fixup). - Fix a big-endian problem on the ne2000. - Align mbufs for ne2000 so that 16-bit PIO will never cause unaligned access faults. - Some bug fixes to the PCMCIA 3c589 driver. - Some bus_space improvements to the Intel Etherexpress Pro 10/100 (fxp) driver to make it work on (e.g.) the Alpha. - Support additional Soundblaster cards. i386-specific changes: - Make more wd and sd device nodes by default on i386. - Fix keyboard lockup problem on some i386 machines. - Floating point context switch fixes for i386 - Fix a long-standing i386 floating point bug in other-OS emulation: the FPU wasn't initialized properly. - In fdisk, when estimating the number of cylinders in the BIOS geometry, use the total number of sectors as reported by disklabel.d_secperunit rather than multiplying out the disklabel geometry, which is less accurate. - In fdisk, don't print "DOS partition initialized" if -S flag is specified; from Nathan Williams in PR bin/4893. - Fix fdisk a nasty sysinst problem that occurred with disks that had a DOS Master Boot Record. - Fix some incompatibilities in FreeBSD compatibility code. - Report Cyrix 686-class CPU class correctly. m68k-specific changes: - Fix 68060 signal handling in Amiga port. - Close a hole allowing Amiga kernels to be crashed from userland. mac68k-specific changes: - Turn off grfdebug messages by default. - Use the right ADB chip on Mac Classic and Classic II. - NetBSD/mac68k can run an X server on the Quadra 700 now. - Fix a NetBSD/mac68k problem where the ADB probe hangs when some types of devices are connected or when no mouse is connected). Amiga-specific changes: - Amiga ite driver documentation updated. - Add a configure option that allows a kernel to be built that limits the amount of physical memory the amiga port will use. This allows an install kernel to be built that works both on machines with small amounts of memory and machines with a lot of memory. A cleaner fix will be available in 1.4. pmax-specific changes: - Fix a problem in the pmax port with DECstation [23]100 mice. - Put NETATALK netisr back into trap.c (now sys/arch/mips/mips/trap.c). - Fix the kernel built from the "DS5000_200" config file (pmax port). Sparc changes: - Fix spurious dma errors in scsi dma operation noticed on Sun 4/300 models. - Work around a hardware quirk on MicroSparc II processors. Alpha-specific changes: - A version of the Alpha compiler toolchain modifications whose copyright is not owned by CMU. This is not yet guaranteed to work - the preferred development system is still the binary distribution based on the CMU-copyrighted changes. - Fix PR#4903 - a problem with the isp driver on the Alpha port. Userland library/include/makefile changes: - Fix MI/MD PLIST problem on pmax (bsd.port.mk) - Fix 'int' vs. 'char' lossage in m4 for unsigned-char machines. - Fix problems in m4 with 0xff being interpreted as EOF in some places, causing incorrect output and/or output that was inconsistent between different NetBSD ports. - Many Year 2000 fixes - Fix an ABI problem in the stat structure on 64-bit architectures. - Fix quad (64-bit) shifts on certain architectures. Userland program fixes: - Fix some minor nits in /bin/login. - Fix a rather large hole in ftpd. Guest users were allowed to use the rename command. - Many gdb bugs fixed. - Many improvements to the share/mk/bsd.port*.mk Makefile header, which is used to build NetBSD packages. Some changes were required in bsd.own.mk to support this. - Some Makefile changes to build some utilities that are not necessarily installed on a system with full development binaries. - The default sendmail.cf causes /etc/aliases to be rebuilt whenever sendmail notices that it's changed, rather than sendmail complaining about it in the system logs. - Add a magic number for wordperfect files. Installation fixes: - Many installation notes updated and/or clarified. - Fix a bug in the sysinst factoring code that would identify perfect squares as prime. - Some architecture-specific fixes - see your favourite architecture for more information. - Pathname fixes for CD installations. Documentation fixes: - Expand ftp server documentation. - Don't imply that we have a FORTRAN compiler in install notes. - Document some features in printcap that many people want but don't know already exist.