2010-01-26 00:56:41

by David Miller

[permalink] [raw]
Subject: [GIT]: Sparc


1) Use rlimit helpers, from Jiri Slaby.

2) Use arch_gettimeoffset() in sparc32.

3) Simplify asm/param.h by using asm-generic/param.h

4) Central board driver sets up leds_resource erroneously, fix from
Roel Kluin.

5) Fix copy_from_user() return on error, from Heiko Carstens.

6) Page fault perf SW events not being counted.

7) IRQ ->set_affinity() using wrong cpu mask, thanks to Ben H. for
noticing.

8) page_to_phys() calculations completely busted on sparc32.

9) cpumask_of_node() fix to handle -1 properly from Anton Blanchard.

10) Perf callchain support and full support of both PMU counters
on sparc64.

Please pull, thanks a lot!

The following changes since commit f6760aa024199cfbce564311dc4bc4d47b6fb349:
Linus Torvalds (1):
Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip

are available in the git repository at:

master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Anton Blanchard (1):
sparc: cpumask_of_node() should handle -1 as a node

David S. Miller (7):
sparc32: Update defconfig.
sparc32: Fix page_to_phys().
sparc64: Add perf callchain support.
sparc64: Fully support both performance counters.
sparc: Add missing SW perf fault events.
sparc64: Update defconfig.
sparc64: Fix IRQ ->set_affinity() methods.

Heiko Carstens (1):
sparc: copy_from_user() should not return -EFAULT

Jiri Slaby (1):
SPARC: use helpers for rlimits

John Stultz (1):
sparc: convert to arch_gettimeoffset()

Robert P. J. Day (1):
sparc: Simplify param.h by simply including <asm-generic/param.h>

Roel Kluin (1):
sparc: leds_resource.end assigned to itself in clock_board_probe()

arch/sparc/Kconfig | 5 +-
arch/sparc/configs/sparc32_defconfig | 87 ++++-
arch/sparc/configs/sparc64_defconfig | 131 ++++++--
arch/sparc/include/asm/io_32.h | 2 +-
arch/sparc/include/asm/page_32.h | 2 +-
arch/sparc/include/asm/param.h | 19 +-
arch/sparc/include/asm/timex_32.h | 1 +
arch/sparc/include/asm/topology_64.h | 4 +-
arch/sparc/include/asm/uaccess_32.h | 2 +-
arch/sparc/include/asm/uaccess_64.h | 2 +-
arch/sparc/kernel/central.c | 4 +-
arch/sparc/kernel/irq_64.c | 37 ++-
arch/sparc/kernel/pcic.c | 103 +-----
arch/sparc/kernel/perf_event.c | 627 +++++++++++++++++++++++++---------
arch/sparc/kernel/sys_sparc_64.c | 6 +-
arch/sparc/kernel/time_32.c | 116 ++-----
arch/sparc/mm/fault_32.c | 12 +-
arch/sparc/mm/fault_64.c | 13 +-
18 files changed, 749 insertions(+), 424 deletions(-)


2010-01-26 09:23:14

by Alexander Beregalov

[permalink] [raw]
Subject: Re: [GIT]: Sparc

Hi David

> 7) IRQ ->set_affinity() using wrong cpu mask, thanks to Ben H. for
>   noticing.
>      sparc64: Fix IRQ ->set_affinity() methods.

This commit breaks UP build

arch/sparc/kernel/irq_64.c: In function 'sun4u_irq_enable':
arch/sparc/kernel/irq_64.c:286: error: 'struct irq_desc' has no member
named 'affinity'
arch/sparc/kernel/irq_64.c: In function 'sun4v_irq_enable':
arch/sparc/kernel/irq_64.c:362: error: 'struct irq_desc' has no member
named 'affinity'
arch/sparc/kernel/irq_64.c: In function 'sun4v_virq_enable':
arch/sparc/kernel/irq_64.c:425: error: 'struct irq_desc' has no member
named 'affinity'

2010-01-26 12:12:44

by David Miller

[permalink] [raw]
Subject: Re: [GIT]: Sparc

From: Alexander Beregalov <[email protected]>
Date: Tue, 26 Jan 2010 12:23:06 +0300

> Hi David
>
>> 7) IRQ ->set_affinity() using wrong cpu mask, thanks to Ben H. for
>> ? noticing.
>> ? ? ?sparc64: Fix IRQ ->set_affinity() methods.
>
> This commit breaks UP build

Sorry, I'll fix this, thanks for the report.

sparc64: Fix UP build.

Can't reference irq_desc[].affinity when !SMP.

Reported-by: Alexander Beregalov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>

diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index f2179cc..e1cbdb9 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -268,10 +268,8 @@ static int irq_choose_cpu(unsigned int virt_irq, const struct cpumask *affinity)
return cpuid;
}
#else
-static int irq_choose_cpu(unsigned int virt_irq, const struct cpumask *affinity)
-{
- return real_hard_smp_processor_id();
-}
+#define irq_choose_cpu(virt_irq, affinity) \
+ real_hard_smp_processor_id()
#endif

static void sun4u_irq_enable(unsigned int virt_irq)