Skip to content

Commit c7f9a6f

Browse files
author
Ingo Molnar
committed
Merge branch 'linus' into perf/core
Merge reason: Pick up perf fixes that are now upstream Signed-off-by: Ingo Molnar <[email protected]>
2 parents fe4b04f + 8dbdea8 commit c7f9a6f

File tree

206 files changed

+2148
-1131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

206 files changed

+2148
-1131
lines changed

Documentation/feature-removal-schedule.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,3 +603,19 @@ Why: The adm9240, w83792d and w83793 hardware monitoring drivers have
603603
Who: Jean Delvare <[email protected]>
604604

605605
----------------------------
606+
607+
What: noswapaccount kernel command line parameter
608+
When: 2.6.40
609+
Why: The original implementation of memsw feature enabled by
610+
CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount
611+
kernel parameter (introduced in 2.6.29-rc1). Later on, this decision
612+
turned out to be not ideal because we cannot have the feature compiled
613+
in and disabled by default and let only interested to enable it
614+
(e.g. general distribution kernels might need it). Therefore we have
615+
added swapaccount[=0|1] parameter (introduced in 2.6.37) which provides
616+
the both possibilities. If we remove noswapaccount we will have
617+
less command line parameters with the same functionality and we
618+
can also cleanup the parameter handling a bit ().
619+
Who: Michal Hocko <[email protected]>
620+
621+
----------------------------

Documentation/networking/ip-sysctl.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ tcp_cookie_size - INTEGER
187187
tcp_dsack - BOOLEAN
188188
Allows TCP to send "duplicate" SACKs.
189189

190-
tcp_ecn - BOOLEAN
190+
tcp_ecn - INTEGER
191191
Enable Explicit Congestion Notification (ECN) in TCP. ECN is only
192192
used when both ends of the TCP flow support it. It is useful to
193193
avoid losses due to congestion (when the bottleneck router supports

Documentation/scheduler/sched-stats.txt

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Version 15 of schedstats dropped counters for some sched_yield:
2+
yld_exp_empty, yld_act_empty and yld_both_empty. Otherwise, it is
3+
identical to version 14.
4+
15
Version 14 of schedstats includes support for sched_domains, which hit the
26
mainline kernel in 2.6.20 although it is identical to the stats from version
37
12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel
@@ -28,32 +32,25 @@ to write their own scripts, the fields are described here.
2832

2933
CPU statistics
3034
--------------
31-
cpu<N> 1 2 3 4 5 6 7 8 9 10 11 12
32-
33-
NOTE: In the sched_yield() statistics, the active queue is considered empty
34-
if it has only one process in it, since obviously the process calling
35-
sched_yield() is that process.
35+
cpu<N> 1 2 3 4 5 6 7 8 9
3636

37-
First four fields are sched_yield() statistics:
38-
1) # of times both the active and the expired queue were empty
39-
2) # of times just the active queue was empty
40-
3) # of times just the expired queue was empty
41-
4) # of times sched_yield() was called
37+
First field is a sched_yield() statistic:
38+
1) # of times sched_yield() was called
4239

4340
Next three are schedule() statistics:
44-
5) # of times we switched to the expired queue and reused it
45-
6) # of times schedule() was called
46-
7) # of times schedule() left the processor idle
41+
2) # of times we switched to the expired queue and reused it
42+
3) # of times schedule() was called
43+
4) # of times schedule() left the processor idle
4744

4845
Next two are try_to_wake_up() statistics:
49-
8) # of times try_to_wake_up() was called
50-
9) # of times try_to_wake_up() was called to wake up the local cpu
46+
5) # of times try_to_wake_up() was called
47+
6) # of times try_to_wake_up() was called to wake up the local cpu
5148

5249
Next three are statistics describing scheduling latency:
53-
10) sum of all time spent running by tasks on this processor (in jiffies)
54-
11) sum of all time spent waiting to run by tasks on this processor (in
50+
7) sum of all time spent running by tasks on this processor (in jiffies)
51+
8) sum of all time spent waiting to run by tasks on this processor (in
5552
jiffies)
56-
12) # of timeslices run on this cpu
53+
9) # of timeslices run on this cpu
5754

5855

5956
Domain statistics

Documentation/sound/alsa/HD-Audio-Models.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ Conexant 5066
296296
=============
297297
laptop Basic Laptop config (default)
298298
hp-laptop HP laptops, e g G60
299+
asus Asus K52JU, Lenovo G560
299300
dell-laptop Dell laptops
300301
dell-vostro Dell Vostro
301302
olpc-xo-1_5 OLPC XO 1.5

