]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
16 years agoASoC: Fix some missing dai_ops conversions
Mark Brown [Mon, 16 Mar 2009 14:02:07 +0000 (14:02 +0000)]
ASoC: Fix some missing dai_ops conversions

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
16 years agoASoC: twl4030 - Fix build error
Joonyoung Shim [Mon, 16 Mar 2009 12:23:35 +0000 (21:23 +0900)]
ASoC: twl4030 - Fix build error

CC      sound/soc/codecs/twl4030.o
sound/soc/codecs/twl4030.c:1400: warning: braces around scalar initializer
sound/soc/codecs/twl4030.c:1400: warning: (near initialization for 'twl4030_dai.ops')
sound/soc/codecs/twl4030.c:1401: error: field name not in record or union initializer
sound/soc/codecs/twl4030.c:1401: error: (near initialization for 'twl4030_dai.ops')
sound/soc/codecs/twl4030.c:1401: warning: initialization from incompatible pointer type
sound/soc/codecs/twl4030.c:1402: error: field name not in record or union initializer
sound/soc/codecs/twl4030.c:1402: error: (near initialization for 'twl4030_dai.ops')
sound/soc/codecs/twl4030.c:1402: warning: excess elements in scalar initializer
sound/soc/codecs/twl4030.c:1402: warning: (near initialization for 'twl4030_dai.ops')
sound/soc/codecs/twl4030.c:1403: error: field name not in record or union initializer
sound/soc/codecs/twl4030.c:1403: error: (near initialization for 'twl4030_dai.ops')
sound/soc/codecs/twl4030.c:1403: warning: excess elements in scalar initializer
sound/soc/codecs/twl4030.c:1403: warning: (near initialization for 'twl4030_dai.ops')

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
16 years agonetfilter: conntrack: don't deliver events for racy packets
Pablo Neira Ayuso [Mon, 16 Mar 2009 14:06:42 +0000 (15:06 +0100)]
netfilter: conntrack: don't deliver events for racy packets

This patch skips the delivery of conntrack events if the packet
was drop due to a race condition in the conntrack insertion.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
16 years agonetfilter: print the list of register loggers
Eric Leblond [Mon, 16 Mar 2009 13:55:27 +0000 (14:55 +0100)]
netfilter: print the list of register loggers

This patch modifies the proc output to add display of registered
loggers. The content of /proc/net/netfilter/nf_log is modified. Instead
of displaying a protocol per line with format:
proto:logger
it now displays:
proto:logger (comma_separated_list_of_loggers)
NONE is used as keyword if no logger is used.

Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
16 years agonetfilter: use a linked list of loggers
Eric Leblond [Mon, 16 Mar 2009 13:54:21 +0000 (14:54 +0100)]
netfilter: use a linked list of loggers

This patch modifies nf_log to use a linked list of loggers for each
protocol. This list of loggers is read and write protected with a
mutex.

This patch separates registration and binding. To be used as
logging module, a module has to register calling nf_log_register()
and to bind to a protocol it has to call nf_log_bind_pf().
This patch also converts the logging modules to the new API. For nfnetlink_log,
it simply switchs call to register functions to call to bind function and
adds a call to nf_log_register() during init. For other modules, it just
remove a const flag from the logger structure and replace it with a
__read_mostly.

Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
16 years agosh: Move IRQ multi definition of DMAC to defconfig
Nobuhiro Iwamatsu [Mon, 16 Mar 2009 03:22:07 +0000 (03:22 +0000)]
sh: Move IRQ multi definition of DMAC to defconfig

When SuperH CPU has IRQ multi of DMAC, SH_DMA_IRQ_MULTI becomes enable.
The following CPU's are Multi IRQ of DMAC now.
 - SH775X and SH7091
 - SH776X
 - SH7780
 - SH7785

If SH_DMA_IRQ_MULTI becomes enable, dma-sh api driver is optimized
for Multi IRQ.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: clkfwk: Safer resume from hibernation.
Francesco VIRLINZI [Fri, 13 Mar 2009 08:08:01 +0000 (08:08 +0000)]
sh: clkfwk: Safer resume from hibernation.

This patch fixes a possible problem in the resume from
hibenration. It temporaneally saves the clk->rate on the
stack to avoid any possible change during the clk->set_parent(..)
call.

Signed-off-by: Francesco Virlinzi <francesco.virlinzi@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: Consolidate SH-Mobile CPU code in arch/sh/kernel/cpu/shmobile/.
Paul Mundt [Mon, 16 Mar 2009 11:00:17 +0000 (20:00 +0900)]
sh: Consolidate SH-Mobile CPU code in arch/sh/kernel/cpu/shmobile/.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agovideo: sh_mobile_lcdcfb suspend/resume support
Magnus Damm [Fri, 13 Mar 2009 15:36:55 +0000 (15:36 +0000)]
video: sh_mobile_lcdcfb suspend/resume support

This patch adds suspend/resume support to the LCDC
driver for SuperH Mobile - sh_mobile_lcdcfb.

We simply stop hardware on suspend and start it again
on resume. For RGB panels this is trivial, but for SYS
panels in deferred io mode this becomes a bit more
difficult - we need to wait for a frame end interrupt
to make sure the clocks are balanced before stopping
the actual hardware.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: add ap325 lcd power off support
Magnus Damm [Fri, 13 Mar 2009 15:27:14 +0000 (15:27 +0000)]
sh: add ap325 lcd power off support

Improve the ap325 board code to allow the lcd panel
and backlight to be powered off.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: SuperH Mobile suspend support
Magnus Damm [Fri, 13 Mar 2009 15:23:04 +0000 (15:23 +0000)]
sh: SuperH Mobile suspend support

This patch contains CONFIG_SUSPEND support to the SuperH
architecture. If enabled, SuperH Mobile processors will
register their suspend callbacks during boot.

To suspend, use "echo mem > /sys/power/state". To allow
wakeup, make sure "/sys/device/platform/../power/wakeup"
contains "enabled". Additional per-device driver patches
are most likely needed.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: Fix compile error by operands(mov.l) in sh3/entry.S
Nobuhiro Iwamatsu [Fri, 13 Mar 2009 05:03:37 +0000 (05:03 +0000)]
sh: Fix compile error by operands(mov.l) in sh3/entry.S

