Skip to content

Commit c0f37d2

Browse files
committed
Merge branches 'release', 'drop_do_IRQ', 'fix_early_irq', 'misc-2.6.37', 'next-fixes', 'optimize-unwind', 'remove-compat-h' and 'stack_trace' into release
7 parents 5d4bff9 + c75f2aa + e33621a + 9f081ce + 04a3440 + 48a4b30 + 85718fa commit c0f37d2

File tree

134 files changed

+1042
-731
lines changed

Some content is hidden

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

134 files changed

+1042
-731
lines changed

MAINTAINERS

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3925,8 +3925,10 @@ S: Supported
39253925
F: drivers/mfd/
39263926

39273927
MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
3928-
S: Orphan
3928+
M: Chris Ball <[email protected]>
39293929
3930+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
3931+
S: Maintained
39303932
F: drivers/mmc/
39313933
F: include/linux/mmc/
39323934

@@ -5097,8 +5099,10 @@ S: Maintained
50975099
F: drivers/mmc/host/sdricoh_cs.c
50985100

50995101
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
5100-
S: Orphan
5102+
M: Chris Ball <[email protected]>
51015103
5104+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
5105+
S: Maintained
51025106
F: drivers/mmc/host/sdhci.*
51035107

51045108
SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 2
22
PATCHLEVEL = 6
33
SUBLEVEL = 36
4-
EXTRAVERSION = -rc5
4+
EXTRAVERSION = -rc6
55
NAME = Sheep on Meth
66

77
# *DOCUMENTATION*

arch/alpha/kernel/entry.S

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -914,15 +914,6 @@ sys_execve:
914914
jmp $31, do_sys_execve
915915
.end sys_execve
916916

917-
.align 4
918-
.globl osf_sigprocmask
919-
.ent osf_sigprocmask
920-
osf_sigprocmask:
921-
.prologue 0
922-
mov $sp, $18
923-
jmp $31, sys_osf_sigprocmask
924-
.end osf_sigprocmask
925-
926917
.align 4
927918
.globl alpha_ni_syscall
928919
.ent alpha_ni_syscall

arch/alpha/kernel/signal.c

Lines changed: 15 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -41,46 +41,20 @@ static void do_signal(struct pt_regs *, struct switch_stack *,
4141
/*
4242
* The OSF/1 sigprocmask calling sequence is different from the
4343
* C sigprocmask() sequence..
44-
*
45-
* how:
46-
* 1 - SIG_BLOCK
47-
* 2 - SIG_UNBLOCK
48-
* 3 - SIG_SETMASK
49-
*
50-
* We change the range to -1 .. 1 in order to let gcc easily
51-
* use the conditional move instructions.
52-
*
53-
* Note that we don't need to acquire the kernel lock for SMP
54-
* operation, as all of this is local to this thread.
5544
*/
56-
SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask,
57-
struct pt_regs *, regs)
45+
SYSCALL_DEFINE2(osf_sigprocmask, int, how, unsigned long, newmask)
5846
{
59-
unsigned long oldmask = -EINVAL;
60-
61-
if ((unsigned long)how-1 <= 2) {
62-
long sign = how-2; /* -1 .. 1 */
63-
unsigned long block, unblock;
64-
65-
newmask &= _BLOCKABLE;
66-
spin_lock_irq(&current->sighand->siglock);
67-
oldmask = current->blocked.sig[0];
68-
69-
unblock = oldmask & ~newmask;
70-
block = oldmask | newmask;
71-
if (!sign)
72-
block = unblock;
73-
if (sign <= 0)
74-
newmask = block;
75-
if (_NSIG_WORDS > 1 && sign > 0)
76-
sigemptyset(&current->blocked);
77-
current->blocked.sig[0] = newmask;
78-
recalc_sigpending();
79-
spin_unlock_irq(&current->sighand->siglock);
80-
81-
regs->r0 = 0; /* special no error return */
47+
sigset_t oldmask;
48+
sigset_t mask;
49+
unsigned long res;
50+
51+
siginitset(&mask, newmask & ~_BLOCKABLE);
52+
res = sigprocmask(how, &mask, &oldmask);
53+
if (!res) {
54+
force_successful_syscall_return();
55+
res = oldmask.sig[0];
8256
}
83-
return oldmask;
57+
return res;
8458
}
8559

8660
SYSCALL_DEFINE3(osf_sigaction, int, sig,
@@ -94,9 +68,9 @@ SYSCALL_DEFINE3(osf_sigaction, int, sig,
9468
old_sigset_t mask;
9569
if (!access_ok(VERIFY_READ, act, sizeof(*act)) ||
9670
__get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
97-
__get_user(new_ka.sa.sa_flags, &act->sa_flags))
71+
__get_user(new_ka.sa.sa_flags, &act->sa_flags) ||
72+
__get_user(mask, &act->sa_mask))
9873
return -EFAULT;
99-
__get_user(mask, &act->sa_mask);
10074
siginitset(&new_ka.sa.sa_mask, mask);
10175
new_ka.ka_restorer = NULL;
10276
}
@@ -106,9 +80,9 @@ SYSCALL_DEFINE3(osf_sigaction, int, sig,
10680
if (!ret && oact) {
10781
if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) ||
10882
__put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
109-
__put_user(old_ka.sa.sa_flags, &oact->sa_flags))
83+
__put_user(old_ka.sa.sa_flags, &oact->sa_flags) ||
84+
__put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask))
11085
return -EFAULT;
111-
__put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
11286
}
11387

