Skip to content

Commit ddbcfcb

Browse files
committed
Merge tag 'v4.4.5' into linux-linaro-lsk-v4.4
This is the 4.4.5 stable release # gpg: Signature made Wed 09 Mar 2016 23:36:03 GMT using RSA key ID 6092693E # gpg: Good signature from "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E
2 parents dfabba9 + 62e2195 commit ddbcfcb

651 files changed

Lines changed: 7579 additions & 3117 deletions

File tree

Some content is hidden

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

Documentation/filesystems/efivarfs.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,10 @@ filesystem.
1414
efivarfs is typically mounted like this,
1515

1616
mount -t efivarfs none /sys/firmware/efi/efivars
17+
18+
Due to the presence of numerous firmware bugs where removing non-standard
19+
UEFI variables causes the system firmware to fail to POST, efivarfs
20+
files that are not well-known standardized variables are created
21+
as immutable files. This doesn't prevent removal - "chattr -i" will work -
22+
but it does prevent this kind of failure from being accomplished
23+
accidentally.

MAINTAINERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10289,9 +10289,11 @@ S: Maintained
1028910289
F: drivers/net/ethernet/dlink/sundance.c
1029010290

1029110291
SUPERH
10292+
M: Yoshinori Sato <ysato@users.sourceforge.jp>
10293+
M: Rich Felker <dalias@libc.org>
1029210294
L: linux-sh@vger.kernel.org
1029310295
Q: http://patchwork.kernel.org/project/linux-sh/list/
10294-
S: Orphan
10296+
S: Maintained
1029510297
F: Documentation/sh/
1029610298
F: arch/sh/
1029710299
F: drivers/sh/

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 1
3+
SUBLEVEL = 5
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/arc/include/asm/irqflags-arcv2.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#define AUX_IRQ_CTRL 0x00E
2323
#define AUX_IRQ_ACT 0x043 /* Active Intr across all levels */
2424
#define AUX_IRQ_LVL_PEND 0x200 /* Pending Intr across all levels */
25+
#define AUX_IRQ_HINT 0x201 /* For generating Soft Interrupts */
2526
#define AUX_IRQ_PRIORITY 0x206
2627
#define ICAUSE 0x40a
2728
#define AUX_IRQ_SELECT 0x40b
@@ -112,6 +113,16 @@ static inline int arch_irqs_disabled(void)
112113
return arch_irqs_disabled_flags(arch_local_save_flags());
113114
}
114115

116+
static inline void arc_softirq_trigger(int irq)
117+
{
118+
write_aux_reg(AUX_IRQ_HINT, irq);
119+
}
120+
121+
static inline void arc_softirq_clear(int irq)
122+
{
123+
write_aux_reg(AUX_IRQ_HINT, 0);
124+
}
125+
115126
#else
116127

117128
.macro IRQ_DISABLE scratch

arch/arc/kernel/entry-arcv2.S

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,12 @@ VECTOR reserved ; Reserved slots
4545
VECTOR handle_interrupt ; (16) Timer0
4646
VECTOR handle_interrupt ; unused (Timer1)
4747
VECTOR handle_interrupt ; unused (WDT)
48-
VECTOR handle_interrupt ; (19) ICI (inter core interrupt)
49-
VECTOR handle_interrupt
50-
VECTOR handle_interrupt
51-
VECTOR handle_interrupt
52-
VECTOR handle_interrupt ; (23) End of fixed IRQs
48+
VECTOR handle_interrupt ; (19) Inter core Interrupt (IPI)
49+
VECTOR handle_interrupt ; (20) perf Interrupt
50+
VECTOR handle_interrupt ; (21) Software Triggered Intr (Self IPI)
51+
VECTOR handle_interrupt ; unused
52+
VECTOR handle_interrupt ; (23) unused
53+
# End of fixed IRQs
5354

5455
.rept CONFIG_ARC_NUMBER_OF_INTERRUPTS - 8
5556
VECTOR handle_interrupt
@@ -211,7 +212,11 @@ debug_marker_syscall:
211212
; (since IRQ NOT allowed in DS in ARCv2, this can only happen if orig
212213
; entry was via Exception in DS which got preempted in kernel).
213214
;
214-
; IRQ RTIE won't reliably restore DE bit and/or BTA, needs handling
215+
; IRQ RTIE won't reliably restore DE bit and/or BTA, needs workaround
216+
;
217+
; Solution is return from Intr w/o any delay slot quirks into a kernel trampoline
218+
; and from pure kernel mode return to delay slot which handles DS bit/BTA correctly
219+
215220
.Lintr_ret_to_delay_slot:
216221
debug_marker_ds:
217222

