Tony Lindgren [Sat, 25 Feb 2006 00:46:47 +0000 (16:46 -0800)]
[PATCH] Fix next_timer_interrupt() for hrtimer
This patch adds support for hrtimer to next_timer_interrupt()
and fixes current breakage.
Function next_timer_interrupt() got broken with a recent patch 6ba1b91213e81aa92b5cf7539f7d2a94ff54947c as sys_nanosleep() was
moved to hrtimer. This broke things as next_timer_interrupt()
did not check hrtimer tree for next event.
Function next_timer_interrupt() is needed with dyntick
(CONFIG_NO_IDLE_HZ, VST) implementations, as the system can
be in idle when next hrtimer event was supposed to happen.
At least ARM and S390 currently use next_timer_interrupt().
Tony Lindgren [Wed, 22 Feb 2006 03:26:44 +0000 (19:26 -0800)]
hrtimer: Reverse patch to switch sys_nanosleep to hrtimer
Patch 6ba1b91213e81aa92b5cf7539f7d2a94ff54947c hrtimer: switch
sys_nanosleep to hrtimer breaks dynamic tick. All usleep calls
will fail as the next_timer_interrupt currently does not scan
hrtimer queues. This means the system will be potentially
asleep in the idle mode when the next hrtimer is supposed to
run. Until hrtimer_next_interrupt is implemented, we'll use
the old sys_nanosleep.
Juha Yrjola [Tue, 21 Feb 2006 16:08:48 +0000 (18:08 +0200)]
ARM: OMAP: Add external LCD controller support for DSP Gateway
If an external LCD controller is in manual update mode, the DSP
must let the FB driver know when a frame should be send over the
remote framebuffer interface.
Original code by Toshihiro, FB parts by Imre.
Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Juha Yrjola [Tue, 21 Feb 2006 15:57:23 +0000 (17:57 +0200)]
ARM: OMAP: MMC driver interoperability updates
- Decreased the MMC max sectors count
Some MMC cards get stuck hard when the max sectors count is >= 128.
- Add a delay after enabling the MMC power regulators
Regulator voltages typically have a rising delay. We have to make sure
the voltage has stabilized before sending the MMC init sequence.
- Add MMC cover switch last state initialization
The default last state was left to value 0 (= cover closed). If the cover
switch was initially open and then closed, no kevent about it is sent,
because the state didn't change from the last seen state.
- Add MMC transfer timeout
Very rarely the controller itself gets stuck. It needs a really hard reset
to recover. Add a timeout to work around against this.
Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Tony Lindgren [Mon, 20 Feb 2006 23:51:49 +0000 (15:51 -0800)]
ARM: OMAP: Set serial 8250 ECB for TX fifo
Code to fix serial TX fifo by Richard Woodruff.
The extended capabilities bit is needed to write fcr, or else some
settings don't get set. That is what the OMAP-UART data sheet says.
The write water mark bits 4:5 are not accessible unless ECB is set.
The data sheet says it is TI16C750 compatible but it seems to share more
with what the code calls a TI16C752. The 750 has a DLAB to set 64bit
fifo and I don't believe that is the case for ours.
A minor note is we are still only using 32 bytes of the 64 byte TX fifo
for transmits in the current code. I'm not sure if there is an
application that this matters to.
Note that the current code id's OMAP serial ports as a 16654 which isn't
quite correct.
Also note that to use the actual TX watermark interrupt set at 32bytes
required too ugly of a hack to use (not use OMAP_SCR=0).
Hiroki Kaminaga [Mon, 20 Feb 2006 23:04:35 +0000 (15:04 -0800)]
[PATCH] ARM: OMAP: update flash timing on OMAP5912OSK
In linux-2.6.15-omap1 patch, in arch/arm/mach-omap1/board-osk.c,
EMIFS_CS3_VAL is set to 0x30003361.
This was introduced to fix flash timing error.
http://linux.omap.com/pipermail/linux-omap-open-source/2005-July/004717.html
On the other hand, in SectionE:Errata in EMIFS timing at:
http://omap.spectrumdigital.com/osk5912/osk5912_faq.html
EMIFS_CS3_VAL was set to 0x88013141, fixing write/read rate.
Reading from
http://focus.ti.com/lit/ug/spru742/spru742.pdf
3.6 EMIFS Registers,
0x30003361 will set read mode from "page mode, 4 word/page" to
"asynchronous read", and read from flash slowed down.
I tested with new value 0x88013141, and works good so far.
Dirk Behme [Mon, 20 Feb 2006 22:43:48 +0000 (14:43 -0800)]
ARM: OMAP: Add missing '=' in omap_ts.c as proposed by
Andrzej Zaborowski.
Fix error
CC drivers/input/touchscreen/omap/omap_ts.o
drivers/input/touchscreen/omap/omap_ts.c:230: error: syntax
error
before '{' token
drivers/input/touchscreen/omap/omap_ts.c:233: error: syntax
error
before '}' token
Signed-off-by: Dirk Behme <dirk.behme_at_gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Ladislav Michl [Mon, 20 Feb 2006 22:38:35 +0000 (14:38 -0800)]
[PATCH] ARM: OMAP: various whitespace cleanups
Please use 'let c_space_errors=1' in vim to see what this patch fixes.
While there, remove initilizers from variables which are by default
initialized to zero (to respect linux policy). No code changes.
Imre Deak [Mon, 20 Feb 2006 16:51:18 +0000 (18:51 +0200)]
ARM: OMAP: lcd_lph8923: fix register read / write
A local variable hiding the one with the same name at an upper scope,
resulted in storing the register address instead of the desired value in
LCD registers.
In register writes there is no extra cycle after the command, so we use
only 9-bit word size.
Fix from Peter Ujfalusi <peter.ujfalusi@nokia.com>.
Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
acpi_rs_get_list_length() needs to account for all the vendor-defined data
bytes. Failing to include these causes buffers to be sized too small,
which causes slab corruption when we later convert AML to resources and run
off the end of the buffer.
This causes slab corruption on machines that use ACPI vendor-defined
resources. All HP ia64 machines do, and I'm told that some NEC machines
may as well.
David Gibson [Fri, 17 Feb 2006 21:52:56 +0000 (13:52 -0800)]
[PATCH] powerpc: Fix accidentally-working typo in __pud_free_tlb
One of the parameters to the __pud_free_tlb() macro for powerpc is
incorrect (see patch) . We get away with it by accident, because the one
place the macro is called, the second parameter is a variable named "pud".
Signed-off-by: David Gibson <dwg@au1.ibm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Johannes Berg [Fri, 17 Feb 2006 21:52:54 +0000 (13:52 -0800)]
[PATCH] allow windfarm_pm112 module to load
The windfarm_pm112 module relies on smu_sat_get_sdb_partition which is in
windfarm_smu_sat.c but is not exported to modules, so despite Kconfig
having the option to build the pm112 as modules, this can never be loaded.
This patch fixes that by exporting smu_sat_get_sdb_partition with
EXPORT_SYMBOL_GPL
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Restore the compatibility with the older code and make it possible to
suspend if the kernel command line doesn't contain the "resume=" argument
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Heiko Carstens [Fri, 17 Feb 2006 21:52:48 +0000 (13:52 -0800)]
[PATCH] s390: smp initialization speed
The last changes that introduced the additional_cpus command line parameter
also introduced a regression regarding smp initialization speed. In
smp_setup_cpu_possible_map() cpu_present_map is set to the same value as
cpu_possible_map. Especially that means that bits in the present map will be
set for cpus that are not present. This will cause a slow down in the initial
cpu_up() loop in smp_init() since trying to take cpus online that aren't
present takes a while.
Fix this by setting only bits for present cpus in cpu_present_map and set
cpu_present_map to cpu_possible_map in smp_cpus_done().
Heiko Carstens [Fri, 17 Feb 2006 21:52:47 +0000 (13:52 -0800)]
[PATCH] s390: possible_cpus parameter
Introduce possible_cpus command line option. Hard sets the number of bits set
in cpu_possible_map. Unlike the additional_cpus parameter this one guarantees
that num_possible_cpus() will stay constant even if the system gets rebooted
and a different number of cpus are present at startup.
Heiko Carstens [Fri, 17 Feb 2006 21:52:46 +0000 (13:52 -0800)]
[PATCH] s390: additional_cpus parameter
Introduce additional_cpus command line option. By default no additional cpu
can be attached to the system anymore. Only the cpus present at IPL time can
be switched on/off. If it is desired that additional cpus can be attached to
the system the maximum number of additional cpus needs to be specified with
this option.
This change is necessary in order to limit the waste of per_cpu data
structures.
Heiko Carstens [Fri, 17 Feb 2006 21:52:46 +0000 (13:52 -0800)]
[PATCH] s390: fix preempt_count of idle thread with cpu hotplug
Set preempt_count of idle_thread to zero before switching off cpu. Otherwise
the preempt_count will be wrong if the cpu is switched on again since the
thread will be reused.
Cornelia Huck [Fri, 17 Feb 2006 21:52:45 +0000 (13:52 -0800)]
[PATCH] s390: ccw device disbanding
If __ccw_device_disband_start() fails to initiate disbanding, it should finish
with ccw_device_disband_done() (which leaves the device in offline state)
instead of ccw_device_verify_done() (which leaves the device in online state).
Ingo Molnar [Fri, 17 Feb 2006 21:52:44 +0000 (13:52 -0800)]
[PATCH] Introduce CONFIG_DEFAULT_MIGRATION_COST
Heiko Carstens <heiko.carstens@de.ibm.com> wrote:
The boot sequence on s390 sometimes takes ages and we spend a very long
time (up to one or two minutes) in calibrate_migration_costs. The time
spent there differs from boot to boot. Also the calculated costs differ
a lot. I've seen differences by up to a factor of 15 (yes, factor not
percent). Also I doubt that making these measurements make much sense on
a completely virtualized architecture where you cannot tell how much cpu
time you will get anyway.
So introduce the CONFIG_DEFAULT_MIGRATION_COST method for an architecture
to set the scheduler migration costs. This turns off automatic detection
of migration costs. Makes sense on virtual platforms, where migration
costs are hard to measure accurately.
Peter Staubach [Fri, 17 Feb 2006 21:52:36 +0000 (13:52 -0800)]
[PATCH] fix deadlock in ext2
Fix a deadlock possible in the ext2 file system implementation. This
deadlock occurs when a file is removed from an ext2 file system which was
mounted with the "sync" mount option.
The problem is that ext2_xattr_delete_inode() was invoking the routine,
sync_dirty_buffer(), using a buffer head which was previously locked via
lock_buffer(). The first thing that sync_dirty_buffer() does is to lock
the buffer head that it was passed. It does this via lock_buffer(). Oops.
The solution is to unlock the buffer head in ext2_xattr_delete_inode()
before invoking sync_dirty_buffer(). This makes the code in
ext2_xattr_delete_inode() obey the same locking rules as all other callers
of sync_dirty_buffer() in the ext2 file system implementation.
Signed-off-by: Peter Staubach <staubach@redhat.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Fri, 17 Feb 2006 19:38:21 +0000 (20:38 +0100)]
[PATCH] Handle holes in node mask in node fallback list setup
Change the find_next_best_node algorithm to correctly skip
over holes in the node online mask. Previously it would not handle
missing nodes correctly and cause crashes at boot.
Jay Vosburgh [Wed, 8 Feb 2006 05:17:22 +0000 (21:17 -0800)]
[PATCH] bonding: fix a locking bug in bond_release
bond_release returns EINVAL without releasing the bond lock if the
slave device is not being bonded by the bond. The following patch
ensures that the lock is released in this case.
Signed-off-by: Stephen J. Bevan <stephen@dino.dnsalias.com> Acked-by: Jay Vosburgh <fubar@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Frank Pavlic [Tue, 7 Feb 2006 16:04:38 +0000 (17:04 +0100)]
[PATCH] s390: some qeth driver fixes
[patch 2/2] s390: some qeth driver fixes
From: Frank Pavlic <fpavlic@de.ibm.com>
- fixed kernel panic when using EDDP support in Layer 2 mode
- NULL pointer exception in qeth_set_offline fixed.
- setting EDDP in Layer 2 mode did not set NETIF_F_(SG/TSO)
flags when device became online.
- use sscanf for parsing and converting IPv4 addresses
from string to __u8 values.
- qeth_string_to_ipaddr6 fixed. in case of double colon
the converted IPv6 address out from the string was not correct
in previous implementation.
Frank Pavlic [Tue, 7 Feb 2006 16:04:36 +0000 (17:04 +0100)]
[PATCH] s390: lcs performance enhancements
[patch 1/2] s390: lcs performance enhancements
From: Klaus Wacker <kdwacker@de.ibm.com>
- When flood pinging (with large packet size) an LCS device,
about 90 % of all packets are dropped by driver.
- increased number of lcs IO buffers to 32.
- use netif_stop_queue/netif_wake_queue in lcs_start_xmit routine
- don't lock the whole xmit routine but just the piece of code where
tx_buffer is touched.
Andrew Morton [Fri, 10 Feb 2006 10:00:43 +0000 (02:00 -0800)]
[PATCH] smctr warning fix
drivers/net/tokenring/smctr.c: In function `smctr_load_firmware':
drivers/net/tokenring/smctr.c:2981: warning: assignment discards qualifiers from pointer target type
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Users report problems w/ auto-negotiation disabled and the link set
to 100/Half or 10/Half. Problems range from poor performance to no
link at all.
The current sky2 code does not set things properly on link up if
autonegotiation is disabled. Plus it does not contemplate a 10Mbit
setting at all. This patch corrects that.
Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This is a clone of John Linville's fixed for speed setting on sky2 driver.
The skge driver has the same code (and bug). It would not allow manually forcing
100 and 10 mbit.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
The sk98lin driver was changed a while ago to remove support for the
D-Link 530T card because that hardware has no working VPD data. The help
text for Kconfig was not updated.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Joshua Kinard [Fri, 17 Feb 2006 03:52:25 +0000 (03:52 +0000)]
[PATCH] Fix SGI O2 compile error in drivers/video/gbefb.c
A sysfs function call uses the wrong parameter, and thus breaks a build on
SGI O2.
CC drivers/video/gbefb.o
drivers/video/gbefb.c: In function ‘gbefb_remove’:
drivers/video/gbefb.c:1246: error: ‘dev’ undeclared (first use in this function)
drivers/video/gbefb.c:1246: error: (Each undeclared identifier is reported only once
drivers/video/gbefb.c:1246: error: for each function it appears in.)
make[2]: *** [drivers/video/gbefb.o] Error 1
Paul Mackerras [Thu, 16 Feb 2006 23:30:23 +0000 (10:30 +1100)]
[PATCH] Provide an interface for getting the current tick length
This provides an interface for arch code to find out how many
nanoseconds are going to be added on to xtime by the next call to
do_timer. The value returned is a fixed-point number in 52.12 format
in nanoseconds. The reason for this format is that it gives the
full precision that the timekeeping code is using internally.
The motivation for this is to fix a problem that has arisen on 32-bit
powerpc in that the value returned by do_gettimeofday drifts apart
from xtime if NTP is being used. PowerPC is now using a lockless
do_gettimeofday based on reading the timebase register and performing
some simple arithmetic. (This method of getting the time is also
exported to userspace via the VDSO.) However, the factor and offset
it uses were calculated based on the nominal tick length and weren't
being adjusted when NTP varied the tick length.
Note that 64-bit powerpc has had the lockless do_gettimeofday for a
long time now. It also had an extremely hairy routine that got called
from the 32-bit compat routine for adjtimex, which adjusted the
factor and offset according to what it thought the timekeeping code
was going to do. Not only was this only called if a 32-bit task did
adjtimex (i.e. not if a 64-bit task did adjtimex), it was also
duplicating computations from kernel/timer.c and it wasn't clear that
it was (still) correct.
The simple solution is to ask the timekeeping code how long the
current jiffy will be on each timer interrupt, after calling
do_timer. If this jiffy will be a different length from the last one,
we then need to compute new values for the factor and offset used in
the lockless do_gettimeofday. In this way we can keep xtime and
do_gettimeofday in sync, even when NTP is varying the tick length.
Note that when adjtimex varies the tick length, it almost always
introduces the variation from the next tick on. The only case I could
see where adjtimex would vary the length of the current tick is when
an old-style adjtime adjustment is being cancelled. (It's not clear
to me why the adjustment has to be cancelled immediately rather than
from the next tick on.) Thus I don't see any real need for a hook in
adjtimex; the rare case of an old-style adjustment being cancelled can
be fixed up at the next tick.
Signed-off-by: Paul Mackerras <paulus@samba.org> Acked-by: john stultz <johnstul@us.ibm.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Fri, 17 Feb 2006 00:39:16 +0000 (01:39 +0100)]
[PATCH] Handle all and empty zones when setting up custom zonelists for mbind
The memory allocator doesn't like empty zones (which have an
uninitialized freelist), so a x86-64 system with a node fully
in GFP_DMA32 only would crash on mbind.
Fix that up by putting all possible zones as fallback into the zonelist
and skipping the empty ones.
In fact the code always enough allocated space for all zones,
but only used it for the highest. This change just uses all the
memory that was allocated before.
This should work fine for now, but whoever implements node hot removal
needs to fix this somewhere else too (or make sure zone datastructures
by itself never go away, only their memory)
Andi Kleen [Thu, 16 Feb 2006 22:42:16 +0000 (23:42 +0100)]
[PATCH] x86_64: Always pass full number of nodes to NUMA hash computation
Previously the numa hash code would be confused by holes in the node space
and stop early. This is the first part of the fix for the non boot issue
with empty nodes on Opterons.
Andi Kleen [Thu, 16 Feb 2006 22:42:04 +0000 (23:42 +0100)]
[PATCH] x86_64: Don't enable ATI apicmaintimer workaround when the machine has C2 or C3
Many laptops have problems with ticking the local APIC timer in C2/C3.
The code added earlier to use it by default on ATI didn't really work
for them. Don't enable it when the system supports C2/C3.
This doesn't fix the problem fully, but at least it's not worse than before.
Jan Beulich [Thu, 16 Feb 2006 22:41:55 +0000 (23:41 +0100)]
[PATCH] x86_64: make touch_nmi_watchdog() not touch impossible cpus' private data
Along with that, also suppress the memory touching altogether when the
watchdog is not running, to eliminate needless crosstalk. Plus ad a call
to it to make things consistent (one could also consider removing the call
in enable_timer_nmi_watchdog()).
Dan Williams [Sun, 5 Feb 2006 22:55:16 +0000 (17:55 -0500)]
[PATCH] wireless/atmel: fix Open System authentication process bugs
This patch fixes a number of bugs in the authentication process:
1) When falling back to Shared Key authentication mode from Open System,
a missing 'return' would cause the auth request to be sent, but would
drop the card into Management Error state. When falling back, the
driver should also indicate that it is switching to Shared Key mode by
setting exclude_unencrypted.
2) Initial authentication modes were apparently wrong in some cases,
causing the driver to attempt Shared Key authentication mode when in
fact the access point didn't support that mode or even had WEP disabled.
The driver should set the correct initial authentication mode based on
wep_is_on and exclude_unencrypted.
3) Authentication response packets from the access point in Open System
mode were getting ignored because the driver was expecting the sequence
number of a Shared Key mode response. The patch separates the OS and SK
mode handling to provide the correct behavior.
Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Dan Williams [Sun, 5 Feb 2006 22:52:21 +0000 (17:52 -0500)]
[PATCH] wireless/atmel: fix setting TX key only in ENCODEEXT
The previous patch that added ENCODEEXT and AUTH support to the atmel
driver contained a slight error which would cause just setting the TX
key index to also set the encryption key again. This patch allows any
combination of setting the TX key index and setting an encryption key.
Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Nicolas Pitre [Thu, 16 Feb 2006 22:36:15 +0000 (22:36 +0000)]
[ARM] 3339/1: ARM EABI: make unmuxed syscalls visible
Patch from Nicolas Pitre
With EABI the multiplex sys_ipc and sys_socketcall syscalls are
unavailable and their support code even removed from the compiled
kernel, and the new unmuxed syscalls must be used instead.
Make those syscall numbers visible.
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Martin Michlmayr [Thu, 16 Feb 2006 22:36:12 +0000 (22:36 +0000)]
[ARM] 3337/1: Fix NSLU2 flash support according to window size configuration patch
Patch from Martin Michlmayr
ARM patch 3226/1 (IXP4xx runtime expansion bus window size configuration)
forgot to update mach-ixp4xx/nslu2-setup.c which leads to the following
compilation error. Update NSLU2 flash support following patch 3226/1.
CC arch/arm/mach-ixp4xx/nslu2-setup.o
arch/arm/mach-ixp4xx/nslu2-setup.c:30: error: \91NSLU2_FLASH_BASE\92 undeclared here (not in a function)
arch/arm/mach-ixp4xx/nslu2-setup.c:31: error: \91NSLU2_FLASH_SIZE\92 undeclared here (not in a function)
make[1]: *** [arch/arm/mach-ixp4xx/nslu2-setup.o] Error 1
make: *** [arch/arm/mach-ixp4xx] Error 2
Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
---
nslu2-setup.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ashok Raj [Thu, 16 Feb 2006 22:01:48 +0000 (14:01 -0800)]
[IA64] Count disabled cpus as potential hot-pluggable CPUs
Minor updates to earlier patch.
- Added to documentation to add ia64 as well.
- Minor clarification on how to use disabled cpus
- used plain max instead of max_t per Andew Morton.
Signed-off-by: Ashok Raj <ashok.raj@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Mark Fasheh [Thu, 9 Feb 2006 21:23:39 +0000 (13:23 -0800)]
[PATCH] ocfs2: only checkpoint journal when asked to
Disable automatic checkpointing of the journal - this is a relic from older
ocfs2 days. Worth quite a bit of performance on longer running single node
tests.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Kurt Hackel [Thu, 19 Jan 2006 01:07:47 +0000 (17:07 -0800)]
[PATCH] ocfs2: manually grant remote recovery lock
* fix a hang in recovery that occurred in dlmlock_remote. the $RECOVERY
lock was never moved to the granted queue even after getting DLM_NORMAL
back from the master node.
Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Kurt Hackel [Thu, 19 Jan 2006 01:05:38 +0000 (17:05 -0800)]
[PATCH] ocfs2: add dlm_wait_for_node_death
* add dlm_wait_for_node_death function to be used after receiving a network
error. this will wait for the given timeout to allow the heartbeat
callbacks to update the domain map. without this, some paths may spin
and consume enough cpu that the heartbeat gets starved and never updates.
Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Russell King [Thu, 16 Feb 2006 16:48:31 +0000 (16:48 +0000)]
[MMC] mmci: allow small data transfers
If a data transfer is small (less than a FIFO size) we would
hang waiting for the data to be read due to the PIO interrupt
not occuring. We allowed for this in our PIO interrupt handler,
but not when setting up a data transfer.
Apply the "fix" when setting up a data transfer as well.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
NeilBrown [Thu, 16 Feb 2006 03:43:01 +0000 (14:43 +1100)]
[PATCH] Fix over-zealous tag clearing in radix_tree_delete
If a tag is set for a node being deleted from a radix_tree, then that
tag gets cleared from the parent of the node, even if it is set for some
siblings of the node begin deleted.
This patch changes the logic to include a test for any_tag_set similar
to the logic a little futher down. Care is taken to ensure that
'nr_cleared_tags' remains equals to the number of entries in the 'tags'
array which are set to '0' (which means that this tag is not set in the
tree below pathp->node, and should be cleared at pathp->node and
possibly above.
[ Nick says: "Linus FYI, I was able to modify the radix tree test
harness to catch the bug and can no longer trigger it after the fix.
Resulting code passes all other harness tests as well of course." ]
Signed-off-by: Neil Brown <neilb@suse.de> Acked-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Russell King [Thu, 16 Feb 2006 11:08:09 +0000 (11:08 +0000)]
[ARM] Fix SMP initialisation oops
A change to the SMP initialisation caused the following oops:
CPU1: Booted secondary processor
CPU1: D VIPT write-back cache
CPU1: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
CPU1: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
<7>Calibrating delay loop... 83.14 BogoMIPS (lpj=415744)
<1>Unable to handle kernel NULL pointer dereference at virtual address 0000001c
...
PC is at enqueue_task+0x1c/0x64
LR is at activate_task+0xcc/0xe4
SMP initialisation now requires cpu_possible_map to be initialised in
setup_arch(). Move this from smp_prepare_cpus() to smp_init_cpus()
and call it from our setup_arch() if CONFIG_SMP is enabled.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Daniel Yeisley [Wed, 15 Feb 2006 23:17:41 +0000 (15:17 -0800)]
[PATCH] x86_64: early initialization of cpu_to_node
The early initialization of cpu_to_node code as it is now only updates the
cpu_to_node array, and does not update cpu_pda()->nodemember. This will
cause numa_node_id() to return 0 on systems where CPU 0 is not on Node 0.
This leads to a kernel panic in slab.c.
I've tested the patch below on a 16 processor x86_64 ES7000-600 server, and
no longer see the panic I saw with the original 2.6.16-rc3.
Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com> Acked-by: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Make new MADV_REMOVE, MADV_DONTFORK, MADV_DOFORK consistent across all
arches. The idea is to make it possible to use them portably even before
distros include them in libc headers.
Move common flags to asm-generic/mman.h
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Cc: Roland Dreier <rolandd@cisco.com> Cc: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Jackson [Wed, 15 Feb 2006 23:17:38 +0000 (15:17 -0800)]
[PATCH] cpuset: oops in exit on null cpuset fix
Fix a latent bug in cpuset_exit() handling. If a task tried to allocate
memory after calling cpuset_exit(), it oops'd in
cpuset_update_task_memory_state() on a NULL cpuset pointer.
So set the exiting tasks cpuset to the root cpuset instead of to NULL.
A distro kernel hit this with an added kernel package that had just such a
hook (allocating memory) in the exit code path.
Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>