11488
return ret;

arch/alpha/kernel/systbls.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ sys_call_table:
5858
.quad sys_open /* 45 */
5959
.quad alpha_ni_syscall
6060
.quad sys_getxgid
61-
.quad osf_sigprocmask
61+
.quad sys_osf_sigprocmask
6262
.quad alpha_ni_syscall
6363
.quad alpha_ni_syscall /* 50 */
6464
.quad sys_acct

arch/arm/Kconfig

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,6 @@ config ARCH_AT91
271271
bool "Atmel AT91"
272272
select ARCH_REQUIRE_GPIOLIB
273273
select HAVE_CLK
274-
select ARCH_USES_GETTIMEOFFSET
275274
help
276275
This enables support for systems based on the Atmel AT91RM9200,
277276
AT91SAM9 and AT91CAP9 processors.
@@ -1051,6 +1050,32 @@ config ARM_ERRATA_460075
10511050
ACTLR register. Note that setting specific bits in the ACTLR register
10521051
may not be available in non-secure mode.
10531052

1053+
config ARM_ERRATA_742230
1054+
bool "ARM errata: DMB operation may be faulty"
1055+
depends on CPU_V7 && SMP
1056+
help
1057+
This option enables the workaround for the 742230 Cortex-A9
1058+
(r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
1059+
between two write operations may not ensure the correct visibility
1060+
ordering of the two writes. This workaround sets a specific bit in
1061+
the diagnostic register of the Cortex-A9 which causes the DMB
1062+
instruction to behave as a DSB, ensuring the correct behaviour of
1063+
the two writes.
1064+
1065+
config ARM_ERRATA_742231
1066+
bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
1067+
depends on CPU_V7 && SMP
1068+
help
1069+
This option enables the workaround for the 742231 Cortex-A9
1070+
(r2p0..r2p2) erratum. Under certain conditions, specific to the
1071+
Cortex-A9 MPCore micro-architecture, two CPUs working in SMP mode,
1072+
accessing some data located in the same cache line, may get corrupted
1073+
data due to bad handling of the address hazard when the line gets
1074+
replaced from one of the CPUs at the same time as another CPU is
1075+
accessing it. This workaround sets specific bits in the diagnostic
1076+
register of the Cortex-A9 which reduces the linefill issuing
1077+
capabilities of the processor.
1078+
10541079
config PL310_ERRATA_588369
10551080
bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
10561081
depends on CACHE_L2X0 && ARCH_OMAP4

arch/arm/boot/compressed/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,5 +116,5 @@ CFLAGS_font.o := -Dstatic=
116116
$(obj)/font.c: $(FONTC)
117117
$(call cmd,shipped)
118118

119-
$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile .config
119+
$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile $(KCONFIG_CONFIG)
120120
@sed "$(SEDFLAGS)" < $< > $@

arch/arm/include/asm/pgtable.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,10 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
317317
#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
318318
#define pgprot_dmacoherent(prot) \
319319
__pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_BUFFERABLE)
320+
#define __HAVE_PHYS_MEM_ACCESS_PROT
321+
struct file;
322+
extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
323+
unsigned long size, pgprot_t vma_prot);
320324
#else
321325
#define pgprot_dmacoherent(prot) \
322326
__pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_UNCACHED)

arch/arm/kernel/entry-common.S

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ work_pending:
4848
beq no_work_pending
4949
mov r0, sp @ 'regs'
5050
mov r2, why @ 'syscall'
51+
tst r1, #_TIF_SIGPENDING @ delivering a signal?
52+
movne why, #0 @ prevent further restarts
5153
bl do_notify_resume
5254
b ret_slow_syscall @ Check work again
5355