-- log --
arch/sh/kernel/cpu/sh4/../sh3/entry.S:365: Error: invalid operands for opcode
make[4]: *** [arch/sh/kernel/cpu/sh4/../sh3/entry.o] Error 1
make[3]: *** [arch/sh/kernel/cpu/sh4] Error 2
-- log --

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: Disable get_dma_error_irq for non-SH4 targets.
Nobuhiro Iwamatsu [Fri, 13 Mar 2009 04:31:34 +0000 (04:31 +0000)]
sh: Disable get_dma_error_irq for non-SH4 targets.

dma-sh's get_dma_error_irq() is only used by SH4, as the SH3
doesn't have the DMA Error interrupt.

Disable it out for non-SH4 builds.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: PMB hibernation support
Francesco VIRLINZI [Wed, 11 Mar 2009 10:39:02 +0000 (10:39 +0000)]
sh: PMB hibernation support

This implements preliminary suspend/resume support for the PMB.

Signed-off-by: Francesco Virlinzi <francesco.virlinzi@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: Revert CONFIG_NR_ONCHIP_DMA_CHANNELS to MAX_DMA_CHANNELS
Nobuhiro Iwamatsu [Thu, 12 Mar 2009 06:34:39 +0000 (06:34 +0000)]
sh: Revert CONFIG_NR_ONCHIP_DMA_CHANNELS to MAX_DMA_CHANNELS

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agosh: Add OHCI USB support for SH7786
Kuninori Morimoto [Thu, 12 Mar 2009 08:40:15 +0000 (08:40 +0000)]
sh: Add OHCI USB support for SH7786

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
16 years agoUBIFS: introduce a helpful variable
Artem Bityutskiy [Mon, 16 Mar 2009 07:56:57 +0000 (09:56 +0200)]
UBIFS: introduce a helpful variable

This patch introduces a helpful @c->idx_leb_size variable.
The patch also fixes some spelling issues and makes comments
use "LEB" instead of "eraseblock", which is more correct.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
16 years agoUBIFS: use KERN_CONT
Artem Bityutskiy [Mon, 16 Mar 2009 07:42:03 +0000 (09:42 +0200)]
UBIFS: use KERN_CONT

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
16 years agoUBIFS: fix lprops committing bug
Artem Bityutskiy [Sat, 14 Mar 2009 14:35:27 +0000 (16:35 +0200)]
UBIFS: fix lprops committing bug

When writing lprop nodes, do not forget to set @from to 0 when
switching the LEB. This fixes the following bug:

UBIFS error (pid 27768): ubifs_leb_write: writing -15456 bytes at 16:15880, error -22
UBIFS error (pid 27768): do_commit: commit failed, error -22
UBIFS warning (pid 27768): ubifs_ro_mode: switched to read-only mode, error -22
Pid: 27768, comm: freespace Not tainted 2.6.29-rc4-ubifs-2.6 #43
Call Trace:
 [<ffffffffa00c46d6>] ubifs_ro_mode+0x54/0x56 [ubifs]
 [<ffffffffa00cfa16>] do_commit+0x4f5/0x50a [ubifs]
 [<ffffffffa00cfae7>] ubifs_run_commit+0xbc/0xdb [ubifs]
 [<ffffffffa00d42b9>] ubifs_budget_space+0x742/0x9ed [ubifs]
 [<ffffffff812daf45>] ? __mutex_lock_common+0x361/0x3ae
 [<ffffffffa00bc437>] ? ubifs_write_begin+0x18d/0x44c [ubifs]
 [<ffffffffa00bc5cb>] ubifs_write_begin+0x321/0x44c [ubifs]
 [<ffffffff8106222b>] ? trace_hardirqs_on_caller+0x1f/0x14d
 [<ffffffff81097ce2>] generic_file_buffered_write+0x12f/0x2d9
 [<ffffffff8109828d>] __generic_file_aio_write_nolock+0x261/0x295
 [<ffffffff81098aff>] generic_file_aio_write+0x69/0xc5
 [<ffffffffa00bb914>] ubifs_aio_write+0x14c/0x19e [ubifs]
 [<ffffffff810c8f42>] do_sync_write+0xe7/0x12d
 [<ffffffff81055378>] ? autoremove_wake_function+0x0/0x38
 [<ffffffff81149edc>] ? security_file_permission+0x11/0x13
 [<ffffffff810c9827>] vfs_write+0xab/0x105
 [<ffffffff810c9945>] sys_write+0x47/0x6f
 [<ffffffff8100c35b>] system_call_fastpath+0x16/0x1b

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
16 years agosparseirq, powerpc/cell: fix unused variable warning in interrupt.c
Stephen Rothwell [Mon, 16 Mar 2009 07:52:56 +0000 (18:52 +1100)]
sparseirq, powerpc/cell: fix unused variable warning in interrupt.c

This new compiler warning:

   arch/powerpc/platforms/cell/interrupt.c: In function 'handle_iic_irq':
   arch/powerpc/platforms/cell/interrupt.c:240: warning: unused variable 'cpu'

Triggers because the local variable 'cpu' became unused due to commit:

   dee4102: sparseirq: use kstat_irqs_cpu instead

Remove the variable.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: ppc-dev <linuxppc-dev@ozlabs.org>
LKML-Reference: <20090316185256.4a160374.sfr@canb.auug.org.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agoMerge branches 'irq/genirq' and 'linus' into irq/core
Ingo Molnar [Mon, 16 Mar 2009 08:20:13 +0000 (09:20 +0100)]
Merge branches 'irq/genirq' and 'linus' into irq/core

16 years agox86, mce: remove incorrect __cpuinit for intel_init_cmci()
Hidetoshi Seto [Mon, 16 Mar 2009 08:07:33 +0000 (17:07 +0900)]
x86, mce: remove incorrect __cpuinit for intel_init_cmci()

Impact: Bug fix on UP