@@ -222,18 +227,23 @@ debug_marker_ds:
222227
ld r2, [sp, PT_ret]
223228
ld r3, [sp, PT_status32]
224229

230+
; STAT32 for Int return created from scratch
231+
; (No delay dlot, disable Further intr in trampoline)
232+
225233
bic r0, r3, STATUS_U_MASK|STATUS_DE_MASK|STATUS_IE_MASK|STATUS_L_MASK
226234
st r0, [sp, PT_status32]
227235

228236
mov r1, .Lintr_ret_to_delay_slot_2
229237
st r1, [sp, PT_ret]
230238

239+
; Orig exception PC/STAT32 safekept @orig_r0 and @event stack slots
231240
st r2, [sp, 0]
232241
st r3, [sp, 4]
233242

234243
b .Lisr_ret_fast_path
235244

236245
.Lintr_ret_to_delay_slot_2:
246+
; Trampoline to restore orig exception PC/STAT32/BTA/AUX_USER_SP
237247
sub sp, sp, SZ_PT_REGS
238248
st r9, [sp, -4]
239249

@@ -243,11 +253,19 @@ debug_marker_ds:
243253
ld r9, [sp, 4]
244254
sr r9, [erstatus]
245255

256+
; restore AUX_USER_SP if returning to U mode
257+
bbit0 r9, STATUS_U_BIT, 1f
258+
ld r9, [sp, PT_sp]
259+
sr r9, [AUX_USER_SP]
260+
261+
1:
246262
ld r9, [sp, 8]
247263
sr r9, [erbta]
248264

249265
ld r9, [sp, -4]
250266
add sp, sp, SZ_PT_REGS
267+
268+
; return from pure kernel mode to delay slot
251269
rtie
252270

253271
END(ret_from_exception)

arch/arc/kernel/mcip.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@
1111
#include <linux/smp.h>
1212
#include <linux/irq.h>
1313
#include <linux/spinlock.h>
14+
#include <asm/irqflags-arcv2.h>
1415
#include <asm/mcip.h>
1516
#include <asm/setup.h>
1617

18+
#define SOFTIRQ_IRQ 21
19+
1720
static char smp_cpuinfo_buf[128];
1821
static int idu_detected;
1922

@@ -22,13 +25,20 @@ static DEFINE_RAW_SPINLOCK(mcip_lock);
2225
static void mcip_setup_per_cpu(int cpu)
2326
{
2427
smp_ipi_irq_setup(cpu, IPI_IRQ);
28+
smp_ipi_irq_setup(cpu, SOFTIRQ_IRQ);
2529
}
2630

