Skip to content

Commit 464b584

Browse files
committed
Merge branch 'irq/urgent' into irq/core
Merge urgent fixes so pending patches for 4.9 can be applied.
2 parents 0a30d69 + e875bd6 commit 464b584

File tree

262 files changed

+2537
-1632
lines changed

Some content is hidden

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

262 files changed

+2537
-1632
lines changed

Documentation/devicetree/bindings/mmc/sdhci-st.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Required properties:
1010
subsystem (mmcss) inside the FlashSS (available in STiH407 SoC
1111
family).
1212

13-
- clock-names: Should be "mmc".
13+
- clock-names: Should be "mmc" and "icn". (NB: The latter is not compulsory)
1414
See: Documentation/devicetree/bindings/resource-names.txt
1515
- clocks: Phandle to the clock.
1616
See: Documentation/devicetree/bindings/clock/clock-bindings.txt

MAINTAINERS

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,6 +1625,7 @@ N: rockchip
16251625
ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
16261626
M: Kukjin Kim <kgene@kernel.org>
16271627
M: Krzysztof Kozlowski <krzk@kernel.org>
1628+
R: Javier Martinez Canillas <javier@osg.samsung.com>
16281629
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
16291630
L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
16301631
S: Maintained
@@ -2485,7 +2486,7 @@ F: include/net/bluetooth/
24852486
BONDING DRIVER
24862487
M: Jay Vosburgh <j.vosburgh@gmail.com>
24872488
M: Veaceslav Falico <vfalico@gmail.com>
2488-
M: Andy Gospodarek <gospo@cumulusnetworks.com>
2489+
M: Andy Gospodarek <andy@greyhouse.net>
24892490
L: netdev@vger.kernel.org
24902491
W: http://sourceforge.net/projects/bonding/
24912492
S: Supported
@@ -3269,7 +3270,7 @@ S: Maintained
32693270
F: drivers/net/wan/cosa*
32703271

32713272
CPMAC ETHERNET DRIVER
3272-
M: Florian Fainelli <florian@openwrt.org>
3273+
M: Florian Fainelli <f.fainelli@gmail.com>
32733274
L: netdev@vger.kernel.org
32743275
S: Maintained
32753276
F: drivers/net/ethernet/ti/cpmac.c

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 8
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc6
4+
EXTRAVERSION = -rc7
55
NAME = Psychotic Stoned Sheep
66

77
# *DOCUMENTATION*

arch/alpha/include/asm/uaccess.h

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -371,14 +371,6 @@ __copy_tofrom_user_nocheck(void *to, const void *from, long len)
371371
return __cu_len;
372372
}
373373