Referring commit cc3ca22063784076bd240fda87217387a8f2ae92,
Peter removed __cpuinit annotations for mce_cpu_features()
and its successor functions, which caused troubles on UP
configurations.

However the intel_init_cmci() was introduced after that and
it also has __cpuinit annotation even though it is called from
mce_cpu_features(). Remove the annotation from that function
too.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/core: fix early free of cpumasks
Frederic Weisbecker [Mon, 16 Mar 2009 00:45:03 +0000 (01:45 +0100)]
tracing/core: fix early free of cpumasks

Impact: fix crashes when tracing cpumasks

While ring-buffer allocation, the cpumasks are allocated too,
including the tracing cpumask and the per-cpu file mask handler.
But these cpumasks are freed accidentally just after.
Fix it.

Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1237164303-11476-1-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/ftrace: fix double calls to tracing_start()
Frederic Weisbecker [Sun, 15 Mar 2009 23:32:41 +0000 (00:32 +0100)]
tracing/ftrace: fix double calls to tracing_start()

Impact: fix a warning during preemptirqsoff selftests

When the preemptirqsoff selftest fails, we see the following
warning:

[    6.050000] Testing tracer preemptirqsoff: .. no entries found ..
------------[ cut here ]------------
[    6.060000] WARNING: at kernel/trace/trace.c:688 tracing_start+0x67/0xd3()
[    6.060000] Modules linked in:
[    6.060000] Pid: 1, comm: swapper Tainted: G
[    6.060000] Call Trace:
[    6.060000]  [<ffffffff802460ff>] warn_slowpath+0xb1/0x100
[    6.060000]  [<ffffffff802a8f5b>] ? trace_preempt_on+0x35/0x4b
[    6.060000]  [<ffffffff802a37fb>] ? tracing_start+0x31/0xd3
[    6.060000]  [<ffffffff802a37fb>] ? tracing_start+0x31/0xd3
[    6.060000]  [<ffffffff80271e0b>] ? __lock_acquired+0xe6/0x1f2
[    6.060000]  [<ffffffff802a37fb>] ? tracing_start+0x31/0xd3
[    6.060000]  [<ffffffff802a3831>] tracing_start+0x67/0xd3
[    6.060000]  [<ffffffff802a8ace>] ? irqsoff_tracer_reset+0x2d/0x57
[    6.060000]  [<ffffffff802a4d1c>] trace_selftest_startup_preemptirqsoff+0x1c8/0x1f1
[    6.060000]  [<ffffffff802a4798>] register_tracer+0x12f/0x241
[    6.060000]  [<ffffffff810250d0>] ? init_irqsoff_tracer+0x0/0x53
[    6.060000]  [<ffffffff8102510b>] init_irqsoff_tracer+0x3b/0x53

This is because in fail case, the preemptirqsoff tracer selftest calls twice
the tracing_start() function:

int
trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *tr)
{
        if (!ret && !count) {
                printk(KERN_CONT ".. no entries found ..");
                ret = -1;
                tracing_start(); <-----
                goto out;
        }
        [...]
out:
        trace->reset(tr);
        tracing_start(); <------
        tracing_max_latency = save_max;

        return ret;
}

Since it is well handled in the out path, we don't need the conditional one.

Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1237159961-7447-1-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/core: fix missing mutex unlock on tracing_set_tracer()
Frederic Weisbecker [Sun, 15 Mar 2009 21:10:39 +0000 (22:10 +0100)]
tracing/core: fix missing mutex unlock on tracing_set_tracer()

Impact: fix possible locking imbalance

In case of ring buffer resize failure, tracing_set_tracer forgot to
release trace_types_lock. Fix it.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1237151439-6755-5-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/syscalls: select kallsysms
Frederic Weisbecker [Sun, 15 Mar 2009 21:10:38 +0000 (22:10 +0100)]
tracing/syscalls: select kallsysms

Syscall tracing must select kallsysms.

The arch code builds a table to find the syscall metadata by syscall
number. It needs the syscalls names resolution from the symbol table
to know which name found on the syscalls metadatas match a function
pointer from the arch sys_call_table.

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1237151439-6755-4-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/syscalls: protect thread flag toggling from races
Frederic Weisbecker [Sun, 15 Mar 2009 21:10:37 +0000 (22:10 +0100)]
tracing/syscalls: protect thread flag toggling from races

Impact: fix syscall tracer enable/disable race

The current thread flag toggling is racy as shown in the following
scenario:

- task A is the last user of syscall tracing, it releases the
  TIF_SYSCALL_FTRACE on each tasks

- at the same time task B start syscall tracing. refcount == 0 so
  it sets up TIF_SYSCALL_FTRACE on each tasks.

The effect of the mixup is unpredictable.
So this fix adds a mutex on {start,stop}_syscall_tracing().

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Reported-by: Ingo Molnar <mingo@elte.hu>
LKML-Reference: <1237151439-6755-3-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/syscalls: various cleanups
Frederic Weisbecker [Sun, 15 Mar 2009 21:10:36 +0000 (22:10 +0100)]
tracing/syscalls: various cleanups

Impact: cleanup

- Drop unused cpu variable
- Fix some errors on comments

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1237151439-6755-2-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agotracing/syscalls: fix missing release of tracing
Frederic Weisbecker [Sun, 15 Mar 2009 21:10:35 +0000 (22:10 +0100)]
tracing/syscalls: fix missing release of tracing

Impact: fix 'stuck' syscall tracer

The syscall tracer uses a refcounter to enable several users
simultaneously.

But the refcounter did not behave correctly and always restored
its value to 0 after calling start_syscall_tracing(). Therefore,
stop_syscall_tracing() couldn't release correctly the tasks from
tracing.

Also the tracer forgot to reset the buffer when it is released.

Drop the pointless refcount decrement on start_syscall_tracing()
and reset the buffer when we release the tracer.

This fixes two reported issue:

- when we switch from syscall tracer to another tracer, syscall
  tracing continued.

- incorrect use of the refcount.

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1237151439-6755-1-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agoMerge branches 'tracing/ftrace', 'tracing/syscalls' and 'linus' into tracing/core
Ingo Molnar [Mon, 16 Mar 2009 08:12:42 +0000 (09:12 +0100)]
Merge branches 'tracing/ftrace', 'tracing/syscalls' and 'linus' into tracing/core

