I had to move the rtnetlink_init and init_netlink calls to af_netlink init time, so that
the sk_alloc called down the rtnetlink_init callchain is done after the PF_NETLINK
net_proto_family is sock_registered, and because of that the af_netlink init function
call had to be moved to earlier by means of subsys_initcall (DaveM's suggestion).
This fixes a problem with drivers that have request on the stack for
some operations, like IDE. If we wake before releasing the request, the
stack may have already disappeared beneath us when the rest of
end_that_request_last() is run.
Eli Carter [Mon, 21 Apr 2003 18:31:47 +0000 (19:31 +0100)]
[ARM PATCH] 1511/1: iop321 #define cleanup
Patch from Eli Carter
# Mon Apr 21 11:20:06 CDT 2003 ejc@rnd-linux-c84
# pci-io-mem-size-defines
#
# Rename the IOP321_PCI_WINDOW_SIZE #defines to use
# IOP321_PCI_{IO,MEM}_{BASE,SIZE} instead. This makes the #defines a bit more
# consistent. No functional change, though it does bring up the question of
# whether res[].end should be BASE+SIZE-1 or BASE+SIZE.
#
# Diffed against linux-2.5.67-rmk1+1501-3+1506+1508-10
#
# arch/arm/mach-iop3xx/iop321-pci.c | 8 ++++----
# include/asm-arm/arch-iop3xx/iop321.h | 10 ++++------
# 2 files changed, 8 insertions(+), 10 deletions(-)
#
This implements automatic code patching of memory barriers based
on the CPU capabilities. Normally lock ; addl $0,(%esp) barriers
are used, but these are a bit slow on the Pentium 4.
Linus proposed this a few weeks ago after the support for SSE1/SSE2
barriers was introduced. I now got around to implement it.
The main advantage is that it allows distributors to ship less binary
kernels but still get fast kernels. In particular it avoids the
need of a special Pentium 4 kernel.
The patching code is quite generic and could be used to patch
other instructions (like prefetches or specific other critical
instructions) too.
Thanks to Rusty's in kernel loader it also works seamlessly for modules.
The patching is done before other CPUs start to avoid potential
erratas with self modifying code on SMP systems. It makes no
attempt to automatically handle assymetric systems (an secondary
CPU having less capabilities than the boot CPU). In this
case just boot with "noreplacement"
Andrew Morton [Mon, 21 Apr 2003 09:23:10 +0000 (02:23 -0700)]
[PATCH] More careful about VMA merging
The VMA merging code can merge vmas which have a ->vm_ops->close() handler.
But this means that per-VMA resources in one of the merged VMAs will not be
freed.
Fix that up by just refusing to merge any VMA's which look "complex": they
have special flags set or they have a ->close handler.
Robert Love [Mon, 21 Apr 2003 06:24:30 +0000 (23:24 -0700)]
[PATCH] trivial task_prio() fix
Here is a trivial fix for task_prio() in the case MAX_RT_PRIO !=
MAX_USER_RT_PRIO. In this case, all priorities are skewed by
(MAX_RT_PRIO - MAX_USER_RT_PRIO).
The fix is to subtract the full MAX_RT_PRIO value from p->prio, not just
MAX_USER_RT_PRIO. This makes sense, as the full priority range is
unrelated to the maximum user value. Only the real maximum RT value
matters.
This has been in Andrew's tree for awhile, with no issue. Also, Ingo
acked it.
Allow gcc to generate better code for irq handling.
Ok, now that most drivers have been converted to the new
irqreturn_t, we can remove the fascist type-checks and just
use a regular integer type which has a simpler calling
convention.
Ben Collins [Mon, 21 Apr 2003 04:28:14 +0000 (21:28 -0700)]
[PATCH] 1394 updates
- New irq handler prototypes.
- Lots of un-enumurated locking fixes/cleanups (thanks in large part to
spinlock debug compile options in the kernel).
- Other various trivial fixes.
Andrew Morton [Mon, 21 Apr 2003 03:20:32 +0000 (20:20 -0700)]
[PATCH] irqs: multimedia drivers
Update a couple of media drivers to the new IRQ API.
Some stuff in there doesn't link btw:
drivers/built-in.o: In function `rds_waitread':
drivers/built-in.o(.text+0x6c152): undefined reference to `aci_port'
drivers/built-in.o: In function `rds_rawwrite':
drivers/built-in.o(.text+0x6c1a3): undefined reference to `aci_port'
Fix IO-APIC vector allocation boundary case - we never want to
allocate FIRST_SYSTEM_VECTOR as an external interrupt. It's unlikely,
but could happen if we have a _ton_ of interrupt sources.
Randy Dunlap [Sun, 20 Apr 2003 08:20:38 +0000 (01:20 -0700)]
[PATCH] replace URLs in Kconfig
This is a patch from Robert P.J. Day that replaces www.linuxdoc.org
(which is outdated and unspported according to www.tldp.org)
with www.tldp.org in lots of Kconfig files.
Jeff Garzik [Sun, 20 Apr 2003 08:10:07 +0000 (04:10 -0400)]
Modernize rcpci45 I2O LAN driver (#204):
* Convert to PCI DMA mapping API (Francios Romieu). Gets driver
compiling again. Fixes bugzilla bug #204.
* use SET_MODULE_OWNER
* remove MOD_*_USE_COUNT from all but one place
(and add FIXME to that one place)
* fix printk in rclanmtl.c, though more work is needed