All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH 3.8-stable] ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440
@ 2013-04-07 23:02 Jonghwan Choi
  2013-04-25  0:16 ` [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent Jonghwan Choi
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Jonghwan Choi @ 2013-04-07 23:02 UTC (permalink / raw)
  To: 'Jonghwan Choi', linux-kernel
  Cc: stable, 'Kukjin', 'Thomas Abraham'

This patch looks like it should be in the 3.8-stable tree, should we apply
it?

------------------

From: "Thomas Abraham <thomas.ab@samsung.com>"

commit 60db7e5f9c9a25a7a9b01007e6e3f5a93bc16a3a upstream

The soft-reset control register is located in the XMU controller space.
Map this controller space before writing to the soft-reset controller
register.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Girish K S <ks.giri@samsung.com>
Signed-off-by: Kukjin <kgene.kim@samsung.com>
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
---
 arch/arm/mach-exynos/common.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index 1a89824..3b6de7a 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -299,6 +299,7 @@ void exynos4_restart(char mode, const char *cmd)
 
 void exynos5_restart(char mode, const char *cmd)
 {
+	struct device_node *np;
 	u32 val;
 	void __iomem *addr;
 
@@ -306,8 +307,9 @@ void exynos5_restart(char mode, const char *cmd)
 		val = 0x1;
 		addr = EXYNOS_SWRESET;
 	} else if (of_machine_is_compatible("samsung,exynos5440")) {
-		val = (0x10 << 20) | (0x1 << 16);
-		addr = EXYNOS5440_SWRESET;
+		np = of_find_compatible_node(NULL, NULL,
"samsung,exynos5440-clock");
+		addr = of_iomap(np, 0) + 0xcc;
+		val = (0xfff << 20) | (0x1 << 16);
 	} else {
 		pr_err("%s: cannot support non-DT\n", __func__);
 		return;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent
  2013-04-07 23:02 [RESEND PATCH 3.8-stable] ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440 Jonghwan Choi
@ 2013-04-25  0:16 ` Jonghwan Choi
  2013-04-25  0:26   ` Stephen Boyd
  2013-04-25  8:02 ` [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos Jonghwan Choi
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Jonghwan Choi @ 2013-04-25  0:16 UTC (permalink / raw)
  To: 'Jonghwan Choi', linux-kernel
  Cc: stable, 'Russell King', 'Stephen Boyd'

This patch looks like it should be in the 3.8-stable tree, should we apply
it?

------------------

From: "Stephen Boyd <sboyd@codeaurora.org>"

commit cea15092f098b7018e89f64a5a14bb71955965d5 upstream

cyc_to_sched_clock() is called by sched_clock() and cyc_to_ns()
is called by cyc_to_sched_clock(). I suspect that some compilers
inline both of these functions into sched_clock() and so we've
been getting away without having a notrace marking. It seems that
my compiler isn't inlining cyc_to_sched_clock() though, so I'm
hitting a recursion bug when I enable the function graph tracer,
causing my system to crash. Marking these functions notrace fixes
it. Technically cyc_to_ns() doesn't need the notrace because it's
already marked inline, but let's just add it so that if we ever
remove inline from that function it doesn't blow up.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
---
 arch/arm/kernel/sched_clock.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c
index bd6f56b..59d2adb 100644
--- a/arch/arm/kernel/sched_clock.c
+++ b/arch/arm/kernel/sched_clock.c
@@ -45,12 +45,12 @@ static u32 notrace jiffy_sched_clock_read(void)
 
 static u32 __read_mostly (*read_sched_clock)(void) =
jiffy_sched_clock_read;
 
-static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift)
+static inline u64 notrace cyc_to_ns(u64 cyc, u32 mult, u32 shift)
 {
 	return (cyc * mult) >> shift;
 }
 
