firefly-linux-kernel-4.4.55.git
15 years agotracing/filters: NIL-terminate user input filter
Li Zefan [Sat, 11 Apr 2009 07:52:18 +0000 (15:52 +0800)]
tracing/filters: NIL-terminate user input filter

Make sure messages from user space are NIL-terminated strings,
otherwise we could dump random memory while reading filter file.

Try this:
 # echo 'parent_comm ==' > events/sched/sched_process_fork/filter
 # cat events/sched/sched_process_fork/filter
 parent_comm == �

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Tom Zanussi <tzanussi@gmail.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <49E04C32.6060508@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoftrace: Output REC->var instead of __entry->var for trace format
Zhaolei [Wed, 8 Apr 2009 09:00:13 +0000 (17:00 +0800)]
ftrace: Output REC->var instead of __entry->var for trace format

print fmt: "irq=%d return=%s", __entry->irq, __entry->ret ? \"handled\" : \"unhandled\"

"__entry" should be convert to "REC" by __stringify() macro.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <49DC679D.2090901@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMake __stringify support variable argument macros too
Zhaolei [Wed, 8 Apr 2009 08:58:57 +0000 (16:58 +0800)]
Make __stringify support variable argument macros too

For example:

  __stringify(__entry->irq, __entry->ret)

will now convert it to:

  "REC->irq, REC->ret"

It also still supports single arguments as the old macro did.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <49DC6751.30308@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: fix document references
Li Zefan [Fri, 10 Apr 2009 00:48:36 +0000 (08:48 +0800)]
tracing: fix document references

When moving documents to Documentation/trace/, I forgot to
grep Kconfig to find out those references.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Pekka Paalanen <pq@iki.fi>
Cc: eduard.munteanu@linux360.ro
LKML-Reference: <49DE97EF.7080208@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: fix splice return too large
Lai Jiangshan [Thu, 2 Apr 2009 07:17:08 +0000 (15:17 +0800)]
tracing: fix splice return too large

I got these from strace:

 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 16384
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192

I wanted to splice_read 4096 bytes, but it returns 8192 or larger.

It is because the return value of tracing_buffers_splice_read()
does not include "zero out any left over data" bytes.

But tracing_buffers_read() includes these bytes, we make them
consistent.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <srostedt@redhat.com>
LKML-Reference: <49D46674.9030804@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: update file->f_pos when splice(2) it
Lai Jiangshan [Thu, 2 Apr 2009 07:17:04 +0000 (15:17 +0800)]
tracing: update file->f_pos when splice(2) it

Impact: Cleanup

These two lines:

if (unlikely(*ppos))
return -ESPIPE;

in tracing_buffers_splice_read() are not needed, VFS layer
has disabled seek(2).

We remove these two lines, and then we can update file->f_pos.

And tracing_buffers_read() updates file->f_pos, this fix
make tracing_buffers_splice_read() updates file->f_pos too.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <srostedt@redhat.com>
LKML-Reference: <49D46670.4010503@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: allocate page when needed
Lai Jiangshan [Thu, 2 Apr 2009 07:16:59 +0000 (15:16 +0800)]
tracing: allocate page when needed

Impact: Cleanup

Sometimes, we open trace_pipe_raw, but we don't read(2) it,
we just splice(2) it, thus, the page is not used.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <srostedt@redhat.com>
LKML-Reference: <49D4666B.4010608@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: disable seeking for trace_pipe_raw
Lai Jiangshan [Thu, 2 Apr 2009 07:16:56 +0000 (15:16 +0800)]
tracing: disable seeking for trace_pipe_raw

Impact: disable pread()

We set tracing_buffers_fops.llseek to no_llseek,
but we can still perform pread() to read this file.

That is not expected.

This fix uses nonseekable_open() to disable it.

tracing_buffers_fops.llseek is still set to no_llseek,
it mark this file is a "non-seekable device" and is used by
sys_splice(). See also do_splice() or manual of splice(2):

ERRORS
       EINVAL Target file system doesn't support  splicing;
              neither  of the descriptors refers to a pipe;
              or offset given for non-seekable device.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <srostedt@redhat.com>
LKML-Reference: <49D46668.8030806@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMN10300: Kill MN10300's own profiling Kconfig
David Howells [Thu, 9 Apr 2009 17:41:23 +0000 (18:41 +0100)]
MN10300: Kill MN10300's own profiling Kconfig

Kill MN10300's own profiling Kconfig as this is superfluous given that the
profiling options have moved to init/Kconfig and arch/Kconfig.  Not only is
this now superfluous, but the dependencies are not correct.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoFRV: Use <asm-generic/pgtable.h> in NOMMU mode
David Howells [Thu, 9 Apr 2009 16:32:55 +0000 (17:32 +0100)]
FRV: Use <asm-generic/pgtable.h> in NOMMU mode

asm-frv/pgtable.h could just #include <asm-generic/pgtable.h> in NOMMU mode
rather than #defining macros for lazy MMU and CPU stuff.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agokeys: Handle there being no fallback destination keyring for request_key()
David Howells [Thu, 9 Apr 2009 16:14:05 +0000 (17:14 +0100)]
keys: Handle there being no fallback destination keyring for request_key()

When request_key() is called, without there being any standard process
keyrings on which to fall back if a destination keyring is not specified, an
oops is liable to occur when construct_alloc_key() calls down_write() on
dest_keyring's semaphore.

Due to function inlining this may be seen as an oops in down_write() as called
from request_key_and_link().

This situation crops up during boot, where request_key() is called from within
the kernel (such as in CIFS mounts) where nobody is actually logged in, and so
PAM has not had a chance to create a session keyring and user keyrings to act
as the fallback.

To fix this, make construct_alloc_key() not attempt to cache a key if there is
no fallback key if no destination keyring is given specifically.

Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoafs: BUG to BUG_ON changes
Stoyan Gaydarov [Thu, 9 Apr 2009 16:10:28 +0000 (17:10 +0100)]
afs: BUG to BUG_ON changes