2731
static void mcip_ipi_send(int cpu)
2832
{
2933
unsigned long flags;
3034
int ipi_was_pending;
3135

36+
/* ARConnect can only send IPI to others */
37+
if (unlikely(cpu == raw_smp_processor_id())) {
38+
arc_softirq_trigger(SOFTIRQ_IRQ);
39+
return;
40+
}
41+
3242
/*
3343
* NOTE: We must spin here if the other cpu hasn't yet
3444
* serviced a previous message. This can burn lots
@@ -63,6 +73,11 @@ static void mcip_ipi_clear(int irq)
6373
unsigned long flags;
6474
unsigned int __maybe_unused copy;
6575

76+
if (unlikely(irq == SOFTIRQ_IRQ)) {
77+
arc_softirq_clear(irq);
78+
return;
79+
}
80+
6681
raw_spin_lock_irqsave(&mcip_lock, flags);
6782

6883
/* Who sent the IPI */

arch/arm/Kconfig.debug

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,9 @@ choice
162162
mobile SoCs in the Kona family of chips (e.g. bcm28155,
163163
bcm11351, etc...)
164164

165-
config DEBUG_BCM63XX
165+
config DEBUG_BCM63XX_UART
166166
bool "Kernel low-level debugging on BCM63XX UART"
167167
depends on ARCH_BCM_63XX
168-
select DEBUG_UART_BCM63XX
169168

170169
config DEBUG_BERLIN_UART
171170
bool "Marvell Berlin SoC Debug UART"
@@ -1348,7 +1347,7 @@ config DEBUG_LL_INCLUDE
13481347
default "debug/vf.S" if DEBUG_VF_UART
13491348
default "debug/vt8500.S" if DEBUG_VT8500_UART0
13501349
default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
1351-
default "debug/bcm63xx.S" if DEBUG_UART_BCM63XX
1350+
default "debug/bcm63xx.S" if DEBUG_BCM63XX_UART
13521351
default "debug/digicolor.S" if DEBUG_DIGICOLOR_UA0
13531352
default "mach/debug-macro.S"
13541353

@@ -1364,10 +1363,6 @@ config DEBUG_UART_8250
13641363
ARCH_IOP33X || ARCH_IXP4XX || \
13651364
ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC
13661365

1367-
# Compatibility options for BCM63xx
1368-
config DEBUG_UART_BCM63XX
1369-
def_bool ARCH_BCM_63XX
1370-
13711366
config DEBUG_UART_PHYS
13721367
hex "Physical base address of debug UART"
13731368
default 0x00100a00 if DEBUG_NETX_UART
@@ -1462,7 +1457,7 @@ config DEBUG_UART_PHYS
14621457
default 0xfffb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
14631458
default 0xfffb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
14641459
default 0xfffb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
1465-
default 0xfffe8600 if DEBUG_UART_BCM63XX
1460+
default 0xfffe8600 if DEBUG_BCM63XX_UART
14661461
default 0xfffff700 if ARCH_IOP33X
14671462
depends on ARCH_EP93XX || \
14681463
DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
@@ -1474,7 +1469,7 @@ config DEBUG_UART_PHYS
14741469
DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
14751470
DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
14761471
DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
1477-
DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
1472+
DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
14781473
DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0 || \
14791474
DEBUG_AT91_UART
14801475

@@ -1515,7 +1510,7 @@ config DEBUG_UART_VIRT
15151510
default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
15161511
default 0xfc40ab00 if DEBUG_BRCMSTB_UART
15171512
default 0xfc705000 if DEBUG_ZTE_ZX
1518-
default 0xfcfe8600 if DEBUG_UART_BCM63XX
1513+
default 0xfcfe8600 if DEBUG_BCM63XX_UART
15191514
default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
15201515
default 0xfd000000 if ARCH_SPEAR13XX
15211516
default 0xfd012000 if ARCH_MV78XX0
@@ -1566,7 +1561,7 @@ config DEBUG_UART_VIRT
15661561
DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
15671562
DEBUG_NETX_UART || \
15681563
DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
1569-
DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
1564+
DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
15701565
DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0
15711566

15721567
config DEBUG_UART_8250_SHIFT

arch/arm/boot/dts/armada-388-gp.dts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -303,16 +303,6 @@
303303
gpio = <&expander0 4 GPIO_ACTIVE_HIGH>;
304304
};
305305

306-
reg_usb2_1_vbus: v5-vbus1 {
307-
compatible = "regulator-fixed";
308-
regulator-name = "v5.0-vbus1";
309-
regulator-min-microvolt = <5000000>;
310-
regulator-max-microvolt = <5000000>;
311-
enable-active-high;
312-
regulator-always-on;
313-
gpio = <&expander0 4 GPIO_ACTIVE_HIGH>;
314-
};
315-
316306
reg_sata0: pwr-sata0 {
317307
compatible = "regulator-fixed";
318308
regulator-name = "pwr_en_sata0";

arch/arm/boot/dts/at91-sama5d4_xplained.dts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,12 @@
8686
macb0: ethernet@f8020000 {
8787
phy-mode = "rmii";
8888
status = "okay";
89+
pinctrl-names = "default";
90+
pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
8991

9092
phy0: ethernet-phy@1 {
9193
interrupt-parent = <&pioE>;
92-
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
94+
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
9395
reg = <1>;
9496
};
9597
};
@@ -152,6 +154,10 @@
152154
atmel,pins =
153155
<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
154156
};
157+
pinctrl_macb0_phy_irq: macb0_phy_irq_0 {
158+
atmel,pins =
159+
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
160+
};
155161
};
156162
};
157163
};

arch/arm/boot/dts/at91-sama5d4ek.dts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,15 @@
160160
};
161161

162162
macb0: ethernet@f8020000 {
163+
pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
163164
phy-mode = "rmii";
164165
status = "okay";
166+
167+
ethernet-phy@1 {
168+
reg = <0x1>;
169+
interrupt-parent = <&pioE>;
170+
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
171+
};
165172
};
166173

167174
mmc1: mmc@fc000000 {
@@ -193,6 +200,10 @@
193200

194201
pinctrl@fc06a000 {
195202
board {
203+
pinctrl_macb0_phy_irq: macb0_phy_irq {
204+
atmel,pins =
205+
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
206+
};
196207
pinctrl_mmc0_cd: mmc0_cd {
197208
atmel,pins =
198209
<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;

0 commit comments

Comments
 (0)