Conflicts:
arch/parisc/kernel/irq.c

16 years agom68k: merge the non-MMU and MMU versions of sigcontext.h
Greg Ungerer [Mon, 16 Mar 2009 08:00:25 +0000 (18:00 +1000)]
m68k: merge the non-MMU and MMU versions of sigcontext.h

It is trivial to merge the non-MMU and MMU versions of sigcontext.h.
Without a single file "make headers_install" is broken for m68k
(since each of the sub-varients of sigconext.h are not installed).

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
16 years agom68k: merge the non-MMU and MMU versions of swab.h
Greg Ungerer [Mon, 16 Mar 2009 07:54:49 +0000 (17:54 +1000)]
m68k: merge the non-MMU and MMU versions of swab.h

It is trivial to merge the non-MMU and MMU versions of swab.h.
Without a single file "make headers_install" is broken for m68k
(since each of the sub-varients of swab.h are not installed).

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
16 years agom68k: merge the non-MMU and MMU versions of param.h
Greg Ungerer [Mon, 16 Mar 2009 07:52:16 +0000 (17:52 +1000)]
m68k: merge the non-MMU and MMU versions of param.h

It is trivial to merge the non-MMU and MMU versions of param.h.
Without a single file "make headers_install" is broken for m68k
(since each of the sub-varients of param.h are not installed).

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
16 years agoALSA: echoaudio: remove line-out volume from vmixer cards
Giuliano Pochini [Sun, 15 Mar 2009 20:33:55 +0000 (21:33 +0100)]
ALSA: echoaudio: remove line-out volume from vmixer cards

With this patch the drivers do not set the vmixer volume anymore at startup
because it is actually the output volume of the voices and ALSA mandates
that the volume must be 0 by default.

Signed-off-by: Giuliano Pochini <pochini@shiny.it>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
16 years agoALSA: echoaudio: remove line-out volume from vmixer cards
Giuliano Pochini [Sun, 15 Mar 2009 20:33:34 +0000 (21:33 +0100)]
ALSA: echoaudio: remove line-out volume from vmixer cards

There is a long standing bug in the drivers for cards with a vmixer because
I overlooked a detail in the c++ generic driver by echoaudio. Those cards
do not have a line-out volume control. It is a virtual control provided by
the generic driver. The bug is harmless because the DSP just ignores the
command to change the volume.
*NB:* It breaks alsa-tools/echomixer. A patch for it will follow.

This patch removes the line-out volume control from vmixer-equipped cards.

Signed-off-by: Giuliano Pochini <pochini@shiny.it>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
16 years agoxfs: factor out code to find the longest free extent in the AG
Dave Chinner [Mon, 16 Mar 2009 07:29:46 +0000 (08:29 +0100)]
xfs: factor out code to find the longest free extent in the AG

Signed-off-by: Dave Chinner <dgc@sgi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
16 years agoxfs: kill VN_BAD
Christoph Hellwig [Mon, 16 Mar 2009 07:25:25 +0000 (08:25 +0100)]
xfs: kill VN_BAD

Remove this rather pointless wrapper and use is_bad_inode directly.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
16 years agoxfs: kill vn_atime_* helpers.
Christoph Hellwig [Mon, 16 Mar 2009 07:24:46 +0000 (08:24 +0100)]
xfs: kill vn_atime_* helpers.

Two out of three are unused already, and the third is better done open-coded
with a comment describing what's going on here.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
16 years agoxfs: cleanup xlog_bread
Christoph Hellwig [Mon, 16 Mar 2009 07:24:13 +0000 (08:24 +0100)]
xfs: cleanup xlog_bread

Most callers of xlog_bread need to call xlog_align to get the actual offset.
Consolidate that call into the main xlog_bread and provide a _xlog_bread
for those few that don't want the actual offset.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
16 years agoxfs: cleanup xlog_recover_do_trans
Christoph Hellwig [Mon, 16 Mar 2009 07:20:52 +0000 (08:20 +0100)]
xfs: cleanup xlog_recover_do_trans

Change the big if-elsif-else block handling the different item types
into a more natural switch, remove assignments in conditionals and
remove an out of place comment from centuries ago on IRIX.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
16 years agoxfs: remove another leftover of the old inode log item format
Christoph Hellwig [Mon, 16 Mar 2009 07:19:59 +0000 (08:19 +0100)]
xfs: remove another leftover of the old inode log item format

There's another little snipplet of code left from the handling of the old
inode log item format in xlog_recover_do_inode_trans.  Kill it as it
can't be reached anymore.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
16 years agoxfs: cleanup log unmount handling
Christoph Hellwig [Mon, 16 Mar 2009 07:19:29 +0000 (08:19 +0100)]
xfs: cleanup log unmount handling

Kill the current xfs_log_unmount wrapper and opencode the two function
calls in the only caller.  Rename the current xfs_log_unmount_dealloc to
xfs_log_unmount as it undoes xfs_log_mount and the new name makes that
more clear.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
16 years agoMerge branches 'misc-up-now' and 'platform-drivers' into release
Len Brown [Mon, 16 Mar 2009 04:38:52 +0000 (00:38 -0400)]
Merge branches 'misc-up-now' and 'platform-drivers' into release

16 years agoacpi-wmi: unsigned cannot be less than 0
Roel Kluin [Wed, 4 Mar 2009 19:55:30 +0000 (11:55 -0800)]
acpi-wmi: unsigned cannot be less than 0

include/linux/pci-acpi.h:74:

typedef u32                 acpi_status;

result is unsigned, so an error returned by acpi_bus_register_driver()
will not be noticed.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agothinkpad-acpi: fix module autoloading for older models
Mathieu Chouquet-Stringer [Sat, 14 Mar 2009 15:35:26 +0000 (16:35 +0100)]
thinkpad-acpi: fix module autoloading for older models

Looking at the source, there seems to be a missing * to match my DMI
string.  I mean for newer IBM and Lenovo's laptops you match either one
of the following:
MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*");
MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO:*:pvrThinkPad*:rvnLENOVO:*");

