Skip to content

Commit 80c5520

Browse files
committed
Merge branch 'cpus4096' into irq/threaded
Conflicts: arch/parisc/kernel/irq.c kernel/irq/handle.c Signed-off-by: Thomas Gleixner <[email protected]>
2 parents b3e3b30 + 8c083f0 commit 80c5520

File tree

533 files changed

+20099
-19004
lines changed

Some content is hidden

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

533 files changed

+20099
-19004
lines changed

Documentation/cputopology.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ For an architecture to support this feature, it must define some of
1818
these macros in include/asm-XXX/topology.h:
1919
#define topology_physical_package_id(cpu)
2020
#define topology_core_id(cpu)
21-
#define topology_thread_siblings(cpu)
22-
#define topology_core_siblings(cpu)
21+
#define topology_thread_cpumask(cpu)
22+
#define topology_core_cpumask(cpu)
2323

2424
The type of **_id is int.
25-
The type of siblings is cpumask_t.
25+
The type of siblings is (const) struct cpumask *.
2626

2727
To be consistent on all architectures, include/linux/topology.h
2828
provides default definitions for any of the above macros that are

Documentation/kernel-parameters.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1310,8 +1310,13 @@ and is between 256 and 4096 characters. It is defined in the file
13101310

13111311
memtest= [KNL,X86] Enable memtest
13121312
Format: <integer>
1313-
range: 0,4 : pattern number
13141313
default : 0 <disable>
1314+
Specifies the number of memtest passes to be
1315+
performed. Each pass selects another test
1316+
pattern from a given set of patterns. Memtest
1317+
fills the memory with this pattern, validates
1318+
memory contents and reserves bad memory
1319+
regions that are detected.
13151320

13161321
meye.*= [HW] Set MotionEye Camera parameters
13171322
See Documentation/video4linux/meye.txt.

Documentation/x86/boot.txt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Offset Proto Name Meaning
158158
0202/4 2.00+ header Magic signature "HdrS"
159159
0206/2 2.00+ version Boot protocol version supported
160160
0208/4 2.00+ realmode_swtch Boot loader hook (see below)
161-
020C/2 2.00+ start_sys The load-low segment (0x1000) (obsolete)
161+
020C/2 2.00+ start_sys_seg The load-low segment (0x1000) (obsolete)
162162
020E/2 2.00+ kernel_version Pointer to kernel version string
163163
0210/1 2.00+ type_of_loader Boot loader identifier
164164
0211/1 2.00+ loadflags Boot protocol option flags
@@ -170,10 +170,11 @@ Offset Proto Name Meaning
170170
0224/2 2.01+ heap_end_ptr Free memory after setup end
171171
0226/2 N/A pad1 Unused
172172
0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line
173-
022C/4 2.03+ initrd_addr_max Highest legal initrd address
173+
022C/4 2.03+ ramdisk_max Highest legal initrd address
174174
0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel
175175
0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
176-
0235/3 N/A pad2 Unused
176+
0235/1 N/A pad2 Unused
177+
0236/2 N/A pad3 Unused
177178
0238/4 2.06+ cmdline_size Maximum size of the kernel command line
178179
023C/4 2.07+ hardware_subarch Hardware subarchitecture
179180
0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data
@@ -299,14 +300,14 @@ Protocol: 2.00+
299300
e.g. 0x0204 for version 2.04, and 0x0a11 for a hypothetical version
300301
10.17.
301302

302-
Field name: readmode_swtch
303+
Field name: realmode_swtch
303304
Type: modify (optional)
304305
Offset/size: 0x208/4
305306
Protocol: 2.00+
306307

307308
Boot loader hook (see ADVANCED BOOT LOADER HOOKS below.)
308309

309-
Field name: start_sys
310+
Field name: start_sys_seg
310311
Type: read
311312
Offset/size: 0x20c/2
312313
Protocol: 2.00+
@@ -468,7 +469,7 @@ Protocol: 2.02+
468469
zero, the kernel will assume that your boot loader does not support
469470
the 2.02+ protocol.
470471

471-
Field name: initrd_addr_max
472+
Field name: ramdisk_max
472473
Type: read
473474
Offset/size: 0x22c/4
474475
Protocol: 2.03+
@@ -542,7 +543,10 @@ Protocol: 2.08+
542543