MAINTAINERS

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -978,6 +978,8 @@ S: Maintained
978978
F: arch/arm/plat-samsung/
979979
F: arch/arm/plat-s3c24xx/
980980
F: arch/arm/plat-s5p/
981+
F: drivers/*/*s3c2410*
982+
F: drivers/*/*/*s3c2410*
981983

982984
ARM/S3C2410 ARM ARCHITECTURE
983985
M: Ben Dooks <[email protected]>
@@ -5549,12 +5551,11 @@ S: Supported
55495551
F: drivers/scsi/be2iscsi/
55505552

55515553
SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
5552-
M: Sathya Perla <[email protected]>
5553-
M: Subbu Seetharaman <[email protected]>
5554-
M: Sarveshwar Bandi <[email protected]>
5555-
M: Ajit Khaparde <[email protected]>
5554+
M: Sathya Perla <[email protected]>
5555+
M: Subbu Seetharaman <[email protected]>
5556+
M: Ajit Khaparde <[email protected]>
55565557
5557-
W: http://www.serverengines.com
5558+
W: http://www.emulex.com
55585559
S: Supported
55595560
F: drivers/net/benet/
55605561

@@ -5614,18 +5615,20 @@ F: include/linux/sfi*.h
56145615

56155616
SIMTEC EB110ATX (Chalice CATS)
56165617
P: Ben Dooks
5617-
M: Vincent Sanders <[email protected]>
5618+
P: Vincent Sanders <[email protected]>
5619+
M: Simtec Linux Team <[email protected]>
56185620
W: http://www.simtec.co.uk/products/EB110ATX/
56195621
S: Supported
56205622

56215623
SIMTEC EB2410ITX (BAST)
56225624
P: Ben Dooks
5623-
M: Vincent Sanders <[email protected]>
5625+
P: Vincent Sanders <[email protected]>
5626+
M: Simtec Linux Team <[email protected]>
56245627
W: http://www.simtec.co.uk/products/EB2410ITX/
56255628
S: Supported
5626-
F: arch/arm/mach-s3c2410/
5627-
F: drivers/*/*s3c2410*
5628-
F: drivers/*/*/*s3c2410*
5629+
F: arch/arm/mach-s3c2410/mach-bast.c
5630+
F: arch/arm/mach-s3c2410/bast-ide.c
5631+
F: arch/arm/mach-s3c2410/bast-irq.c
56295632

56305633
TI DAVINCI MACHINE SUPPORT
56315634
M: Kevin Hilman <[email protected]>
@@ -6783,12 +6786,12 @@ S: Maintained
67836786
F: drivers/net/wireless/wl1251/*
67846787

67856788
WL1271 WIRELESS DRIVER
6786-
M: Luciano Coelho <luciano.coelho@nokia.com>
6789+
M: Luciano Coelho <coelho@ti.com>
67876790
6788-
W: http://wireless.kernel.org
6791+
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
67896792
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
67906793
S: Maintained
6791-
F: drivers/net/wireless/wl12xx/wl1271*
6794+
F: drivers/net/wireless/wl12xx/
67926795
F: include/linux/wl12xx.h
67936796

67946797
WL3501 WIRELESS PCMCIA CARD DRIVER

arch/arm/mach-ixp4xx/common.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ static struct clocksource clocksource_ixp4xx = {
432432
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
433433
};
434434

435-
unsigned long ixp4xx_timer_freq = FREQ;
435+
unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ;
436436
EXPORT_SYMBOL(ixp4xx_timer_freq);
437437
static void __init ixp4xx_clocksource_init(void)
438438
{
@@ -496,7 +496,7 @@ static struct clock_event_device clockevent_ixp4xx = {
496496

497497
static void __init ixp4xx_clockevent_init(void)
498498
{
499-
clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC,
499+
clockevent_ixp4xx.mult = div_sc(IXP4XX_TIMER_FREQ, NSEC_PER_SEC,
500500
clockevent_ixp4xx.shift);
501501
clockevent_ixp4xx.max_delta_ns =
502502
clockevent_delta2ns(0xfffffffe, &clockevent_ixp4xx);

arch/arm/mach-ixp4xx/include/mach/timex.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
1111
* timer register ignores the bottom 2 bits of the LATCH value.
1212
*/
13-
#define FREQ 66666000
14-
#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
13+
#define IXP4XX_TIMER_FREQ 66666000
14+
#define CLOCK_TICK_RATE \
15+
(((IXP4XX_TIMER_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
1516

arch/arm/mach-ixp4xx/ixp4xx_qmgr.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,11 @@ void qmgr_release_queue(unsigned int queue)
265265
qmgr_queue_descs[queue], queue);
266266
qmgr_queue_descs[queue][0] = '\x0';
267267
#endif
268+
269+
while ((addr = qmgr_get_entry(queue)))
270+
printk(KERN_ERR "qmgr: released queue %i not empty: 0x%08X\n",
271+
queue, addr);
272+
268273
__raw_writel(0, &qmgr_regs->sram[queue]);
269274

270275
used_sram_bitmap[0] &= ~mask[0];
@@ -275,10 +280,6 @@ void qmgr_release_queue(unsigned int queue)
275280
spin_unlock_irq(&qmgr_lock);
276281

277282
module_put(THIS_MODULE);
278-
279-
while ((addr = qmgr_get_entry(queue)))
280-
printk(KERN_ERR "qmgr: released queue %i not empty: 0x%08X\n",
281-
queue, addr);
282283
}
283284

284285
static int qmgr_init(void)

arch/m32r/kernel/irq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs)
8080
#ifdef CONFIG_DEBUG_STACKOVERFLOW
8181
/* FIXME M32R */
8282
#endif
83-
__do_IRQ(irq);
83+
generic_handle_irq(irq);
8484
irq_exit();
8585
set_irq_regs(old_regs);
8686

