Wei Yang | 21 Apr 03:53 2014

[PATCH] drivercore: fix a corner case for deferred probe

There is one corner case in deferred probe which will lead a device in
"dream" in the deferred_probe_pending_list.

Suppose we have three devices, Tom, Jerry and Spike. Tom and Jerry have a
close relationship, Tom could be up until Jerry is up. Spike is an
independent device.

Device probe sequence: Tom -> Spike -> Jerry

1. Tom probes, fails for deferred probe
   adds itself to pending list
2. Spike probes, succeed
   move devices in pending list to active list
   trigger deferred probe
3. Tom is taken off from active list
   probes and still fails, scheduled out
   not added to pending list this time
   (Tom is not in pending list neither in active list)
4. Jerry probes, succeed
   move devices in pending list to active list(but Tom is not there)
   trigger deferred probe
   go through the active list
5. Tom add itself to pending list
   and wait

Tom will be trapped in the pending list until someone else help it out.

This patch adds a counter of success probe. Every time a driver probe succeeds,
this is increased by 1. In the deferred_probe_work_func, when probe fails and
returns EPROBE_DEFER, it checks this counter. If some driver succeed to probe
(Continue reading)

Masami Hiramatsu | 21 Apr 03:33 2014

[PATCH v3] kernel/panic: Add "crash_kexec_post_notifiers" option for kdump after panic_notifers

Add a "crash_kexec_post_notifiers" option to run kdump after running
panic_notifiers and dump kmsg. This can help rare situations which
kdump drops in failure because of unstable crashed kernel or hardware
failure (memory corruption on critical data/code), or the 2nd kernel
is already broken by the 1st kernel (it's a broken behavior, but who
can guarantee that the "crashed" kernel works correctly?).

Usage: add "crash_kexec_post_notifiers" to kernel boot option.

Note that this actually increases risks of the failure of kdump.
This option should be set only if you worry about the rare case
of kdump failure rather than increasing the chance of success.

Changes from v2:
 - Remove warning message according to Vivek's comment.

Changes from v1:
 - Rename late_kdump option to crash_kexec_post_notifiers.
 - Remove unneeded warning message.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt <at> hitachi.com>
Acked-by: Motohiro Kosaki <Motohiro.Kosaki <at> us.fujitsu.com>
Cc: Eric Biederman <ebiederm <at> xmission.com>
Cc: Vivek Goyal <vgoyal <at> redhat.com>
Cc: Andrew Morton <akpm <at> linux-foundation.org>
Cc: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez <at> hitachi.com>
Cc: Satoru MORIYA <satoru.moriya.br <at> hitachi.com>
Cc: Tomoki Sekiyama <tomoki.sekiyama <at> hds.com>
 Documentation/kernel-parameters.txt |    8 ++++++++
(Continue reading)

Jason Chen | 21 Apr 03:18 2014

[RFC PATCH 0/1] add apic_irqs bitmap to identify irqs from apic

During irq migration, irq_force_complete_move() will consider all irqs coming from apic kind of
irq chip, but they may also coming from other irq chip, such kind of irqs should be filtered out.

Jason Chen (1):
  x86/apic: add apic_irqs bitmap to identify irqs from apic

 arch/x86/kernel/apic/io_apic.c | 21 ++++++++++++++++++++-
 include/linux/irqdesc.h        |  6 ++++++
 kernel/irq/internals.h         |  6 ------
 3 files changed, 26 insertions(+), 7 deletions(-)



Rafael J. Wysocki | 21 Apr 01:26 2014

[PATCH] sched / idle: Make cpuidle_idle_call() void

From: Rafael J. Wysocki <rafael.j.wysocki <at> intel.com>

The only value ever returned by cpuidle_idle_call() is 0 and its
only caller ignores that value anyway, so make it void.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki <at> intel.com>
 kernel/sched/idle.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Index: linux-pm/kernel/sched/idle.c
--- linux-pm.orig/kernel/sched/idle.c
+++ linux-pm/kernel/sched/idle.c
 <at>  <at>  -67,9 +67,8  <at>  <at>  void __weak arch_cpu_idle(void)
  * cpuidle_idle_call - the main idle function
  * NOTE: no locks or semaphores should be used here