543544
The payload may be compressed. The format of both the compressed and
544545
uncompressed data should be determined using the standard magic
545-
numbers. Currently only gzip compressed ELF is used.
546+
numbers. The currently supported compression formats are gzip
547+
(magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A) and LZMA
548+
(magic number 5D 00). The uncompressed payload is currently always ELF
549+
(magic number 7F 45 4C 46).
546550

547551
Field name: payload_length
548552
Type: read

Documentation/x86/earlyprintk.txt

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
2+
Mini-HOWTO for using the earlyprintk=dbgp boot option with a
3+
USB2 Debug port key and a debug cable, on x86 systems.
4+
5+
You need two computers, the 'USB debug key' special gadget and
6+
and two USB cables, connected like this:
7+
8+
[host/target] <-------> [USB debug key] <-------> [client/console]
9+
10+
1. There are three specific hardware requirements:
11+
12+
a.) Host/target system needs to have USB debug port capability.
13+
14+
You can check this capability by looking at a 'Debug port' bit in
15+
the lspci -vvv output:
16+
17+
# lspci -vvv
18+
...
19+
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) (prog-if 20 [EHCI])
20+
Subsystem: Lenovo ThinkPad T61
21+
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
22+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
23+
Latency: 0
24+
Interrupt: pin D routed to IRQ 19
25+
Region 0: Memory at fe227000 (32-bit, non-prefetchable) [size=1K]
26+
Capabilities: [50] Power Management version 2
27+
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
28+
Status: D0 PME-Enable- DSel=0 DScale=0 PME+
29+
Capabilities: [58] Debug port: BAR=1 offset=00a0
30+
^^^^^^^^^^^ <==================== [ HERE ]
31+
Kernel driver in use: ehci_hcd
32+
Kernel modules: ehci-hcd
33+
...
34+
35+
( If your system does not list a debug port capability then you probably
36+
wont be able to use the USB debug key. )
37+
38+
b.) You also need a Netchip USB debug cable/key:
39+
40+
http://www.plxtech.com/products/NET2000/NET20DC/default.asp
41+
42+
This is a small blue plastic connector with two USB connections,
43+
it draws power from its USB connections.
44+
45+
c.) Thirdly, you need a second client/console system with a regular USB port.
46+
47+
2. Software requirements:
48+
49+
a.) On the host/target system:
50+
51+
You need to enable the following kernel config option:
52+
53+
CONFIG_EARLY_PRINTK_DBGP=y
54+
55+
And you need to add the boot command line: "earlyprintk=dbgp".
56+
(If you are using Grub, append it to the 'kernel' line in
57+
/etc/grub.conf)
58+
59+
NOTE: normally earlyprintk console gets turned off once the
60+
regular console is alive - use "earlyprintk=dbgp,keep" to keep
61+
this channel open beyond early bootup. This can be useful for
62+
debugging crashes under Xorg, etc.
63+
64+
b.) On the client/console system:
65+
66+
You should enable the following kernel config option:
67+
68+
CONFIG_USB_SERIAL_DEBUG=y
69+
70+
On the next bootup with the modified kernel you should
71+
get a /dev/ttyUSBx device(s).
72+
73+
Now this channel of kernel messages is ready to be used: start
74+
your favorite terminal emulator (minicom, etc.) and set
75+
it up to use /dev/ttyUSB0 - or use a raw 'cat /dev/ttyUSBx' to
76+
see the raw output.
77+
78+
c.) On Nvidia Southbridge based systems: the kernel will try to probe
79+
and find out which port has debug device connected.
80+
81+
3. Testing that it works fine:
82+
83+
You can test the output by using earlyprintk=dbgp,keep and provoking
84+
kernel messages on the host/target system. You can provoke a harmless
85+
kernel message by for example doing:
86+
87+
echo h > /proc/sysrq-trigger
88+
89+
On the host/target system you should see this help line in "dmesg" output:
90+
91+
SysRq : HELP : loglevel(0-9) reBoot Crashdump terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount show-blocked-tasks(W) dump-ftrace-buffer(Z)
92+
93+
On the client/console system do:
94+
95+
cat /dev/ttyUSB0
96+
97+
And you should see the help line above displayed shortly after you've
98+
provoked it on the host system.
99+
100+
If it does not work then please ask about it on the [email protected]
101+
mailing list or contact the x86 maintainers.

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,9 @@ KBUILD_CFLAGS += $(call cc-option,-Wframe-larger-than=${CONFIG_FRAME_WARN})
533533
endif
534534

