2001-03-02 17:45:22

by Alan

[permalink] [raw]
Subject: Linux 2.4.2ac9


ftp://ftp.kernel.org/pub/linux/kernel/people/alan/2.4/

2.4.2-ac9
o misc device fix (ps/2 and drm are now back) (Tachino Nobuhiro)
| Believe it or not my main test box used no misc
| device files..
o Radeon build without 8bit (Cha Young-Ho)
o Fix oops in scc driver (Andrew Morton)
o Add __setup for ISAPnP, update docs (Jaroslav Kysela)
o Update E820 table sanitizer (Brian Moyle)
o i810 audio updates/mmap fixes (Doug Ledford)
o Be paranoid about VIA chipset configurations (Arjan van de Ven)
| Fixing VIA disk corruption bugs take 2
o Fix PPC request_irq problems, some fpu emu (Cort Dougan)
and timers
o Allow scsi drivers to limit request sizes (Jens Axboe,
(and fixed by Tim) Tim Waugh)
o Configure.help cleanups (Steve Cole)
o Loop device fix of the day (Jens Axboe)
o CDROM fixes (Jens Axboe)
o Reiserfs crash on fsync of dir fix (Alexander Zarochentcev)

2.4.2-ac8
o Fix loop over loop crash (Jens Axboe)
o Fix radeon build problems (ISHIKAWA Mutsumi)
o Stop two people claiming the same misc dev id (Philipp Rumpf)
o capable not suser on sx.c (Rob Radez)
o Fix an ixj build combination bug (Andrzej Krzysztofowicz)
o Add integrator to ARM machines (Russell King)
o ARM include/constant cleanups (Russell King)
o Update ARM vmlinuz.in (Russell King)
o ARM i2c fixes (Russell King)
o ARM scsi updates (Russell King)
o ARM header updates (Russell King)
o Handle E820 bios returns with overlaps (Brian Moyle)
o Fix a sparc64 include build bug (Andrzej Krzysztofowicz)
o Loop race fix (Jens Axboe)
o s_maxbytes wasnt set for old style compat (Chris Dukes)
mounts in reiserfs
o Fix the fact we dont see all busses on some (Don Dupuis)
Compaq machines
o Fix missing watchdog configure.help (Jakob Ostergaard)
o Fix oom deadlock (hopefully) (Rik van Riel)
o Fix binfmt_aout sign handling bug (Andrew Morton)

2.4.2-ac7
o Fusion driver updates (Steve Ralston)
o Olympic fix (Andrew Morton)
o Work around hardware bug in older Rage128 (Gareth Hughes)
o Handle broken PIV MP tables with a NULL ioapic
o Use capable in esp serial driver (Rob Radez)
o Use capable not suser in console (Rob Radez)
o Small networking fixups (Dave Miller)
o Fix make menuconfig breakage (Keith Owens)
o Enable cmpxchg8 on Rise P6 (Dave Jones)
o Fix wakeup losses on cpu_allowed using tasks (Manfred Spraul)
o Maestro3 now works with > 256Mb of ram (Zach Brown)
o Opl3sa2 isapnp=0 handling was wrong (J?r?me Aug?)
| I've fixed it a little differently however
o Turn off slow kmem chain check if not doing (Ingo Molnar, me)
slab debugging
o Fix cpu speed checking code (Mikael Pettersson)
o Make bus computation more accurate (me)
o Advantech watchdog driver (Marek Michalkiewicz)
o dz.c serial clean up (Rob Radez)
o Fix MSG_TRUNC for OOB TCP (Ingo Molnar)
o Fix oops on unconfigured loop (Arjan van de Ven)
o Drop nbd ll_rw_blk change (Linus has spoken ;))
o pci resource api (Jeff Garzik)
o Further Natsemi updates (Don Becker,
Jeff Garzik)
o Switch aurora serial to capable() (Rob Radez)
o Radeon frame buffer (Ani Joshi)

2.4.2-ac6
o Remove incorrect modules doc changes (Keith Owens)
o Fix elf.h defines (Keith Owens)
o Add 0x2B mtrr decode for intel/cyrix III (me)
o Make bigmem balancing somewhat saner (Mark Hemment)
o Update irda (Dag Brattli)
o New FIR dongle support (Dag Brattli)
o 3ware driver updates (Adam Radford)
o Further reiserfs tail conversion fixes (Chris Mason)
o Fix tpqic02 to use capable (Rob Radez)
o Set last_rx on comtrol hostess driver (Arnaldo Carvalho
de Melo)
o Raid Oops fix (Neil Brown)
o Fix last_rx/skb refs on cyc_x25 (Arnaldo Carvalho
de Melo)
o Fix last_rx/skb refs on 3c589 (Arnaldo Carvalho
de Melo)
o Highmem fixes for deadlock (Andrea Arcangeli,
Ingo Molnar)
o Another minor tulip fix (Jeff Garzik)
o Fix hinote and maybe other ps/aux hangs (me, Mark Clegg)
o Fix resource handling on 53c7xxx (Rasmus Andersen)
o Fix scsi_register failure handling on AMD scsi (Rasmus Andersen)
o Fix resource handling on aha1740 (Rasmus Andersen)
o Fix resource handling on blz1230 (Rasmus Andersen)
o Fix resource handling for dec_esp driver (Rasmus Andersen)
o Fix resource handling for fastlane scsi (Rasmus Andersen)
o Fix scsi_register failure on qlogic_fas (Rasmus Andersen)
o Fix scsi_register failure on qlogicfc (Rasmus Andersen)
o Fix irq alloc failure leak on sun3x_esp (Rasmus Andersen)
o Fix wd7000 init failures (Rasmus Andersen)
o Fix nbd device (Steve Whitehouse)
o Fix try_atomic_semop (Manfred Spraul)
o Parport fixes (Tim Waugh)
o Starfire start/stop if fix (Ion Badulescu)
o Fix raw.c off by one bug (Tigran Aivazian)
o USB hub kmalloc wrong size corruption fix (Peter Zaitcev)

2.4.2-ac5
o Add Epson 1240U scanners to usb scanner (Joel Becker)
o Fix eth= compatibility (Andrew Morton)
| Should fix 3c509 problems for one
o Add Pnp table to opl3sa2 (Bill Nottingham)
o Update loop driver fixes (Jens Axboe, Andrea
Arcangeli, Al Viro)
o Fix busy loop in usb storage (Arjan van de Ven)
o Add cardbus support to olympic (Mike Phillips)
o Make BUG() configurable to save space (Arjan van de Ven)
o Add configurability to most kernel debugging (various people)
functions on x86
o Richard G?nther/binfmt_misc page move (Richard G?nther)
o Fix de4x5 crash (Nikita Schmidt)
o Hopefully fix the smc-mca driver (me)
o Don't run the disk queue if we didnt launder (Marcelo Tosatti)
any pages
o ALi 6 channel audio and sp/dif updates (Matt Wu)
o Fix USB thread wakeup scheduling (Arjan van de Ven)
o Fix alignment problems with uni16_to_x8 (Ivan Kokshaysky)

