Namhyung Kim | 24 Apr 10:23 2014

[PATCHSET 00/11] perf tools: Fixup for the --percentage change (v3)


This patchset tries to fix bugs in percentage handling which is
recently changed.  The perf top with symbol filter could cause a
segfault (NULL pointer dereference) if the filter found no entry.

In this patchset, I moved accounting of various histogram stats to be
calculated at the time it actually shown to users.  Although I tested
it on my system for a while, it needs more testing since it'll affect
behaviors of many commands/usages.

There're three main fields in the hists->stats to affect the output:
number of samples, number of hist entries and total periods.

Also there're three stages to process samples: at first, samples are
converted to a hist entry and added to the input tree, and then they are
moved to the collapsed tree if needed, and finally they're moved to the
output tree to be shown to user.

The (part of) stats are accounted when samples are added to the input
tree and then reset before moving to the output tree, and re-counted
during insertion to the output tree.

I can see some reason to do it this way but it's basically not necessary
and could make a problem in multi-threaded programs like perf top.

The perf report does all these passes sequentially in a single thread so
it seems no problem.  But perf top uses two threads - one for gathering
samples (in the input tree) and another for (collapsing and) moving them
to the output tree.  Thus accounting stat in parallel can result in an
(Continue reading)

Feng Tang | 24 Apr 10:18 2014

[PATCH 1/2] x86, hpet: Make boot_hpet_disable extern

HPET on some platform has accuracy problem. Making
"boot_hpet_disable" extern so that we can runtime disable
the HPET timer by using quirk to check the platform.

Signed-off-by: Feng Tang <feng.tang <at>>
 arch/x86/include/asm/hpet.h |    1 +
 arch/x86/kernel/hpet.c      |    2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/hpet.h b/arch/x86/include/asm/hpet.h
index b18df57..36f7125 100644
--- a/arch/x86/include/asm/hpet.h
+++ b/arch/x86/include/asm/hpet.h
 <at>  <at>  -63,6 +63,7  <at>  <at> 
 /* hpet memory map physical address */
 extern unsigned long hpet_address;
 extern unsigned long force_hpet_address;
+extern int boot_hpet_disable;
 extern u8 hpet_blockid;
 extern int hpet_force_user;
 extern u8 hpet_msi_disable;
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 8d80ae0..4177bfb 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
 <at>  <at>  -88,7 +88,7  <at>  <at>  static inline void hpet_clear_mapping(void)
  * HPET command line enable / disable
(Continue reading)

Krzysztof Kozlowski | 24 Apr 10:05 2014

[PATCH v3] mfd: sec-core: Update sec_pmic documentation

Update the documentation for sec_pmic state container structure to
reflect current code.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski <at>>
Acked-by: Lee Jones <lee.jones <at>>

Changes since v2:
 - Rebased on lee/mfd.