While for older Thinkpads, you do this (for instance):
IBM_BIOS_MODULE_ALIAS("1[0,3,6,8,A-G,I,K,M-P,S,T]");

with IBM_BIOS_MODULE_ALIAS being MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW")

Note there's no * terminating the string.  As result, udev doesn't load
anything because modprobe cannot find anything matching this (my
machine actually):

udevtest: run: '/sbin/modprobe dmi:bvnIBM:bvr1IET71WW(2.10):bd06/16/2006:svnIBM:pn236621U:pvrNotAv

Signed-off-by: Mathieu Chouquet-Stringer <mchouque@free.fr>
Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoacer-wmi: Unmark as 'experimental'
Carlos Corbacho [Sat, 14 Feb 2009 09:53:59 +0000 (09:53 +0000)]
acer-wmi: Unmark as 'experimental'

This driver has been around and used long enough that we can drop the
'experimental'.

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoacpi-wmi: Unmark as 'experimental'
Carlos Corbacho [Sat, 14 Feb 2009 09:53:53 +0000 (09:53 +0000)]
acpi-wmi: Unmark as 'experimental'

ACPI-WMI isn't experimental anymore, and there are other drivers that now
depend on it that aren't either.

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoacer-wmi: double free in acer_rfkill_exit()
Dan Carpenter [Sat, 14 Feb 2009 09:53:48 +0000 (09:53 +0000)]
acer-wmi: double free in acer_rfkill_exit()

This is acer_rfkill_exit() from drivers/platform/x86/acer-wmi.c.

The code frees wireless_rfkill->data again instead of
bluetooth_rfkill->data.

This was found using a code checker (http://repo.or.cz/w/smatch.git/).

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoplatform/x86: depends instead of select for laptop platform drivers
Corentin Chary [Wed, 25 Feb 2009 08:37:09 +0000 (09:37 +0100)]
platform/x86: depends instead of select for laptop platform drivers

"I hate `select' and will gleefully leap on any s/select/depends/ patch,
whether it works or not :)"
  Andrew Morton

select INPUT is not needed here, because if someone doesn't want INPUT,
he won't want these drivers either.

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoasus-laptop: use select instead of depends on
Corentin Chary [Sun, 15 Feb 2009 18:30:21 +0000 (19:30 +0100)]
asus-laptop: use select instead of depends on

Like thinkpad_acpi or eeepc-laptop, asus-laptop will
now use "select" instead of "depends on"
for LEDS_CLASS, NEW_LEDS and BACKLIGHT_CLASS_DEVICE

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoeeepc-laptop: restore acpi_generate_proc_event()
Corentin Chary [Sun, 15 Feb 2009 18:30:20 +0000 (19:30 +0100)]
eeepc-laptop: restore acpi_generate_proc_event()

Restore acpi_generate_proc_event() for backward
compatibility with old acpi scripts.

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoasus-laptop: restore acpi_generate_proc_event()
Corentin Chary [Sun, 15 Feb 2009 18:30:19 +0000 (19:30 +0100)]
asus-laptop: restore acpi_generate_proc_event()

Restore acpi_generate_proc_event() for backward
compatibility with old acpi scripts.

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoacpi: check for pxm_to_node_map overflow
Cyrill Gorcunov [Wed, 4 Mar 2009 19:55:29 +0000 (11:55 -0800)]
acpi: check for pxm_to_node_map overflow

It is hardly (if ever) possible but in case of broken _PXM entry we could
reach out of pxm_to_node_map array bounds in acpi_map_pxm_to_node() call.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: remove doubled status checking
Jiri Slaby [Wed, 4 Mar 2009 19:55:27 +0000 (11:55 -0800)]
ACPI: remove doubled status checking

There was a misplaced status test (two consequent tests without a
statement in between) in acpi_bus_init for ages.  Remove it, since the
function which should be checked (acpi_os_initialize1) has BUG_ONs on
failure paths.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI suspend: Blacklist Toshiba Satellite L300 that requires to set SCI_EN directly...
Zhang Rui [Mon, 16 Mar 2009 02:13:44 +0000 (22:13 -0400)]
ACPI suspend: Blacklist Toshiba Satellite L300 that requires to set SCI_EN directly on resume

This is a supplement of commit 65df78473ffbf3bff5e2034df1638acc4f3ddd50.
http://bugzilla.kernel.org/show_bug.cgi?id=12798

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoRevert "ACPI: make some IO ports off-limits to AML"
Len Brown [Wed, 25 Feb 2009 23:00:18 +0000 (18:00 -0500)]
Revert "ACPI: make some IO ports off-limits to AML"

This reverts commit 5ec5d38a1c8af255ffc481c81eef13e9155524b3.
because it caused spurious dmesg warmings.
We'll implement the check for off-limit ports
in a more clever way in the future.

http://bugzilla.kernel.org/show_bug.cgi?id=12758

Signed-off-by: Len Brown <len.brown@intel.com>
16 years agosuspend: switch the Asus Pundit P1-AH2 to old ACPI sleep ordering
Andy Whitcroft [Wed, 11 Feb 2009 18:11:22 +0000 (18:11 +0000)]
suspend: switch the Asus Pundit P1-AH2 to old ACPI sleep ordering

Switch the Asus Pundit P1-AH2 (M2N8L motherboard) to the old ACPI 1.0
sleep ordering by default.  Without this it will not suspend/resume
correctly.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
Tested-by: Dustin Kirkland <kirkland@canonical.com>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agocpumask: use mm_cpumask() wrapper: sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:39 +0000 (14:40 +1030)]
cpumask: use mm_cpumask() wrapper: sparc

Makes code futureproof against the impending change to mm->cpu_vm_mask.