2.4.2-ac4
o Fix Make xconfig failure (J Magallon)
o Fix a typo in the ISDN docs (Jim Freeman)
o Fix the 3ware driver a bit more (Ben LaHaise)
| should now be usable
o Update Dave Jones contact info (Dave Jones)
o Revert wavelan inline->macro change (Jean Tourillhes)
| CVS gcc and 2.96-74 don't accidentally unline it now
o Zerocopy TCP/IP patches (Dave Miller,
Alexey Kuznetsov,
and many more)
o Fix up command line options to old ncr driver (Martin Storsj?)
o NFS locking should call fs layer locking if (Brian Dixon)
present
o Fix cs46xx wakeup/poll problem (David Huggins-Daines)
o Add some missing MTD config help texts (Steven Cole,
David Woodhouse)
o Fix Alpha build bug (Sven Koch)
o Final i386/ptrace bit
o Finish off the vmalloc/WP fixup (me)
o Include file config.h fixes (Niels Jensen)
o More dscc4 updates (Francois Romieu)

2.4.2-ac3
o Add documentation for the fb interfaces (Brad Douglas)
o Work around apic disable_irq hardware bugs (Maciej Rozycki)
o Rage128 not "Rage 128" (Brad Douglas)
o Make ioremap debugging conditional (J Magallon)
o Merge Ninja pcmcia scsi driver (YOKOTA Hiroshi)
o Update 8139too docs (Jeff Garzik)
o Tulip updates, merge bits from 0.92 (Jeff Garzik,
Don Becker)
o Epic100 update (Jeff Garzik)
o Clean up Ariadne driver (Jeff Garzik)
o Remove dead wavelan prototype (Jeff Garzik)
o Remove unused arlan variable (Jeff Garzik)
o Clean up lance public symbols (Jeff Garzik)
o Switch fmv18x to spinlocks, fix other bits (Jeff Garzik)
o Clean up acenic global symbols (Jeff Garzik)
o Fix IDE blocking kmalloc with irqs off (Arjan van de Ven)
| I've redone the code a bit so it might be wrong again 8)

2.4.2-ac2
o Merge the loop device fixes (Jens Axboe)
o Fix af_unix SYSCTL=n build failure (Russell King)
o Adjust the throttling point for write (Jens Axboe)
throttles
o Fix sunhme ioremap (Andrey Panin)
o Fix disk change handling with removable sd (Alex Davis)
o Update/fix irq docs (Matthew Wilcox)
o Update PPC gmac and ncr885e drivers (Cort Dougan)
| bmac patch dropped as it loses other fixes
o Kai Petzke has moved (Kai Petzke)
o Fix starfire driver so pump doesnt kill it (Ion Badulescu)

2.4.2-ac1
o Merge Linus 2.4.2 tree
| We now have disagreeing ymfpci fixes. I've kept the ones
| I tested for now.
o Back out sr.c change (me)
o Fix moxa smartio driver (Tom Mraz)
o Hugh Blemings change of address (Hugh Blemings)
o Allow more i2o config time for slow calls
o Aty128fb updates (Brad Douglas,
Benjamin Herrenschmidt,
Michel Danzer,
Andreas Hundt)
o Add "loop" name to the root dev names (Barry Nathan)
o Further spelling cleanups (Dag Wieers)
o Remove bogus warning emissions from aha1740 (Nick Holloway)
o Remove surplus assignment in vmalloc (Francis Galiegue)
o Remove unneeded ifdef in i386/kernel/irq.c (Francis Galiegue)
o Add door locking ioctl to ide-floppy (Francis Galiegue)
o Allow scsi disk opening O_NDELAY for removables (me)
o Fix cosa compile warnings (me)
o Clean up dumpable/setuid write ordering (me)
o Hopefully fix the 3ware crashes (me)

2.4.1-ac20
o Update fusion drivers (Steve Ralston)
o Further VM page launder balancing (Rik van Riel)
o Hopefully fix ext2 block size checking (Andries Brouwer)
o Update the i810 random number generator (Jeff Garzik)
o Hopefully fix the bonding crash on down/reboot (Dave Miller)
o Tulip update (add accton comets, clean up pm) (Jeff Garzik)
o Merge wavelan_cs, pcnet_cs and fmvj18x_cs (Jeff Garzik)
changes from Dave Hinds tree
o Make awe32 behave in 2.4 like 2.2 if given an (Bill Nottingham)
io
o Fix alpha build problems in stallion, c101 (Andrzej Krzysztofowicz)
synclink and wavfront drivers
o Add isa_check_signature and missing ioctl ids (Andrzej Krzysztofowicz)
for hayesesp
o Fix math emulation bug (Martin Schwidefsky)
o Disable APIC during APM to avoid suspend/resume (Mikael Pettersson)
problems.
o SMP kernel on UP hardware APIC fixes (Maciej Rozycki)
o Code cleanups in nmi, reduce NMI rate to 1Hz (Mikael Pettersson)