arch/microblaze/kernel/head.S

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,18 @@ real_start:
7777
We ensure r7 points to a valid FDT, just in case the bootloader
7878
is broken or non-existent */
7979
beqi r7, no_fdt_arg /* NULL pointer? don't copy */
80-
lw r11, r0, r7 /* Does r7 point to a */
81-
rsubi r11, r11, OF_DT_HEADER /* valid FDT? */
80+
/* Does r7 point to a valid FDT? Load HEADER magic number */
81+
/* Run time Big/Little endian platform */
82+
/* Save 1 as word and load byte - 0 - BIG, 1 - LITTLE */
83+
addik r11, r0, 0x1 /* BIG/LITTLE checking value */
84+
/* __bss_start will be zeroed later - it is just temp location */
85+
swi r11, r0, TOPHYS(__bss_start)
86+
lbui r11, r0, TOPHYS(__bss_start)
87+
beqid r11, big_endian /* DO NOT break delay stop dependency */
88+
lw r11, r0, r7 /* Big endian load in delay slot */
89+
lwr r11, r0, r7 /* Little endian load */
90+
big_endian:
91+
rsubi r11, r11, OF_DT_HEADER /* Check FDT header */
8292
beqi r11, _prepare_copy_fdt
8393
or r7, r0, r0 /* clear R7 when not valid DTB */
8494
bnei r11, no_fdt_arg /* No - get out of here */

arch/microblaze/kernel/hw_exception_handler.S

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,6 @@
147147
#if CONFIG_XILINX_MICROBLAZE0_USE_BARREL > 0
148148
#define BSRLI(rD, rA, imm) \
149149
bsrli rD, rA, imm
150-
#elif CONFIG_XILINX_MICROBLAZE0_USE_DIV > 0
151-
#define BSRLI(rD, rA, imm) \
152-
ori rD, r0, (1 << imm); \
153-
idivu rD, rD, rA
154150
#else
155151
#define BSRLI(rD, rA, imm) BSRLI ## imm (rD, rA)
156152
/* Only the used shift constants defined here - add more if needed */

arch/microblaze/lib/fastcopy.S

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@
2929
* between mem locations with size of xfer spec'd in bytes
3030
*/
3131

32+
#ifdef __MICROBLAZEEL__
33+
#error Microblaze LE not support ASM optimized lib func. Disable OPT_LIB_ASM.
34+
#endif
35+
3236
#include <linux/linkage.h>
3337
.text
3438
.globl memcpy

arch/s390/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ config QDIO
406406
If unsure, say Y.
407407

408408
config CHSC_SCH
409-
def_tristate y
409+
def_tristate m
410410
prompt "Support for CHSC subchannels"
411411
help
412412
This driver allows usage of CHSC subchannels. A CHSC subchannel

arch/s390/include/asm/cacheflush.h

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,8 @@
11
#ifndef _S390_CACHEFLUSH_H
22
#define _S390_CACHEFLUSH_H
33

4-
/* Keep includes the same across arches. */
5-
#include <linux/mm.h>
6-
74
/* Caches aren't brain-dead on the s390. */
8-
#define flush_cache_all() do { } while (0)
9-
#define flush_cache_mm(mm) do { } while (0)
10-
#define flush_cache_dup_mm(mm) do { } while (0)
11-
#define flush_cache_range(vma, start, end) do { } while (0)
12-
#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)
13-
#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
14-
#define flush_dcache_page(page) do { } while (0)
15-
#define flush_dcache_mmap_lock(mapping) do { } while (0)
16-
#define flush_dcache_mmap_unlock(mapping) do { } while (0)
17-
#define flush_icache_range(start, end) do { } while (0)
18-
#define flush_icache_page(vma,pg) do { } while (0)
19-
#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
20-
#define flush_cache_vmap(start, end) do { } while (0)
21-
#define flush_cache_vunmap(start, end) do { } while (0)
22-
23-
#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
24-
memcpy(dst, src, len)
25-
#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
26-
memcpy(dst, src, len)
5+
#include <asm-generic/cacheflush.h>
276