It's also a chance to use the new cpumask_ ops which take a pointer
(the older ones are deprecated, but there's no hurry for arch code).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: remove dangerous CPU_MASK_ALL_PTR, &CPU_MASK_ALL.: sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:38 +0000 (14:40 +1030)]
cpumask: remove dangerous CPU_MASK_ALL_PTR, &CPU_MASK_ALL.: sparc

Impact: cleanup

(Thanks to Al Viro for reminding me of this, via Ingo)

CPU_MASK_ALL is the (deprecated) "all bits set" cpumask, defined as so:

#define CPU_MASK_ALL (cpumask_t) { { ... } }

Taking the address of such a temporary is questionable at best,
unfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added
CPU_MASK_ALL_PTR:

#define CPU_MASK_ALL_PTR (&CPU_MASK_ALL)

Which formalizes this practice.  One day gcc could bite us over this
usage (though we seem to have gotten away with it so far).

So replace everywhere which used &CPU_MASK_ALL or CPU_MASK_ALL_PTR
with the modern "cpu_all_mask" (a real struct cpumask *), and remove
CPU_MASK_ALL_PTR altogether.

Also remove the confusing and deprecated large-NR_CPUS-only
"cpu_mask_all".

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Ingo Molnar <mingo@elte.hu>
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Mike Travis <travis@sgi.com>
16 years agocpumask: remove the now-obsoleted pcibus_to_cpumask(): sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:28 +0000 (14:40 +1030)]
cpumask: remove the now-obsoleted pcibus_to_cpumask(): sparc

Impact: reduce stack usage for large NR_CPUS

cpumask_of_pcibus() is the new version.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: remove cpu_coregroup_map: sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:25 +0000 (14:40 +1030)]
cpumask: remove cpu_coregroup_map: sparc

Impact: cleanup

cpu_coregroup_mask is the New Hotness.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:24 +0000 (14:40 +1030)]
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc

Impact: cleanup, futureproof

In fact, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in various
places.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
16 years agocpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc64
Rusty Russell [Mon, 16 Mar 2009 04:10:23 +0000 (14:40 +1030)]
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc64

Impact: cleanup, futureproof

In fact, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in various
places.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
16 years agocpumask: Use accessors code.: sparc64
Rusty Russell [Mon, 16 Mar 2009 04:10:23 +0000 (14:40 +1030)]
cpumask: Use accessors code.: sparc64

Impact: use new API

Use the accessors rather than frobbing bits directly.  Most of this is
in arch code I haven't even compiled, but is straightforward.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
16 years agocpumask: Use accessors code: sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:22 +0000 (14:40 +1030)]
cpumask: Use accessors code: sparc

Impact: use new API

Use the accessors rather than frobbing bits directly.  Most of this is
in arch code I haven't even compiled, but it is mostly straightforward.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
16 years agocpumask: arch_send_call_function_ipi_mask: sparc
Rusty Russell [Mon, 16 Mar 2009 04:10:22 +0000 (14:40 +1030)]
cpumask: arch_send_call_function_ipi_mask: sparc

We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask(), and by defining
it, the old arch_send_call_function_ipi is defined by the core code.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: Use smp_call_function_many(): sparc64
Rusty Russell [Mon, 16 Mar 2009 04:10:22 +0000 (14:40 +1030)]
cpumask: Use smp_call_function_many(): sparc64

Impact: Use new API

Change smp_call_function_mask() callers to smp_call_function_many().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
16 years agocpumask: Use accessors code.: parisc
Rusty Russell [Mon, 16 Mar 2009 03:49:38 +0000 (14:19 +1030)]
cpumask: Use accessors code.: parisc

Impact: use new API

Use the accessors rather than frobbing bits directly.  Most of this is
in arch code I haven't even compiled, but it is mostly straightforward.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
16 years agocpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: parisc
Rusty Russell [Mon, 16 Mar 2009 03:49:37 +0000 (14:19 +1030)]
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: parisc

Impact: cleanup, futureproof

In fact, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in various
places.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
16 years agocpumask: arch_send_call_function_ipi_mask: parisc
Rusty Russell [Mon, 16 Mar 2009 03:49:37 +0000 (14:19 +1030)]
cpumask: arch_send_call_function_ipi_mask: parisc

We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask(), and by defining
it, the old arch_send_call_function_ipi is defined by the core code.

We also take the chance to change send_IPI_mask() and use the new
for_each_cpu() iterator.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agohp-wmi: notify of a potential docking state change on resume
Frans Pop [Wed, 4 Mar 2009 19:55:28 +0000 (11:55 -0800)]
hp-wmi: notify of a potential docking state change on resume

It is possible that the system gets docked or undocked while it's
suspended. Generate an input event on resume to notify user space
if there was a state change.

As it is a switch, we can generate the event unconditionally; the
input layer will only pass it on if there is an actual change.

Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agocpumask: use mm_cpumask() wrapper: ia64
Rusty Russell [Mon, 16 Mar 2009 03:42:48 +0000 (14:12 +1030)]
cpumask: use mm_cpumask() wrapper: ia64

Makes code futureproof against the impending change to mm->cpu_vm_mask.

