Andrew Morton [Sun, 5 Oct 2003 04:04:20 +0000 (21:04 -0700)]
[PATCH] fix "compat ioctl consolidation" for "move job
A little fix which is needed if both the "compat ioctl consolidation" and
"move job control fields from task_struct to signal_struct" patches are
applied.
Andrew Morton [Sun, 5 Oct 2003 04:04:11 +0000 (21:04 -0700)]
[PATCH] move job control fields from task_struct to
From: Roland McGrath <roland@redhat.com>
This patch completes what was started with the `process_group' accessor
function, moving all the job control-related fields from task_struct into
signal_struct and using process_foo accessor functions to read them. All
these things are per-process in POSIX, none per-thread. Off hand it's hard
to come up with the hairy MT scenarios in which the existing code would do
insane things, but trust me, they're there. At any rate, all the uses
being done via inline accessor functions now has got to be all good.
I did a "make allyesconfig" build and caught the few random drivers and
whatnot that referred to these fields. I was surprised to find how few
references to ->tty there really were to fix up. I'm sure there will be a
few more fixups needed in non-x86 code. The only actual testing of a
running kernel with these patches I've done is on my normal minimal x86
config. Everything works fine as it did before as far as I can tell.
One issue that may be of concern is the lack of any locking on multiple
threads diddling these fields. I don't think it really matters, though
there might be some obscure races that could produce inconsistent job
control results. Nothing shattering, I'm sure; probably only something
like a multi-threaded program calling setsid while its other threads do tty
i/o, which never happens in reality. This is the same situation we get by
using ->group_leader->foo without other synchronization, which seemed to be
the trend and noone was worried about it.
Andrew Morton [Sun, 5 Oct 2003 04:03:45 +0000 (21:03 -0700)]
[PATCH] ext3 block allocator locking fix
When the BKL was removed from ext3 we lost locking coverage for
get_block()-versus-get_block(). Nobody seems to have hit the race because
get_block() almost always runs under i_sem: only memory pressure-based
writeout over a file hole runs outside i_sem.
ext2 uses the dedicated i_meta_lock spinlock in the inode to provide the
needed locking. But ext3 already has an rwsem around all the get_block()
activity to protect it from truncate-related races.
So this patch just converts that rwsem into a semaphore, so concurrent
get_block() can never occur. This will be more efficient than adding the new
spinlock.
We lose the ability to have two threads run get_block() against the same file
at the same time but again, that only happens during pageout over a hole
anyway.
Andrew Morton [Sun, 5 Oct 2003 04:03:36 +0000 (21:03 -0700)]
[PATCH] EISA_bus cleanup
From: Marc Zyngier <mzyngier@freesurf.fr>, Christoph Hellwig
I'd like to kill willy's CONFIG_EISA_ALWAYS kludge. So make EISA_bus a
variable always when CONFIG_EISA is set and initialize it to 1 for alpha.
We probably want to do that only if the system actually supports eisa, but
I keep the old behaviour for now.
Andrew Morton [Sun, 5 Oct 2003 04:03:26 +0000 (21:03 -0700)]
[PATCH] kernel documentation fixes
From: Michael Still <mikal@stillhq.com>
The patch squelches build errors in the kernel-doc make targets by adding
documentation to arguements previously not documented, and updating the
argument names where they have changed.
Andrew Morton [Sun, 5 Oct 2003 04:03:17 +0000 (21:03 -0700)]
[PATCH] /proc/sys/auxv
From: Roland McGrath <roland@redhat.com>
This was supposed to be part of the recent mm_struct.saved_auxv[] patch.
The /proc addition is half the reason for the patch, and the more important
one (letting you debug live processes, while NT_AUXV in core dumps lets you
debug dead ones). The patch below was supposed to be part of the original.
Andrew Morton [Sun, 5 Oct 2003 04:02:51 +0000 (21:02 -0700)]
[PATCH] node enumeration fixes
From: Matthew Dobson <colpatch@us.ibm.com>
Here's a small update to the numnodes fix that went into -mm3. The biggest
changes are:
1) move the actual NODES_SHIFT and MAX_NUMNODES definitions into
linux/numa.h and include this in linux/mmzone.h, instead of being
directly in linux/mmzone.h. This allows other files to include *just*
the NUMNODES stuff w/out grabbing all of mmzone.h.
2) pull NODE_SHIFT out of linux/mm.h. This isn't used anywhere in the
kernel, and it will only get confused with NODES_SHIFT.
3) Fix the IA64 patch. The original patch I had sent out hadn't been
tested on IA64. It was mostly right, but there were circular
dependencies. All better now, and acked by Jesse.
4) In linux/mmzone.h, insert code to define MAX_NODES_SHIFT based on the
size of unsigned long. For 64-bit arches, we can have a much larger
value. This allows IA64 to have 100's or 1000's of nodes.
MAX_NODES_SHIFT is defined as 10 (ie: 1024 nodes) for 64-bit for now,
although it could likely be much larger. For 32-bit it is 6 (ie: 64
nodes).
5) Small cleanup in include/asm-arm/memory.h. Mostly the result of the
new linux/numa.h file. Much cleaner and more readable now.
Andrew Morton [Sun, 5 Oct 2003 04:02:01 +0000 (21:02 -0700)]
[PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [2/5]
From: Matthew Dobson <colpatch@us.ibm.com>
Remove MAX_NR_NODES. This value is only used in a couple of places, and
it's incorrectly used in all those places as far as I can tell. Replace
with MAX_NUMNODES. Create MAX_NODES_SHIFT and use this value to check
NODES_SHIFT is appropriate. A possible future patch should make
MAX_NODES_SHIFT vary based on 32 vs. 64 bit archs.
Andrew Morton [Sun, 5 Oct 2003 04:01:50 +0000 (21:01 -0700)]
[PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [1/5]
From: Matthew Dobson <colpatch@us.ibm.com>
This starts a series of cleanups against the way in which the various
architectures specify the number of nodes and memory zones. We end up
supporting up to 1024 memory zones on ia64, which is a recent requirement.
Has been tested on ia32, ia64 (UMA), ppa64 (UMA) and NUMAQ.
Make sure MAX_NUMNODES is defined in one and only one place. Remove
superfluous definitions. Instead of defining MAX_NUMNODES in
asm/numnodes.h, we define NODES_SHIFT there. Then in linux/mmzone.h we
turn that NODES_SHIFT value into MAX_NUMNODES.
Robin Farine [Sat, 4 Oct 2003 22:49:47 +0000 (23:49 +0100)]
[ARM PATCH] 1675/1: remove definitions of non-implemented system calls from include/asm-arm/unistd.h
Patch from Robin Farine
Remove the definitions of system call numbers from include/asm-arm/unistd.h for which the corresponding vector in arch/arm/kernel/calls.S points to sys_ni_syscall.
Since the new glibc (2.3.2) implements some of the system call wrapper functions based on the presence or absence of such definitions, only implemented system calls should have a corresponding __NR_xyz preprocessor symbol in unistd.h.
Nicolas Pitre [Sat, 4 Oct 2003 22:35:39 +0000 (23:35 +0100)]
[ARM PATCH] 1674/1: better ARM division routines
Patch from Nicolas Pitre
Here's my rewrite of the ARM division routines:
- take advantage of the clz instruction on ARMv5+
- simpler and faster code for modulo routines
- fast path for power of 2 divisors
- other miscellaneous optimizations
Russell King [Sat, 4 Oct 2003 12:38:39 +0000 (13:38 +0100)]
[ARM] Make ARM use Pat's generic PM suspend to RAM support
Hook the PXA and SA11x0 platform core power into the generic PM core.
Add support for freezing userspace processes. Make our apm emulation
call the generic PM suspend to memory infrastructure.
Russell King [Sat, 4 Oct 2003 12:16:04 +0000 (13:16 +0100)]
[ARM] leds.c, being so basic, needs linux/compiler.h
linux/init.h doesn't include linux/compiler.h, but needs some
definitions (the __attribute_unused__ stuff) from compiler.h.
Since this affects only two files, we include linux/compiler.h
directly into the affected files.
- MAINTAINERS:
- add the LinuxTV.org project as the DVB driver maintainer
- add me as the saa7146 v4l2 driver maintainer
- CREDITS: add me as the saa7146 v4l2 driver author
- Documentation/ioctl-number.txt:
- remove bogus reference to Linux DVD API, which never really existed
- remove bogus referenc to Philips saa7146 driver, which never came
to life
Andrew Morton [Sat, 4 Oct 2003 05:00:24 +0000 (22:00 -0700)]
[PATCH] more raw driver minor numbers
From: Badari Pulavarty <pbadari@us.ibm.com>
Since we have larger dev_t now, here is the patch to support large
number of RAW devices. The userlevel command "raw" also needs changes to
use this support - which in turn needs new glibc.
Witht he EXPORT_SYMBOL cleanups, net/netsyms.c has been removed. The
kernel-api DocBook docs still refer to this file, and because this file
is gone, "make htmldocs" and similar fails.
This just removes the reference and so fixes this docbook problem.
drivers/char/misc.c was changed to use the common list macros instead of
its own list code. The first open does load the module and increment
its use count, but a bug causes a failure to be reported anyway. This
causes an error return to user-space where there is none, and makes the
module non-unloadable.