This declares the pxa2xx_udc platform device, defines
the platform_data made available to that driver, and
allows different machines to customize that platform_data.
Same idea as in the FB driver. Be careful of patch conflicts
applying to other kernels, mostly due to different platform
devices being listed.
This adds a mechanism for a per-machine initcall, one that's
guaranteed to run only to initialize a kernel running on that
specific hardware. It's not strictly necessary, but it does
eliminate the need for certain boilerplate in machine-specific
support, to ensure it's only running on the right hardware:
/* in arch/arm/mach-xxx/MYMACHINE.c */
...
static int __init init_MYMACHINE(void)
{
if (!mach_is_MYMACHINE()) // often forgotten!!
return -EINVAL;
... declare and customize platform devices
...
return 0;
}
arch_initcall(init_MYMACHINE);
An init_MYMACHINE() call still exists, but it'd be declared
as part of the machine definition.
Linus Torvalds [Thu, 8 Jan 2004 03:46:52 +0000 (19:46 -0800)]
Fix subtle fork() race that Ingo noticed.
We must not mark the process TASK_STOPPED early, because
that might allow a signal to wake it up before we actually
got to the "wake_up_forked_process()" state. Total confusion
would happen.
Make wake_up_forked_process() verify the new world order.
Dave Jones [Wed, 7 Jan 2004 14:53:58 +0000 (14:53 +0000)]
[AGPGART] Add support for Radeon IGP345M to ATI GART driver.
Also consolidate a bunch of convoluted if's into a single
"is this an r200 or r300" function.
Andrew Morton [Wed, 7 Jan 2004 13:56:59 +0000 (05:56 -0800)]
[PATCH] ppc64: Add missing section definition
From: Anton Blanchard <anton@samba.org>
For a laugh we moved the BSS and our world exploded. Turns out we zero
from __bss_start to _end. Add __bss_stop to our section definitions so
we can use it instead.
Dave Kleikamp [Wed, 7 Jan 2004 02:35:15 +0000 (18:35 -0800)]
[PATCH] don't clear i_sb
From: Christoph Hellwig <hch@lst.de>
JFS currently clears i_sb in some error pathes which can make the
core kernel OOPS because it may never be NULL. Noticed because some
IBM people try to "fix" the core kernel for it now..
Andrew Morton [Tue, 6 Jan 2004 23:52:48 +0000 (15:52 -0800)]
[PATCH] ia32 sched_clock() deadlock fix
From: Ingo Molnar <mingo@elte.hu>,
Voyager is getting odd deadlocks due to the taking of xtime_lock() in
sched_clock()->get_jiffies_64().
I had this patch queued up to fix a different deadlock, which occurs when we
relax the requirement that TSC's be synchronised across CPUs. But it will
fix James' deadlock too.
Andrew Morton [Tue, 6 Jan 2004 23:52:30 +0000 (15:52 -0800)]
[PATCH] JFS fix for NFS on little-endian systems
From: Dave Kleikamp <shaggy@austin.ibm.com>
After Jose debugged the problem down to the routine jfs_get_parent, we
were able to find the problem. I believe it only affects users of
NFS-exported JFS file systems on big-endian hardware.
The problem was a missing le32_to_cpu macro. The patch also fixes a
return code to be more consistent other implementations of get_parent.
Andrew Morton [Tue, 6 Jan 2004 23:52:21 +0000 (15:52 -0800)]
[PATCH] fix sysfs oops
From: Greg KH <greg@kroah.com>
This fixes an oops when a kobject is unregistered before it's child is.
The usb-serial devices show this bug very easily (yank out a device
while its port is opened...)
Patch was originally written by Mike Gorse <mgorse@mgorse.dhs.org>
Andrew Morton [Tue, 6 Jan 2004 23:52:12 +0000 (15:52 -0800)]
[PATCH] MSI build fixes
Add missing NR_VECTORS definition to visws and pc9800. Also, make MSI
support dependent on CONFIG_X86_IO_APIC, as it won't build without IOAPIC
support.
Adam Belay [Tue, 6 Jan 2004 12:08:21 +0000 (04:08 -0800)]
[PATCH] Fix PnP BIOS call
The recent escd fix I have made corrects a thinko in the PnPBIOS code and it
turns out that faults from calling /proc/pnp/bus/escd were probably not caused
by BIOS bugs.
Fix for oops on rmmod caused by *_remove() function marked as __devinit
(and thus discarded after module initialization - if CONFIG_MODULES=y
and CONFIG_HOTPLUG is not set).
This patch changes __devinit to __devexit and adds __devexit_p() where
pointer to such function is used.
The only exception is au1000, where au1000_remove() is called from
cleanup_au1000() function - __devinit is jest removed there.
This fixes BUG-on-swapout for srmmu-based systems. The problem is
caused by kmap_atomic_to_page being fed an aliased (pagetable) address
and returning bogons. This also adjusts the pkmap and fixmap base
addresses so they cannot overlap.
This patch for 2.6 fixes the problem found by Zoltan Farkas
with mixed PCI/ISA and a non-modular config. The problem is the old_netdev
ISA probing isn't skipping eth0 which already got assigned by the PCI
initialization.