287
#ifdef CONFIG_DEBUG_PAGEALLOC
298
void kernel_map_pages(struct page *page, int numpages, int enable);

arch/s390/include/asm/tlb.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
*/
2323

2424
#include <linux/mm.h>
25+
#include <linux/pagemap.h>
2526
#include <linux/swap.h>
2627
#include <asm/processor.h>
2728
#include <asm/pgalloc.h>

arch/s390/lib/uaccess_std.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@ static size_t copy_in_user_std(size_t size, void __user *to,
125125
unsigned long tmp1;
126126

127127
asm volatile(
128+
" sacf 256\n"
128129
" "AHI" %0,-1\n"
129130
" jo 5f\n"
130-
" sacf 256\n"
131131
" bras %3,3f\n"
132132
"0:"AHI" %0,257\n"
133133
"1: mvc 0(1,%1),0(%2)\n"
@@ -142,9 +142,8 @@ static size_t copy_in_user_std(size_t size, void __user *to,
142142
"3:"AHI" %0,-256\n"
143143
" jnm 2b\n"
144144
"4: ex %0,1b-0b(%3)\n"
145-
" sacf 0\n"
146145
"5: "SLR" %0,%0\n"
147-
"6:\n"
146+
"6: sacf 0\n"
148147
EX_TABLE(1b,6b) EX_TABLE(2b,0b) EX_TABLE(4b,0b)
149148
: "+a" (size), "+a" (to), "+a" (from), "=a" (tmp1)
150149
: : "cc", "memory");
@@ -156,9 +155,9 @@ static size_t clear_user_std(size_t size, void __user *to)
156155
unsigned long tmp1, tmp2;
157156

158157
asm volatile(
158+
" sacf 256\n"
159159
" "AHI" %0,-1\n"
160160
" jo 5f\n"
161-
" sacf 256\n"
162161
" bras %3,3f\n"
163162
" xc 0(1,%1),0(%1)\n"
164163
"0:"AHI" %0,257\n"
@@ -178,9 +177,8 @@ static size_t clear_user_std(size_t size, void __user *to)
178177
"3:"AHI" %0,-256\n"
179178
" jnm 2b\n"
180179
"4: ex %0,0(%3)\n"
181-
" sacf 0\n"
182180
"5: "SLR" %0,%0\n"
183-
"6:\n"
181+
"6: sacf 0\n"
184182
EX_TABLE(1b,6b) EX_TABLE(2b,0b) EX_TABLE(4b,0b)
185183
: "+a" (size), "+a" (to), "=a" (tmp1), "=a" (tmp2)
186184
: : "cc", "memory");

arch/s390/mm/pgtable.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,8 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
336336
page->flags ^= bits;
337337
if (page->flags & FRAG_MASK) {
338338
/* Page now has some free pgtable fragments. */
339-
list_move(&page->lru, &mm->context.pgtable_list);
339+
if (!list_empty(&page->lru))
340+
list_move(&page->lru, &mm->context.pgtable_list);
340341
page = NULL;
341342
} else
342343
/* All fragments of the 4K page have been freed. */

arch/x86/include/asm/mmu_context.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
3636
unsigned cpu = smp_processor_id();
3737

3838
if (likely(prev != next)) {
39-
/* stop flush ipis for the previous mm */
40-
cpumask_clear_cpu(cpu, mm_cpumask(prev));
4139
#ifdef CONFIG_SMP
4240
percpu_write(cpu_tlbstate.state, TLBSTATE_OK);
4341
percpu_write(cpu_tlbstate.active_mm, next);
@@ -47,6 +45,9 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
4745
/* Re-load page tables */
4846
load_cr3(next->pgd);
4947

48+
/* stop flush ipis for the previous mm */
49+
cpumask_clear_cpu(cpu, mm_cpumask(prev));
50+
5051
/*
5152
* load the LDT, if the LDT is different:
5253
*/

arch/x86/include/asm/smp.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid);
4040
DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
4141

4242
/* Static state in head.S used to set up a CPU */
43-
extern struct {
44-
void *sp;
45-
unsigned short ss;
46-
} stack_start;
43+
extern unsigned long stack_start; /* Initial stack pointer address */
4744

4845
struct smp_ops {
4946
void (*smp_prepare_boot_cpu)(void);

0 commit comments

Comments
 (0)