arch/arm/mach-at91/at91sam9g45_devices.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ static struct i2c_gpio_platform_data pdata_i2c0 = {
426426
.sda_is_open_drain = 1,
427427
.scl_pin = AT91_PIN_PA21,
428428
.scl_is_open_drain = 1,
429-
.udelay = 2, /* ~100 kHz */
429+
.udelay = 5, /* ~100 kHz */
430430
};
431431

432432
static struct platform_device at91sam9g45_twi0_device = {
@@ -440,7 +440,7 @@ static struct i2c_gpio_platform_data pdata_i2c1 = {
440440
.sda_is_open_drain = 1,
441441
.scl_pin = AT91_PIN_PB11,
442442
.scl_is_open_drain = 1,
443-
.udelay = 2, /* ~100 kHz */
443+
.udelay = 5, /* ~100 kHz */
444444
};
445445

446446
static struct platform_device at91sam9g45_twi1_device = {

arch/arm/mach-davinci/dm355.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -769,8 +769,7 @@ static struct map_desc dm355_io_desc[] = {
769769
.virtual = SRAM_VIRT,
770770
.pfn = __phys_to_pfn(0x00010000),
771771
.length = SZ_32K,
772-
/* MT_MEMORY_NONCACHED requires supersection alignment */
773-
.type = MT_DEVICE,
772+
.type = MT_MEMORY_NONCACHED,
774773
},
775774
};
776775

arch/arm/mach-davinci/dm365.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -969,8 +969,7 @@ static struct map_desc dm365_io_desc[] = {
969969
.virtual = SRAM_VIRT,
970970
.pfn = __phys_to_pfn(0x00010000),
971971
.length = SZ_32K,
972-
/* MT_MEMORY_NONCACHED requires supersection alignment */
973-
.type = MT_DEVICE,
972+
.type = MT_MEMORY_NONCACHED,
974973
},
975974
};
976975

arch/arm/mach-davinci/dm644x.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -653,8 +653,7 @@ static struct map_desc dm644x_io_desc[] = {
653653
.virtual = SRAM_VIRT,
654654
.pfn = __phys_to_pfn(0x00008000),
655655
.length = SZ_16K,
656-
/* MT_MEMORY_NONCACHED requires supersection alignment */
657-
.type = MT_DEVICE,
656+
.type = MT_MEMORY_NONCACHED,
658657
},
659658
};
660659

arch/arm/mach-davinci/dm646x.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -737,8 +737,7 @@ static struct map_desc dm646x_io_desc[] = {
737737
.virtual = SRAM_VIRT,
738738
.pfn = __phys_to_pfn(0x00010000),
739739
.length = SZ_32K,
740-
/* MT_MEMORY_NONCACHED requires supersection alignment */
741-
.type = MT_DEVICE,
740+
.type = MT_MEMORY_NONCACHED,
742741
},
743742
};
744743

arch/arm/mach-dove/include/mach/io.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
#define IO_SPACE_LIMIT 0xffffffff
1515

16-
#define __io(a) ((void __iomem *)(((a) - DOVE_PCIE0_IO_PHYS_BASE) +\
17-
DOVE_PCIE0_IO_VIRT_BASE))
18-
#define __mem_pci(a) (a)
16+
#define __io(a) ((void __iomem *)(((a) - DOVE_PCIE0_IO_BUS_BASE) + \
17+
DOVE_PCIE0_IO_VIRT_BASE))
18+
#define __mem_pci(a) (a)
1919

2020
#endif

arch/arm/mach-kirkwood/include/mach/kirkwood.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
#define KIRKWOOD_PCIE1_IO_PHYS_BASE 0xf3000000
4040
#define KIRKWOOD_PCIE1_IO_VIRT_BASE 0xfef00000
41-
#define KIRKWOOD_PCIE1_IO_BUS_BASE 0x00000000
41+
#define KIRKWOOD_PCIE1_IO_BUS_BASE 0x00100000
4242
#define KIRKWOOD_PCIE1_IO_SIZE SZ_1M
4343

4444
#define KIRKWOOD_PCIE_IO_PHYS_BASE 0xf2000000

arch/arm/mach-kirkwood/pcie.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ static void __init pcie0_ioresources_init(struct pcie_port *pp)
117117
* IORESOURCE_IO
118118
*/
119119
pp->res[0].name = "PCIe 0 I/O Space";
120-
pp->res[0].start = KIRKWOOD_PCIE_IO_PHYS_BASE;
120+
pp->res[0].start = KIRKWOOD_PCIE_IO_BUS_BASE;
121121
pp->res[0].end = pp->res[0].start + KIRKWOOD_PCIE_IO_SIZE - 1;
122122
pp->res[0].flags = IORESOURCE_IO;
123123