2.4.1-ac19
o Fix second module/exception table race (me)
| I hope ;)
o Additional CPIA usb ident (Adam J Richter)
o Add SA1100 udc and also stall recovery to (Oleg Drokin)
usbnet
o Limit smbfs to 2Gig/file (Urban Widmark)
o Config/doc update for the eicon driver (Armin Schindler)
o Update PMS driver to new request_region (Andrey Panin)
o sys_semop bug check is overcareful (Hugh Dickins)
o Fix ipc off by one on checks in ipc (Hugh Dickins)
o Allow exceptions during module init (Philipp Rumpf)
o Driver namespace cleanup (Jeff Garzik)
o Network driver cleanups (Jeff Garzik,
o PPC irq updates (Paul Mackerras)
o SMP fixes for PPC boxes (Paul Mackerras)
o Fix tmpfs block size reporting (Christoph Rohland)
o Update maintainers to add missing YAM maintainer(Jean-Paul Roubelat)
o Add hooks for /proc/rtas (Paul Mackerras)
o Fix wrong bogomip reporting on SMP ppc (Paul Mackerras)
o Remove unused dbcf inline function on PPC (Paul Mackerras)
o Update Cort Dougans email/urls (Paul Mackerras)
o Dont assume bit settings on pcnet/pci chips (Paul Mackerras)
o Add mac ppc serial console hooks (Paul Mackerras)
o Frame buffer driver updates for ppc (Paul Mackerras)
o Fix devfs names for ppc serial (Paul Mackerras)
o Move some symbols out of net where they didnt
belong, and into right export locations (Andrzej Krzysztofowicz)
o Tidy and fix up syncppp drivers (Krzysztof Halasa)

2.4.1-ac18
o Fix SO_SNDTIMEO bugs (Alexey Kuznetsov)
o Fix tmpfs fsync (Lennert Buytenhek)
o PPC now uses generic pci bus setup (Paul Mackerras)
o Remove PPC boot argument printing (Paul Mackerras)
o Jeff Tranter has moved (Jeff Tranter)
o ymf_pci driver cleanups (Pete Zaitcev)
o Fix USB 2.0 compliance in hub.c (Brad Hards)
o Fix usb hub device claim race (Paul Mackerras)
o Fix some bugs in mac_hid driver (Paul Mackerras)
o Fix more typos (Dag Wieers)
o PPC compile warnings/symbol export fixes (Paul Mackerras)

2.4.1-ac17
o Fix pegasus for bigendian (Roman Weissgaerber)
o Further smbfs fixes (Urban Widmark)
o Update ISDN version tags (Kai Germaschewski)
o Finish ISDN move to new style module_init (Kai Germaschewski)
o Small Eicon driver updates/fix license bug (Armin Schindler)
o Fix reiserfs tail packing problem (Alexander Zarochentcev
Chris Mason)
o Export aci symbols from drivers/sound/aci.c (Alexandr Kanevskiy)
o Merge Linus 2.4.2pre4
o Starfire update (Ionu Badulescu)
o Fix 3270 merge (Richard Hitt)

2.4.1-ac16
o Fix the exception table/unload race (me)
o Further tulip fixup (Manfred Spraul)
o Fix USB oops on traverse/delete race (Randy Dunlap)
o Set max_sectors to 255 for hd/xd drivers (Paul Gortmaker)
| This should make them work again
o Fix typo in USB makefile (Arjan van de Ven)
o Fix accidental change to scsi_scan (Steve Ralston)
o Hid rollover/endian fixes (Paul Mackerras)
o Drop via pci fixup (me)
o Further hp5300 fixups (Arjan van de Ven)
o PCnet 32 init changes for non SEPROM cards (Eli Carter)
o Fix acpi idle reporting on SMP (Philipp Hahn)
o Add non PCI pci device list walk macro (me)
| pointed out by Mikael Pettersson
o IBM S/390 3270 drivers (Richard Hitt)

2.4.1-ac15
o Fix the non booting winchip/cyrix problem (me)
| Nasty interaction with the vmalloc fix
| wants a cleaner solution. This one is a hack
| to get people up and running again
o Fix typo in vfat changes (OGAWA Hirofumi)
o Update scsi blacklist table (Karsten Hopp)
o dscc4 wan driver update (Francois Romieu)
o Fix clgenfb warning (Bryan Headley)

2.4.1-ac14
o Fix tulip problems introduced by in ac13 (Manfred Spraul)
o S/390x build fixes (Ulrich Weigand)
o Fix off by one error in octagon driver (David Woodhouse)
o Fix dasd driver for new queues (Holger Smolinksi)
o Networking standards compliance fixes
o Fix binary layout assumptions in sym53c416 (Arjan van de Ven)
o tmpfs timestamps (Christoph Rohland)
o Further mkdep changes (Keith Owens)
o Fix 16bit vfat handling (OGAWA Hirofumi)
o JIS nls fixes (OGAWA Hirofumi)
o Handle more than 8 luns (Eric Youngdale,
Doug Gilbert)
o Minor scsi clean ups (Eric Youngdale)

2.4.1-ac13
o Fix pnic tulip problems (Manfred Spraul)
o Fix USB printer read and poll problems (Johannes Erdfelt)
o Fix parport pci list corrupt bug (Tim Waugh)
o Fix sbpcd driver crashes (Paul Gortmaker)
o Clarify the locking doc (Rusty Russell)
o i810 audio doesnt need OSS (Jeff Garzik)
o Fix vmalloc fault race (Mark Hemment)
o Makedep fixes (Keith Owens)
o Fix missing unlock_kernel on usb hub (Paul Mundt)
o Fix smbfs+bigmem, buffer and listing bugs (Urban Widmark)
o Merge tms380 isa token ring support (Jochen Friedrich)
o Sigmatel change didnt help, removed (Jeff Garzik)

2.4.1-ac12
o Make tmpfs use link counts of 2 on directories (Christoph Rohland)
o Update Documentation/sound/Introductions (Wade Hampton)
o Fix bug in new tlb shootdown code (Ben LaHaise)
o Add isa_* api to the Alpha (Richard Henderson)
o Export down_trylock on Alpha (Richard Henderson)
o Fix maestro3 build on ia64 (Bill Nottingham)

2.4.1-ac11
o Hack the setup code to do the right thing for (me)
Cyrix processors. Cpuid on cyrix should now work
o Change sigmatel codec inits (Jeff Garzik)
o Revised TLB shootdown patch (Ben LaHaise)
o Use pci quirks to handle the nonstandard irq (Andrey Panin)
setup for VIA ACPI
o If a user sets an io on the opl3sa2 assume they (me)
mean it even if isapnp isnt turned off
o Fix xmms cpu burn on i810 audio (Marcus Sundberg)
o Fix pnic problems with tulip driver (Manfred Spraul)
o Add pci skeleton driver (Jeff Garzik)
o Fix vfat mishandling of 16bit characters (Kazuki Yasumatsu)
o Fix syntax things found by his source code (Jean-Luc Leger)
analyser
o Fix pcmcia ixj build bug (Florian)
o Remove dead via sound docs (Jeff Garzik)
o add __dev_alloc_skb for drivers needing to force(Jeff Garzik)
allocation types
o Fix arcnet initializers (Jeff Garzik)
o Fix various warnings (Keith Owens)
o Further MPT fusion updates (Steve Ralston)
o sock_alloc_send_skb fix (Manfred Spraul)
o Fix signed/unsigned handling on 8139too (Jeff Garzik)
o Document problem with old powertweak (Dave Jones)
o s/controler/controller/ spelling fixes
o S/390 build fixes (Neale Ferguson)

2.4.1-ac10
o Merge with Linus 2.4.2pre3
o More net driver clean up (Jeff Garzik)
o Further maxiradio fix (Francois Romieu)
o Lock reclaiming fixes (MCL)
o Update ver_linux (Steven Cole)
o Add support for the Socket LP-E CF+ ethernet (Nicolas Pitre)
o Fix microtek scanner abort handling (Oliver Neukum)
o Fix very dumb bug in my dma.c changes that (me)
Linus noticed
o Clean up AGP alloc/destroy a little (me)
| Again a Linus request
o Remove dead 8129 config help (Dave Jones)
o Clean up extra unneeded check in setup.c (Dave Jones)
o Improve mkdep, remove acpi special case (Keith Owens)
o Fix bogus dead comment in fs.h (Jens Axboe)
o Clean up config.in syntax errors (Christoph Hellwig)
o Offer Duron in CPU option list for clarity (Terje Rosten)
o New binutils need --oformat, old ones handle it (Andreas Jaeger)
o Move bitops include in fs.h inside __KERNEL__ (Herbert Xu)
o Fix misspellings of weird (Felix Odenkirchen)
o Fix typos of 'valid' while we are at it (Luuk van der Duim)

2.4.1-ac9
o Merge with Linus 2.4.2pre2
o Highmem bounce fixes (Ingo Molnar)
o Fix cosa driver kfree (Jan Kasprzak)
o Clean up pdoc202xx driver sleeps (Vojtech Pavlik)
o Final bits of NFS file handle changes (Trond Myklebust)
o Fix usbnet driver (David Brownell)
o ATM includes fixes (Werner Almesberger)
o Remove unneeded vm_enough_memory check (Werner Almesberger)
o Fix free_dma prototype case (Bill Nottingham)
o Fix build bugs from pci_match_device fix (me)
o HP5300 USB scanner driver (Oliver Neukum,
John Fremlin,
Jeremy Hall)
o DSP_SETFRAGMENT fixes for ymfpci (Pavel Roskin)
o Fix codafs error returns (Rob Radez)
o Fix 48 misspellings of interrupt (Andr? Dahlqvist)
o Fix 20 misspellings of successful (Andr? Dahlqvist)
o Fix 11 misspellings of suppress (Andr? Dahlqvist)
o Fix 46 misspellings of address (Andr? Dahlqvist)
o Fix 26 misspellings of receive (Andr? Dahlqvist)
o Fix 7 misspellings of acquire (Andr? Dahlqvist)
o Fix 4 misspellings of unneccessary (Andr? Dahlqvist)
o Fix 13 misspellings of until (Andr? Dahlqvist)

2.4.1-ac8
o Fix irlap speed changes and kfrees (Jean Tourrilhes)
o Further NTFS updates (Anton Altaparmakov,
Yuri Per, Rob Radez)
o Fix buglets in config.in for aic7xxx (Andrzej Krzysztofowicz)
o Cleanup irda QoS code (Jean Tourrilhes)
o Fix mca documentations (Rob Radez)
o Fix irlan device attach problems (Dag Brattli)
o Fix irda dongle crash case (Dag Brattli)
o Change Kaweth firmware loading, add DU-E10 (Eric Sandeen)
o pci_enable cleanups for networking (Jeff Garzik)
o Fix rcpci45 probing (Jeff Garzik)
o Use SET_MODULE_OWNER() in lanstreamer (Jeff Garzik)
o Use pcmcia defines as per seperate pcmcia net (Jeff Garzik)
o Fix people calling netif_start_queue from a (Jeff Garzik)
timeout
o Remove 8129 driver (use 8139too) (Jeff Garzik)
o Remove dead malloc.h from net drivers (Jeff Garzik)
o Update eata driver to 6.04 (Dario Ballabio)
o Add DE320 support to ne2.c (Alfred Arnold)
o Kernel hacking doc updates (John Levon)
o Fix CPU detection offsets in head.S (Mikael Pettersson)
o Fix apic init/cpu detect problems (Mikael Pettersson)

2.4.1-ac7
o Rebalance the 2.4.1 VM (Rik van Riel)
| This should make things feel a lot faster especially
| on small boxes .. feedback to Rik
o Silence osf syscall error printk (Ivan Kokshaysky)
o Don't trust ARC irq routing on ruffian (Ivan Kokshaysky)
o Report the right module on 3c59x for pcmcia (Arjan van de Ven)
o Update i82365 driver to add locks, delays, and (Arjan van de Ven)
'bouncing' on the card detect
o Get the name right on ide-cs (v ide_cs) and do (Arjan van de Ven)
resource claims
o Merge parport_cs (David Hinds)
o Merge sedlbauer_cs (Marcus Niemann)
o Fix a bug in the Cyrix pirq routing (me)

2.4.1-ac6
o Fix eepro100 reporting on lockup fix (Ion Badulescu)
o Clean up i810 error message (me)
o Fix S390 build bug (me)
o Update version id on cpqarray driver (Charles White)
o Further aic7xxx fixes (Doug Ledford)
| again please report aic7xxx stuff to Doug
o Further maxiradio cleanups (Dimitromanolakis Apostolos)
o Change ide to use mdelay cleanly (Petr Vandrovec)
| Still broken for PROMISE if no IDE_CS
o Fix duplicated ncpfs fix (Petr Vandrovec)
o Improve inode hash function (Dave Miller)
o Correct 62 misspellings of transferred (Andre Dahlqvist)
o Update AC97 codec setup and tables (Jeff Garzik)

2.4.1-ac5
o Fix zero page corruption (Ben La Haise)
o Elevator corruption fixes (Jens Axboe, Linus)
o Fix fdatasync possible corruption problem (Arjan van de Ven)
o Further KSLI ethernet fixes (Eric Sandeen)
o Merge the correct version of the pm fixes (me)
| noted by Mikael Pettersson
o Account for inode/dcache in free memory (Rik van Riel)
o Add info on how to check reiserfsprogs versions (Steven Cole)
o Disable write combining on serverworks LE chips (Mark Rusk)
o Fix via audio crashes (Jeff Garzik)
o Fix ip accounting rules bug (Rusty Russell)
o Handle USB printers that use device not (Johannes Erdfelt)
interface descriptors
o Fix wheel on graphire usb tablet (Peter Hofmann)
o Clean up maxiradio driver (Francois Romieu)
o Fix visor USB size reporting on buffers (Greg Kroah-Hartmann)
o Update USB serial documentation (Greg Kroah-Hartmann)
o Fix locking on etherworks3 ethernet (Jeff Garzik)
o Fix empeg USB driver problems (Gary Brubaker)
o Generic USB serial driver fixes (Greg Kroah-Hartmann)
o Update USB serial configure.help (Greg Kroah-Hartmann)
o Add more device support to mct_u232 USB (Cornel Ciocirlan)
o Fix typo in asm-ppc/semaphore.h (Andre Dahlqvist)
o Report reiserfs tools in ver_linux (Steven Cole)
o Fix resource leaks in NCR_53c406, atari_scsi (Rasmus Andersen)
and qlogicisp
o Move pci_enable_device earlier for hamachi (Dave Jones)
o Type 6 drives are apparently floppy 2.88M (Dave Jones)
o Remove duplicate pci_enable_device in ne2kpci (Dave Jones)

2.4.1-ac4
o Fix sk_in use counting in svcsock.c (Neil Brown)
| Not yet a complete and final agreed solution
o Add support for KLSI USB ethernet (Brad Hards,
Stephane Alnet, 'the Zapman', and co)
o Update aic7xxx driver (Doug Ledford)
| Please test this carefully and cc reports to Doug
o Add help for CONFIG_INPUT (Steven Cole)
o 3c523 driver update (Tom Sightler)
o Fix reiserfs Changes entry further (Steven Cole)
o Limit ide scatter gather to 128 blocks (Jens Axboe)
o Merge hppa config.in changes (Matthew Wilcox)
o Fix tx timeout recovery on via rhine (Manfred Spraul)
o Fix stale comments in fs/block_dev.c (Tigran Aivazian)
o Further defxx driver work (Maciej Rozycki)
o winbond 840 reported wrong setting value (Maciej Rozycki)
o Guillemot Maxi radio support (Dimitromanolakis Apostolos)
o Allow sleeping in pm callbacks but with locking (me)
working

2.4.1-ac3
o Remove ancient dead net/Changes file (Janice Girouard)
o Merge Linus 2.4.2pre1
o Resync xirc2ps with Dave Hinds tree (dilinger)
o Finish sorting out ramfs problems (Mike Galbraith)
o Update AWE32 documentation (Andre Dahlqvist)
o Remove reference to dead PPP documentation (Andre Dahlqvist)
o Make max_map tunable (Werner Almesberger)
o Fix dead references to java support in some (Andre Dahlqvist)
arch/config
o Make shmfs estimate size limits if none set (Christoph Rohland)
o Revert Crusoe hanging pci hanging changes
| Im still chasing something weird in this
| area that some of the pci changes I have fixes...
o Merge HPPA hackers into CREDITS (Mathew Wilcox)
o Merge some of the HPPA updates (Mathew Wilcox)
o Add Reiserfs tools to changes (Steven Cole)
o Fix i2o Configure.help typo (YOSHIMURA Keitaro)
o SuperH HD64465 host bridge support (Greg Banks)
o Fix modversion.h includes (Keith Owens)
o Tlan driver probing updates (Jeff Garzik)
o Change media drivers to use new style module (me)
locking
| Janitorial job - fix the last ones that
| don't use module_*() and dump the init code

2.4.1-ac2
o Fix matrox G450 framebuffer support (Petr Vandrovec)
o Fix description of DMA-mapping.txt (Dave Miller)
o Fix accidental revert of classifier bug (Dave Miller)
o Fix accidental revert of isdn change
o Fix datagram hang on shutdown (Alexey Kuznetsov)
o Fix 64bit build of clntproc (Michal Jaegermann)
| wants a tidier solution yet
o Fix ide toc caching bug introduced in 2.4.0 (Fredrik Vraalsen)
| this should fix the DVD playback problems
o Swapfs renaming and final bits (Christoph Rohland)
o Further APIC/NMI updates (Mikael Pettersson)
o Add further kernel doc contributions (John Levon)
o ACPI battery tweaks (Pavel Machek)
o Further ramfs fixes (Ingo Oeser)
o ROMFS fixes (Mike Galbraith)
o CS4281 fixes (Thomas Woller)
o Shift to authors official fixes for acenic (Jes Sorensen)
o Update the usb host<->host network drivers (David Brownell)
| Experimental but he wanted feedback so if you
| have one beat it up a bit

2.4.1-ac1
o Resync with Linus 2.4.1
o Fix recursive make_request crash (Ingo Molnar)
o Updated VIA IDE driver (Vojtech Pavlik)
| Please exercise due care and caution testing this
| bit...
o Fix case where threaded apps might write to (Ben LaHaise)
freed kernel memory
o Fix ACPI oopses on tecra (apparently bios bugs) (Pavel Machek)
o AHA152x fixes from maintainer (Juergen Fischer)
o Fix case where scsi could hang on boot waiting (Rogier Wolff)
for a disk spinup
o Further maestro3 pm work (Zach Brown)
o Further NTFS fixes (Yuri Per)
o Add GNU make to the list of URLs in Changes (Steven Cole)
o Make dmx3191d enable device before touching it (Rasmus Andersen)
o Make the sbpcd driver actually useful in 2.4 (Paul Gortmaker)
o Make buslogic enable device before touching it (Rasmus Andersen)
o Fix tty module locking mishandling (Maciej Rozycki)
o Workaround code for APIC problems with ne2k (Maciej Rozycki)
| this will break original 82489DX devices for now
| ie _very_ early dual pentium boards
o Fix iptos netfilter bug (Rusty Russell)
o Fix get/set_fpu_mxcsr to check xmm ont fxsr (Doug Ledford)
o Fix name_to_kdev_t symbol (Adam J Richter)
o Update magic sysrq docs (Jeremy Dolan)
o Support for ETinc PCIsync boards (Francois Romieu)
o Mass duplicated word spelling fixes (Dave Jones)
o Update sb driver to use spinlocks (Chris Rankin)
o Fix leak in bmac driver (Hans Grobler)
o Fix kmalloc check in atm/common (Hans Grobler)
o Fix buffer leak in defxx (Hans Grobler)
o Fix kmalloc check in netrom driver (Hans Grobler)
|BTW side exercise - how about using vmalloc here ?
o Ditto for rose (Hans Grobler)
|Ditto for comment ;)
o Fix lockd 64bit handling (H J Lu)
o Tidy pci_match_device ifdefs (Rasmus Andersen)
o Fix qla1280 handling of registration failure (Rasmus Andersen
Rakesh Rakesh)
o Config include fixes (Niels Jensen)
o MatroxFB updates (Petr Vandrovec)
o Tidy fat_read_super to use get_hardsect_size (Tigran Aivazian)
o Fix m68k bitops ffs() (Geert Uytterhoeven)
o Fix ip_nat_standalone ksyms stuff (Rusty Russell)
o Fix copy_from_user mishandling in ip_fw_compat (Rusty Russell)
o Fix romfs for 2.4ac maxbytes (Mike Galbraith)
o filemap/aging updates (Rik van Riel)
o Enable device before reading irq in ne2k-pci (Martin Diehl)
o Remove surplus nr_ioapics definition (Rasmus Andersen)
o S/390 build fixes (Florian Laroche)
o Advansys driver fixes/portability (Arnaldo Carvalho
de Melo)
o Fix out of message handling error in i2o_block (Jason Lai)
o Fix bit granularity of 32 in ACPI driver (Adam J Richter)
o Fix unsafe casting for ARM on NFS root mount (Russell King)
o Fix mxcsr masking on pentium IV (Doug Ledford)
o Update u14/eata drivers to 6.03 (Dario Ballabio)
o Fix signed/unsigned mess in sysctl handlers (me)