535535
# Force gcc to behave correct even for buggy distributions
536-
# Arch Makefiles may override this setting
536+
ifndef CONFIG_CC_STACKPROTECTOR
537537
KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
538+
endif
538539

539540
ifdef CONFIG_FRAME_POINTER
540541
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls

arch/alpha/include/asm/statfs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#ifndef _ALPHA_STATFS_H
22
#define _ALPHA_STATFS_H
33

4+
#include <linux/types.h>
5+
46
/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't
57
even seem to implement statfs64 */
68
#define __statfs_word __u32

arch/alpha/include/asm/swab.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef _ALPHA_SWAB_H
22
#define _ALPHA_SWAB_H
33

4-
#include <asm/types.h>
4+
#include <linux/types.h>
55
#include <linux/compiler.h>
66
#include <asm/compiler.h>
77

arch/alpha/kernel/irq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ int irq_select_affinity(unsigned int irq)
5555
cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
5656
last_cpu = cpu;
5757

58-
irq_desc[irq].affinity = cpumask_of_cpu(cpu);
58+
cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
5959
irq_desc[irq].chip->set_affinity(irq, cpumask_of(cpu));
6060
return 0;
6161
}

arch/alpha/mm/init.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,21 @@ callback_init(void * kernel_end)
189189

190190
if (alpha_using_srm) {
191191
static struct vm_struct console_remap_vm;
192-
unsigned long vaddr = VMALLOC_START;
192+
unsigned long nr_pages = 0;
193+
unsigned long vaddr;
193194
unsigned long i, j;
194195

196+
/* calculate needed size */
197+
for (i = 0; i < crb->map_entries; ++i)
198+
nr_pages += crb->map[i].count;
199+
200+
/* register the vm area */
201+
console_remap_vm.flags = VM_ALLOC;
202+
console_remap_vm.size = nr_pages << PAGE_SHIFT;
203+
vm_area_register_early(&console_remap_vm, PAGE_SIZE);
204+
205+
vaddr = (unsigned long)console_remap_vm.addr;
206+
195207
/* Set up the third level PTEs and update the virtual
196208
addresses of the CRB entries. */
197209
for (i = 0; i < crb->map_entries; ++i) {
@@ -213,12 +225,6 @@ callback_init(void * kernel_end)
213225
vaddr += PAGE_SIZE;
214226
}
215227
}
216-
217-
/* Let vmalloc know that we've allocated some space. */
218-
console_remap_vm.flags = VM_ALLOC;
219-
console_remap_vm.addr = (void *) VMALLOC_START;
220-
console_remap_vm.size = vaddr - VMALLOC_START;
221-
vmlist = &console_remap_vm;
222228
}
223229

224230
callback_init_done = 1;

arch/arm/include/asm/a.out.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#define __ARM_A_OUT_H__
33

44
#include <linux/personality.h>
5-
#include <asm/types.h>
5+
#include <linux/types.h>
66