Signed-off-by: Stoyan Gaydarov <stoyboyker@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Thu, 9 Apr 2009 17:38:23 +0000 (10:38 -0700)]
Merge branch 'x86-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: cpu_debug remove execute permission
  x86: smarten /proc/interrupts output for new counters
  x86: DMI match for the Dell DXP061 as it needs BIOS reboot
  x86: make 64 bit to use default_inquire_remote_apic
  x86, setup: un-resequence mode setting for VGA 80x34 and 80x60 modes
  x86, intel-iommu: fix X2APIC && !ACPI build failure

15 years agoMerge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Thu, 9 Apr 2009 17:37:46 +0000 (10:37 -0700)]
Merge branch 'tracing-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  tracing: consolidate documents
  blktrace: pass the right pointer to kfree()
  tracing/syscalls: use a dedicated file header
  tracing: append a comma to INIT_FTRACE_GRAPH

15 years agoMerge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Thu, 9 Apr 2009 17:37:28 +0000 (10:37 -0700)]
Merge branch 'sched-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  sched: do not count frozen tasks toward load
  sched: refresh MAINTAINERS entry
  sched: Print sched_group::__cpu_power in sched_domain_debug
  cpuacct: add per-cgroup utime/stime statistics
  posixtimers, sched: Fix posix clock monotonicity
  sched_rt: don't allocate cpumask in fastpath
  cpuacct: make cpuacct hierarchy walk in cpuacct_charge() safe when rcupreempt is used -v2

15 years agoMerge branches 'core-fixes-for-linus', 'irq-fixes-for-linus' and 'timers-fixes-for...
Linus Torvalds [Thu, 9 Apr 2009 17:35:30 +0000 (10:35 -0700)]
Merge branches 'core-fixes-for-linus', 'irq-fixes-for-linus' and 'timers-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  printk: fix wrong format string iter for printk
  futex: comment requeue key reference semantics

* 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  irq: fix cpumask memory leak on offstack cpumask kernels

* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  posix-timers: fix RLIMIT_CPU && setitimer(CPUCLOCK_PROF)
  posix-timers: fix RLIMIT_CPU && fork()
  timers: add missing kernel-doc

15 years agoMN10300: Convert obsolete no_irq_type to no_irq_chip
Thomas Gleixner [Thu, 9 Apr 2009 17:18:47 +0000 (18:18 +0100)]
MN10300: Convert obsolete no_irq_type to no_irq_chip

Convert the last remaining users to no_irq_chip.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm
Linus Torvalds [Thu, 9 Apr 2009 15:01:21 +0000 (08:01 -0700)]
Merge git://git./linux/kernel/git/agk/linux-2.6-dm

* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:
  dm kcopyd: fix callback race
  dm kcopyd: prepare for callback race fix
  dm: implement basic barrier support
  dm: remove dm_request loop
  dm: rework queueing and suspension
  dm: simplify dm_request loop
  dm: split DMF_BLOCK_IO flag into two
  dm: rearrange dm_wq_work
  dm: remove limited barrier support
  dm: add integrity support

15 years agomodule: try_then_request_module must wait
Herbert Xu [Thu, 9 Apr 2009 02:35:47 +0000 (10:35 +0800)]
module: try_then_request_module must wait

Since the whole point of try_then_request_module is to retry
the operation after a module has been loaded, we must wait for
the module to fully load.

Otherwise all sort of things start breaking, e.g., you won't
be able to read your encrypted disks on the first attempt.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Maciej Rutecki <maciej.rutecki@gmail.com>
Tested-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agosched: do not count frozen tasks toward load
Nathan Lynch [Thu, 9 Apr 2009 00:45:12 +0000 (19:45 -0500)]
sched: do not count frozen tasks toward load

Freezing tasks via the cgroup freezer causes the load average to climb
because the freezer's current implementation puts frozen tasks in
uninterruptible sleep (D state).

Some applications which perform job-scheduling functions consult the
load average when making decisions.  If a cgroup is frozen, the load
average does not provide a useful measure of the system's utilization
to such applications.  This is especially inconvenient if the job
scheduler employs the cgroup freezer as a mechanism for preempting low
priority jobs.  Contrast this with using SIGSTOP for the same purpose:
the stopped tasks do not count toward system load.

Change task_contributes_to_load() to return false if the task is
frozen.  This results in /proc/loadavg behavior that better meets
users' expectations.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Nigel Cunningham <nigel@tuxonice.net>
Tested-by: Nigel Cunningham <nigel@tuxonice.net>
Cc: <stable@kernel.org>
Cc: containers@lists.linux-foundation.org
Cc: linux-pm@lists.linux-foundation.org
Cc: Matt Helsley <matthltc@us.ibm.com>
LKML-Reference: <20090408194512.47a99b95@manatee.lan>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: consolidate documents
Li Zefan [Thu, 9 Apr 2009 03:40:27 +0000 (11:40 +0800)]
tracing: consolidate documents

Move kmemtrace.txt, tracepoints.txt, ftrace.txt and mmiotrace.txt to
the new trace/ directory.

I didnt find any references to those documents in both source
files and documents, so no extra work needs to be done.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Pekka Paalanen <pq@iki.fi>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
LKML-Reference: <49DD6E2B.6090200@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: cpu_debug remove execute permission
Jaswinder Singh Rajput [Wed, 8 Apr 2009 17:19:46 +0000 (22:49 +0530)]
x86: cpu_debug remove execute permission

It seems by mistake these files got execute permissions so removing it.

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
LKML-Reference: <1239211186.9037.2.camel@ht.satnam>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoblktrace: pass the right pointer to kfree()
Li Zefan [Thu, 9 Apr 2009 03:19:40 +0000 (11:19 +0800)]
blktrace: pass the right pointer to kfree()

Impact: fix kfree crash with non-standard act_mask string

If passing a string with leading white spaces to strstrip(),
the returned ptr != the original ptr.

This bug was introduced by me.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <49DD694C.8020902@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing/syscalls: use a dedicated file header
Frederic Weisbecker [Wed, 8 Apr 2009 18:40:59 +0000 (20:40 +0200)]
tracing/syscalls: use a dedicated file header

Impact: fix build warnings and possibe compat misbehavior on IA64

Building a kernel on ia64 might trigger these ugly build warnings:

