9d793b0bcb
The I2O ioctls assume 32bits. In itself that is fine as they are old cards and nobody uses 64bit. However on LKML it was noted this assumption is also made for allocated memory and is unsafe on 64bit systems. Fixing this is a mess. It turns out there is tons of crap buried in a header file that does racy 32/64bit filtering on the masks. So we: - Verify all callers of the racy code can sleep (i2o_dma_[re]alloc) - Move the code into a new i2o/memory.c file - Remove the gfp_mask argument so nobody can try and misuse the function - Wrap a mutex around the problem area (a single mutex is easy to do and none of this is performance relevant) - Switch the remaining problem kmalloc holdout to use i2o_dma_alloc Cc: Markus Lidel <Markus.Lidel@shadowconnect.com> Cc: Vasily Averin <vvs@sw.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
bus-osm.c | ||
config-osm.c | ||
core.h | ||
debug.c | ||
device.c | ||
driver.c | ||
exec-osm.c | ||
i2o_block.c | ||
i2o_block.h | ||
i2o_config.c | ||
i2o_proc.c | ||
i2o_scsi.c | ||
iop.c | ||
Kconfig | ||
Makefile | ||
memory.c | ||
pci.c | ||
README | ||
README.ioctl |
Linux I2O Support (c) Copyright 1999 Red Hat Software and others. 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. AUTHORS (so far) Alan Cox, Building Number Three Ltd. Core code, SCSI and Block OSMs Steve Ralston, LSI Logic Corp. Debugging SCSI and Block OSM Deepak Saxena, Intel Corp. Various core/block extensions /proc interface, bug fixes Ioctl interfaces for control Debugging LAN OSM Philip Rumpf Fixed assorted dumb SMP locking bugs Juha Sievanen, University of Helsinki Finland LAN OSM code /proc interface to LAN class Bug fixes Core code extensions Auvo Häkkinen, University of Helsinki Finland LAN OSM code /Proc interface to LAN class Bug fixes Core code extensions Taneli Vähäkangas, University of Helsinki Finland Fixes to i2o_config CREDITS This work was made possible by Red Hat Software Funding for the Building #3 part of the project Symbios Logic (Now LSI) Host adapters, hints, known to work platforms when I hit compatibility problems BoxHill Corporation Loan of initial FibreChannel disk array used for development work. European Comission Funding the work done by the University of Helsinki SysKonnect Loan of FDDI and Gigabit Ethernet cards ASUSTeK Loan of I2O motherboard STATUS: o The core setup works within limits. o The scsi layer seems to almost work. I'm still chasing down the hang bug. o The block OSM is mostly functional o LAN OSM works with FDDI and Ethernet cards. TO DO: General: o Provide hidden address space if asked o Long term message flow control o PCI IOP's without interrupts are not supported yet o Push FAIL handling into the core o DDM control interfaces for module load etc o Add I2O 2.0 support (Deffered to 2.5 kernel) Block: o Multiple major numbers o Read ahead and cache handling stuff. Talk to Ingo and people o Power management o Finish Media changers SCSI: o Find the right way to associate drives/luns/busses Lan: o Performance tuning o Test Fibre Channel code Tape: o Anyone seen anything implementing this ? (D.S: Will attempt to do so if spare cycles permit)