77
struct exec
88
{

arch/arm/include/asm/setup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#ifndef __ASMARM_SETUP_H
1515
#define __ASMARM_SETUP_H
1616

17-
#include <asm/types.h>
17+
#include <linux/types.h>
1818

1919
#define COMMAND_LINE_SIZE 1024
2020

arch/arm/include/asm/swab.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#define __ASM_ARM_SWAB_H
1717

1818
#include <linux/compiler.h>
19-
#include <asm/types.h>
19+
#include <linux/types.h>
2020

2121
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
2222
# define __SWAB_64_THRU_32__

arch/arm/kernel/irq.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ static struct irq_desc bad_irq_desc = {
104104
.lock = __SPIN_LOCK_UNLOCKED(bad_irq_desc.lock),
105105
};
106106

107+
#ifdef CONFIG_CPUMASK_OFFSTACK
108+
/* We are not allocating bad_irq_desc.affinity or .pending_mask */
109+
#error "ARM architecture does not support CONFIG_CPUMASK_OFFSTACK."
110+
#endif
111+
107112
/*
108113
* do_IRQ handles all hardware IRQ's. Decoded IRQs should not
109114
* come via this function. Instead, they should provide their
@@ -161,7 +166,7 @@ void __init init_IRQ(void)
161166
irq_desc[irq].status |= IRQ_NOREQUEST | IRQ_NOPROBE;
162167

163168
#ifdef CONFIG_SMP
164-
bad_irq_desc.affinity = CPU_MASK_ALL;
169+
cpumask_setall(bad_irq_desc.affinity);
165170
bad_irq_desc.cpu = smp_processor_id();
166171
#endif
167172
init_arch_irq();
@@ -191,15 +196,16 @@ void migrate_irqs(void)
191196
struct irq_desc *desc = irq_desc + i;
192197

193198
if (desc->cpu == cpu) {
194-
unsigned int newcpu = any_online_cpu(desc->affinity);
195-
196-
if (newcpu == NR_CPUS) {
199+
unsigned int newcpu = cpumask_any_and(desc->affinity,
200+
cpu_online_mask);
201+
if (newcpu >= nr_cpu_ids) {
197202
if (printk_ratelimit())
198203
printk(KERN_INFO "IRQ%u no longer affine to CPU%u\n",
199204
i, cpu);
200205

201-
cpus_setall(desc->affinity);
202-
newcpu = any_online_cpu(desc->affinity);
206+
cpumask_setall(desc->affinity);
207+
newcpu = cpumask_any_and(desc->affinity,
208+
cpu_online_mask);
203209
}
204210

205211
route_irq(desc, i, newcpu);

arch/arm/kernel/vmlinux.lds.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ SECTIONS
6565
#endif
6666
. = ALIGN(4096);
6767
__per_cpu_start = .;
68+
*(.data.percpu.page_aligned)
6869
*(.data.percpu)
6970
*(.data.percpu.shared_aligned)
7071
__per_cpu_end = .;

arch/arm/oprofile/op_model_mpcore.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ static void em_route_irq(int irq, unsigned int cpu)
263263
const struct cpumask *mask = cpumask_of(cpu);
264264

265265
spin_lock_irq(&desc->lock);
266-
desc->affinity = *mask;
266+
cpumask_copy(desc->affinity, mask);
267267
desc->chip->set_affinity(irq, mask);
268268
spin_unlock_irq(&desc->lock);
269269
}

arch/avr32/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ source "kernel/Kconfig.preempt"
181181
config QUICKLIST
182182
def_bool y
183183

184-
config HAVE_ARCH_BOOTMEM_NODE
184+
config HAVE_ARCH_BOOTMEM
185185
def_bool n
186186

187187
config ARCH_HAVE_MEMORY_PRESENT

arch/avr32/include/asm/swab.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#ifndef __ASM_AVR32_SWAB_H
55
#define __ASM_AVR32_SWAB_H
66

7-
#include <asm/types.h>
7+
#include <linux/types.h>
88
#include <linux/compiler.h>
99

1010
#define __SWAB_64_THRU_32__

arch/blackfin/include/asm/percpu.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,4 @@
33

44
#include <asm-generic/percpu.h>
55

6-
#ifdef CONFIG_MODULES
7-
#define PERCPU_MODULE_RESERVE 8192
8-
#else
9-
#define PERCPU_MODULE_RESERVE 0
10-
#endif
11-
12-
#define PERCPU_ENOUGH_ROOM \
13-
(ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES) + \
14-
PERCPU_MODULE_RESERVE)
15-
166
#endif /* __ARCH_BLACKFIN_PERCPU__ */

arch/blackfin/include/asm/swab.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef _BLACKFIN_SWAB_H
22
#define _BLACKFIN_SWAB_H
33

4-
#include <asm/types.h>
4+
#include <linux/types.h>
55
#include <linux/compiler.h>
66

77
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)

0 commit comments

Comments
 (0)