CC      arch/ia64/ia32/sys_ia32.o
In file included from arch/ia64/ia32/sys_ia32.c:55:
arch/ia64/ia32/ia32priv.h:290:1: warning: "elf_check_arch" redefined
In file included from include/linux/elf.h:7,
                 from include/linux/module.h:14,
                 from include/linux/ftrace.h:8,
                 from include/linux/syscalls.h:68,
                 from arch/ia64/ia32/sys_ia32.c:18:
arch/ia64/include/asm/elf.h:19:1: warning: this is the location of the previous definition
[...]

sys_ia32.c includes linux/syscalls.h which in turn includes linux/ftrace.h
to import the syscalls tracing prototypes.

But including ftrace.h can pull too much things for a low level file,
especially on ia64 where the ia32 private headers conflict with higher
level headers.

Now we isolate the syscall tracing headers in their own lightweight file.

Reported-by: Tony Luck <tony.luck@intel.com>
Tested-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Jason Baron <jbaron@redhat.com>
Cc: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Jiaying Zhang <jiayingz@google.com>
Cc: Michael Rubin <mrubin@google.com>
Cc: Martin Bligh <mbligh@google.com>
Cc: Michael Davidson <md@google.com>
LKML-Reference: <20090408184058.GB6017@nowhere>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
Linus Torvalds [Thu, 9 Apr 2009 01:00:55 +0000 (18:00 -0700)]
Merge git://git./linux/kernel/git/rusty/linux-2.6-for-linus

* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
  work_on_cpu(): rewrite it to create a kernel thread on demand
  kthread: move sched-realeted initialization from kthreadd context
  kthread: Don't looking for a task in create_kthread() #2

15 years agoMerge git://git.infradead.org/battery-2.6
Linus Torvalds [Thu, 9 Apr 2009 00:45:02 +0000 (17:45 -0700)]
Merge git://git.infradead.org/battery-2.6