---
Alan Cox <[email protected]>
Red Hat Kernel Hacker
& Linux 2.2 Maintainer Brainbench MVP for TCP/IP
http://www.linux.org.uk/diary http://www.brainbench.com


2001-03-02 21:39:16

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] CS89x0 demands too many pages

The CS89x0 driver wants a 16KB or 64KB dma_buff (if use_dma and
ANY_ISA_DMA), thinks it's asking __get_dma_pages() for 4 or 16
pages, but actually it's demanding order 4 or order 16 buffer.
Patch below against 2.4.2-ac9 or 2.4.2, offset against 2.4.[01].

Hugh

--- 2.4.2-ac9/drivers/net/cs89x0.c Tue Feb 13 21:15:05 2001
+++ linux/drivers/net/cs89x0.c Fri Mar 2 18:23:42 2001
@@ -1075,7 +1075,7 @@
if (lp->isa_config & ANY_ISA_DMA) {
unsigned long flags;
lp->dma_buff = (unsigned char *)__get_dma_pages(GFP_KERNEL,
- (lp->dmasize * 1024) / PAGE_SIZE);
+ get_order(lp->dmasize * 1024));

if (!lp->dma_buff) {
printk(KERN_ERR "%s: cannot get %dK memory for DMA\n", dev->name, lp->dmasize);
@@ -1456,7 +1456,7 @@
static void release_dma_buff(struct net_local *lp)
{
if (lp->dma_buff) {
- free_pages((unsigned long)(lp->dma_buff), (lp->dmasize * 1024) / PAGE_SIZE);
+ free_pages((unsigned long)(lp->dma_buff), get_order(lp->dmasize * 1024));
lp->dma_buff = 0;
}
}

2001-03-02 21:38:06

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] QIC-02 tape broken buffaddr