Changes since v1:
 - Update documentation after review from Lee Jones.
 include/linux/mfd/samsung/core.h | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index e7e12ebacb9b..47d84242940b 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
 <at>  <at>  -24,18 +24,23  <at>  <at>  enum sec_device_type {

- * struct sec_pmic_dev - s5m87xx master device for sub-drivers
- *  <at> dev: master device of the chip (can be used to access platform data)
- *  <at> pdata: pointer to private data used to pass platform data to child
- *  <at> i2c: i2c client private data for regulator
- *  <at> iolock: mutex for serializing io access
- *  <at> irqlock: mutex for buslock
(Continue reading)

Daniel Sangorrin | 24 Apr 09:47 2014

[PATCH] timer_stats: add core information to event counters


This patch adds information specifying the CPU core where timer 
callbacks (events) were executed to the output of /proc/timer_stats.
I tested the patch on a dual-core x86_64 and another dual-core 
ARM board. This patch may be useful for debugging timer execution
in multi-core environments.

Daniel Sangorrin (1):
  timer_stats: add core information to event counters

 Documentation/timers/timer_stats.txt | 41 ++++++++++++++++++++----------------
 kernel/time/timer_stats.c            | 20 ++++++++++--------
 2 files changed, 34 insertions(+), 27 deletions(-)



Rusty Russell | 24 Apr 09:14 2014

Re: [PATCH 3/9] drivers/hid/hid-lg4ff.c: avoid world-writable sysfs files.

madcatxster <at> writes:
> On Thu Apr 24 2014 05:25:24 GMT+0200 (CEST), Rusty Russell wrote:
>> simon <at> writes:
>> >> simon <at> writes:
>> >>> Yep I'm OK with that, however what it the recommended way to make sure
>> >>> that the end user is able to send changes to this /sys portal? I asked
>> >>> the
>> >>> same question before regarding the led class /sys interface, but never
>> >>> got
>> >>> any suggestions.
>> >>>
>> >>> Signed-off-by: Simon Wood <simon <at>>
>> >>
>> >> If you need that, we'll need to make an exception.  That's one purpose
>> >> of spamming everyone with these changs...
>> >
>> >
>> > What's the right way of doing it?... I don't need to be 'special'. ;-)
>> >
>> > The '/sys/.../range' control allows the user to limit the rotation of the
>> > gaming wheel from a maximum of 900' down to match the 'car' they
>> > sim-driving. Probably not many people use it, but it probably should be
>> > assigned properly.
>> >
>> > With gaming controllers the /dev/input/event* seem to get set
>> > appropriately, but I'm not sure how this happens.
>> >
>> > The same /should/ also happen for all the LED class controls, I don't want
>> > to have to 'sudo' just to set a LED on/off. This is currently a problem
>> > for (at least) hid-lg, hid-sony and hid-steelseries.
(Continue reading)

Jerry Snitselaar | 24 Apr 09:31 2014

[PATCH] staging/line6: blank line after declaration cleanup

Fix coding style warnings reported by checkpath.

Signed-off-by: Jerry Snitselaar <dev <at>>
 drivers/staging/line6/capture.c  | 3 +++
 drivers/staging/line6/midi.c     | 2 ++
 drivers/staging/line6/playback.c | 6 +++++-
 drivers/staging/line6/pod.c      | 5 +++++
 drivers/staging/line6/toneport.c | 2 ++
 drivers/staging/line6/variax.c   | 2 ++
 6 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/line6/capture.c b/drivers/staging/line6/capture.c