* git://git.infradead.org/battery-2.6:
  pda_power: Add optional OTG transceiver and voltage regulator support
  pcf50633_charger: Remove unused mbc_set_status function
  pcf50633_charger: Enable periodic charging restart

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
Linus Torvalds [Thu, 9 Apr 2009 00:44:28 +0000 (17:44 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jmorris/security-testing-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:
  cap_prctl: don't set error to 0 at 'no_change'

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 9 Apr 2009 00:43:58 +0000 (17:43 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  igb: remove sysfs entry that was used to set the number of vfs
  igbvf: add new driver to support 82576 virtual functions
  drivers/net/eql.c: Fix a dev leakage.
  niu: Fix unused variable warning.
  r6040: set MODULE_VERSION
  bnx2: Don't use reserved names
  FEC driver: add missing #endif
  niu: Fix error handling
  mv643xx_eth: don't reset the rx coal timer on interface up
  smsc911x: correct debugging message on mii read timeout
  ethoc: fix library build errors
  netfilter: ctnetlink: fix regression in expectation handling
  netfilter: fix selection of "LED" target in netfilter
  netfilter: ip6tables regression fix

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 9 Apr 2009 00:43:39 +0000 (17:43 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc: Hook up sys_preadv and sys_pwritev
  sparc64: add_node_ranges() must be __init
  serial: sunsu: sunsu_kbd_ms_init needs to be __devinit
  sparc: Fix section mismatch warnings in cs4231 sound driver.
  sparc64: Fix section mismatch warnings in PCI controller drivers.
  sparc64: Fix section mismatch warnings in power driver.
  sparc64: get_cells() can't be marked __init

15 years agoMerge branch 'ext3-latency-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Thu, 9 Apr 2009 00:42:32 +0000 (17:42 -0700)]
Merge branch 'ext3-latency-fixes' of git://git./linux/kernel/git/tytso/ext4

* 'ext3-latency-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
  ext3: Try to avoid starting a transaction in writepage for data=writepage
  block_write_full_page: switch synchronous writes to use WRITE_SYNC_PLUG

15 years agowork_on_cpu(): rewrite it to create a kernel thread on demand
Andrew Morton [Thu, 9 Apr 2009 15:50:37 +0000 (09:50 -0600)]
work_on_cpu(): rewrite it to create a kernel thread on demand

Impact: circular locking bugfix

The various implemetnations and proposed implemetnations of work_on_cpu()
are vulnerable to various deadlocks because they all used queues of some
form.

Unrelated pieces of kernel code thus gained dependencies wherein if one
work_on_cpu() caller holds a lock which some other work_on_cpu() callback
also takes, the kernel could rarely deadlock.

Fix this by creating a short-lived kernel thread for each work_on_cpu()
invokation.

This is not terribly fast, but the only current caller of work_on_cpu() is
pci_call_probe().

It would be nice to find some other way of doing the node-local
allocations in the PCI probe code so that we can zap work_on_cpu()
altogether.  The code there is rather nasty.  I can't think of anything
simple at this time...

Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
15 years agokthread: move sched-realeted initialization from kthreadd context
Oleg Nesterov [Thu, 9 Apr 2009 15:50:36 +0000 (09:50 -0600)]
kthread: move sched-realeted initialization from kthreadd context

kthreadd is the single thread which implements ths "create" request, move
sched_setscheduler/etc from create_kthread() to kthread_create() to
improve the scalability.

We should be careful with sched_setscheduler(), use _nochek helper.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: Vitaliy Gusev <vgusev@openvz.org
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
15 years agokthread: Don't looking for a task in create_kthread() #2
Vitaliy Gusev [Thu, 9 Apr 2009 15:50:35 +0000 (09:50 -0600)]
kthread: Don't looking for a task in create_kthread() #2

Remove the unnecessary find_task_by_pid_ns(). kthread() can just
use "current" to get the same result.

Signed-off-by: Vitaliy Gusev <vgusev@openvz.org>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
15 years agodm kcopyd: fix callback race
Mikulas Patocka [Wed, 8 Apr 2009 23:27:17 +0000 (00:27 +0100)]
dm kcopyd: fix callback race

If the thread calling dm_kcopyd_copy is delayed due to scheduling inside
split_job/segment_complete and the subjobs complete before the loop in
split_job completes, the kcopyd callback could be invoked from the
thread that called dm_kcopyd_copy instead of the kcopyd workqueue.

dm_kcopyd_copy -> split_job -> segment_complete -> job->fn()

Snapshots depend on the fact that callbacks are called from the singlethreaded
kcopyd workqueue and expect that there is no racing between individual
callbacks. The racing between callbacks can lead to corruption of exception
store and it can also mean that exception store callbacks are called twice
for the same exception - a likely reason for crashes reported inside
pending_complete() / remove_exception().

This patch fixes two problems:

1. job->fn being called from the thread that submitted the job (see above).

- Fix: hand over the completion callback to the kcopyd thread.

2. job->fn(read_err, write_err, job->context); in segment_complete
reports the error of the last subjob, not the union of all errors.

- Fix: pass job->write_err to the callback to report all error bits
  (it is done already in run_complete_job)

Cc: stable@kernel.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm kcopyd: prepare for callback race fix
Mikulas Patocka [Wed, 8 Apr 2009 23:27:16 +0000 (00:27 +0100)]
dm kcopyd: prepare for callback race fix

Use a variable in segment_complete() to point to the dm_kcopyd_client
struct and only release job->pages in run_complete_job() if any are
defined.  These changes are needed by the next patch.

Cc: stable@kernel.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: implement basic barrier support
Mikulas Patocka [Wed, 8 Apr 2009 23:27:16 +0000 (00:27 +0100)]
dm: implement basic barrier support

Barriers are submitted to a worker thread that issues them in-order.

The thread is modified so that when it sees a barrier request it waits
for all pending IO before the request then submits the barrier and
waits for it.  (We must wait, otherwise it could be intermixed with
following requests.)

Errors from the barrier request are recorded in a per-device barrier_error
variable. There may be only one barrier request in progress at once.

For now, the barrier request is converted to a non-barrier request when
sending it to the underlying device.

This patch guarantees correct barrier behavior if the underlying device
doesn't perform write-back caching. The same requirement existed before
barriers were supported in dm.

Bottom layer barrier support (sending barriers by target drivers) and
handling devices with write-back caches will be done in further patches.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: remove dm_request loop
Mikulas Patocka [Wed, 8 Apr 2009 23:27:15 +0000 (00:27 +0100)]
dm: remove dm_request loop

Remove queue_io return value and a loop in dm_request.

IO may be submitted to a worker thread with queue_io().  queue_io() sets
DMF_QUEUE_IO_TO_THREAD so that all further IO is queued for the thread. When
the thread finishes its work, it clears DMF_QUEUE_IO_TO_THREAD and from this
point on, requests are submitted from dm_request again. This will be used
for processing barriers.

Remove the loop in dm_request. queue_io() can submit I/Os to the worker thread
even if DMF_QUEUE_IO_TO_THREAD was not set.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: rework queueing and suspension
Mikulas Patocka [Wed, 8 Apr 2009 23:27:15 +0000 (00:27 +0100)]
dm: rework queueing and suspension

Rework shutting down on suspend and document the associated rules.

Drop write lock in __split_and_process_bio to allow more processing
concurrency.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: simplify dm_request loop
Alasdair G Kergon [Wed, 8 Apr 2009 23:27:14 +0000 (00:27 +0100)]
dm: simplify dm_request loop

Refactor the code in dm_request().

Require the new DMF_BLOCK_FOR_SUSPEND flag on readahead bios we will
discard so we don't drop such bios while processing a barrier.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: split DMF_BLOCK_IO flag into two
Alasdair G Kergon [Wed, 8 Apr 2009 23:27:14 +0000 (00:27 +0100)]
dm: split DMF_BLOCK_IO flag into two

Split the DMF_BLOCK_IO flag into two.

DMF_BLOCK_IO_FOR_SUSPEND is set when I/O must be blocked while suspending a
device.  DMF_QUEUE_IO_TO_THREAD is set when I/O must be queued to a
worker thread for later processing.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: rearrange dm_wq_work
Alasdair G Kergon [Wed, 8 Apr 2009 23:27:13 +0000 (00:27 +0100)]
dm: rearrange dm_wq_work

Refactor dm_wq_work() to make later patch more readable.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: remove limited barrier support
Mikulas Patocka [Wed, 8 Apr 2009 23:27:13 +0000 (00:27 +0100)]
dm: remove limited barrier support

Prepare for full barrier implementation: first remove the restricted support.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agodm: add integrity support
Martin K. Petersen [Wed, 8 Apr 2009 23:27:12 +0000 (00:27 +0100)]
dm: add integrity support

This patch provides support for data integrity passthrough in the device
mapper.

 - If one or more component devices support integrity an integrity
   profile is preallocated for the DM device.

 - If all component devices have compatible profiles the DM device is
   flagged as capable.

 - Handle integrity metadata when splitting and cloning bios.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
15 years agocap_prctl: don't set error to 0 at 'no_change'
Serge E. Hallyn [Wed, 8 Apr 2009 21:55:58 +0000 (16:55 -0500)]
cap_prctl: don't set error to 0 at 'no_change'

One-liner: capsh --print is broken without this patch.

In certain cases, cap_prctl returns error > 0 for success.  However,
the 'no_change' label was always setting error to 0.  As a result,
for example, 'prctl(CAP_BSET_READ, N)' would always return 0.
It should return 1 if a process has N in its bounding set (as
by default it does).

I'm keeping the no_change label even though it's now functionally
the same as 'error'.

Signed-off-by: Serge Hallyn <serue@us.ibm.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
15 years agoigb: remove sysfs entry that was used to set the number of vfs
Alexander Duyck [Tue, 7 Apr 2009 14:37:52 +0000 (14:37 +0000)]
igb: remove sysfs entry that was used to set the number of vfs

This patch removes the sysfs entry num_vfs which was added to support
enabling pci virtual functions for 82576.

To prevent VFs from loading automatically a module parameter "max_vfs" was
added so that the number of VFs per PF can be limited.  This is especially
useful when 4 or more 82576 ports are on the system because otherwise to
load all VFs would result in 8 interface per physical port.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoigbvf: add new driver to support 82576 virtual functions
Alexander Duyck [Tue, 7 Apr 2009 14:37:34 +0000 (14:37 +0000)]
igbvf: add new driver to support 82576 virtual functions

This adds an igbvf driver to handle virtual functions provided by the
igb driver when SR-IOV has been enabled.  A virtual function is a
lightweight pci-e function that supports a single queue and shares
resources with the 82576 physical function contained within the igb
driver.

To spawn virtual functions from the igb driver all that is needed is to
enable CONFIG_PCI_IOV and have an 82576 Ethernet adapter on a system that
supports SR-IOV in the BIOS.  The virtual functions will appear after the
interface is loaded.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agodrivers/net/eql.c: Fix a dev leakage.
Yang Hongyang [Wed, 8 Apr 2009 22:56:33 +0000 (15:56 -0700)]
drivers/net/eql.c: Fix a dev leakage.

After dev_get_by_name(), we should follow a dev_put().

Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoniu: Fix unused variable warning.
David S. Miller [Wed, 8 Apr 2009 22:52:16 +0000 (15:52 -0700)]
niu: Fix unused variable warning.

Don't strain gcc's tiny mind.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agor6040: set MODULE_VERSION
Florian Fainelli [Wed, 8 Apr 2009 22:50:43 +0000 (15:50 -0700)]
r6040: set MODULE_VERSION

This patch sets MODULE_VERSION in order to help users track
changes to this module.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agobnx2: Don't use reserved names
Bastian Blank [Wed, 8 Apr 2009 22:50:07 +0000 (15:50 -0700)]
bnx2: Don't use reserved names

The mips identifier is reserved by gcc on mips plattforms. Don't use it
in the code.

Signed-off-by: Bastian Blank <waldi@debian.org>
Tested-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoFEC driver: add missing #endif
Sascha Hauer [Wed, 8 Apr 2009 22:44:45 +0000 (15:44 -0700)]
FEC driver: add missing #endif

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoniu: Fix error handling
Dan Carpenter [Wed, 8 Apr 2009 22:44:04 +0000 (15:44 -0700)]
niu: Fix error handling

platform_device_register_simple() returns ERR_PTR(), not NULL, if an error
occurs.

Found by smatch (http://repo.or.cz/w/smatch.git).  Compile tested.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomv643xx_eth: don't reset the rx coal timer on interface up
Lennert Buytenhek [Wed, 8 Apr 2009 22:42:46 +0000 (15:42 -0700)]
mv643xx_eth: don't reset the rx coal timer on interface up

Move SDMA configuration from interface up to port probe, to prevent
overwriting the receive coalescing timer value on interface up.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosmsc911x: correct debugging message on mii read timeout
Steve Glendinning [Wed, 8 Apr 2009 22:42:15 +0000 (15:42 -0700)]
smsc911x: correct debugging message on mii read timeout

the warning printed when a mii READ times out currently says "Timed out
waiting for MII write to finish".  This patch corrects this.

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoethoc: fix library build errors
Randy Dunlap [Wed, 8 Apr 2009 22:41:25 +0000 (15:41 -0700)]
ethoc: fix library build errors

ethoc indirectly uses crc32_le() and bitrev32(), so select
those library functions to be built.

drivers/built-in.o: In function `ethoc_set_multicast_list':
ethoc.c:(.text+0x6226f): undefined reference to `crc32_le'
ethoc.c:(.text+0x62276): undefined reference to `bitrev32'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Wed, 8 Apr 2009 22:36:42 +0000 (15:36 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] wire up preadv/pwritev system calls

15 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Wed, 8 Apr 2009 22:32:06 +0000 (15:32 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
  x86 ACPI: Add support for Always Running APIC timer
  ACPI x86: Make aperf/mperf MSR access in acpi_cpufreq read_only
  ACPI x86: Cleanup acpi_cpufreq structures related to aperf/mperf
  ACPICA: delete check for AML access to port 0x81-83
  ACPI: WMI: use .notify method instead of installing handler directly
  sony-laptop: use .notify method instead of installing handler directly
  panasonic-laptop: use .notify method instead of installing handler directly
  fujitsu-laptop: use .notify method instead of installing hotkey handler directly
  fujitsu-laptop: use .notify method instead of installing handler directly
  ACPI: video: use .notify method instead of installing handler directly
  ACPI: thermal: use .notify method instead of installing handler directly
  ACPI battery: fix async boot oops
  ACPI: delete acpi_device.g_list
  NULL noise: drivers/platform/x86/panasonic-laptop.c
  ACPI: cpufreq: remove dupilcated #include
  ACPI: Adjust Kelvin offset to match local implementation
  ACPI: convert acpi_device_lock spinlock to mutex

15 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Wed, 8 Apr 2009 22:24:09 +0000 (15:24 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 5446/1: ohci-at91: Limit vbus_pin assignment to the size of the array
  [ARM] 5445/1: AT91: Remove flexible array from USBH platform data
  [ARM] 5447/1: Add SZ_32K
  [ARM] omap: fix omap1 clock usecount decrement bug
  [ARM] pxa: register AC97 controller devices
  [ARM] pxa/csb701: do not register devices on non-csb726 boads
  [ARM] pxa/colibri: get rid of set_irq_type()
  [ARM] pxa/colibri: provide MAC address from ATAG_SERIAL
  [ARM] pxa/cm-x2xx: fix ucb1400 not being registered
  [ARM] pxa: Add support for suspend on PalmTX, T5 and LD
  [ARM] pxa: PalmTE2 support for battery, UDC, IrDA and backlight
  [ARM] pxa: Palm Tungsten E2 basic support
  [ARM] pxa/em-x270: add libertas device registration
  [ARM] pxa/magician: Enable bq24022 regulator for gpio_vbus and pda_power

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
Linus Torvalds [Wed, 8 Apr 2009 21:33:59 +0000 (14:33 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/drzeus/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
  mmc_spi: support for non-byte-aligned cards
  omap_hsmmc: Do not expect cmd/data to be non-null when CC/TC occurs
  mmc: Fix compile for omap_hsmmc.c
  mmc_spi: convert timeout handling to jiffies and avoid busy waiting
  mmc_spi: do not check CID and CSD blocks with CRC16
  omap_hsmmc: Flush posted write to IRQ
  New mail address for Pierre Ossman
  imxmmc: move RSSR BLR
  imxmmc: init-exit rework
  mmc: Accept EXT_CSD rev 1.3 since it is backwards compatible with 1.2

15 years agotty: MAX3100
Alan Cox [Wed, 8 Apr 2009 19:13:16 +0000 (20:13 +0100)]
tty: MAX3100

Thou shalt remember to use 'git add' or errors shall be visited on your
downloads and there shall be wrath from on list and much gnashing of teeth.

Thou shalt remember to use git status or there shall be catcalls and much
embarrasment shall come to pass.

Signed-off-by: Alan "I'm hiding" Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years ago[IA64] wire up preadv/pwritev system calls
Tony Luck [Wed, 8 Apr 2009 20:46:14 +0000 (13:46 -0700)]
[IA64] wire up preadv/pwritev system calls

Gerd Hoffmann added these to Linux.  Let ia64 use them.

Signed-off-by: Tony Luck <tony.luck@intel.com>
15 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6
David S. Miller [Wed, 8 Apr 2009 20:39:54 +0000 (13:39 -0700)]
Merge branch 'master' of git://git./linux/kernel/git/kaber/nf-2.6

15 years ago[ARM] 5446/1: ohci-at91: Limit vbus_pin assignment to the size of the array
Justin Waters [Fri, 3 Apr 2009 20:06:53 +0000 (21:06 +0100)]
[ARM] 5446/1: ohci-at91: Limit vbus_pin assignment to the size of the array

Currently, the vbus_pin assignment loop is limited by the value of the "ports"
variable in the platform data.  Now that the vbus_pin array is no longer
flexible, we can use its actual size.

Signed-off-by: Justin Waters <justin.waters@timesys.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5445/1: AT91: Remove flexible array from USBH platform data
Justin Waters [Fri, 3 Apr 2009 20:03:59 +0000 (21:03 +0100)]
[ARM] 5445/1: AT91: Remove flexible array from USBH platform data

The flexible array in the USBH platform data is not safe to copy.  The
compiler will not allocate any extra memory for the non-init platform
data structure (in the *_devices.c files) since it isn't given any
defaults at compile time.  When the probe function attempts to address
that array, it will actually attempt to access data in an adjacent
structure.

Since there are currently no (known) implementations of the at91 USBH
IP with more than 2 vbus pins, I am capping the value at 2.  If somebody
tries to assign more, then the compiler will produce a warning.

Signed-off-by: Justin Waters <justin.waters@timesys.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5447/1: Add SZ_32K
Linus Walleij [Wed, 8 Apr 2009 00:32:20 +0000 (01:32 +0100)]
[ARM] 5447/1: Add SZ_32K

This adds a SZ_32K define to the available sizes. I need it for an
upcoming platform support.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agommc_spi: support for non-byte-aligned cards
Wolfgang Muees [Wed, 8 Apr 2009 08:48:58 +0000 (09:48 +0100)]
mmc_spi: support for non-byte-aligned cards

A very large subset of SD cards in the market send their
responses and data non-byte-aligned. So add logic to the
mmc spi driver to handle this mess.

Signed-off-by: Wolfgang Muees <wolfgang.mues@auerswald.de>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agoomap_hsmmc: Do not expect cmd/data to be non-null when CC/TC occurs
Jarkko Lavinen [Wed, 8 Apr 2009 08:18:32 +0000 (11:18 +0300)]
omap_hsmmc: Do not expect cmd/data to be non-null when CC/TC occurs

With spurious interrupt cmd can be null even when we have CC
set in irq status.

Fixes: NB#106295 - prevent potential kernel crash in the MMC driver
Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com>
Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agommc: Fix compile for omap_hsmmc.c
Tony Lindgren [Wed, 8 Apr 2009 00:04:33 +0000 (17:04 -0700)]
mmc: Fix compile for omap_hsmmc.c

This fixes the issue noted by Russell King:

drivers/mmc/host/omap_hsmmc.c: In function 'mmc_omap_xfer_done':
drivers/mmc/host/omap_hsmmc.c:301: error: implicit declaration of function 'mmc_omap_fclk_lazy_disable'

This got broken by 4a694dc915c9a223044ce21fc0d99e63facd1d64.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agommc_spi: convert timeout handling to jiffies and avoid busy waiting
Wolfgang Muees [Tue, 7 Apr 2009 14:26:30 +0000 (15:26 +0100)]
mmc_spi: convert timeout handling to jiffies and avoid busy waiting

SD/MMC card timeouts can be very high. So avoid busy-waiting,
using the scheduler. Calculate all timeouts in jiffies units,
because this will give us the correct sign when to involve
the scheduler.

Signed-off-by: Wolfgang Muees <wolfgang.mues@auerswald.de>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agommc_spi: do not check CID and CSD blocks with CRC16
Wolfgang Muees [Tue, 7 Apr 2009 13:48:16 +0000 (14:48 +0100)]
mmc_spi: do not check CID and CSD blocks with CRC16

Some cards are not able to calculate a valid CRC16 value
for CID and CSD reads (CRC for 512 byte data blocks is OK).
By moving the CRC enable after the read of CID and CSD, these
cards can be used. This patch was tested with a faulty 8 GByte
takeMS Class 6 SDHC card. This patch was suggested by
Pierre Ossman.

Signed-off-by: Wolfgang Muees <wolfgang.mues@auerswald.de>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agoomap_hsmmc: Flush posted write to IRQ
Kevin Hilman [Mon, 6 Apr 2009 12:01:19 +0000 (15:01 +0300)]
omap_hsmmc: Flush posted write to IRQ

Spurious IRQs seen on MMC after 2.6.29.  Flush posted write in IRQ
handler.

The interrupt line is released by clearing the error status bits
in the MMCHS_STAT register, which must occur before the interrupt
handler returns to avoid unwanted irqs.  Hence the need to flush
the posted write.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Acked-by: Tony Lindgen <tony@atomide.com>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agoNew mail address for Pierre Ossman
Pierre Ossman [Wed, 8 Apr 2009 18:14:54 +0000 (20:14 +0200)]
New mail address for Pierre Ossman

Signed-off-by: Pierre Ossman <pierre@ossman.eu>
15 years agoimxmmc: move RSSR BLR
Paulius Zaleckas [Wed, 25 Mar 2009 09:18:50 +0000 (11:18 +0200)]
imxmmc: move RSSR BLR

DMA request source (RSSR) needs to be set only once (in probe).
DMA burst length (BLR) need to be set only in set_ios()

This cleans up imxmci_setup_data() and should make it a little
bit faster :)

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
15 years agoimxmmc: init-exit rework
Paulius Zaleckas [Wed, 25 Mar 2009 09:17:42 +0000 (11:17 +0200)]
imxmmc: init-exit rework

Add __init __exit for appropriate probe and remove functions.
Conver to platform_driver_probe()

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
15 years agommc: Accept EXT_CSD rev 1.3 since it is backwards compatible with 1.2
Jarkko Lavinen [Thu, 27 Nov 2008 12:30:32 +0000 (14:30 +0200)]
mmc: Accept EXT_CSD rev 1.3 since it is backwards compatible with 1.2

Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
15 years agoptrace: some checkpatch fixes
Roland McGrath [Wed, 8 Apr 2009 06:21:06 +0000 (23:21 -0700)]
ptrace: some checkpatch fixes

This fixes all the checkpatch --file complaints about kernel/ptrace.c
and also removes an unused #include.  I've verified that there are no
changes to the compiled code on x86_64.

Signed-off-by: Roland McGrath <roland@redhat.com>
[ Removed the parts that just split a line  - Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agonommu: fix typo vma->pg_off to vma->vm_pgoff
Nobuhiro Iwamatsu [Wed, 8 Apr 2009 04:21:43 +0000 (21:21 -0700)]
nommu: fix typo vma->pg_off to vma->vm_pgoff

6260a4b0521a41189b2c2a8119096c1e21dbdf2c ("/proc/pid/maps: don't show
pgoff of pure ANON VMAs" had a typo.

fs/proc/task_nommu.c:138: error: 'struct vm_area_struct' has no member named 'pg_off'
distcc[21484] ERROR: compile fs/proc/task_nommu.c on sprygo/32 failed

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agobefs: fix build on parisc
Alexander Beregalov [Wed, 8 Apr 2009 04:21:42 +0000 (21:21 -0700)]
befs: fix build on parisc

fs/befs/super.c:85: error: 'PAGE_SIZE' undeclared

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoext3: Try to avoid starting a transaction in writepage for data=writepage
Jan Kara [Tue, 7 Apr 2009 22:25:01 +0000 (18:25 -0400)]
ext3: Try to avoid starting a transaction in writepage for data=writepage

This does the same as commit 9e80d407736161d9b8b0c5a0d44f786e44c322ea
(avoid starting a transaction when no block allocation is needed)
but for data=writeback mode of ext3. We also cleanup the data=ordered
case a bit to stick to coding style...

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
15 years agoblock_write_full_page: switch synchronous writes to use WRITE_SYNC_PLUG
Theodore Ts'o [Tue, 7 Apr 2009 22:12:43 +0000 (18:12 -0400)]
block_write_full_page: switch synchronous writes to use WRITE_SYNC_PLUG

Now that we have a distinction between WRITE_SYNC and WRITE_SYNC_PLUG,
use WRITE_SYNC_PLUG in __block_write_full_page() to avoid unplugging
the block device I/O queue between each page that gets flushed out.

Otherwise, when we run sync() or fsync() and we need to write out a
large number of pages, the block device queue will get unplugged
between for every page that is flushed out, which will be a pretty
serious performance regression caused by commit a64c8610.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
15 years agox86: smarten /proc/interrupts output for new counters
Hidetoshi Seto [Wed, 25 Mar 2009 01:50:34 +0000 (10:50 +0900)]
x86: smarten /proc/interrupts output for new counters

Now /proc/interrupts of tip tree has new counters:

  PLT: Platform interrupts

Format change of output, as like that by commit:

  commit 7a81d9a7da03d2f27840d659f97ef140d032f609
  x86: smarten /proc/interrupts output

should be applied to these new counters too.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: Jan Beulich <jbeulich@novell.com>
LKML-Reference: <49C98DEA.8060208@jp.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMerge commit 'v2.6.30-rc1' into x86/urgent
Ingo Molnar [Wed, 8 Apr 2009 16:04:48 +0000 (18:04 +0200)]
Merge commit 'v2.6.30-rc1' into x86/urgent

Merge reason: fix to be queued up depends on upstream facilities

Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: DMI match for the Dell DXP061 as it needs BIOS reboot
Alan Cox [Thu, 26 Mar 2009 20:45:28 +0000 (20:45 +0000)]
x86: DMI match for the Dell DXP061 as it needs BIOS reboot

Closes http://bugzilla.kernel.org/show_bug.cgi?12901

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
LKML-Reference: <20090326204524.4454.8776.stgit@localhost.localdomain>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoposix-timers: fix RLIMIT_CPU && setitimer(CPUCLOCK_PROF)
Oleg Nesterov [Fri, 27 Mar 2009 00:06:10 +0000 (01:06 +0100)]
posix-timers: fix RLIMIT_CPU && setitimer(CPUCLOCK_PROF)

update_rlimit_cpu() tries to optimize out set_process_cpu_timer() in case
when we already have CPUCLOCK_PROF timer which should expire first. But it
uses cputime_lt() instead of cputime_gt().

Test case:

int main(void)
{
struct itimerval it = {
.it_value = { .tv_sec = 1000 },
};

assert(!setitimer(ITIMER_PROF, &it, NULL));

struct rlimit rl = {
.rlim_cur = 1,
.rlim_max = 1,
};

assert(!setrlimit(RLIMIT_CPU, &rl));

for (;;)
;

return 0;
}

Without this patch, the task is not killed as RLIMIT_CPU demands.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Peter Lojkin <ia6432@inbox.ru>
Cc: Roland McGrath <roland@redhat.com>
Cc: stable@kernel.org
LKML-Reference: <20090327000610.GA10108@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoposix-timers: fix RLIMIT_CPU && fork()
Oleg Nesterov [Fri, 27 Mar 2009 00:06:07 +0000 (01:06 +0100)]
posix-timers: fix RLIMIT_CPU && fork()

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

copy_signal() copies signal->rlim, but RLIMIT_CPU is "lost". Because
posix_cpu_timers_init_group() sets cputime_expires.prof_exp = 0 and thus
fastpath_timer_check() returns false unless we have other expired cpu timers.

Change copy_signal() to set cputime_expires.prof_exp if we have RLIMIT_CPU.
Also, set cputimer.running = 1 in that case. This is not strictly necessary,
but imho makes sense.

Reported-by: Peter Lojkin <ia6432@inbox.ru>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Peter Lojkin <ia6432@inbox.ru>
Cc: Roland McGrath <roland@redhat.com>
Cc: stable@kernel.org
LKML-Reference: <20090327000607.GA10104@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86: make 64 bit to use default_inquire_remote_apic
Yinghai Lu [Wed, 8 Apr 2009 15:00:01 +0000 (08:00 -0700)]
x86: make 64 bit to use default_inquire_remote_apic

Impact: restore old behavior

for flat and phys_flat

Signed-off-by: Yinhai Lu <yinghai@kernel.org.
LKML-Reference: <49DCBBF1.8080903@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agosched: refresh MAINTAINERS entry
Ingo Molnar [Wed, 8 Apr 2009 15:27:59 +0000 (17:27 +0200)]
sched: refresh MAINTAINERS entry

Peter has become a co-maintainer of the scheduler during the last year,
and Robert has become inactive - update the MAINTAINERS entry.

Acked-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMerge commit 'v2.6.30-rc1' into sched/urgent
Ingo Molnar [Wed, 8 Apr 2009 15:25:42 +0000 (17:25 +0200)]
Merge commit 'v2.6.30-rc1' into sched/urgent

Merge reason: update to latest upstream to queue up fix

Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoprintk: fix wrong format string iter for printk
Zhaolei [Fri, 27 Mar 2009 09:09:10 +0000 (17:09 +0800)]
printk: fix wrong format string iter for printk

printk("%Q");

 Output before patch:  %QQ
 Output  after patch:  %Q

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Acked-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: torvalds@linux-foundation.org
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <49CC97B6.7040809@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMerge commit 'v2.6.30-rc1' into core/urgent
Ingo Molnar [Wed, 8 Apr 2009 15:02:50 +0000 (17:02 +0200)]
Merge commit 'v2.6.30-rc1' into core/urgent

Merge reason: need latest upstream to queue up dependent fix

Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agosparc: Hook up sys_preadv and sys_pwritev
David S. Miller [Wed, 8 Apr 2009 10:55:30 +0000 (03:55 -0700)]
sparc: Hook up sys_preadv and sys_pwritev

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosparc64: add_node_ranges() must be __init
David S. Miller [Tue, 7 Apr 2009 08:05:22 +0000 (01:05 -0700)]
sparc64: add_node_ranges() must be __init

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoserial: sunsu: sunsu_kbd_ms_init needs to be __devinit
David S. Miller [Tue, 7 Apr 2009 08:08:09 +0000 (01:08 -0700)]
serial: sunsu: sunsu_kbd_ms_init needs to be __devinit

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosparc: Fix section mismatch warnings in cs4231 sound driver.
David S. Miller [Tue, 7 Apr 2009 07:45:51 +0000 (00:45 -0700)]
sparc: Fix section mismatch warnings in cs4231 sound driver.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosparc64: Fix section mismatch warnings in PCI controller drivers.
David S. Miller [Tue, 7 Apr 2009 08:03:58 +0000 (01:03 -0700)]
sparc64: Fix section mismatch warnings in PCI controller drivers.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosparc64: Fix section mismatch warnings in power driver.
David S. Miller [Tue, 7 Apr 2009 07:47:44 +0000 (00:47 -0700)]
sparc64: Fix section mismatch warnings in power driver.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosparc64: get_cells() can't be marked __init
David S. Miller [Tue, 7 Apr 2009 07:54:27 +0000 (00:54 -0700)]
sparc64: get_cells() can't be marked __init

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agotracing: append a comma to INIT_FTRACE_GRAPH
Tetsuo Handa [Wed, 8 Apr 2009 05:05:43 +0000 (14:05 +0900)]
tracing: append a comma to INIT_FTRACE_GRAPH

Impact: dont break future extensions of INIT_TASK

While not a problem right now, due to lack of a comma, build fails if
elements are appended to INIT_TASK() macro in development code:

 arch/x86/kernel/init_task.c:33: error: request for member `XXXXXXXXXX' in something not a structure or union
 arch/x86/kernel/init_task.c:33: error: initializer element is not constant
 arch/x86/kernel/init_task.c:33: error: (near initialization for `init_task.ret_stack')
 make[1]: *** [arch/x86/kernel/init_task.o] Error 1
 make: *** [arch/x86/kernel] Error 2

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: srostedt@redhat.com
LKML-Reference: <200904080505.n3855hcn017109@www262.sakura.ne.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMerge branches 'release', 'APERF', 'ARAT', 'misc', 'kelvin', 'device-lock' and 'bjorn...
Len Brown [Tue, 7 Apr 2009 22:18:42 +0000 (18:18 -0400)]
Merge branches 'release', 'APERF', 'ARAT', 'misc', 'kelvin', 'device-lock' and 'bjorn.notify' into release

15 years agox86 ACPI: Add support for Always Running APIC timer
Venkatesh Pallipadi [Tue, 7 Apr 2009 01:51:29 +0000 (18:51 -0700)]
x86 ACPI: Add support for Always Running APIC timer

Add support for Always Running APIC timer, CPUID_0x6_EAX_Bit2.
This bit means the APIC timer continues to run even when CPU is
in deep C-states.

The advantage is that we can use LAPIC timer on these CPUs
always, and there is no need for "slow to read and program"
external timers (HPET/PIT) and the timer broadcast logic
and related code in C-state entry and exit.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Len Brown <len.brown@intel.com>