-static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask)
+static unsigned long long notrace cyc_to_sched_clock(u32 cyc, u32 mask)
 {
 	u64 epoch_ns;
 	u32 epoch_cyc;
-- 
1.7.9.5ml


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent
  2013-04-25  0:16 ` [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent Jonghwan Choi
@ 2013-04-25  0:26   ` Stephen Boyd
  0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2013-04-25  0:26 UTC (permalink / raw)
  To: Jonghwan Choi; +Cc: linux-kernel, stable, 'Russell King'

On 04/24/13 17:16, Jonghwan Choi wrote:
> This patch looks like it should be in the 3.8-stable tree, should we apply
> it?

Sure.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos
  2013-04-07 23:02 [RESEND PATCH 3.8-stable] ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440 Jonghwan Choi
  2013-04-25  0:16 ` [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent Jonghwan Choi
@ 2013-04-25  8:02 ` Jonghwan Choi
  2013-04-25  8:20   ` Paul Bolle
  2013-04-30  7:52 ` [PATCH 3.8-stable] lib/int_sqrt.c: optimize square root algorithm Jonghwan Choi
  2013-05-08  2:04 ` [PATCH] net/core Fix wrong comments about memcpy_fromiovecend Jonghwan Choi
  3 siblings, 1 reply; 9+ messages in thread
From: Jonghwan Choi @ 2013-04-25  8:02 UTC (permalink / raw)
  To: 'Jonghwan Choi', linux-kernel
  Cc: stable, 'Paul Bolle', 'Russell King',
	'Will Deacon'

This patch looks like it should be in the 3.8-stable tree, should we apply
it?

------------------

From: "Paul Bolle <pebolle@tiscali.nl>"

commit 4e1db26a0b42e2b6e27c05d68adcc01709c2eed2 upstream

CONFIG_LPAE doesn't exist: the correct option is CONFIG_ARM_LPAE, so fix
up the two typos under arch/arm/.

The fix to head.S is slightly scary, but this is just for setting up
an early io-mapping for the serial port when running on a big-endian,
LPAE system. Since these systems don't exist in the wild (at least, I
have no access to one outside of kvmtool, which doesn't provide a serial
port suitable for earlyprintk), then we can revisit the code later if it
causes any problems.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
---
 arch/arm/kernel/head.S  |    2 +-
 arch/arm/kernel/setup.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index e0eb9a1..8bac553 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -267,7 +267,7 @@ __create_page_tables:
 	addne	r6, r6, #1 << SECTION_SHIFT
 	strne	r6, [r3]
 
-#if defined(CONFIG_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8)
+#if defined(CONFIG_ARM_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8)
 	sub	r4, r4, #4			@ Fixup page table pointer
 						@ for 64-bit descriptors
 #endif
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 3f6cbb2..62ead98 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -524,7 +524,7 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t
size)
 	size -= start & ~PAGE_MASK;
 	bank->start = PAGE_ALIGN(start);
 
-#ifndef CONFIG_LPAE
+#ifndef CONFIG_ARM_LPAE
 	if (bank->start + size < bank->start) {
 		printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in "
 			"32-bit physical address space\n", (long
long)start);
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos
  2013-04-25  8:02 ` [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos Jonghwan Choi
@ 2013-04-25  8:20   ` Paul Bolle
  2013-04-25  9:01     ` Will Deacon
  0 siblings, 1 reply; 9+ messages in thread
From: Paul Bolle @ 2013-04-25  8:20 UTC (permalink / raw)
  To: Jonghwan Choi; +Cc: linux-kernel, stable, Russell King, Will Deacon

On Thu, 2013-04-25 at 17:02 +0900, Jonghwan Choi wrote:
> This patch looks like it should be in the 3.8-stable tree, should we apply
> it?

That would be only the setup.c chunk. That fixes a typo introduced in
v3.4 (see commit e5ab85800820edd907d3f43f285e1232f84d5a41
("ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic
MMU")). So, if that chunk is deemed appropriate for stable, you could
consider the v3.4.y longterm tree too.

(The typo in head.S was introduced in v3.9-rc2.)


Paul Bolle


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos
  2013-04-25  8:20   ` Paul Bolle
@ 2013-04-25  9:01     ` Will Deacon
  0 siblings, 0 replies; 9+ messages in thread
From: Will Deacon @ 2013-04-25  9:01 UTC (permalink / raw)
  To: Paul Bolle; +Cc: Jonghwan Choi, linux-kernel, stable, Russell King

On Thu, Apr 25, 2013 at 09:20:44AM +0100, Paul Bolle wrote:
> On Thu, 2013-04-25 at 17:02 +0900, Jonghwan Choi wrote:
> > This patch looks like it should be in the 3.8-stable tree, should we apply
> > it?
> 
> That would be only the setup.c chunk. That fixes a typo introduced in
> v3.4 (see commit e5ab85800820edd907d3f43f285e1232f84d5a41
> ("ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic
> MMU")). So, if that chunk is deemed appropriate for stable, you could
> consider the v3.4.y longterm tree too.

Even then, I don't think it's worth backporting this patch. membank->start
and membank->size are phys_addr_t, so with LPAE enabled, this check won't
trigger anyway. The #ifndef is just there for readability really (since the
printk message explicitly refers to 32-bit physical addresses).

So I wouldn't bother with this.

Will

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 3.8-stable] lib/int_sqrt.c: optimize square root algorithm
  2013-04-07 23:02 [RESEND PATCH 3.8-stable] ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440 Jonghwan Choi
  2013-04-25  0:16 ` [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent Jonghwan Choi
  2013-04-25  8:02 ` [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos Jonghwan Choi
@ 2013-04-30  7:52 ` Jonghwan Choi
  2013-04-30 17:32   ` Davidlohr Bueso
  2013-05-08  2:04 ` [PATCH] net/core Fix wrong comments about memcpy_fromiovecend Jonghwan Choi
  3 siblings, 1 reply; 9+ messages in thread
From: Jonghwan Choi @ 2013-04-30  7:52 UTC (permalink / raw)
  To: 'Jonghwan Choi', linux-kernel
  Cc: stable, 'Davidlohr Bueso', 'Andrew Morton'

This patch looks like it should be in the 3.8-stable tree, should we apply
it?

------------------

From: "Davidlohr Bueso <davidlohr.bueso@hp.com>"

commit 30493cc9dddb68066dcc4878015660fdaa8e0965 upstream

Optimize the current version of the shift-and-subtract (hardware)
algorithm, described by John von Newmann[1] and Guy L Steele.

Iterating 1,000,000 times, perf shows for the current version:

 Performance counter stats for './sqrt-curr' (10 runs):

         27.170996 task-clock                #    0.979 CPUs utilized
( +-  3.19% )
                 3 context-switches          #    0.103 K/sec
( +-  4.76% )
                 0 cpu-migrations            #    0.004 K/sec
( +-100.00% )
               104 page-faults               #    0.004 M/sec
( +-  0.16% )
        64,921,199 cycles                    #    2.389 GHz
( +-  0.03% )
        28,967,789 stalled-cycles-frontend   #   44.62% frontend cycles idle
( +-  0.18% )
   <not supported> stalled-cycles-backend
       104,502,623 instructions              #    1.61  insns per cycle
                                             #    0.28  stalled cycles per
insn  ( +-  0.00% )
        34,088,368 branches                  # 1254.587 M/sec
( +-  0.00% )
             4,901 branch-misses             #    0.01% of all branches
( +-  1.32% )

       0.027763015 seconds time elapsed
( +-  3.22% )

And for the new version:

Performance counter stats for './sqrt-new' (10 runs):

          0.496869 task-clock                #    0.519 CPUs utilized
( +-  2.38% )
                 0 context-switches          #    0.000 K/sec
                 0 cpu-migrations            #    0.403 K/sec
( +-100.00% )
               104 page-faults               #    0.209 M/sec
( +-  0.15% )
           590,760 cycles                    #    1.189 GHz
( +-  2.35% )
           395,053 stalled-cycles-frontend   #   66.87% frontend cycles idle
( +-  3.67% )
   <not supported> stalled-cycles-backend
           398,963 instructions              #    0.68  insns per cycle
                                             #    0.99  stalled cycles per
insn  ( +-  0.39% )
            70,228 branches                  #  141.341 M/sec
( +-  0.36% )
             3,364 branch-misses             #    4.79% of all branches
( +-  5.45% )

       0.000957440 seconds time elapsed
( +-  2.42% )

Furthermore, this saves space in instruction text:

   text    data     bss     dec     hex filename
    111       0       0     111      6f lib/int_sqrt-baseline.o
     89       0       0      89      59 lib/int_sqrt.o

[1] http://en.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC

Signed-off-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Reviewed-by: Jonathan Gonzalez <jgonzlez@linets.cl>
Tested-by: Jonathan Gonzalez <jgonzlez@linets.cl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
---
 lib/int_sqrt.c |   32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/lib/int_sqrt.c b/lib/int_sqrt.c
index fc2eeb7..1ef4cc3 100644
--- a/lib/int_sqrt.c
+++ b/lib/int_sqrt.c
@@ -1,3 +1,9 @@
+/*
+ * Copyright (C) 2013 Davidlohr Bueso <davidlohr.bueso@hp.com>
+ *
+ *  Based on the shift-and-subtract algorithm for computing integer
+ *  square root from Guy L. Steele.
+ */
 
 #include <linux/kernel.h>
 #include <linux/export.h>
@@ -10,23 +16,23 @@
  */
 unsigned long int_sqrt(unsigned long x)
 {
-	unsigned long op, res, one;
+	unsigned long b, m, y = 0;
 
-	op = x;
-	res = 0;
+	if (x <= 1)
+		return x;
 
-	one = 1UL << (BITS_PER_LONG - 2);
-	while (one > op)
-		one >>= 2;
+	m = 1UL << (BITS_PER_LONG - 2);
+	while (m != 0) {
+		b = y + m;
+		y >>= 1;
 
-	while (one != 0) {
-		if (op >= res + one) {
-			op = op - (res + one);
-			res = res +  2 * one;
+		if (x >= b) {
+			x -= b;
+			y += m;
 		}
-		res /= 2;
-		one /= 4;
+		m >>= 2;
 	}
-	return res;
+
+	return y;
 }
 EXPORT_SYMBOL(int_sqrt);
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 3.8-stable] lib/int_sqrt.c: optimize square root algorithm
  2013-04-30  7:52 ` [PATCH 3.8-stable] lib/int_sqrt.c: optimize square root algorithm Jonghwan Choi
@ 2013-04-30 17:32   ` Davidlohr Bueso
  0 siblings, 0 replies; 9+ messages in thread
From: Davidlohr Bueso @ 2013-04-30 17:32 UTC (permalink / raw)
  To: Jonghwan Choi; +Cc: linux-kernel, stable, 'Andrew Morton'

On Tue, 2013-04-30 at 16:52 +0900, Jonghwan Choi wrote:
> This patch looks like it should be in the 3.8-stable tree, should we apply
> it?
> 

I don't see this as a candidate for stable. Its just an optimization and
doesn't address any existing issue.

Thanks,
Davidlohr


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] net/core Fix wrong comments about memcpy_fromiovecend
  2013-04-07 23:02 [RESEND PATCH 3.8-stable] ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440 Jonghwan Choi
                   ` (2 preceding siblings ...)
  2013-04-30  7:52 ` [PATCH 3.8-stable] lib/int_sqrt.c: optimize square root algorithm Jonghwan Choi
@ 2013-05-08  2:04 ` Jonghwan Choi
  3 siblings, 0 replies; 9+ messages in thread
From: Jonghwan Choi @ 2013-05-08  2:04 UTC (permalink / raw)
  To: 'Jonghwan Choi', linux-kernel; +Cc: 'David S. Miller'

"Copy iovec from kernel" should be "Copy iovec to kernel"
because copy_from_user copies data from userspace.

Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
---
 net/core/iovec.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/iovec.c b/net/core/iovec.c
index 7e7aeb0..ba93fd2 100644
--- a/net/core/iovec.c
+++ b/net/core/iovec.c
@@ -150,7 +150,7 @@ int memcpy_fromiovec(unsigned char *kdata, struct iovec
*iov, int len)
 EXPORT_SYMBOL(memcpy_fromiovec);
 
 /*
- *	Copy iovec from kernel. Returns -EFAULT on error.
+ *	Copy iovec to kernel. Returns -EFAULT on error.
  */
 
 int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
-- 
1.7.


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-05-08  2:04 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-07 23:02 [RESEND PATCH 3.8-stable] ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440 Jonghwan Choi
2013-04-25  0:16 ` [PATCH 3.8-stable] ARM: 7699/1: sched_clock: Add more notrace to prevent Jonghwan Choi
2013-04-25  0:26   ` Stephen Boyd
2013-04-25  8:02 ` [PATCH 3.8-stable] ARM: 7690/1: mm: fix CONFIG_LPAE typos Jonghwan Choi
2013-04-25  8:20   ` Paul Bolle
2013-04-25  9:01     ` Will Deacon
2013-04-30  7:52 ` [PATCH 3.8-stable] lib/int_sqrt.c: optimize square root algorithm Jonghwan Choi
2013-04-30 17:32   ` Davidlohr Bueso
2013-05-08  2:04 ` [PATCH] net/core Fix wrong comments about memcpy_fromiovecend Jonghwan Choi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.