Add support for _PDC to the ACPI processor "Performance States library"
(perflib). If this field is empty, a bogus entry is passed to the _PDC
method so that the default (io) access is returned again. This patch
is partly based on David Moore's patch to
arch/i386/kernel/cpu/cpufreq/acpi.c, sent to the cpufreq mailing list on
June 24th, 2003.
[ACPI] Move the _PSS and _PCT access to drivers/acpi/processor.c
so that it can be used by various low-level drivers
(centrino, acpi-io, powernow-k{7,8}, ...)
from Dominik Brodowski
- remove unnecessary usage of flags.performance
- remove double check of _PPC in acpi-cpufreq driver as it's handled in
drivers/acpi/processor.c already
- remove unneeded EXPORT_SYMBOL
- allocation of memory only for probed CPUs
- add unregistration function to the core
- fix OOPS when PST has core_frequency values of zero
- fix cpufreq_get() output
- fix /proc/acpi/processor/*/performance write support [deprecated]
[ACPI] remove unnecessary check in acpi-cpufreq driver
from Dominik Brodowski
The acpi cpufreq driver includes a test at startup which detects whether
ACPI P-States are supported on any CPU, and whether transitions work.
However, this test is faulty: it is only run _after_ the acpi driver is
registered, causing race situations. Also, it doesn't save anything _as_ the
driver is already registered. So, it can safely be removed.
[ACPI] update passive cooling algorithm
from Dominik Brodowski
The current algorithm used by Linux ACPI for passive thermal management has
two shortcomings:
- if increasing the CPU processing power as a thermal situation goes away,
throttling states are decreased later than performance states. This is
not wise -- it should be the opposite ordering of going "up".
- only if the ACPI CPUfreq driver is used, performance states are used.
A generalized approach would offer passive cooling even if the ACPI
P-States cpufreq driver cannot be used (faulty BIOS, FixedHW access, etc.)
The purpose of this release is primarily to update the copyright years
in each module, thus causing a huge number of diffs. There are a few
small functional changes, however.
Improved error messages when there is a problem finding one or more of
the required base ACPI tables
Reintroduced the definition of APIC_HEADER in actbl.h
Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
Removed extraneous reference to NewObj in dsmthdat.c
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.