@@ -139,7 +139,7 @@ static void __init pcie1_ioresources_init(struct pcie_port *pp)
139139
* IORESOURCE_IO
140140
*/
141141
pp->res[0].name = "PCIe 1 I/O Space";
142-
pp->res[0].start = KIRKWOOD_PCIE1_IO_PHYS_BASE;
142+
pp->res[0].start = KIRKWOOD_PCIE1_IO_BUS_BASE;
143143
pp->res[0].end = pp->res[0].start + KIRKWOOD_PCIE1_IO_SIZE - 1;
144144
pp->res[0].flags = IORESOURCE_IO;
145145

arch/arm/mach-mmp/include/mach/system.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,18 @@
99
#ifndef __ASM_MACH_SYSTEM_H
1010
#define __ASM_MACH_SYSTEM_H
1111

12+
#include <mach/cputype.h>
13+
1214
static inline void arch_idle(void)
1315
{
1416
cpu_do_idle();
1517
}
1618

1719
static inline void arch_reset(char mode, const char *cmd)
1820
{
19-
cpu_reset(0);
21+
if (cpu_is_pxa168())
22+
cpu_reset(0xffff0000);
23+
else
24+
cpu_reset(0);
2025
}
2126
#endif /* __ASM_MACH_SYSTEM_H */

arch/arm/mach-pxa/cpufreq-pxa2xx.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,7 @@ static int pxa_set_target(struct cpufreq_policy *policy,
312312
freqs.cpu = policy->cpu;
313313

314314
if (freq_debug)
315-
pr_debug(KERN_INFO "Changing CPU frequency to %d Mhz, "
316-
"(SDRAM %d Mhz)\n",
315+
pr_debug("Changing CPU frequency to %d Mhz, (SDRAM %d Mhz)\n",
317316
freqs.new / 1000, (pxa_freq_settings[idx].div2) ?
318317
(new_freq_mem / 2000) : (new_freq_mem / 1000));
319318

arch/arm/mach-pxa/include/mach/hardware.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,23 +264,35 @@
264264
* <= 0x2 for pxa21x/pxa25x/pxa26x/pxa27x
265265
* == 0x3 for pxa300/pxa310/pxa320
266266
*/
267+
#if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x)
267268
#define __cpu_is_pxa2xx(id) \
268269
({ \
269270
unsigned int _id = (id) >> 13 & 0x7; \
270271
_id <= 0x2; \
271272
})
273+
#else
274+
#define __cpu_is_pxa2xx(id) (0)
275+
#endif
272276

277+
#ifdef CONFIG_PXA3xx
273278
#define __cpu_is_pxa3xx(id) \
274279
({ \
275280
unsigned int _id = (id) >> 13 & 0x7; \
276281
_id == 0x3; \
277282
})
283+
#else
284+
#define __cpu_is_pxa3xx(id) (0)
285+
#endif
278286

287+
#if defined(CONFIG_CPU_PXA930) || defined(CONFIG_CPU_PXA935)
279288
#define __cpu_is_pxa93x(id) \
280289
({ \
281290
unsigned int _id = (id) >> 4 & 0xfff; \
282291
_id == 0x683 || _id == 0x693; \
283292
})
293+
#else
294+
#define __cpu_is_pxa93x(id) (0)
295+
#endif
284296

285297
#define cpu_is_pxa2xx() \
286298
({ \

arch/arm/mach-pxa/palm27x.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,9 +469,13 @@ static struct i2c_board_info __initdata palm27x_pi2c_board_info[] = {
469469
},
470470
};
471471

472+
static struct i2c_pxa_platform_data palm27x_i2c_power_info = {
473+
.use_pio = 1,
474+
};
475+
472476
void __init palm27x_pmic_init(void)
473477
{
474478
i2c_register_board_info(1, ARRAY_AND_SIZE(palm27x_pi2c_board_info));
475-
pxa27x_set_i2c_power_info(NULL);
479+
pxa27x_set_i2c_power_info(&palm27x_i2c_power_info);
476480
}
477481
#endif

arch/arm/mach-pxa/vpac270.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ static void __init vpac270_onenand_init(void) {}
240240
#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
241241
static struct pxamci_platform_data vpac270_mci_platform_data = {
242242
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
243+
.gpio_power = -1,
243244
.gpio_card_detect = GPIO53_VPAC270_SD_DETECT_N,
244245
.gpio_card_ro = GPIO52_VPAC270_SD_READONLY,
245246
.detect_delay_ms = 200,

0 commit comments

Comments
 (0)