Big flush of all the small changes in the pending queue. Various submissions
that didn't apply were simply discarded
[+ indicates stuff that went to Marcelo, o stuff that has not,
* indicates stuff that is merged in mainstream now, X stuff that proved
bad and was dropped out]
Linux 2.4.19pre2-ac4
o Initial Ricoh ZVbus support (Marcus Metzler)
o PnPBIOS fixes (Brian Gerst)
o Fix a case where sync_one might not start an (Ben LaHaise)
inode writeout
+ Corrected atm locking fix (Maksim Krasnyanskiy)
o mp table parsing corner case fix (James Cleverdon)
o NFS over JFS directory offset fix (Christoph Hellwig)
o Update reisefsprogs version (Paul Komkoff)
o RME Hammerfall driver update (G?nter Geiger)
o Fix an off by one in the bluesmoke reporting (Dave Jones)
+ Make irnet disconnect hang up ppp (Jean Tourrilhes)
+ Fix abuse of cli() in irda socket connect (Jean Tourrilhes)
+ Add help text to patch-kernel script (Damjan Lango)
+ USB irda updates (Jean Tourrilhes)
+ IRDA link layer updates (Jean Tourrilhes)
o Add WD xd signature to 2.4 (from 2.2) (Jim Freeman)
o Update sc1200 watchdog (Zwane Mwaikambo)
o Switch wdt501 watchdog driver to bitops (me)
o Much updated LSI logic MPT fusion drivers (Pam Delaney)
+ Wavelan driver updates (Jean Tourrilhes)
o Fix a race where we could hit init_idle after (Kip Walker)
freeing it (from rest_init)
+ Raylink driver bugfixes (Jean Tourrilhes)
o Switch 2.4 to using a shared zlib (David Woodhouse)
o Fix w83877 SMP deadlock, clean up locking (me)
o IBM lanstreamer update (Kent Yoder)
o Fix 32bitism in the PM code (Pavel Machek)
o Make irqsave use unsigned long for consistency (Pavel Machek)
| Just fixes a few exceptions
o Make i2o_block fallback to blkpg for ioctls (me)
o All pids in use handling (Paul Larson)
o IDE code wasn't using ide_free_irq (William Jhun)
o Fix non procfs build (Eric Sandeen)
+ Cyberjack bug fix (Greg Kroah-Hartmann)
+ USB vicam fixes (Oliver Neukum)
+ Add another device to the ftdi driver (Greg Kroah-Hartmann)
+ UHCI performance fixes (Johannes Erdfelt)
+ STV680 bug fixes (Kevin Sisson)
+ Kaweth bug fixes (Oliver Neukum)
+ Update hpusbscsi driver (Oliver Neukum)
+ Update OV511 driver (Mark McClelland)
+ Update usb-ipaq driver to support journada (Ganesh Varadarajan)
+ Fix a bug in the USB skeleton driver (Holger Waechtler)
o Further SiS IDE updates (Lionel Bouton)
o Fix ufs mount failure bug (Andries Brouwer)
o Allow the max user frequency for the rtc to (Mike Shaver)
be configurable
o HPT37x crash on init fixups (Vojtech Pavlik)
Linux 2.4.19pre2-ac3
o Fix quota deadlock and extreme load corruption (Jan Kara, Chris Mason)
+ MIPS config fix (Ralf Baechle)
+ Update AGP config entry (Daniele Venzano)
+ SMBfs NLS oops fix (Urban Widmark)
o Fix expand_stack locking hang on OOM (Kevin Buhr)
o Restore 10Mbit half duplex eepro100 fix (me)
o 3c509 full duplex and documentation (David Ruggiero)
o 3c509 power management (Zwane Mwaikambo)
+ Remove more surplus llseek methods (Robert Love)
X ATM locking fix (Frode Isaksen)
o Merge extra sound help texts (Steven Cole)
| plus one typo fix
o Add help for IXJ pcmcia configuration (Steven Cole, me)
| Rewrote the text somewhat
Linux 2.4.19pre2-ac2
o Fix a mismerge (may explain the patch weirdo)
+ Fix highmem + sblive (Daniel Bertrand)
+ Reiserfs updates (Oleg Drokin)
o Auto enable HT on HT capable systems (Arjan van de Ven)
o Fix init/do_mounts O(1) scheduler merge glitch (Greg Louis)
o Fix drm build problem on CPU=386 (Mark Cooke)
o Fix incorrect sleep in ZR36067 driver (me)
o Add missing cpu_relax to iph5526 driver (me)
Linux 2.4.19pre2-ac1
o Merge aic7xxx update (Justin Gibbs)
o Fix handling of scsi 'medium error: recovered' (Justin Gibbs)
+/o Further request region fixups (Marcus Alanen)
o Add interlace/doublescan to voodoo1/2 fb driver (Urs Ganse)
| interlace is always handy with 3d glasses..
o Merge O(1) scheduler (Ingo Molnar)
| Thanks to Martin Knoblauch for doing the merge work
| Non x86 ports may need to clean up their mm/fault.c
+/o Lseek usage cleanup (Robert Love)
o Merge with 2.4.19pre2
- Fixed bogus sysctl definitions
- Fixed incorrect MODULE_LICENSE backout
- Fixed gratuitous supercede spelling change
- Fixed double patches from mips people
- Fixed incorrect link order from mips people
- Fixed broken config rules from mips people
- Made cciss build
- Remove half written "meth.c" driver
+ Fix up some of the watchdog api text (me)
| Janitor job - go through that and make all the drivers
| support all the things ('V' NOWAYOUT and ioctl core)
o Fix wrong order in MAINTAINERS (me)
o Remove roadrunner reference from MAINTAINERS (me)
Linux 2.4.19pre1-ac2
o Fix chown/chmod on shmemfs (me)
o Fix accounting error in the shm code (me)
o Turn on mode2/mode3 overcommit protection (me)
+ w83877f watchdog fix compile for SMP (Mark Cooke)
+ Fix ide=nodma for serverworks (Ken Brownfield)
* USB2 controller support (Greg Kroah-Hartmann)
* Add more devices to the visor driver (m515,clie)(Greg Kroah-Hartmann)
* IBM USB camera driver updates (Greg Kroah-Hartmann)
+ USB auerswald driver (Wolfgang Muees)
o Trivial random match up with 2.2 (Marco Colombo)
* Spelling fixes (Jim Freeman)
* Next batch of time_*() fixups (Tim Schmielau)
+ Update video4linux API docs (Gerd Knorr)
+ Merge some comment fixups (John Kim)
o ymfpci sync (Pete Zaitcev)
* Update maintainers to add pm3fb (Romain DOLBEAU)
* Hotplug updates (docs, fs, compaq driver) (Greg Kroah-Hartmann)
* IBM hotplug support (Irene Zubarev, Tong Yu, Jyoti Shah, Chuck Cole)
* ACPI hotplug driver support (Hiroshi Aono, Takayoshi Kochi)
+ Blink keyboard lights on x86 panic (Andi Kleen)
o Further Configure.help changes (Steven Cole)
o Merge a version of the sard I/O accounting (Stephen Tweedie,
Christoph Hellwig)
o SC1200 watchdog driver (Zwane Mwaikambo)
* Fix address ordering for 36bit MCE on x86 (Dave Jones)
Linux 2.4.19pre1-ac1
o Merge with 2.4.19-pre1
Linux 2.4.18-ac1
o Merge with 2.4.18 proper
o Add missing -rc4 diff
o Use attribute notifiers to account shmemfs (me)
o Initial luxsonor LS220/LS240 driver code (me)
| This is just setup code and only in the tree because
| its where I keep my hacks in progress
Linux 2.4.18rc2-ac2
o Fix a corruption problem in the jfs dir table (Dave Kleikamp)
o Fix trap when extending a single extent of (Dave Kleikamp)
over 64Gb in JFS
* NBD deadlock fix (Steven Whitehouse)
* Fix device ref counting in netrom stack (Tomi Manninen)
* Fix shmemfs link counting (Christoph Rohland)
* Fix potential scsi disk oops (Peter Wong)
* eepro100 carrier init fix (Jeff Garzik)
* Fix wrong kfree in netrom stack (Tomi Manninen)
* Add TI1250 inits to ZV bus support (me)
| Zoom video now works on the IBM TP600 at least..
* Fix off by one on loop devices limit (Heinz Mauelshagen)
o Improve handling of psaux open with no mouse (Christoph Hellwig)
present
* 3COM 3c359 token ring driver (Mike Phillips)
* Fix a case where hpfs didnt set block size (Chris Mason)
early enough
* Remove use of lock_kernel in softdog driver (me)
* Make olympic driver use spinlocks not (Mike Phillips)
lock_kernel
o Fix type of detected devices in md.c (Jakob Kemi)
* Changes and defconfig update (Niels Jensen)
o PNP BIOS driver updates (Thomas Hood)
* Turn off excess printks in pnp quirk reporting (Andrey Panin)
* Add documentation for ITE I2C (Steven Cole)
o Add documentation for other zoran cards (Steven Cole)
o Add an SC520 watchdog, and enable wd8387ff (Scott Jennings)
o Cleaned up and fixed some SC520 watchdog bugs (me)
| Scott - can you double check these
* Fix return on generic lib/string.c memcmp (Georg Nikodym)
* Further zoom video cleanups (me)
Linux 2.4.18rc2-ac1
o Merge with 2.4.18rc2
* Ignore i810 modem codecs (me)
o Core of address space accounting code (me)
| Enforcement, ptrace and some shmem corner bits to do
* Fix security hole in shmfs (me)
o Fix various bits of 64bit file I/O in shmem (me)
o Merge with rmap12f (Rik van Riel and co)
Linux 2.4.18pre9-ac4
o SIS IDE driver update (handle with care) (Lionel Bouton)
o First set of I2O endian cleanups (me)
o Make i2o_pci.c 64bit/BE clean (me)
o Maybe fix crash on i2o scsi abort/reset paths (me)
o Make i2o use the passed scsi direction flag (me)
* Fix awk failure path in menuconfig (Andrew Church)
+ Merge varies doc updates (Steven Cole)
o Add serial support for the Lava Octopus-550 (Jim Treadway)
* OPL3SA2 cleanup (Zwane Mwaikambo)
o Add missing blkdev_varyio export (Todd Roy)
o/* Update Changes file, config and experimental (Niels Jensen)
checks
* Fix highmem warning in aacraid (Andrew Morton)
* Make tpqic02 use new style request region (Marcus Alanen)
+ Only turn off mediagx/geode TSC on 5510/5520 (me)
| From information provided by Hiroshi MIURA
* Massively clean up the AGP enable and bugfix it (Bjorn Helgaas)
o Fix oops if you try to use the RW wq locks (Bob Miller)
o Remove FPU usage in neomagic fb (Denis Kropp)
o Merge IBM JFS (Steve Best, Dave Kleikamp,
Barry Arndt, Christoph Hellwig, ..)
* Updated sis frame buffer driver (Thomas Winischhofer)
Linux 2.4.18pre9-ac3
* Clean up various macros and misuse of ; (Timothy Ball)
* Correct procfs locking fixup (Al Viro)
o Speed up ext2/ext3 synchronous mounts (Andrew Morton)
+ Update IDE DMA blacklist (Jonathan Kamens)
o Update to XFree86 DRM 4.2 (compatible to 4.1) (Rik Faith,
and adds I830 DRM Jeff Hartmann,
Keith Whitwell,
Abraham vd Merwe
and others)
* IBM Lanstreamer updates (Mike Phillips)
* Fix acct rlimit problem (I hope) (me)
| Problem noted by Ian Allen
o Automatically set file limits based on mem size (Andi Kleen)
* Correct scsi reservation conflict handling (James Bottomley)
and add the scsi reset api code
o Add further kernel docs (me)
o Merge to rmap-12e (Rik van Riel and co)
|merge patch from Nick Orlov
* Small fix to the eata driver update (Dario Ballabio)
Linux 2.4.18pre9-ac2
+ Nat Semi now use their own ident on the Geode (Hiroshi Miura)
* Put #error in two files that need FPU fixups (me)
* Correct a specific mmap return to match posix (Christopher Yeoh)
* Add Eepro100/VE ident (Hanno Boeck)
* Add provides for DRM to the kernel make rpm (Alexander Hoogerhuis)
* Fix a problem where vm86 irq releasing could be (Stas Sergeev)
missed
* EATA and U14/34F driver updates (Dario Ballabio)
* Handle EMC storage arrays that report SCSI-2 (Kurt Garloff)
but want REPORT_LUNs
* Update README, defconfig, remove autogen files (Niels Jensen)
o Add AFAVLAB PCI serial support (Harald Welte)
* Fix incorrect resource free in eexpress (Gianluca Anzolin)
o Variable size rawio optimisations (Badari Pulavarty)
* Add AT's compatible 8139 cardbus chip (Go Taniguchi)
o Fix crash with newest hpt ide chips (Arjan van de Ven)
* Fix tiny SMP race in pid selection (Erik Hendriks)
o Hopefully fix pnpbios crash caused by early (me)
kernel_thread creation
Linux 2.4.18pre9-ac1
o Initial merge of DVD card driver (Christian Wolff,Marcus Metzler)
| This is just an initial testing piece. DVB needs merging
| properly and this is only a first bit of testing
* Random number generator support for AMD768 (me)
* Add AMD768 to i810 driver pci ident list (me)
o Initial AMD768 power management work (me)
| Unfinished pending some docs clarifications
* Fix bugbuf mishandling for modular es1370 (me)
* Fix up i2o readl abuse, post_wait race, and (me, Arjan van de Ven)
some deadlock cases
* Added cpu_relax to yam driver (me)
* Fixup AMD762 if the BIOS apparently got it wrong(me)
(eg ASUS boards)
* MP1.4 alignment fixup
* pcwd cleanup, backport of fixes from 2.5 (Rob Radez)
* Add support for more Moxa cards to mxser (Damian Wrobel)
* Add remaining missing MODULE_LICENSE tags (Hubert Mantel)
* Fix floppy reservation ranges (Anton Altaparmakov)
* Fix max file size setup (Andi Kleen)
Linux 2.4.18pre7-ac3
o Fix a wrong error return in the megaraid driver (Arjan van de Ven)
* FreeVXFS update (Christoph Hellwig)
* Qnxfs update (Anders Larsen)
o Fix non compile with PCI=n (Adrian Bunk)
o Fix DRM 4.0 non compile in i810 (me)
o Drop out now dead CLONE thread/parent fixup (Dave McCracken)
* Make NetROM incoming frame check stricter (Tomi Manninen)
* Use sock_orphan in AX.25/NetROM (Jeroen PE1RXQ)
o Pegasus update (Petko Manolov)
o Make reparent_to_init and exec_usermodehelper (Andrew Morton)
use set_user, fix a tiny set_user SMP race
* Mark framebuffer mappings VM_IO (Andrew Morton)
o Neomagic frame buffer driver (Denis Kropp)
- Needs FPU code fixing before it can be merged
* Hyperthreading awareness for MTRR driver
+ Correct NR_IRQ with no apic support (Brian Gerst)
* Fix missing includes in sound drivers (Michal Jaegermann)
Linux 2.4.18pre7-ac2
* i810 audio driver update (Doug Ledford)
+ Early ioremap for x86 specific code (Mikael Pettersson)
| This is needed to do things like apic/dmi detect early enough
+ Pentium IV APIC/NMI watchdog (Mikael Pettersson)
* Add C1MRX support to sonypi driver (Junichi Morita)
* Fix "make rpm" with two '-' in extraversion (Gerald Britton)
* Fix aacraid hang/irq storm on i960 boards (Chris Pascoe)
* Fix isdn audio compiler behaviour dependancy (Urs Thuermann)
* YAM driver fixes (Jean-Paul Roubelat)
* ROSE protocol stack update/fixes (Jean-Paul Roubelat)
* Fix UFS/CDROM oops (Zwane Mwaikambo)
* Fix nm256 hang on Dell Latitude (origin unknown)
| Please test this tree with other NM256 based boxes and check
| those still work...
o Merge PnPBIOS patch (Thomas Hood, David Hinds, Tom Lees,
Christian Schmidt, ..)
* Merge new sis frame buffer drivers (Thomas Winischhofer)
* cs46xx oops fix (Mike Gorse)
* Fix a second cs46xx bug related to this (me)
+ Fix acpitable oopses on boot and other problems (James Cleverdon)
o Fix io port type on the hpt366 driver (Pete Popov)
* Updated matrox drivers (Petr Vandrovec)
* IPchains fixes needed for 2.4.18pre7
o IDE config text updates for the IDE patches (Anton Altaparmakov)
* Merge the first bits of ZV support (Marcus Metzler)
* Add initial ZV support to yenta socket driver (me)
for TI cards
* Fix pirq routing on the CS5530 (me)
| Finally the palmax pcmcia/cardbus works properly
Linux 2.4.18pre7-ac1
o Merge with 2.4.18pre7 (Arjan van de Ven)
| + some quota fixups redone by me
| several 18pre7 netfilter bugs left unfixed for now
o Rmap-12a (Rik van Riel and co)
Linux 2.4.18pre3-ac2
+ Re-merge the IDE patches (Andre Hedrick and co)
* Fix check/request region in ali_ircc and lowcomx(Steven Walter)
com90xx, sealevel, sb1000
* Remove unused message from 6pack driver (Adrian Bunk)
* Fix unused variable warning in i60scsi (Adrian Bunk)
* Fix off by one floppy oops (Keith Owens)
* Fix i2o_config use of undefined C (Andreas Dilger)
* Fix fdomain scsi oopses (Per Larsson)
* Fix sf16fmi hang on boot (me)
o Add bridge resources to the resource tree (Ivan Kokshaysky)
* Fix iphase ATM oops on close in on case (Till Immanuel Patzschke)
* Enable OOSTORE on winchip processors (Dave Jones, me)
| Worth about 10-20% performance
* Code Page 1250 support (Petr Titera)
* Fix sdla and hpfs doc typos (Sven Vermeulen)
o Document /proc/stat (Sven Heinicke)
* Update cs4281 drivers (Tom Woller)
| Fixes xmms stutter, remove wrapper code
| handle tosh boxes, allow record device change
| trigger wakeups on ioctl triggered changes
+/o/X Fix locking of file struct stuff found by ibm (Dipankar Sarma)
audit
o Use spin_lock_init in serial.c (Dave Miller)
* Fix AF_UNIX shutdown bug (Dave Miller)
Linux 2.4.18pre3-ac1
o 32bit uid quota
o rmap-11b VM (Rik van Riel,
William Irwin etc)
* Make scsi printer visible (Stefan Wieseckel)
* Report Hercules Fortissimo card (Minya Sorakinu)
* Fix O_NDELAY close mishandling on the following (me)
sound cards: cmpci, cs46xx, es1370, es1371,
esssolo1, sonicvibes
* tdfx pixclock handling fix (Jurriaan)
+ Fix mishandling of file system size limiting (Andrea Arcangeli)
* generic_serial cleanups (Rasmus Andersen)
o serial.c locking fixes for SMP - move from cli (Kees)
too
* Truncate fixes from old -ac tree (Andrew Morton)
* Hopefully fix the i2o oops (me)
| Not the right fix but it'll do till I rewrite this
* Fix non blocking tty blocking bug (Peter Benie)
o IRQ routing workaround for problem HP laptops (Cory Bell)
* Fix the rcpci driver (Pete Popov)
* Fix documentation of aedsp location (Adrian Bunk)
* Fix the worst of the APM ate my cpu problems (Andreas Steinmetz)
* Correct icmp documentation (Pierre Lombard)
* Multiple mxser crash on boot fix (Stephan von Krawczynski)
o ldm header fix (Anton Altaparmakov)
* Fix unchecked kmalloc in i2c_proc (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in airo_cs (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in btaudio (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in qnx4/inode.c (Ragnar Hojland Espinosa)
* Disable DRM4.1 GMX2000 driver (4.0 required) (me)
* Fix sb16 lower speed limit bug (Jori Liesenborgs)
* Fix compilation of orinoco driver (Ben Herrenschmidt)
* ISAPnP init fix (Chris Rankin)
o Export release_console_sem (Andrew Morton)
* Output nat crash fix (Rusty Russell)
* Fix PLIP (Niels Jensen)
* Natsemi driver hang fix (Manfred Spraul)
* Add mono/stereo reporting to gemtek pci radio (Jonathan Hudson)
>
> Big flush of all the small changes in the pending queue. Various submissions
> that didn't apply were simply discarded
ok, here is a resubmit against pre2-ac4 for wafer5823wdt
diff -urN linux-2.4.19-pre2-ac4-orig/Documentation/Configure.help linux-2.4.19-pre2-ac4/Documentation/Configure.help
--- linux-2.4.19-pre2-ac4-orig/Documentation/Configure.help Sun Mar 10 16:30:02 2002
+++ linux-2.4.19-pre2-ac4/Documentation/Configure.help Sun Mar 10 16:44:36 2002
@@ -17897,6 +17897,17 @@
inserted in and removed from the running kernel whenever you want).
The module is called shwdt.o. If you want to compile it as a module,
say M here and read Documentation/modules.txt.
+
+Wafer 5823 Watchdog
+CONFIG_WAFER_WDT
+ This is a driver for the hardware watchdog on the ICP Wafer 5823
+ Single Board Computer (and probably other similar models).
+
+ This driver is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ If you want to compile it as a module, say M here and read
+ <file:Documentation/modules.txt>. The module will be called
+ wafer5823wdt.o
Machine Check Exception
CONFIG_X86_MCE
diff -urN linux-2.4.19-pre2-ac4-orig/drivers/char/Config.in linux-2.4.19-pre2-ac4/drivers/char/Config.in
--- linux-2.4.19-pre2-ac4-orig/drivers/char/Config.in Sun Mar 10 16:30:03 2002
+++ linux-2.4.19-pre2-ac4/drivers/char/Config.in Sun Mar 10 16:38:41 2002
@@ -204,6 +204,7 @@
tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT
tristate ' AMD "Elan" SC520 Watchdog Timer' CONFIG_SC520_WDT
tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT
+ tristate ' ICP ELectronics Wafer 5823 Watchdog' CONFIG_WAFER_WDT
if [ "$CONFIG_SGI_IP22" = "y" ]; then
dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
fi
diff -urN linux-2.4.19-pre2-ac4-orig/drivers/char/Makefile linux-2.4.19-pre2-ac4/drivers/char/Makefile
--- linux-2.4.19-pre2-ac4-orig/drivers/char/Makefile Sun Mar 10 16:30:03 2002
+++ linux-2.4.19-pre2-ac4/drivers/char/Makefile Sun Mar 10 18:58:28 2002
@@ -252,6 +252,7 @@
obj-$(CONFIG_EUROTECH_WDT) += eurotechwdt.o
obj-$(CONFIG_INDYDOG) += indydog.o
obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
+obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o
subdir-$(CONFIG_MWAVE) += mwave
diff -urN linux-2.4.19-pre2-ac4-orig/drivers/char/wafer5823wdt.c linux-2.4.19-pre2-ac4/drivers/char/wafer5823wdt.c
--- linux-2.4.19-pre2-ac4-orig/drivers/char/wafer5823wdt.c Thu Jan 1 01:00:00 1970
+++ linux-2.4.19-pre2-ac4/drivers/char/wafer5823wdt.c Sun Mar 10 16:46:46 2002
@@ -0,0 +1,250 @@
+/*
+ * ICP Wafer 5823 Single Board Computer WDT driver for Linux 2.4.x
+ * http://www.icpamerica.com/wafer_5823.php
+ * May also work on other similar models
+ *
+ * (c) Copyright 2002 Justin Cormack <[email protected]>
+ *
+ * Release 0.01
+ *
+ * Based on advantechwdt.c which is based on wdt.c.
+ * Original copyright messages:
+ *
+ * (c) Copyright 1996-1997 Alan Cox <[email protected]>, All Rights Reserved.
+ * http://www.redhat.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ * Neither Alan Cox nor CymruNet Ltd. admit liability nor provide
+ * warranty for any of this software. This material is provided
+ * "AS-IS" and at no charge.
+ *
+ * (c) Copyright 1995 Alan Cox <[email protected]>
+ *
+ */
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/miscdevice.h>
+#include <linux/watchdog.h>
+#include <linux/slab.h>
+#include <linux/ioport.h>
+#include <linux/fcntl.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+#include <asm/system.h>
+#include <linux/notifier.h>
+#include <linux/reboot.h>
+#include <linux/init.h>
+#include <linux/spinlock.h>
+#include <linux/smp_lock.h>
+
+static int wafwdt_is_open;
+static spinlock_t wafwdt_lock;
+
+/*
+ * You must set these - there is no sane way to probe for this board.
+ *
+ * To enable, write the timeout value in seconds (1 to 255) to I/O
+ * port WDT_START, then read the port to start the watchdog. To pat
+ * the dog, read port WDT_STOP to stop the timer, then read WDT_START
+ * to restart it again.
+ */
+
+#define WDT_START 0x443
+#define WDT_STOP 0x843
+
+#define WD_TIMO 60 /* 1 minute */
+
+/*
+ * Kernel methods.
+ */
+
+static void
+wafwdt_ping(void)
+{
+ /* pat watchdog */
+ spin_lock(&wafwdt_lock);
+ inb_p(WDT_STOP);
+ inb_p(WDT_START);
+ spin_unlock(&wafwdt_lock);
+}
+
+static void
+wafwdt_start(void)
+{
+ /* start up watchdog */
+ outb_p(WD_TIMO, WDT_START);
+ inb_p(WDT_START);
+}
+
+static void
+wafwdt_stop(void)
+{
+ /* stop watchdog */
+ inb_p(WDT_STOP);
+}
+
+static ssize_t
+wafwdt_write(struct file *file, const char *buf, size_t count, loff_t * ppos)
+{
+ /* Can't seek (pwrite) on this device */
+ if (ppos != &file->f_pos)
+ return -ESPIPE;
+
+ if (count) {
+ wafwdt_ping();
+ return 1;
+ }
+ return 0;
+}
+
+static ssize_t
+wafwdt_read(struct file *file, char *buf, size_t count, loff_t * ppos)
+{
+ return -EINVAL;
+}
+
+static int
+wafwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
+ unsigned long arg)
+{
+ static struct watchdog_info ident = {
+ WDIOF_KEEPALIVEPING, 1, "Wafer 5823 WDT"
+ };
+
+ switch (cmd) {
+ case WDIOC_GETSUPPORT:
+ if (copy_to_user
+ ((struct watchdog_info *) arg, &ident, sizeof (ident)))
+ return -EFAULT;
+ break;
+
+ case WDIOC_GETSTATUS:
+ if (copy_to_user((int *) arg, &wafwdt_is_open, sizeof (int)))
+ return -EFAULT;
+ break;
+
+ case WDIOC_KEEPALIVE:
+ wafwdt_ping();
+ break;
+
+ default:
+ return -ENOTTY;
+ }
+ return 0;
+}
+
+static int
+wafwdt_open(struct inode *inode, struct file *file)
+{
+ switch (MINOR(inode->i_rdev)) {
+ case WATCHDOG_MINOR:
+ if (test_and_set_bit(0, &wafwdt_is_open))
+ return -EBUSY;
+ wafwdt_start();
+ return 0;
+ default:
+ return -ENODEV;
+ }
+}
+
+static int
+wafwdt_close(struct inode *inode, struct file *file)
+{
+ if (MINOR(inode->i_rdev) == WATCHDOG_MINOR) {
+#ifndef CONFIG_WATCHDOG_NOWAYOUT
+ if (test_and_clear_bit(0, &wafwdt_is_open))
+ wafwdt_stop();
+#else
+ wafwdt_is_open = 0;
+#endif
+ }
+ return 0;
+}
+
+/*
+ * Notifier for system down
+ */
+
+static int
+wafwdt_notify_sys(struct notifier_block *this, unsigned long code, void *unused)
+{
+ if (code == SYS_DOWN || code == SYS_HALT) {
+ /* Turn the WDT off */
+ wafwdt_stop();
+ }
+ return NOTIFY_DONE;
+}
+
+/*
+ * Kernel Interfaces
+ */
+
+static struct file_operations wafwdt_fops = {
+ owner:THIS_MODULE,
+ read:wafwdt_read,
+ write:wafwdt_write,
+ ioctl:wafwdt_ioctl,
+ open:wafwdt_open,
+ release:wafwdt_close,
+};
+
+static struct miscdevice wafwdt_miscdev = {
+ WATCHDOG_MINOR,
+ "watchdog",
+ &wafwdt_fops
+};
+
+/*
+ * The WDT needs to learn about soft shutdowns in order to
+ * turn the timebomb registers off.
+ */
+
+static struct notifier_block wafwdt_notifier = {
+ wafwdt_notify_sys,
+ NULL,
+ 0
+};
+
+static int __init
+wafwdt_init(void)
+{
+ printk
+ (KERN_INFO "WDT driver for Wafer 5823 single board computer initialising.\n");
+
+ spin_lock_init(&wafwdt_lock);
+ misc_register(&wafwdt_miscdev);
+#if WDT_START != WDT_STOP
+ request_region(WDT_STOP, 1, "Wafer 5823 WDT");
+#endif
+ request_region(WDT_START, 1, "Wafer 5823 WDT");
+ register_reboot_notifier(&wafwdt_notifier);
+ return 0;
+}
+
+static void __exit
+wafwdt_exit(void)
+{
+ misc_deregister(&wafwdt_miscdev);
+ unregister_reboot_notifier(&wafwdt_notifier);
+#if WDT_START != WDT_STOP
+ release_region(WDT_STOP, 1);
+#endif
+ release_region(WDT_START, 1);
+}
+
+module_init(wafwdt_init);
+module_exit(wafwdt_exit);
+
+MODULE_LICENSE("GPL");
+
+/* end of wafer5823wdt.c */
Hi,
I can simply oops Linux-2.4.19-pre2-ac4: start quake2, it will start
playing a weird looping noise.. Exit, start again; quake2 dies with
"segmentation fault" and the kernel oopses.
Rebooting, and setting quake2's sound device to some random non-existing
file "cures" the problem.
Other similar software like mpg123, tuxracer work well.
The hardware is an Athlon 550, sitting on an ASUS K7V-RM motherboard
(VIA KX133 chipset).
Sound device: onboard, via82cxxx driver.
Distribution used is fresh debian woody, updated daily.
The oops looks like this:
--
ksymoops 2.4.3 on i686 2.4.19-pre2-ac4. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.19-pre2-ac4/ (default)
-m /boot/System.map-2.4.19-pre2-ac4 (default)
Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.
ac97_codec: AC97 Audio codec, id: 0x4352:0x5934 (Cirrus Logic CS4299 rev D)
Unable to handle kernel NULL pointer dereference at virtual address 00000010
c0121cf5
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0121cf5>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00210202
eax: c1d0000c ebx: c2cdc2c0 ecx: c4954d40 edx: c4954d40
esi: 00000000 edi: c1d0000c ebp: c4f00598 esp: c5d41ed4
ds: 0018 es: 0018 ss: 0018
Process quake2 (pid: 7419, stackpage=c5d41000)
Stack: c2cdc2c0 40166000 40166000 c138e400 c0121e5b c2cdc2c0 c4954d40 40166000
00000001 c4f00598 c2cdc2c0 40166000 c2cdc2dc c4954d40 c01112f7 c2cdc2c0
c4954d40 40166000 00000001 c5d40000 00000006 c01111e0 bffff91c 00000001
Call Trace: [<c0121e5b>] [<c01112f7>] [<c01111e0>] [<c017acd8>] [<c01120c9>]
[<c0106dd4>]
Code: 8b 5e 10 03 5e 04 e8 d0 80 00 00 3b 5e 18 73 0a 6a 30 e8 04
>>EIP; c0121cf4 <do_no_page+134/1d0> <=====
Trace; c0121e5a <handle_mm_fault+ca/140>
Trace; c01112f6 <do_page_fault+116/434>
Trace; c01111e0 <do_page_fault+0/434>
Trace; c017acd8 <tty_write+198/210>
Trace; c01120c8 <schedule+1f8/210>
Trace; c0106dd4 <error_code+34/3c>
Code; c0121cf4 <do_no_page+134/1d0>
00000000 <_EIP>:
Code; c0121cf4 <do_no_page+134/1d0> <=====
0: 8b 5e 10 mov 0x10(%esi),%ebx <=====
Code; c0121cf6 <do_no_page+136/1d0>
3: 03 5e 04 add 0x4(%esi),%ebx
Code; c0121cfa <do_no_page+13a/1d0>
6: e8 d0 80 00 00 call 80db <_EIP+0x80db> c0129dce <activate_page_nolock+13e/140>
Code; c0121cfe <do_no_page+13e/1d0>
b: 3b 5e 18 cmp 0x18(%esi),%ebx
Code; c0121d02 <do_no_page+142/1d0>
e: 73 0a jae 1a <_EIP+0x1a> c0121d0e <do_no_page+14e/1d0>
Code; c0121d04 <do_no_page+144/1d0>
10: 6a 30 push $0x30
Code; c0121d06 <do_no_page+146/1d0>
12: e8 04 00 00 00 call 1b <_EIP+0x1b> c0121d0e <do_no_page+14e/1d0>
1 warning issued. Results may not be reliable.
--
It looks like bad ram, but I can reproduce it any time, and memtest86
finds nothing during a 30 minute run.
2.4.18 plays only noise too, but it does not oops.
lsmod looks like this:
Module Size Used by Not tainted
ipt_MASQUERADE 1248 1 (autoclean)
iptable_nat 12852 1 (autoclean) [ipt_MASQUERADE]
ipt_state 608 2 (autoclean)
ip_conntrack_ftp 3200 0 (unused)
ip_conntrack 13036 3 [ipt_MASQUERADE iptable_nat ipt_state ip_conntrack_ftp]
iptable_filter 1760 1
ip_tables 10560 6 [ipt_MASQUERADE iptable_nat ipt_state iptable_filter]
af_packet 11784 1 (autoclean)
via82cxxx_audio 18432 0
ac97_codec 9632 0 [via82cxxx_audio]
uart401 6144 0 [via82cxxx_audio]
sound 53580 0 [via82cxxx_audio uart401]
soundcore 3364 4 [via82cxxx_audio sound]
w83781d 17152 0 (unused)
i2c-proc 6176 0 [w83781d]
i2c-viapro 3752 0 (unused)
i2c-core 12616 0 [w83781d i2c-proc i2c-viapro]
mga 103632 1
agpgart 12608 3
via-rhine 12452 2
mii 1088 0 [via-rhine]
lspci:
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev 02)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
00:04.5 Multimedia audio controller: VIA Technologies, Inc. AC97 Audio Controller (rev 20)
00:09.0 Ethernet controller: VIA Technologies, Inc. Ethernet Controller (rev 43)
00:0b.0 Ethernet controller: VIA Technologies, Inc. Ethernet Controller (rev 42)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04)
Third party modules: lm_sensors and i2c 2.6.2
Other information is available at: http://swszl.szkp.uni-miskolc.hu/~gabor/oops/
(full lspci, kernel configuration, ver_linux output)
Regards:
Gabor Vitez