Miles Bader [Fri, 18 Jul 2003 03:12:08 +0000 (20:12 -0700)]
[PATCH] Add v850 `sim85e2s' port, and cleanup v850e2 code
This patch adds support for the `sim85e2s' simulation of the NA85E2S
processor implementation. As part of this, cache-flushing support for
the common v850e2 cache implementation is added.
It also cleans up a bunch of code that was duplicated between different
v850e2 processors.
Miles Bader [Fri, 18 Jul 2003 03:11:09 +0000 (20:11 -0700)]
[PATCH] Cleanup v850 cache-flushing code a bit
(1) Add support for the V850E/ME2 processor
(2) Clean up the cache-flushing function naming a bit
(3) Similar to previous patches, rename everything from `nb85e' to `v850e'.
This patch renames some files, and so contains a number of whole-file
add/removes.
Miles Bader [Fri, 18 Jul 2003 03:10:48 +0000 (20:10 -0700)]
[PATCH] Refactor v850 UART driver
The v850 family contains several related-but-not-identical on-chip
UARTs. This patch factors out the common code and uses it to implement
both types (only one was supported before).
Also, this patch changes the way the v850 UART is initialized, to use
the same method as other linux serial drivers.
This patch renames the UART code to be `v850e_uart' rather than
`nb85e_uart', as the former is more correct. As this change renames
some files too, the patch contains a number of whole-file add/removes.
Andrew Morton [Fri, 18 Jul 2003 02:28:24 +0000 (19:28 -0700)]
[PATCH] "Fix" AS i/o hang with aacraid driver
From: Mark Haverkamp <markh@osdl.org>
Mark says:
"Daniel McNeil and I have been debugging a hang with the aacraid driver
using the as I/O scheduler."
We found that scsi_request_fn would de-queue a request and later
re-queued it. This left the as_data->nr_dispatched variable in an
inconsistent state (it was never being decremented back to zero).
We added a call to elv_completed_request to clean up the state before
re-adding the request. This has fixed our hang problem."
It affects other SCSI drivers, but less frequently. We're assuming this is
the cause of several "everything got stuck in D state" reports.
A very long design discussion has ensued. We don't have a suitably tested fix
ready so I think it is best to put Mark's one-liner in there for now, fix it
for real when everyone gets back from OLS.
Andrew Morton [Fri, 18 Jul 2003 02:28:01 +0000 (19:28 -0700)]
[PATCH] fix bootmem allocator on machines with holes in
From: Anton Blanchard <anton@samba.org>
If the memory we are trying to allocate is too large to fit in the current
region, we should skip to the end. We currently search the available
bitmap, find the area is too small, increment the start by incr and try
again. This resulted in an apparent lockup on a 64GB machine that had a
3GB IO hole starting at 1GB (and the mem_map array would not fit in the
first region).
Also use ALIGN macro instead of an open coded version.
Andrew Morton [Fri, 18 Jul 2003 02:27:54 +0000 (19:27 -0700)]
[PATCH] dm: v4 ioctl interface
From: Joe Thornber <thornber@sistina.com>
v4 of the ioctl interface. Note there never was a v2 or a v3 except in an
unofficial EVMS way.
This works correctly with the 64-bit dev_t patches in -mm kernels.
There is now a config option to allow the user to select v1 or v4, it
defaults to v1. dm-ioctl.[hc] just #includes dm-ioctl-v[14].[hc] depending
on the config option.
If you want to use v4 you will have to update your tools
(libdevmapper/lvm). The latest tools at the time of writing are:
Andrew Morton [Fri, 18 Jul 2003 02:27:46 +0000 (19:27 -0700)]
[PATCH] dm: 'wait for event' race
From: Joe Thornber <thornber@sistina.com>
There was a race associated with the 'wait for a significant event'
functionality.
Basically userland could read the status table, then wait for another
event, but the event it was waiting for could have occurred in the gap
between reading and waiting.
To solve this we assign identifiers to events, in order to successfully
wait for an event both userland and the kernel driver must be in agreement
about what the last event identifier was. If they don't agree the wait
call will return immediately, allowing userland to re-read the status and
see what it missed.
Andrew Morton [Fri, 18 Jul 2003 02:27:31 +0000 (19:27 -0700)]
[PATCH] watchdog: i810-tco support
From: Wim Van Sebroeck <wim@iguana.be>
Adds support for the 82801EB and 82801ER I/O Controller Hub's (ICH5 &
ICH5R). This will add watchdog support for the i865 and i875 motherboard
chipsets. It also removes some extra trailing spaces in the source files.
Andrew Morton [Fri, 18 Jul 2003 02:27:23 +0000 (19:27 -0700)]
[PATCH] vesafb fix
From: Gerd Knorr <kraxel@suse.de>
The patch below fixes some vesafb issues. Changes:
* fixed struct screen_info in tty.h to use portable types. "unsigned
long" for 32bit values doesn't work on hammer machines ...
* limited the framebuffer memory used by vesafb to 16 MB. This avoids
that vesafb's ioremap() eats plenty of kernel address space for no real
benefit if the gfx card has very much memory (some have 128 MB or more,
ia32 has 128 MB address space for vmalloc and ioremap ...).
* mtrr is enabled by default. That should improve the vesafb performance
a lot. Also added a option to disable mtrr.
Andrew Morton [Fri, 18 Jul 2003 02:26:32 +0000 (19:26 -0700)]
[PATCH] Fix two bugs with process limits (RLIMIT_NPROC)
From: Neil Brown <neilb@cse.unsw.edu.au>
1/ If a setuid process swaps it's real and effective uids and then forks,
the fork fails if the new realuid has more processes
than the original process was limited to.
This is particularly a problem if a user with a process limit
(e.g. 256) runs a setuid-root program which does setuid() + fork()
(e.g. lprng) while root already has more than 256 process (which
is quite possible).
The root problem here is that a limit which should be a per-user
limit is being implemented as a per-process limit with
per-process (e.g. CAP_SYS_RESOURCE) controls.
Being a per-user limit, it should be that the root-user can over-ride
it, not just some process with CAP_SYS_RESOURCE.
This patch adds a test to ignore process limits if the real user is root.
2/ When a root-owned process (e.g. cgiwrap) sets up process limits and then
calls setuid, the setuid should fail if the user would then be running
more than rlim_cur[RLIMIT_NPROC] processes, but it doesn't. This patch
adds an appropriate test. With this patch, and per-user process limit
imposed in cgiwrap really works.
Andrew Morton [Fri, 18 Jul 2003 02:26:16 +0000 (19:26 -0700)]
[PATCH] fix removable partitioned media with devfs
From: Andrey Borzenkov <arvidjaar@mail.ru>
Current 2.5 does not register any device node in devfs for empty media
(capacity == 0) case. This makes removables unusable with devfs.
Partition rescan is done only on bdev open, but without any device node for
device it is impossible to open it.
In 2.4 it was finally solved by always registering .../disc node as
representation for "whole" disk and using devfsd action to force partition
rescan on access to (non-existing) partition name. For primary names it
was handled internally by devfs - it kept track of removable devices in
directory and initiated partition rescan when name was not found.
Both are obviously broken now. You can't do partition rescan because no
node is registered at all and internal handling was removed. Very nice.
The attached patch makes resgister_disk always register at least disc node.
This now works for old and new compat names as per devfsd configuration;
canonical names are still broken:
{pts/3}% ll /dev/scsi/host1/bus0/target4/lun0/part4
ls: /dev/scsi/host1/bus0/target4/lun0/part4: No such file or directory
but it can be fixed using the same technique as above so I won't push it.
Andrew Morton [Fri, 18 Jul 2003 02:26:08 +0000 (19:26 -0700)]
[PATCH] use kmalloc for ia32 stacks
From: William Lee Irwin III <wli@holomorphy.com>
I've been slab allocating the stack on i386 for some time, and it has gone
without incident in pgcl, -wli, -mjb (?), and so on. kmalloc() is fine;
there isn't any particularly compelling reason for a dedicated slab as
there's no preconstruction to do, though it can be arranged.
Basically, it works, there's no obvious reason not to, and (even better)
it's not totally invisible to the VM and even makes overhead reportable.
Andrew Morton [Fri, 18 Jul 2003 02:26:01 +0000 (19:26 -0700)]
[PATCH] remove task_cache entirely
From: Manfred Spraul <manfred@colorfullife.com>
kernel/fork.c contains a disabled cache for task stuctures. task
structures are placed into the task cache only if "tsk==current", and
"tsk==current" is impossible. There is even a WARN_ON against that in
__put_task_struct().
So remove it entirely - it's dead code.
One problem is that order-1 allocations are not cached per-cpu - we can
use kmalloc for the stack.
Andrew Morton [Fri, 18 Jul 2003 02:25:55 +0000 (19:25 -0700)]
[PATCH] is_devfsd_or_child() deadlock fix
From: Andrey Borzenkov <arvidjaar@mail.ru>
The code that did proper check existed in 2.4 and was removed in 2.5 for
whatever reason. The patch restores it slightly modified as below.
2.4 code looks somewhat unclean in that
- it traverses task list without lock.
- it starts from current->real_parent but nothing prevents current be
init_task itself. This hung for me on 2.5 during boot. May be 2.4 does
something differently.
Andrew Morton [Fri, 18 Jul 2003 02:25:31 +0000 (19:25 -0700)]
[PATCH] Ext3 xattr credits fix for quotas
From: Andreas Gruenbacher <agruen@suse.de>
The xattr and acl code are not properly reserving credits for quotas.
EXT3_DATA_TRANS_BLOCKS is an overestimate of the credits required including
quotas. Make it a little more tight, and use it in the xattr and acl code
to be quota safe.
Alan Stern [Thu, 17 Jul 2003 07:46:26 +0000 (00:46 -0700)]
[PATCH] USB: Handle over current inputs on all Intel controllers
This patch for the UHCI driver changes the test for over current inputs,
which can cause false Resume indications with some of Intel's USB
controllers. Previously the code only checked for one specific controller
chip, but now another one has turned up that exhibits the same flaw. It
seems best just to check for Intel being the manufacturer, especially
since it doesn't hurt to check for the condition when it isn't present or
is only temporary.
[PATCH] Consolidate SCSI requeueing and add blk elevator hook
This patch removes the scsi mid layer dependency on __elv_add_request
and introduces a new blk_requeue_request() function so the block
layer specificially knows a requeue is in progress.
It also adds an elevator hook for elevators like AS which need to
hook into the requeue for correct adjustment of internal counters.