It's also a chance to use the new cpumask_ ops which take a pointer
(the older ones are deprecated, but there's no hurry for arch code).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: Use accessors code.: ia64
Rusty Russell [Mon, 16 Mar 2009 03:42:43 +0000 (14:12 +1030)]
cpumask: Use accessors code.: ia64

Impact: use new API

Use the accessors rather than frobbing bits directly.  Most of this is
in arch code I haven't even compiled, but is straightforward.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
16 years agocpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: ia64
Rusty Russell [Mon, 16 Mar 2009 03:42:42 +0000 (14:12 +1030)]
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: ia64

Impact: cleanup, futureproof

In fact, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in various
places.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
16 years agocpumask: arch_send_call_function_ipi_mask: ia64
Rusty Russell [Mon, 16 Mar 2009 03:42:41 +0000 (14:12 +1030)]
cpumask: arch_send_call_function_ipi_mask: ia64

We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask().

We also take the chance to wean send_IPI_mask off the obsolescent
for_each_cpu_mask(): making it take the pointer seemed the most
natural way.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: remove the now-obsoleted pcibus_to_cpumask(): ia64
Rusty Russell [Mon, 16 Mar 2009 03:42:40 +0000 (14:12 +1030)]
cpumask: remove the now-obsoleted pcibus_to_cpumask(): ia64

Impact: reduce stack usage for large NR_CPUS

cpumask_of_pcibus() is the new version.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: use mm_cpumask() wrapper: cris
Rusty Russell [Mon, 16 Mar 2009 03:41:47 +0000 (14:11 +1030)]
cpumask: use mm_cpumask() wrapper: cris

Makes code futureproof against the impending change to mm->cpu_vm_mask.

It's also a chance to use the new cpumask_ ops which take a pointer
(the older ones are deprecated, but there's no hurry for arch code).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agocpumask: Use accessors code.: cris
Rusty Russell [Mon, 16 Mar 2009 03:41:47 +0000 (14:11 +1030)]
cpumask: Use accessors code.: cris

Impact: use new API

Use the accessors rather than frobbing bits directly.  Most of this is
in arch code I haven't even compiled, but is straightforward.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
16 years agocpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: cris
Rusty Russell [Mon, 16 Mar 2009 03:41:46 +0000 (14:11 +1030)]
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: cris

Impact: cleanup, futureproof

In fact, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in various
places.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
16 years agotcp: make sure xmit goal size never becomes zero
Ilpo Järvinen [Sat, 14 Mar 2009 14:23:07 +0000 (14:23 +0000)]
tcp: make sure xmit goal size never becomes zero

It's not too likely to happen, would basically require crafted
packets (must hit the max guard in tcp_bound_to_half_wnd()).
It seems that nothing that bad would happen as there's tcp_mems
and congestion window that prevent runaway at some point from
hurting all too much (I'm not that sure what all those zero
sized segments we would generate do though in write queue).
Preventing it regardless is certainly the best way to go.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: cache result of earlier divides when mss-aligning things
Ilpo Järvinen [Sat, 14 Mar 2009 22:45:16 +0000 (22:45 +0000)]
tcp: cache result of earlier divides when mss-aligning things

The results is very unlikely change every so often so we
hardly need to divide again after doing that once for a
connection. Yet, if divide still becomes necessary we
detect that and do the right thing and again settle for
non-divide state. Takes the u16 space which was previously
taken by the plain xmit_size_goal.

This should take care part of the tso vs non-tso difference
we found earlier.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: simplify tcp_current_mss
Ilpo Järvinen [Sat, 14 Mar 2009 14:23:05 +0000 (14:23 +0000)]
tcp: simplify tcp_current_mss

There's very little need for most of the callsites to get
tp->xmit_goal_size updated. That will cost us divide as is,
so slice the function in two. Also, the only users of the
tp->xmit_goal_size are directly behind tcp_current_mss(),
so there's no need to store that variable into tcp_sock
at all! The drop of xmit_goal_size currently leaves 16-bit
hole and some reorganization would again be necessary to
change that (but I'm aiming to fill that hole with u16
xmit_goal_size_segs to cache the results of the remaining
divide to get that tso on regression).

Bring xmit_goal_size parts into tcp.c

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: don't check mtu probe completion in the loop
Ilpo Järvinen [Sat, 14 Mar 2009 14:23:04 +0000 (14:23 +0000)]
tcp: don't check mtu probe completion in the loop

It seems that no variables clash such that we couldn't do
the check just once later on. Therefore move it.

Also kill dead obvious comment, dead argument and add
unlikely since this mtu probe does not happen too often.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: consolidate paws check
Ilpo Järvinen [Sat, 14 Mar 2009 14:23:03 +0000 (14:23 +0000)]
tcp: consolidate paws check

Wow, it was quite tricky to merge that stream of negations
but I think I finally got it right:

check & replace_ts_recent:
(s32)(rcv_tsval - ts_recent) >= 0                  => 0
(s32)(ts_recent - rcv_tsval) <= 0                  => 0

discard:
(s32)(ts_recent - rcv_tsval)  > TCP_PAWS_WINDOW    => 1
(s32)(ts_recent - rcv_tsval) <= TCP_PAWS_WINDOW    => 0

I toggled the return values of tcp_paws_check around since
the old encoding added yet-another negation making tracking
of truth-values really complicated.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: kill dead end_seq variable in clean_rtx_queue
Ilpo Järvinen [Sat, 14 Mar 2009 14:23:02 +0000 (14:23 +0000)]
tcp: kill dead end_seq variable in clean_rtx_queue

I've already forgotten what for this was necessary, anyway
it's no longer used (if it ever was).

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: remove pointless .dsack/.num_sacks code
Ilpo Järvinen [Sat, 14 Mar 2009 14:23:01 +0000 (14:23 +0000)]
tcp: remove pointless .dsack/.num_sacks code

In the pure assignment case, the earlier zeroing is
still in effect.

David S. Miller raised concerns if the ifs are there to avoid
dirtying cachelines. I came to these conclusions:

> We'll be dirty it anyway (now that I check), the first "real" statement
> in tcp_rcv_established is:
>
>       tp->rx_opt.saw_tstamp = 0;
>
> ...that'll land on the same dword. :-/
>
> I suppose the blocks are there just because they had more complexity
> inside when they had to calculate the eff_sacks too (maybe it would
> have been better to just remove them in that drop-patch so you would
> have had less head-ache :-)).

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agor8169: revert "r8169: read MAC address from EEPROM on init (2nd attempt)"
françois romieu [Sun, 15 Mar 2009 01:10:50 +0000 (01:10 +0000)]
r8169: revert "r8169: read MAC address from EEPROM on init (2nd attempt)"

It fails on the following systems:
- RTL8169sc/8110sc (XID 18000000)
  reported by Tim Durack <tdurack@gmail.com> (x86)
- RTL8169sb/8110sb (XID 10000000)
  reported by Mikael Pettersson <mikpe@it.uu.se> (ARM)

The patch appeared to work on x86 for the following systems:
RTL8169sb/8110sb 10000000 PCI   (EXT)
RTL8110s         04000000 PCI   (EXT)
RTL8102e         24a00000 PCI-E (LOM)
RTL8168c/8111c   3c2000c0 PCI-E (LOM)
RTL8168b/8111b   38000000 PCI-E (LOM)
RTL8168b/8111b   38000000 PCI-E (EXT)

The patch exposes two problems:
1) while not completely wrong, mac addresses are not read correctly
   from the EEPROM