374-
extern inline long
375-
__copy_tofrom_user(void *to, const void *from, long len, const void __user *validate)
376-
{
377-
if (__access_ok((unsigned long)validate, len, get_fs()))
378-
len = __copy_tofrom_user_nocheck(to, from, len);
379-
return len;
380-
}
381-
382374
#define __copy_to_user(to, from, n) \
383375
({ \
384376
__chk_user_ptr(to); \
@@ -393,17 +385,22 @@ __copy_tofrom_user(void *to, const void *from, long len, const void __user *vali
393385
#define __copy_to_user_inatomic __copy_to_user
394386
#define __copy_from_user_inatomic __copy_from_user
395387

396-
397388
extern inline long
398389
copy_to_user(void __user *to, const void *from, long n)
399390
{
400-
return __copy_tofrom_user((__force void *)to, from, n, to);
391+
if (likely(__access_ok((unsigned long)to, n, get_fs())))
392+
n = __copy_tofrom_user_nocheck((__force void *)to, from, n);
393+
return n;
401394
}
402395

403396
extern inline long
404397
copy_from_user(void *to, const void __user *from, long n)
405398
{
406-
return __copy_tofrom_user(to, (__force void *)from, n, from);
399+
if (likely(__access_ok((unsigned long)from, n, get_fs())))
400+
n = __copy_tofrom_user_nocheck(to, (__force void *)from, n);
401+
else
402+
memset(to, 0, n);
403+
return n;
407404
}
408405

409406
extern void __do_clear_user(void);

arch/arc/include/asm/uaccess.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@
8383
"2: ;nop\n" \
8484
" .section .fixup, \"ax\"\n" \
8585
" .align 4\n" \
86-
"3: mov %0, %3\n" \
86+
"3: # return -EFAULT\n" \
87+
" mov %0, %3\n" \
88+
" # zero out dst ptr\n" \
89+
" mov %1, 0\n" \
8790
" j 2b\n" \
8891
" .previous\n" \
8992
" .section __ex_table, \"a\"\n" \
@@ -101,7 +104,11 @@
101104
"2: ;nop\n" \
102105
" .section .fixup, \"ax\"\n" \
103106
" .align 4\n" \
104-
"3: mov %0, %3\n" \
107+
"3: # return -EFAULT\n" \
108+
" mov %0, %3\n" \
109+
" # zero out dst ptr\n" \
110+
" mov %1, 0\n" \
111+
" mov %R1, 0\n" \
105112
" j 2b\n" \
106113
" .previous\n" \
107114
" .section __ex_table, \"a\"\n" \

arch/arm/boot/dts/bcm2835-rpi.dtsi

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

33
/ {
44
memory {
5+
device_type = "memory";
56
reg = <0 0x10000000>;
67
};
78

arch/arm/boot/dts/bcm283x.dtsi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#include <dt-bindings/clock/bcm2835.h>
33
#include <dt-bindings/clock/bcm2835-aux.h>
44
#include <dt-bindings/gpio/gpio.h>
5-
#include "skeleton.dtsi"
65

76
/* This include file covers the common peripherals and configuration between
87
* bcm2835 and bcm2836 implementations, leaving the CPU configuration to
@@ -13,6 +12,8 @@
1312
compatible = "brcm,bcm2835";
1413
model = "BCM2835";
1514
interrupt-parent = <&intc>;
15+
#address-cells = <1>;
16+
#size-cells = <1>;
1617

1718
chosen {
1819
bootargs = "earlyprintk console=ttyAMA0";

arch/arm/boot/dts/stih407-family.dtsi

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -550,8 +550,9 @@
550550
interrupt-names = "mmcirq";
551551
pinctrl-names = "default";
552552
pinctrl-0 = <&pinctrl_mmc0>;
553-
clock-names = "mmc";
554-
clocks = <&clk_s_c0_flexgen CLK_MMC_0>;
553+
clock-names = "mmc", "icn";
554+
clocks = <&clk_s_c0_flexgen CLK_MMC_0>,
555+
<&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
555556
bus-width = <8>;
556557
non-removable;
557558
};
@@ -565,8 +566,9 @@
565566
interrupt-names = "mmcirq";
566567
pinctrl-names = "default";
567568
pinctrl-0 = <&pinctrl_sd1>;
568-
clock-names = "mmc";
569-
clocks = <&clk_s_c0_flexgen CLK_MMC_1>;
569+
clock-names = "mmc", "icn";
570+
clocks = <&clk_s_c0_flexgen CLK_MMC_1>,
571+
<&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
570572
resets = <&softreset STIH407_MMC1_SOFTRESET>;
571573
bus-width = <4>;
572574
};

arch/arm/boot/dts/stih410.dtsi

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
compatible = "st,st-ohci-300x";
4242
reg = <0x9a03c00 0x100>;
4343
interrupts = <GIC_SPI 180 IRQ_TYPE_NONE>;
44-
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>;
44+
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
45+
<&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
4546
resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>,
4647
<&softreset STIH407_USB2_PORT0_SOFTRESET>;
4748
reset-names = "power", "softreset";
@@ -57,7 +58,8 @@
5758
interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>;
5859
pinctrl-names = "default";
5960
pinctrl-0 = <&pinctrl_usb0>;
60-
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>;
61+
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
62+
<&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
6163
resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>,
6264
<&softreset STIH407_USB2_PORT0_SOFTRESET>;
6365
reset-names = "power", "softreset";
@@ -71,7 +73,8 @@
7173
compatible = "st,st-ohci-300x";
7274
reg = <0x9a83c00 0x100>;
7375
interrupts = <GIC_SPI 181 IRQ_TYPE_NONE>;
74-
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>;
76+
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
77+
<&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
7578
resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>,
7679
<&softreset STIH407_USB2_PORT1_SOFTRESET>;
7780
reset-names = "power", "softreset";
@@ -87,7 +90,8 @@
8790
interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>;
8891
pinctrl-names = "default";
8992
pinctrl-0 = <&pinctrl_usb1>;
90-
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>;
93+
clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
94+
<&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
9195
resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>,
9296
<&softreset STIH407_USB2_PORT1_SOFTRESET>;
9397
reset-names = "power", "softreset";

arch/arm/common/locomo.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ static struct locomo_dev_info locomo_devices[] = {
140140

141141
static void locomo_handler(struct irq_desc *desc)
142142
{
143-
struct locomo *lchip = irq_desc_get_chip_data(desc);
143+
struct locomo *lchip = irq_desc_get_handler_data(desc);
144144
int req, i;
145145

146146
/* Acknowledge the parent IRQ */
@@ -200,8 +200,7 @@ static void locomo_setup_irq(struct locomo *lchip)
200200
* Install handler for IRQ_LOCOMO_HW.
201201
*/
202202
irq_set_irq_type(lchip->irq, IRQ_TYPE_EDGE_FALLING);
203-
irq_set_chip_data(lchip->irq, lchip);
204-
irq_set_chained_handler(lchip->irq, locomo_handler);
203+
irq_set_chained_handler_and_data(lchip->irq, locomo_handler, lchip);
205204

206205
/* Install handlers for IRQ_LOCOMO_* */
207206
for ( ; irq <= lchip->irq_base + 3; irq++) {

arch/arm/common/sa1111.c

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -472,8 +472,8 @@ static int sa1111_setup_irq(struct sa1111 *sachip, unsigned irq_base)
472472
* specifies that S0ReadyInt and S1ReadyInt should be '1'.
473473
*/
474474
sa1111_writel(0, irqbase + SA1111_INTPOL0);
475-
sa1111_writel(SA1111_IRQMASK_HI(IRQ_S0_READY_NINT) |
476-
SA1111_IRQMASK_HI(IRQ_S1_READY_NINT),
475+
sa1111_writel(BIT(IRQ_S0_READY_NINT & 31) |
476+
BIT(IRQ_S1_READY_NINT & 31),
477477
irqbase + SA1111_INTPOL1);
478478

479479
/* clear all IRQs */
@@ -754,7 +754,7 @@ static int __sa1111_probe(struct device *me, struct resource *mem, int irq)
754754
if (sachip->irq != NO_IRQ) {
755755
ret = sa1111_setup_irq(sachip, pd->irq_base);
756756
if (ret)
757-
goto err_unmap;
757+
goto err_clk;
758758
}
759759

760760
#ifdef CONFIG_ARCH_SA1100
@@ -799,6 +799,8 @@ static int __sa1111_probe(struct device *me, struct resource *mem, int irq)
799799

800800
return 0;
801801

802+
err_clk:
803+
clk_disable(sachip->clk);
802804
err_unmap:
803805
iounmap(sachip->base);
804806
err_clk_unprep:
@@ -869,9 +871,9 @@ struct sa1111_save_data {
869871

870872
#ifdef CONFIG_PM
871873

872-
static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
874+
static int sa1111_suspend_noirq(struct device *dev)
873875
{
874-
struct sa1111 *sachip = platform_get_drvdata(dev);
876+
struct sa1111 *sachip = dev_get_drvdata(dev);
875877
struct sa1111_save_data *save;
876878
unsigned long flags;
877879
unsigned int val;
@@ -934,9 +936,9 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
934936
* restored by their respective drivers, and must be called
935937
* via LDM after this function.
936938
*/
937-
static int sa1111_resume(struct platform_device *dev)
939+
static int sa1111_resume_noirq(struct device *dev)
938940
{
939-
struct sa1111 *sachip = platform_get_drvdata(dev);
941+
struct sa1111 *sachip = dev_get_drvdata(dev);
940942
struct sa1111_save_data *save;
941943
unsigned long flags, id;
942944
void __iomem *base;
@@ -952,7 +954,7 @@ static int sa1111_resume(struct platform_device *dev)
952954
id = sa1111_readl(sachip->base + SA1111_SKID);
953955
if ((id & SKID_ID_MASK) != SKID_SA1111_ID) {
954956
__sa1111_remove(sachip);
955-
platform_set_drvdata(dev, NULL);
957+
dev_set_drvdata(dev, NULL);
956958
kfree(save);
957959
return 0;
958960
}
@@ -1003,8 +1005,8 @@ static int sa1111_resume(struct platform_device *dev)
10031005
}
10041006

10051007
#else
1006-
#define sa1111_suspend NULL
1007-
#define sa1111_resume NULL
1008+
#define sa1111_suspend_noirq NULL
1009+
#define sa1111_resume_noirq NULL
10081010
#endif
10091011

10101012
static int sa1111_probe(struct platform_device *pdev)
@@ -1017,7 +1019,7 @@ static int sa1111_probe(struct platform_device *pdev)
10171019
return -EINVAL;
10181020
irq = platform_get_irq(pdev, 0);
10191021
if (irq < 0)
1020-
return -ENXIO;
1022+
return irq;
10211023

10221024
return __sa1111_probe(&pdev->dev, mem, irq);
10231025
}
@@ -1038,6 +1040,11 @@ static int sa1111_remove(struct platform_device *pdev)
10381040
return 0;
10391041
}
10401042

1043+
static struct dev_pm_ops sa1111_pm_ops = {
1044+
.suspend_noirq = sa1111_suspend_noirq,
1045+
.resume_noirq = sa1111_resume_noirq,
1046+
};
1047+
10411048
/*
10421049
* Not sure if this should be on the system bus or not yet.
10431050
* We really want some way to register a system device at
@@ -1050,10 +1057,9 @@ static int sa1111_remove(struct platform_device *pdev)
10501057
static struct platform_driver sa1111_device_driver = {
10511058
.probe = sa1111_probe,
10521059
.remove = sa1111_remove,
1053-
.suspend = sa1111_suspend,
1054-
.resume = sa1111_resume,
10551060
.driver = {
10561061
.name = "sa1111",
1062+
.pm = &sa1111_pm_ops,
10571063
},
10581064
};
10591065

arch/arm/configs/keystone_defconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ CONFIG_USB_MON=y
161161
CONFIG_USB_XHCI_HCD=y
162162
CONFIG_USB_STORAGE=y
163163
CONFIG_USB_DWC3=y
164+
CONFIG_NOP_USB_XCEIV=y
164165
CONFIG_KEYSTONE_USB_PHY=y
165166
CONFIG_NEW_LEDS=y
166167
CONFIG_LEDS_CLASS=y

arch/arm/configs/multi_v7_defconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,7 @@ CONFIG_MXS_DMA=y
781781
CONFIG_DMA_BCM2835=y
782782
CONFIG_DMA_OMAP=y
783783
CONFIG_QCOM_BAM_DMA=y
784-
CONFIG_XILINX_VDMA=y
784+
CONFIG_XILINX_DMA=y
785785
CONFIG_DMA_SUN6I=y
786786
CONFIG_STAGING=y
787787
CONFIG_SENSORS_ISL29018=y

arch/arm/include/asm/pgtable-2level-hwdef.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
#define PMD_SECT_WB (PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
4848
#define PMD_SECT_MINICACHE (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE)
4949
#define PMD_SECT_WBWA (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
50+
#define PMD_SECT_CACHE_MASK (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
5051
#define PMD_SECT_NONSHARED_DEV (PMD_SECT_TEX(2))
5152

5253
/*

arch/arm/include/asm/pgtable-3level-hwdef.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
#define PMD_SECT_WT (_AT(pmdval_t, 2) << 2) /* normal inner write-through */
6363
#define PMD_SECT_WB (_AT(pmdval_t, 3) << 2) /* normal inner write-back */
6464
#define PMD_SECT_WBWA (_AT(pmdval_t, 7) << 2) /* normal inner write-alloc */
65+
#define PMD_SECT_CACHE_MASK (_AT(pmdval_t, 7) << 2)
6566

6667
/*
6768
* + Level 3 descriptor (PTE)

arch/arm/kvm/arm.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,6 @@ void kvm_arch_destroy_vm(struct kvm *kvm)
158158
{
159159
int i;
160160

161-
kvm_free_stage2_pgd(kvm);
162-
163161
for (i = 0; i < KVM_MAX_VCPUS; ++i) {
164162
if (kvm->vcpus[i]) {
165163
kvm_arch_vcpu_free(kvm->vcpus[i]);

arch/arm/kvm/mmu.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1714,7 +1714,8 @@ int kvm_mmu_init(void)
17141714
kern_hyp_va(PAGE_OFFSET), kern_hyp_va(~0UL));
17151715

17161716
if (hyp_idmap_start >= kern_hyp_va(PAGE_OFFSET) &&
1717-
hyp_idmap_start < kern_hyp_va(~0UL)) {
1717+
hyp_idmap_start < kern_hyp_va(~0UL) &&
1718+
hyp_idmap_start != (unsigned long)__hyp_idmap_text_start) {
17181719
/*
17191720
* The idmap page is intersecting with the VA space,
17201721
* it is not safe to continue further.
@@ -1893,6 +1894,7 @@ void kvm_arch_memslots_updated(struct kvm *kvm, struct kvm_memslots *slots)
18931894

18941895
void kvm_arch_flush_shadow_all(struct kvm *kvm)
18951896
{
1897+
kvm_free_stage2_pgd(kvm);
18961898
}
18971899

18981900
void kvm_arch_flush_shadow_memslot(struct kvm *kvm,

arch/arm/mach-exynos/suspend.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,12 @@ static int __init exynos_pmu_irq_init(struct device_node *node,
255255
return -ENOMEM;
256256
}
257257

258+
/*
259+
* Clear the OF_POPULATED flag set in of_irq_init so that
260+
* later the Exynos PMU platform device won't be skipped.
261+
*/
262+
of_node_clear_flag(node, OF_POPULATED);
263+
258264
return 0;
259265
}
260266

0 commit comments

Comments
 (0)