index 0eda51d..e6ca631 100644
--- a/drivers/staging/line6/capture.c
+++ b/drivers/staging/line6/capture.c
 <at>  <at>  -97,6 +97,7  <at>  <at>  void line6_unlink_audio_in_urbs(struct snd_line6_pcm *line6pcm)
 		if (test_bit(i, &line6pcm->active_urb_in)) {
 			if (!test_and_set_bit(i, &line6pcm->unlink_urb_in)) {
 				struct urb *u = line6pcm->urb_audio_in[i];
 <at>  <at>  -334,6 +335,7  <at>  <at>  static int snd_line6_capture_hw_params(struct snd_pcm_substream *substream,
 static int snd_line6_capture_hw_free(struct snd_pcm_substream *substream)
 	struct snd_line6_pcm *line6pcm = snd_pcm_substream_chip(substream);
 	line6_pcm_release(line6pcm, LINE6_BIT_PCM_ALSA_CAPTURE_BUFFER);
(Continue reading)

Rusty Russell | 24 Apr 08:24 2014

[PATCH] module: remove warning about waiting module removal.

We remove the waiting module removal in commit 3f2b9c9cdf38 (September
2013), but it turns out that modprobe in kmod (< version 16) was
asking for waiting module removal.  Noone noticed since modprobe would
check for 0 usage immediately before trying to remove the module, and
the race is unlikely.

However, it means that anyone running old (but not ancient) kmod
versions is hitting the printk designed to see if anyone was running
"rmmod -w".  All reports so far have been false positives, so remove
the warning.

Fixes: 3f2b9c9cdf389e303b2273679af08aab5f153517
Reported-by: Valerio Vanni <valerio.vanni <at>>
Cc: Elliott, Robert (Server Storage) <Elliott <at>>
Cc: stable <at>
Signed-off-by: Rusty Russell <rusty <at>>

diff --git a/kernel/module.c b/kernel/module.c
index 11869408f79b..ae7821898bf2 100644
--- a/kernel/module.c
+++ b/kernel/module.c
 <at>  <at>  -815,9 +815,6  <at>  <at>  SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
 		return -EFAULT;
 	name[MODULE_NAME_LEN-1] = '\0';

-	if (!(flags & O_NONBLOCK))
-		pr_warn("waiting module removal not supported: please upgrade\n");
 	if (mutex_lock_interruptible(&module_mutex) != 0)
 		return -EINTR;
(Continue reading)

Stephen Rothwell | 24 Apr 07:38 2014

linux-next: manual merge of the akpm-current tree with Linus' tree

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
mm/memory.c between commit 1b17844b29ae ("mm: make fixup_user_fault()
check the vma access rights too") from Linus' tree and commit
0d84be787c23 ("mm: move get_user_pages()-related code to separate file")
from the akpm-current tree.

I fixed it up (I applied Linus' patch to the new file) and can carry the
fix as necessary (no action is required).


Stephen Rothwell                    sfr <at>
Stephen Rothwell | 24 Apr 07:25 2014

linux-next: manual merge of the akpm-current tree with the arm tree

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
arch/arm/include/asm/fixmap.h between commits 4221e2e6b316 ("ARM: 8031/1:
fixmap: remove FIX_KMAP_BEGIN and FIX_KMAP_END") and a05e54c103b0 ("ARM:
8031/2: change fixmap mapping region to support 32 CPUs") from the arm
tree and commit a665f864487d ("arm: use generic fixmap.h") from the
akpm-current tree.

I fixed it up (I have just dropped the akpm-current tree patch for now)
and can carry the fix as necessary (no action is required).


Stephen Rothwell                    sfr <at>
Robin Gong | 24 Apr 07:09 2014

[PATCH v2] dma: imx-sdma: add support for sdma memory copy

add "device_prep_dma_memcpy" and "device_prep_dma_sg" for memory copy by sdma.

Signed-off-by: Robin Gong <b38343 <at>>

  1. correct some printk format, such as %pad for dma_addr_t
  2. split duplicated code in prep_dma_memcpy and prep_dma_sg to make code clean.
 drivers/dma/imx-sdma.c |  253 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 194 insertions(+), 59 deletions(-)

diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 4e79183..eb62ebc 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
 <at>  <at>  -229,6 +229,7  <at>  <at>  struct sdma_context_data {
 } __attribute__ ((packed));

 #define NUM_BD (int)(PAGE_SIZE / sizeof(struct sdma_buffer_descriptor))
+#define SDMA_BD_MAX_CNT	(0xfffc) /* align with 4 bytes */

 struct sdma_engine;

 <at>  <at>  -260,6 +261,7  <at>  <at>  struct sdma_channel {
 	unsigned int			pc_from_device, pc_to_device;
 	unsigned long			flags;
 	dma_addr_t			per_address;
+	unsigned int                    pc_to_pc;
(Continue reading)

Rusty Russell | 24 Apr 06:29 2014

[PATCH] speakup: fix incorrect perms on speakup_acntsa.c

22c9bcad859d5c969289b3b37084a96c621f8f2c contained a bad
substitution for ROOT_W => S_IRUSR|S_IRUGO instead of

Fixes: 22c9bcad859d5c969289b3b37084a96c621f8f2c
Signed-off-by: Rusty Russell <rusty <at>>

diff --git a/drivers/staging/speakup/speakup_acntsa.c b/drivers/staging/speakup/speakup_acntsa.c
index c7f014ed9628..5079dbd5d7ad 100644
--- a/drivers/staging/speakup/speakup_acntsa.c
+++ b/drivers/staging/speakup/speakup_acntsa.c
 <at>  <at>  -60,15 +60,15  <at>  <at>  static struct kobj_attribute vol_attribute =
 	__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);

 static struct kobj_attribute delay_time_attribute =
-	__ATTR(delay_time, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
+	__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
 static struct kobj_attribute direct_attribute =
 	__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
 static struct kobj_attribute full_time_attribute =
-	__ATTR(full_time, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
+	__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
 static struct kobj_attribute jiffy_delta_attribute =
-	__ATTR(jiffy_delta, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
+	__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
 static struct kobj_attribute trigger_time_attribute =
-	__ATTR(trigger_time, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
+	__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);

(Continue reading)