2) the MAC address registers are not correctly set

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Tested-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agor8169: use hardware auto-padding.
françois romieu [Sun, 15 Mar 2009 01:09:54 +0000 (01:09 +0000)]
r8169: use hardware auto-padding.

It shortens the code and fixes the current pci_unmap leak with
padded skb reported by Dave Jones.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Change misleading code in class delete.
Jarek Poplawski [Mon, 16 Mar 2009 03:00:19 +0000 (20:00 -0700)]
pkt_sched: Change misleading code in class delete.

While looking for a possible reason of bugzilla report on HTB oops:
http://bugzilla.kernel.org/show_bug.cgi?id=12858
I found the code in htb_delete calling htb_destroy_class on zero
refcount is very misleading: it can suggest this is a common path, and
destroy is called under sch_tree_lock. Actually, this can never happen
like this because before deletion cops->get() is done, and after
delete a class is still used by tclass_notify. The class destroy is
always called from cops->put(), so without sch_tree_lock.

This doesn't mean much now (since 2.6.27) because all vulnerable calls
were moved from htb_destroy_class to htb_delete, but there was a bug
in older kernels. The same change is done for other classful scheds,
which, it seems, didn't have similar locking problems here.

Reported-by: m0sia <m0sia@m0sia.ru>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: reorder fields of struct socket
Eric Dumazet [Mon, 16 Mar 2009 02:59:13 +0000 (19:59 -0700)]
net: reorder fields of struct socket

On x86_64, its rather unfortunate that "wait_queue_head_t wait"
field of "struct socket" spans two cache lines (assuming a 64
bytes cache line in current cpus)

offsetof(struct socket, wait)=0x30
sizeof(wait_queue_head_t)=0x18

This might explain why Kenny Chang noticed that his multicast workload
was performing bad with 64 bit kernels, since more cache lines ping pongs
were involved.

This litle patch moves "wait" field next "fasync_list" so that both
fields share a single cache line, to speedup sock_def_readable()

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ARM] mv78xx0: Add Marvell RD-78x00-mASA Reference Design support
Lennert Buytenhek [Thu, 12 Mar 2009 08:48:37 +0000 (09:48 +0100)]
[ARM] mv78xx0: Add Marvell RD-78x00-mASA Reference Design support

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Acked-by: Stanislav Samsonov <samsonov@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] Kirkwood: update defconfig
Nicolas Pitre [Wed, 4 Mar 2009 03:19:03 +0000 (22:19 -0500)]
[ARM] Kirkwood: update defconfig

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] Kirkwood: SheevaPlug LED support
Nicolas Pitre [Tue, 3 Mar 2009 06:16:07 +0000 (01:16 -0500)]
[ARM] Kirkwood: SheevaPlug LED support

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] Kirkwood: SheevaPlug USB Power Enable setup
Nicolas Pitre [Tue, 3 Mar 2009 04:44:41 +0000 (23:44 -0500)]
[ARM] Kirkwood: SheevaPlug USB Power Enable setup

Ideally, the default should be set to 0 and let the EHCI driver turn
it on as needed.  This makes USB usable in the mean time.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] Kirkwood: Marvell SheevaPlug support
Shadi Ammouri [Tue, 24 Feb 2009 20:26:23 +0000 (15:26 -0500)]
[ARM] Kirkwood: Marvell SheevaPlug support

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years agoMerge commit '305b07680f' into orion/master
Nicolas Pitre [Mon, 16 Mar 2009 01:41:23 +0000 (21:41 -0400)]
Merge commit '305b07680f' into orion/master

16 years ago[ARM] add CONFIG_HIGHMEM option
Nicolas Pitre [Fri, 19 Sep 2008 04:36:12 +0000 (00:36 -0400)]
[ARM] add CONFIG_HIGHMEM option

Here it is... HIGHMEM for the ARM architecture.  :-)

If you don't have enough ram for highmem pages to be allocated and still
want to test this, then the cmdline option "vmalloc=" can be used with
a value large enough to force the highmem threshold down.

Successfully tested on a Marvell DB-78x00-BP Development Board with
2 GB of RAM.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] ignore high memory with VIPT aliasing caches
Nicolas Pitre [Tue, 4 Nov 2008 05:48:42 +0000 (00:48 -0500)]
[ARM] ignore high memory with VIPT aliasing caches

VIPT aliasing caches have issues of their own which are not yet handled.
Usage of discard_old_kernel_data() in copypage-v6.c is not highmem ready,
kmap/fixmap stuff doesn't take account of cache colouring, etc.
If/when those issues are handled then this could be reverted.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] xsc3: add highmem support to L2 cache handling code
Nicolas Pitre [Fri, 19 Sep 2008 02:55:47 +0000 (22:55 -0400)]
[ARM] xsc3: add highmem support to L2 cache handling code

On xsc3, L2 cache ops are possible only on virtual addresses.  The code
is rearranged so to have a linear progression requiring the least amount
of pte setups in the highmem case.  To protect the virtual mapping so
created, interrupts must be disabled currently up to a page worth of
address range.

The interrupt disabling is done in a way to minimize the overhead within
the inner loop.  The alternative would consist in separate code for
the highmem and non highmem compilation which is less preferable.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
16 years ago[ARM] Feroceon: add highmem support to L2 cache handling code
Nicolas Pitre [Fri, 12 Sep 2008 20:11:51 +0000 (16:11 -0400)]
[ARM] Feroceon: add highmem support to L2 cache handling code

The choice is between looping over the physical range and performing
single cache line operations, or to map highmem pages somewhere, as
cache range ops are possible only on virtual addresses.

Because L2 range ops are much faster, we go with the later by factoring
the physical-to-virtual address conversion and use a fixmap entry for it
in the HIGHMEM case.

Possible future optimizations to avoid the pte setup cost:

 - do the pte setup for highmem pages only

 - determine a threshold for doing a line-by-line processing on physical
   addresses when the range is small

Signed-off-by: Nicolas Pitre <nico@marvell.com>