- * return non-zero on failure
-static int cpuidle_idle_call(void)
+static void cpuidle_idle_call(void)
 	struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
 	struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
 <at>  <at>  -84,7 +83,7  <at>  <at>  static int cpuidle_idle_call(void)
 	if (current_clr_polling_and_test()) {
-		return 0;
(Continue reading)

Randy Dunlap | 21 Apr 01:03 2014

[PATCH] fs: fix new kernel-doc warnings in fs/bio.c

From: Randy Dunlap <rdunlap <at> infradead.org>

Fix new kernel-doc warnings in fs/bio.c:

Warning(fs/bio.c:316): No description found for parameter 'bio'
Warning(fs/bio.c:316): No description found for parameter 'parent'

Signed-off-by: Randy Dunlap <rdunlap <at> infradead.org>
 fs/bio.c |    2 ++
 1 file changed, 2 insertions(+)

--- lnx-315-rc2.orig/fs/bio.c
+++ lnx-315-rc2/fs/bio.c
 <at>  <at>  -305,6 +305,8  <at>  <at>  static void bio_chain_endio(struct bio *

  * bio_chain - chain bio completions
+ *  <at> bio: the target bio
+ *  <at> parent: the  <at> bio's parent bio
  * The caller won't have a bi_end_io called when  <at> bio completes - instead,
  *  <at> parent's bi_end_io won't be called until both  <at> parent and  <at> bio have
Pranith Kumar | 20 Apr 23:57 2014

[PATCH 1/1] rcu: cleanup: make rcutorture specific definitions depend on config value

make rcutorture specific variables in tree.c depend on CONFIG_RCU_TORTURE_TEST
This avoid having to have them when no torture tests are running.
Also cleanup some macros which are rcutorture specific.

Tested with rcutorture both in-built and as a module

Signed-off-by: Pranith Kumar <bobby.prani <at> gmail.com>
 include/linux/rcupdate.h |   13 +++----------
 kernel/rcu/tree.c        |   29 +++++++++++++++++------------
 kernel/rcu/tree_trace.c  |    7 +++++++
 3 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 00a7fd6..b49e46b 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
 <at>  <at>  -49,16 +49,8  <at>  <at> 
 extern int rcu_expedited; /* for sysctl */
 extern int rcutorture_runnable; /* for sysctl */
-#endif /* #ifdef CONFIG_RCU_TORTURE_TEST */
 void rcutorture_record_test_transition(void);
 void rcutorture_record_progress(unsigned long vernum);
-void do_trace_rcu_torture_read(const char *rcutorturename,
-			       struct rcu_head *rhp,
-			       unsigned long secs,
-			       unsigned long c_old,
(Continue reading)

Richard Weinberger | 20 Apr 23:26 2014

[GIT PULL] UML fixes


The following changes since commit a798c10faf62a505d24e5f6213fbaf904a39623f:

  Linux 3.15-rc2 (2014-04-20 11:08:50 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git for-linus

for you to fetch changes up to a8c60be4f1bb3a4eead20e3fa19ce645f818014a:

  um: Memory corruption on startup (2014-04-20 23:13:36 +0200)

Assorted fixes for UML.
Anton Ivanov (2):
      um: Missing pipe handling
      um: Memory corruption on startup

Tristan Schmelcher (1):
      uml: Simplify tempdir logic.

 arch/um/include/shared/os.h |   1 +
 arch/um/kernel/physmem.c    |   1 +
 arch/um/os-Linux/file.c     |   6 +
 arch/um/os-Linux/main.c     |   1 +
 arch/um/os-Linux/mem.c      | 372 +++++++++-----------------------------------
 5 files changed, 84 insertions(+), 297 deletions(-)
(Continue reading)

Marc Haber | 20 Apr 22:56 2014

3.14 on Xenserver (non-HVM): "cannot allocate memory")


I have one rented Vserver which is hosted on Xenserver 6.2 at Hoster
A. I can use my own kernels there, and I use the kernel that also run
on my bare metal servers.

This works fine up to and including 3.13.2 (didn't try any higher 3.13

Linux 3.14, however, does not yet beyond the initramfs state ("cannot
allocate memory". This also happens when i set cgroup_disable=memory.

Here a log:
|Initializing cgroup subsys cpuset
|Initializing cgroup subsys cpu
|Initializing cgroup subsys cpuacct
|Linux version 3.14.0-zgsrv20080 (mh <at> fan) (gcc version 4.8.2 (Debian 4.8.2-18) ) #2 SMP PREEMPT Tue Apr 1
20:00:43 UTC 2014
|Command line: root=/dev/mapper/fake-root ro
|KERNEL supported cpus:
|  Intel GenuineIntel
|  AMD AuthenticAMD
|  Centaur CentaurHauls
|ACPI in unprivileged domain disabled
|e820: BIOS-provided physical RAM map:
|Xen: [mem 0x0000000000000000-0x000000000009ffff] usable
|Xen: [mem 0x00000000000a0000-0x00000000000fffff] reserved
|Xen: [mem 0x0000000000100000-0x000000000fffffff] usable
|NX (Execute Disable) protection: active
|DMI not present or invalid.
(Continue reading)

Jet Chen | 20 Apr 22:30 2014

[blk] WARNING: CPU: 0 PID: 300 at kernel/softirq.c:156 _local_bh_enable_ip()

Hi Zhiguo,

I got the below dmesg and the first bad commit is

git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
commit 2c575026fae6e63771bd2a4c1d407214a8096a89
Author:     Hong Zhiguo <zhiguohong <at> tencent.com>
AuthorDate: Wed Nov 20 10:35:05 2013 -0700
Commit:     Jens Axboe <axboe <at> kernel.dk>
CommitDate: Wed Nov 20 15:33:04 2013 -0700

    Update of blkg_stat and blkg_rwstat may happen in bh context.
    While u64_stats_fetch_retry is only preempt_disable on 32bit
    UP system. This is not enough to avoid preemption by bh and
    may read strange 64 bit value.
        Signed-off-by: Hong Zhiguo <zhiguohong <at> tencent.com>
    Acked-by: Tejun Heo <tj <at> kernel.org>
    Cc: stable <at> kernel.org
    Signed-off-by: Jens Axboe <axboe <at> kernel.dk>

|                                                           | 82023bb7f7 | 2c575026fa |
| boot_successes                                            | 47         | 0          |
| boot_failures                                             | 13         | 20         |
| BUG:kernel_boot_hang                                      | 13         | 5          |
| inconsistent_IN-SOFTIRQ-W-SOFTIRQ-ON-W_usage              | 0          | 15         |
| backtrace:smpboot_thread_fn                               | 0          | 15         |
| backtrace:vfs_read                                        | 0          | 9          |
| backtrace:SyS_read                                        | 0          | 9          |
(Continue reading)

Linus Torvalds | 20 Apr 21:46 2014

Linux 3.15-rc2

"And on the seventh day the rc release rose again, in accordance with
the Scriptures laid down at the kernel summit of the year 2004"

It's been a week, so here's another rc. And while -rc1 was one of the
biggest rc's in memory, rc2 looks fairly normal. We had a few niggling
issues fixed, but it really wasn't anything horribly worse than usual.
It might be a *bit* bigger than most -rc2's, but let's wait to see
after rc3 whether things are actually busier than usual. Quite often
rc2 is calmer than rc3, with it taking a week for some issues to show

As to what happened during last week: the *bulk* of the rc2 patch is
actually the removal of the rtl8187se staging driver, since there's a
proper non-staging one. That's literally just over half of the actual
patch. But even if you ignore just that bulk removal, other driver
changes account for about two thirds of the rest (gpu, networking,
fbdev file renames, ipmi, infiniband, pincontrol... you name it). The
drm stuff is probably most noticeable.

Outside of drivers, we've got the usual arch updates (mostly x86 and
s390, some parisc) and some Documentation updates. Various networking
fixes and filesystem updates (cifs, sysfs, xfs). And some tooling

Please test,



(Continue reading)

Michael Kerrisk (man-pages | 20 Apr 20:48 2014

man-pages-3.65 is released


The Linux man-pages maintainer proudly announces:

    man-pages-3.65 - man pages for Linux

Tarball download:
Git repository:
Online changelog:

A short summary of the release is blogged at:

The current version of the pages is browsable at:

A few changes in this release that may be of interest to readers of
this list are given below.



==================== Changes in man-pages-3.65 ====================

Released: 2014-04-20, Munich

(Continue reading)