Matthew Wilcox [Tue, 2 Jul 2002 04:58:30 +0000 (21:58 -0700)]
[PATCH] rewrite find_vma_prev
For PA-RISC, we need find_vma_prev to return `prev', even if vma is NULL.
Our stack is at the top of memory, growing upwards, so when we page fault
we need to see prev. For added bonus points, the code becomes simpler,
less indented, shorter and (for me, anyway) easier to understand. The
code is well-tested, even on x86. For PA and ia64 this code is called in
the page fault handler path so it is exercised frequently.
Matthew Wilcox [Mon, 1 Jul 2002 08:36:58 +0000 (04:36 -0400)]
[PATCH] softscsi patch
Doug Gilbert and James Bottomley hassled me all through KernelSummit &
OLS to explain about softirqs, tasklets and bottom halves. In the end,
it was easier to write the code myself. Thanks to James for pointing
out that the pointer handling in my original code was completely broken
and helping me debug.
I've booted this patch on a 4-way system at OSDL with two Adaptec SCSI
cards. I haven't tried stressing it (not quite sure which discs I can
use ;-), and I don't understand the locking in the scsi subsystem at all.
The main effect of applying this patch is that scsi_softirq() [was
scsi_tasklet_func, and before that scsi_bottom_half_handler()] can now be
run on multiple CPUs at the same time. We _seem_ to do enough locking
elsewhere in the SCSI stack that this is safe. But someone who really
understands the SCSI stack should audit this.
This work shows up a hole in the current softirq API -- there's no support
for unregistering a softirq (close_softirq or similar). We should do
this in scsi_exit -- make sure no softirqs are running while we unload.
This probably isn't a problem in practice, but it'd be nice to fix it.
Petr Vandrovec [Sun, 30 Jun 2002 08:43:24 +0000 (01:43 -0700)]
[PATCH] 2.5.24 matroxfb memory corruption
When James converted all drivers to unified do_install_cmap(), he
blindly changed also matroxfb, which happily uses fbcon.currcon == -1.
This caused memory corruption because of memory before fb_display[]
array was overwritten.
Default do_install_cmap() also installed invalid default color map in
some matroxfb resolutions. Not all world have >= 4bpp.
Doug Ledford [Fri, 28 Jun 2002 10:00:01 +0000 (06:00 -0400)]
i60uscsi.c:
Fix the usage of pci_map and pci_unmap in the driver, mainly on 0 length cmds
inia100.c:
Fix the usage of pci_map and pci_unmap in the driver, fix use on 0 length cmds
NTFS: 2.0.13 - Use iget5_locked() in preparation for fake inodes and small cleanups.
- Remove nr_mft_bits and the now superfluous union with nr_mft_records
from ntfs_volume structure.
- Remove nr_lcn_bits and the now superfluous union with nr_clusters
from ntfs_volume structure.
- Use iget5_locked() and friends instead of conventional iget(). Wrap
the call in fs/ntfs/inode.c::ntfs_iget() and update callers of iget()
to use ntfs_iget(). Leave only one iget() call at mount time so we
don't need an ntfs_iget_mount().
- Change fs/ntfs/inode.c::ntfs_new_extent_inode() to take mft_no as an
additional argument.
Doug Ledford [Wed, 26 Jun 2002 14:17:45 +0000 (10:17 -0400)]
Initial initio a100 driver DMA mapping changes + selected cleanups
* 06/25/02 Doug Ledford <dledford@redhat.com> - v1.02d
* - Remove limit on number of controllers
* - Port to DMA mapping API
* - Clean up interrupt handler registration
* - Fix memory leaks
* - Fix allocation of scsi host structs and private data
NTFS: 2.0.12 - Initial cleanup of address space operations following 2.0.11 changes.
- Merge fs/ntfs/aops.c::end_buffer_read_mst_async() and
fs/ntfs/aops.c::end_buffer_read_file_async() into one function
fs/ntfs/aops.c::end_buffer_read_attr_async() using NInoMstProtected()
to determine whether to apply mst fixups or not.
- Above change allows merging fs/ntfs/aops.c::ntfs_file_read_block()
and fs/ntfs/aops.c::ntfs_mst_readpage() into one function
fs/ntfs/aops.c::ntfs_attr_read_block(). Also, create a tiny wrapper
fs/ntfs/aops.c::ntfs_mst_readpage() to transform the parameters from
the VFS readpage function prototype to the ntfs_attr_read_block()
function prototype.
NTFS: 2.0.11 - Initial preparations for fake inode based attribute i/o.
- Move definition of ntfs_inode_state_bits to fs/ntfs/inode.h and
do some macro magic (adapted from include/linux/buffer_head.h) to
expand all the helper functions NInoFoo(), NInoSetFoo(), and
NInoClearFoo().
- Add new flag to ntfs_inode_state_bits: NI_Sparse.
- Add new fields to ntfs_inode structure to allow use of fake inodes
for attribute i/o: type, name, name_len. Also add new state bits:
NI_Attr, which, if set, indicates the inode is a fake inode, and
NI_MstProtected, which, if set, indicates the attribute uses multi
sector transfer protection, i.e. fixups need to be applied after
reads and before/after writes.
- Rename fs/ntfs/inode.c::ntfs_{new,clear,destroy}_inode() to
ntfs_{new,clear,destroy}_extent_inode() and update callers.
- Use ntfs_clear_extent_inode() in fs/ntfs/inode.c::__ntfs_clear_inode()
instead of ntfs_destroy_extent_inode().
- Cleanup memory deallocations in {__,}ntfs_clear_{,big_}inode().
- Make all operations on ntfs inode state bits use the NIno* functions.
- Set up the new ntfs inode fields and state bits in
fs/ntfs/inode.c::ntfs_read_inode() and add appropriate cleanup of
allocated memory to __ntfs_clear_inode().
- Cleanup ntfs_inode structure a bit for better ordering of elements
w.r.t. their size to allow better packing of the structure in memory.
Jens Axboe [Thu, 20 Jun 2002 07:05:46 +0000 (00:05 -0700)]
[PATCH] uninline elv_next_request()
Uninline elv_next_request() and move it to elevator.c, where it belongs.
Because of CURRENT declaration, this actually saves lots of space. From
Andrew.
Robert Kuebel [Thu, 20 Jun 2002 06:54:52 +0000 (23:54 -0700)]
[PATCH] namespace.c - compiler warning
init_rootfs() (from ramfs) doesn't appear in any header file. I didn't
see any that looked like a good home, so lets put a prototype at the top
of fs/namespace.c. This only use of this function is in namespace.c.
Robert Kuebel [Thu, 20 Jun 2002 06:54:37 +0000 (23:54 -0700)]
[PATCH] 3c509.c - 2_2
This patch makes sure the 3c509 module license is always GPL. Currently
the MODULE_LICENSE() marco is only used when CONFIG_ISAPNP or
CONFIG_ISAPNP_MODULE is defined. I have moved MODULE_LICENSE() to the
#ifdef MODULE section at the bottom of 3c509.c.
[PATCH] remove unnecessary parentheses from expand()
Not sure why I forgot to do this, but here is a small bit of tidying up
of some leftover parentheses from the memlist macro removal. The
parentheses are just noise and should go.
Stephen Rothwell [Thu, 20 Jun 2002 06:53:13 +0000 (23:53 -0700)]
[PATCH] Consolidate sys_pause
14 of our 17 architectures define sys_pause exactly the same
way. The other three don't define it at all. I assume glibc
translates pause() into sigsuspend() or something.
Greg Banks [Thu, 20 Jun 2002 06:51:51 +0000 (23:51 -0700)]
[PATCH] PATCH: kconfig wrong arch symbols
Three arch-determining symbols in drivers/mtd/maps/Config.in are wrong.
They have apparently been generated using the sensible pattern "CONFIG_FOO"
for an architecture "foo"; unfortunately the architectures are not sensible.
CONFIG_SPARC should be CONFIG_SPARC32
CONFIG_I386 should be CONFIG_X86
CONFIG_SH should be CONFIG_SUPERH
The config language is *not* shell. The construct "[ foo ] || [ bar ]"
is legal in shell but not in the config language, where we should use
the equivalent "[ foo -o bar ]"
Three symbols CONFIG_BLK_DEV_ATARAID, CONFIG_BLK_DEV_ATARAID_PDC, and
CONFIG_BLK_DEV_ATARAID_HPT depend on CONFIG_EXPERIMENTAL but do
not say so in their banners.
Four symbols CONFIG_ATM_CLIP, CONFIG_ATM_CLIP_NO_ICMP, CONFIG_ATM_LANE,
and CONFIG_ATM_MPOA depend on CONFIG_EXPERIMENTAL but do not say so
in their banners.