I don't have a QIC-02 tape drive to test, but its driver source
looks long broken. Note the comment at line 2836 "TODO:
does _get_dma_pages() really return the physical address?" and
follow uses of buffaddr - sometimes physical, sometimes virtual.

Which worked in 2.2, with ISA DMA ignoring PAGE_OFFSET bits, and
bus_to_virt() or'ing them; but 2.4 bus_to_virt() adds PAGE_OFFSET.
Patch below against 2.4.2-ac9, applies to 2.4.[012] offset -2 lines.

Hugh

--- 2.4.2-ac9/drivers/char/tpqic02.c Fri Mar 2 18:22:36 2001
+++ linux/drivers/char/tpqic02.c Fri Mar 2 18:23:42 2001
@@ -210,7 +210,7 @@
* must ensure that a large enough buffer is passed to the kernel, in order
* to reduce tape repositioning wear and tear.
*/
-static unsigned long buffaddr; /* physical address of buffer */
+static void *buffaddr; /* virtual address of buffer */

/* This translates minor numbers to the corresponding recording format: */
static const char *format_names[] = {
@@ -1378,7 +1378,7 @@
flags=claim_dma_lock();
clear_dma_ff(QIC02_TAPE_DMA);
set_dma_mode(QIC02_TAPE_DMA, dma_mode);
- set_dma_addr(QIC02_TAPE_DMA, buffaddr+dma_bytes_done); /* full address */
+ set_dma_addr(QIC02_TAPE_DMA, virt_to_bus(buffaddr) + dma_bytes_done);
set_dma_count(QIC02_TAPE_DMA, TAPE_BLKSIZE);

/* start tape DMA controller */
@@ -1923,7 +1923,7 @@
/* copy buffer to user-space in one go */
if (bytes_done>0)
{
- err = copy_to_user( (void *) buf, (void *) bus_to_virt(buffaddr), bytes_done);
+ err = copy_to_user(buf, buffaddr, bytes_done);
if (err)
{
return -EFAULT;
@@ -2076,7 +2076,7 @@
/* copy from user to DMA buffer and initiate transfer. */
if (bytes_todo>0)
{
- err = copy_from_user( (void *) bus_to_virt(buffaddr), (const void *) buf, bytes_todo);
+ err = copy_from_user(buffaddr, buf, bytes_todo);
if (err)
{
return -EFAULT;
@@ -2782,7 +2782,7 @@
release_region(QIC02_TAPE_PORT, QIC02_TAPE_PORT_RANGE);
if (buffaddr)
{
- free_pages(buffaddr, get_order(TPQBUF_SIZE));
+ free_pages((unsigned long)buffaddr, get_order(TPQBUF_SIZE));
}
buffaddr = 0; /* Better to cause a panic than overwite someone else */
status_zombie = YES;
@@ -2832,9 +2832,7 @@
request_region(QIC02_TAPE_PORT, QIC02_TAPE_PORT_RANGE, TPQIC02_NAME);

/* Setup the page-address for the dma transfer. */
-
- /*** TODO: does _get_dma_pages() really return the physical address?? ****/
- buffaddr = __get_dma_pages(GFP_KERNEL,get_order(TPQBUF_SIZE));
+ buffaddr = (void *)__get_dma_pages(GFP_KERNEL, get_order(TPQBUF_SIZE));

if (!buffaddr)
{
@@ -2842,7 +2840,7 @@
return -EBUSY; /* Not ideal, EAGAIN perhaps? */
}

- memset( (void*) buffaddr, 0, TPQBUF_SIZE );
+ memset(buffaddr, 0, TPQBUF_SIZE);

printk(TPQIC02_NAME ": Settings: IRQ %d, DMA %d, IO 0x%x, IFC %s\n",
QIC02_TAPE_IRQ, QIC02_TAPE_DMA,

2001-03-02 21:42:06

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] getname() buffer overflow

The pathname slab cache size was "reduced" from PAGE_SIZE to
PATH_MAX + 1 during the 2.4.0-test series, and len similarly
adjusted in do_getname(). But its "are we near top of task space?"
test should have been adjusted too: could overflow if page size >4KB.
Patch below against 2.4.2-ac9, applies equally to 2.4.[012].

Hugh

--- 2.4.2-ac9/fs/namei.c Fri Dec 29 22:07:23 2000
+++ linux/fs/namei.c Fri Mar 2 18:23:42 2001
@@ -113,7 +113,7 @@
if ((unsigned long) filename >= TASK_SIZE) {
if (!segment_eq(get_fs(), KERNEL_DS))
return -EFAULT;
- } else if (TASK_SIZE - (unsigned long) filename < PAGE_SIZE)
+ } else if (TASK_SIZE - (unsigned long) filename < PATH_MAX + 1)
len = TASK_SIZE - (unsigned long) filename;

retval = strncpy_from_user((char *)page, filename, len);

2001-03-02 23:29:50

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] alloc_tty_struct() wastage?

I've been puzzling over alloc_tty_struct(), which seems determined
to waste memory on a machine of page size 8KB. I've come to the
conclusion that it represents great caution on Russell's part
when introducing ARM, not to interfere with existing code of
other architectures - is that so, Russell?

But wouldn't we do better to use kmalloc() in all cases? Unless
you know some reason why a tty_struct is better on its own page:
patch below against 2.4.2-ac9, applies with noise to 2.4.[012].

(I'm not about to follow this with a thousand patches,
replacing page allocation by kmalloc() in sundry places:
now's not the time, but this instance struck me as odd.)

Hugh

--- 2.4.2-ac9/drivers/char/tty_io.c Fri Mar 2 18:22:36 2001
+++ linux/drivers/char/tty_io.c Fri Mar 2 18:23:42 2001
@@ -173,22 +173,15 @@
{
struct tty_struct *tty;

- if (PAGE_SIZE > 8192) {
- tty = kmalloc(sizeof(struct tty_struct), GFP_KERNEL);
- if (tty)
- memset(tty, 0, sizeof(struct tty_struct));
- } else
- tty = (struct tty_struct *)get_zeroed_page(GFP_KERNEL);
-
+ tty = kmalloc(sizeof(struct tty_struct), GFP_KERNEL);
+ if (tty)
+ memset(tty, 0, sizeof(struct tty_struct));
return tty;
}

static inline void free_tty_struct(struct tty_struct *tty)
{
- if (PAGE_SIZE > 8192)
- kfree(tty);
- else
- free_page((unsigned long) tty);
+ kfree(tty);
}

/*
@@ -2239,9 +2232,6 @@
*/
void __init tty_init(void)
{
- if (sizeof(struct tty_struct) > PAGE_SIZE)
- panic("size of tty structure > PAGE_SIZE!");
-
/*
* dev_tty_driver and dev_console_driver are actually magic
* devices which get redirected at open time. Nevertheless,

2001-03-02 23:38:31

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] alloc_tty_struct() wastage?

Hugh Dickins writes:
> I've been puzzling over alloc_tty_struct(), which seems determined
> to waste memory on a machine of page size 8KB.

Maybe you could change the ">" to ">="?

> I've come to the conclusion that it represents great caution on
> Russell's part when introducing ARM, not to interfere with
> existing code of other architectures - is that so, Russell?

My understanding of the usage of get_free_page there is as follows:
The problem was that sizeof(struct tty_struct) was very close to
the page size of x86 machines (4K), and kmalloc wasted space
unnecessarily. Therefore get_free_page was used by x86 to allocate
this structure. I think I'm right in saying that allocating
anything larger than half your page size is best done with
get_free_page.

Someone will probably correct me on that comment above though.
Can someone confirm please: is it safe and reasonable to use
kmalloc on allocating tty_struct on all architectures now?

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2001-03-05 15:51:17

by Hugh Dickins

[permalink] [raw]
Subject: lvm_snap calc_max_buckets num_physpages

num_physpages is shifted too far in lvm_snap's calc_max_buckets():
would go to 0 on a 4GB, 8GB, ... 32-bit machine. Okay, not quite all
the 4GB goes into num_physpages, so it's rather an issue with 5GB ...

Naive patch (against 2.4.3-pre2 or 2.4.2-ac11 or 2.4.2 or 2.4.1) below,
but I won't be submitting this to Alan or Linus myself (unless you ask):
I expect you'll want to consider whether the number should go on
climbing linearly in that way above 1GB.

Hugh

--- 2.4.2-ac11/drivers/md/lvm-snap.c Mon Jan 29 00:11:20 2001
+++ linux/drivers/md/lvm-snap.c Mon Mar 5 11:58:10 2001
@@ -489,10 +489,9 @@
{
unsigned long mem;

- mem = num_physpages << PAGE_SHIFT;
- mem /= 100;
- mem *= 2;
- mem /= sizeof(struct list_head);
+ mem = num_physpages;
+ mem /= 50 * sizeof(struct list_head);
+ mem <<= PAGE_SHIFT;

return mem;
}

2001-03-05 15:54:48

by Hugh Dickins

[permalink] [raw]
Subject: netfilter ip_conntrack num_physpages

num_physpages is shifted too far in netfilter's ip_conntrack_init():
would go to 0 on a 4GB, 8GB, ... 32-bit machine. Okay, not quite all
the 4GB goes into num_physpages, so it's rather an issue with 5GB ...

Naive patch (against 2.4.3-pre2 or 2.4.2-ac11 or 2.4.2 or 2.4.1) below,
but I won't be submitting this to Alan or Linus myself (unless you ask):
I expect you'll want to consider whether the number should go on
climbing linearly in that way above 1GB.

Hugh

--- 2.4.2-ac11/net/ipv4/netfilter/ip_conntrack_core.c Mon Mar 5 11:47:01 2001
+++ linux/net/ipv4/netfilter/ip_conntrack_core.c Mon Mar 5 12:01:49 2001
@@ -1078,7 +1078,7 @@
/* Idea from tcp.c: use 1/16384 of memory. On i386: 32MB
* machine has 256 buckets. 1GB machine has 8192 buckets. */
ip_conntrack_htable_size
- = (((num_physpages << PAGE_SHIFT) / 16384)
+ = (((num_physpages << (PAGE_SHIFT - 12)) / 4)
/ sizeof(struct list_head));
ip_conntrack_max = 8 * ip_conntrack_htable_size;


2001-03-03 12:40:41

by Andrew Morton

[permalink] [raw]
Subject: [PATCH] cs89x0.c

Hugh Dickins wrote:
>
> The CS89x0 driver wants a 16KB or 64KB dma_buff (if use_dma and
> ANY_ISA_DMA), thinks it's asking __get_dma_pages() for 4 or 16
> pages, but actually it's demanding order 4 or order 16 buffer.
> Patch below against 2.4.2-ac9 or 2.4.2, offset against 2.4.[01].

I guess nobody's tried a 64k DMA buffer lately.
The patch has been tested and work fine, thanks.

I found and fixed two other bugs. They preventing the
driver from being loaded more than once.

The driver probe routine appears to go to great pains to avoid
writing to ISA space until it is sure that there is actually a
NIC at the probe address. To support this, the last thing it
does when the module is being unloaded is to write zero into
its address pointer register. This way, when the driver is
reloaded the hardware is set up so the probe can look at the ID
register without having to write to anything first.

But unregister_netdevice() calls into the rtnetlink code which
does a get_stats() on the NIC, which undoes the above operation
by leaving the address register pointing at something else.
So this patch does the address register zeroing _after_ the
call to unregister_netdev().

I suspect this is new behaviour in the rtnetlink code. Interesting
breakage.



Now, if the user adds 1 to the device I/O address, the driver
does the ISA write prior to reading the identification register.
This is more likely to find the NIC, but can presumably break
things if the probe address isn't pointing at a cs89x0 card.

Good in theory, but that was broken too - the wrong address
gets passed to release_region() in two places. Also fixed.


Also added some media selection debug stuff to
help identify a couple of interface selection problems
which have been reported lately.


Also uninlined some functions which could be quite large
on non-x86 archs.


Patch is against 2.4.3-pre1.


--- linux-2.4.3-pre1/drivers/net/cs89x0.c Sun Feb 25 17:37:04 2001
+++ lk/drivers/net/cs89x0.c Sat Mar 3 23:26:35 2001
@@ -74,13 +74,14 @@
: Use SET_MODULE_OWNER()
: Tidied up strange request_irq() abuse in net_open().

-*/
-
-static char version[] =
-"cs89x0.c: v2.4.0-test11-pre4 Russell Nelson <[email protected]>, Andrew Morton <[email protected]>\n";
-
-/* ======================= end of configuration ======================= */
+ Andrew Morton : Kernel 2.4.3-pre1
+ : Request correct number of pages for DMA (Hugh Dickens)
+ : Select PP_ChipID _after_ unregister_netdev in cleanup_module()
+ : because unregister_netdev() calls get_stats.
+ : Make `version[]' __initdata
+ : Uninlined the read/write reg/word functions.

+*/

/* Always include 'config.h' first in case the user wants to turn on
or override something. */
@@ -121,6 +122,7 @@
#include <linux/in.h>
#include <linux/slab.h>
#include <linux/string.h>
+#include <linux/init.h>
#include <asm/system.h>
#include <asm/bitops.h>
#include <asm/io.h>
@@ -137,6 +139,9 @@

#include "cs89x0.h"

+static char version[] __initdata =
+"cs89x0.c: v2.4.3-pre1 Russell Nelson <[email protected]>, Andrew Morton <[email protected]>\n";
+
/* First, a few definitions that the brave might change.
A zero-terminated list of I/O addresses to be probed. Some special flags..
Addr & 1 = Read back the address port, look for signature and reset
@@ -260,7 +265,7 @@
SET_MODULE_OWNER(dev);

if (net_debug)
- printk("cs89x0:cs89x0_probe()\n");
+ printk("cs89x0:cs89x0_probe(0x%x)\n", base_addr);

if (base_addr > 0x1ff) /* Check a single specified location. */
return cs89x0_probe1(dev, base_addr);
@@ -275,27 +280,27 @@
return -ENODEV;
}

-extern int inline
+static int
readreg(struct net_device *dev, int portno)
{
outw(portno, dev->base_addr + ADD_PORT);
return inw(dev->base_addr + DATA_PORT);
}

-extern void inline
+static void
writereg(struct net_device *dev, int portno, int value)
{
outw(portno, dev->base_addr + ADD_PORT);
outw(value, dev->base_addr + DATA_PORT);
}

-extern int inline
+static int
readword(struct net_device *dev, int portno)
{
return inw(dev->base_addr + portno);
}

-extern void inline
+static void
writeword(struct net_device *dev, int portno, int value)
{
outw(value, dev->base_addr + portno);
@@ -383,7 +388,9 @@
lp = (struct net_local *)dev->priv;

/* Grab the region so we can find another board if autoIRQ fails. */
- if (!request_region(ioaddr, NETCARD_IO_EXTENT, dev->name)) {
+ if (!request_region(ioaddr & ~3, NETCARD_IO_EXTENT, dev->name)) {
+ printk(KERN_ERR "%s: request_region(0x%x, 0x%x) failed\n",
+ dev->name, ioaddr, NETCARD_IO_EXTENT);
retval = -EBUSY;
goto out1;
}
@@ -393,16 +400,23 @@
expect to find the EISA signature word. An IO with a base of 0x3
will skip the test for the ADD_PORT. */
if (ioaddr & 1) {
+ if (net_debug > 1)
+ printk(KERN_INFO "%s: odd ioaddr 0x%x\n", dev->name, ioaddr);
if ((ioaddr & 2) != 2)
if ((inw((ioaddr & ~3)+ ADD_PORT) & ADD_MASK) != ADD_SIG) {
+ printk(KERN_ERR "%s: bad signature 0x%x\n",
+ dev->name, inw((ioaddr & ~3)+ ADD_PORT));
retval = -ENODEV;
goto out2;
}
ioaddr &= ~3;
outw(PP_ChipID, ioaddr + ADD_PORT);
}
+printk("PP_addr=0x%x\n", inw(ioaddr + ADD_PORT));

if (inw(ioaddr + DATA_PORT) != CHIP_EISA_ID_SIG) {
+ printk(KERN_ERR "%s: incorrect signature 0x%x\n",
+ dev->name, inw(ioaddr + DATA_PORT));
retval = -ENODEV;
goto out2;
}
@@ -480,6 +494,10 @@
lp->adapter_cnf |= A_CNF_AUI | A_CNF_10B_T |
A_CNF_MEDIA_AUI | A_CNF_MEDIA_10B_T | A_CNF_MEDIA_AUTO;

+ if (net_debug > 1)
+ printk(KERN_INFO "%s: PP_LineCTL=0x%x, adapter_cnf=0x%x\n",
+ dev->name, i, lp->adapter_cnf);
+
/* IRQ. Other chips already probe, see below. */
if (lp->chip_type == CS8900)
lp->isa_config = readreg(dev, PP_CS8900_ISAINT) & INT_NO_MASK;
@@ -519,6 +537,9 @@
dev->dev_addr[i*2] = eeprom_buff[i];
dev->dev_addr[i*2+1] = eeprom_buff[i] >> 8;
}
+ if (net_debug > 1)
+ printk(KERN_DEBUG "%s: new adapter_cnf: 0%x\n",
+ dev->name, lp->adapter_cnf);
}

/* allow them to force multiple transceivers. If they force multiple, autosense */
@@ -533,6 +554,10 @@
else if (lp->force & FORCE_BNC) {lp->adapter_cnf |= A_CNF_MEDIA_10B_2; }
}

+ if (net_debug > 1)
+ printk(KERN_DEBUG "%s: after force 0x%x, adapter_cnf=0x%x\n",
+ dev->name, lp->force, lp->adapter_cnf);
+
/* FIXME: We don't let you set dc-dc polarity or low RX squelch from the command line: add it here */

/* FIXME: We don't let you set the IMM bit from the command line: add it to lp->auto_neg_cnf here */
@@ -615,7 +640,7 @@
printk("cs89x0_probe1() successful\n");
return 0;
out2:
- release_region(ioaddr, NETCARD_IO_EXTENT);
+ release_region(ioaddr & ~3, NETCARD_IO_EXTENT);
out1:
kfree(dev->priv);
dev->priv = 0;
@@ -1075,7 +1100,7 @@
if (lp->isa_config & ANY_ISA_DMA) {
unsigned long flags;
lp->dma_buff = (unsigned char *)__get_dma_pages(GFP_KERNEL,
- (lp->dmasize * 1024) / PAGE_SIZE);
+ get_order(lp->dmasize * 1024));

if (!lp->dma_buff) {
printk(KERN_ERR "%s: cannot get %dK memory for DMA\n", dev->name, lp->dmasize);
@@ -1456,7 +1481,7 @@
static void release_dma_buff(struct net_local *lp)
{
if (lp->dma_buff) {
- free_pages((unsigned long)(lp->dma_buff), (lp->dmasize * 1024) / PAGE_SIZE);
+ free_pages((unsigned long)(lp->dma_buff), get_order(lp->dmasize * 1024));
lp->dma_buff = 0;
}
}
@@ -1690,10 +1715,10 @@
void
cleanup_module(void)
{
- outw(PP_ChipID, dev_cs89x0.base_addr + ADD_PORT);
if (dev_cs89x0.priv != NULL) {
/* Free up the private structure, or leak memory :-) */
unregister_netdev(&dev_cs89x0);
+ outw(PP_ChipID, dev_cs89x0.base_addr + ADD_PORT);
kfree(dev_cs89x0.priv);
dev_cs89x0.priv = NULL; /* gets re-allocated by cs89x0_probe1 */
/* If we don't do this, we can't re-insmod it later. */
--- linux-2.4.3-pre1/Documentation/networking/cs89x0.txt Tue Sep 19 08:58:17 2000
+++ lk/Documentation/networking/cs89x0.txt Sat Mar 3 23:30:15 2001
@@ -242,13 +242,18 @@

b) The "io" parameter must be specified on the command-line.

-c) In case you can not re-load the driver because Linux system
- returns the "device or resource busy" message, try to re-load it by
- increment the IO port address by one. The driver will write
- commands to the IO base addresses to reset the data port pointer.
- You can specify an I/O address with an address value one greater
- than the configured address. Example, to scan for an adapter
- located at IO base 0x300, specify an IO address of 0x301.
+c) The driver's hardware probe routine is designed to avoid
+ writing to I/O space until it knows that there is a cs89x0
+ card at the written addresses. This could cause problems
+ with device probing. To avoid this behaviour, add one
+ to the `io=' module parameter. This doesn't actually change
+ the I/O address, but it is a flag to tell the driver
+ topartially initialise the hardware before trying to
+ identify the card. This could be dangerous if you are
+ not sure that there is a cs89x0 card at the provided address.
+
+ For example, to scan for an adapter located at IO base 0x300,
+ specify an IO address of 0x301.

d) The "duplex=auto" parameter is only supported for the CS8920.

2001-03-29 14:22:10

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] sparc64 module_map dont vfree

sparc64 has a module_map() modelled on vmalloc(), but using a separate
modvmlist of areas. After allocating an area, if the call to allocate
the pages and map them in fails, it needs to free that area: which at
present it's trying to do by calling vfree() - but that searches vmlist
not modvmlist. It should be calling its own module_unmap() instead.
Patch below against 2.4.2-ac28 or 2.4.3-pre8.

Hugh

--- 2.4.2-ac28/arch/sparc64/mm/modutil.c Mon Feb 19 03:49:54 2001
+++ linux/arch/sparc64/mm/modutil.c Wed Mar 28 14:31:49 2001
@@ -59,7 +59,7 @@
*p = area;

if (vmalloc_area_pages(VMALLOC_VMADDR(addr), size, GFP_KERNEL, PAGE_KERNEL)) {
- vfree(addr);
+ module_unmap(addr);
return NULL;
}
return addr;

2001-04-17 13:59:42

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] emu10k1/audio un reserve

The code for mem_map_reserving has been copied a little too
faithfully to the places where it wants to mem_map_unreserve.

Hugh

--- 2.4.3-ac7/drivers/sound/emu10k1/audio.c Tue Apr 17 14:43:09 2001
+++ linux/drivers/sound/emu10k1/audio.c Tue Apr 17 14:46:20 2001
@@ -272,7 +272,7 @@

/* Undo marking the pages as reserved */
for (i = 0; i < woinst->buffer.pages; i++)
- mem_map_reserve(virt_to_page(woinst->buffer.addr[i]));
+ mem_map_unreserve(virt_to_page(woinst->buffer.addr[i]));
}

emu10k1_waveout_close(wave_dev);
@@ -322,7 +322,7 @@

/* Undo marking the pages as reserved */
for (i = 0; i < woinst->buffer.pages; i++)
- mem_map_reserve(virt_to_page(woinst->buffer.addr[i]));
+ mem_map_unreserve(virt_to_page(woinst->buffer.addr[i]));
}

emu10k1_waveout_close(wave_dev);
@@ -1204,7 +1204,7 @@

/* Undo marking the pages as reserved */
for (i = 0; i < woinst->buffer.pages; i++)
- mem_map_reserve(virt_to_page(woinst->buffer.addr[i]));
+ mem_map_unreserve(virt_to_page(woinst->buffer.addr[i]));
}

emu10k1_waveout_close(wave_dev);