aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig3
-rw-r--r--arch/arm/boot/dts/versatile-pb.dts37
-rw-r--r--arch/arm/include/asm/mach/pci.h6
-rw-r--r--arch/arm/include/asm/pci.h7
-rw-r--r--arch/arm/include/asm/xen/page.h2
-rw-r--r--arch/arm/kernel/bios32.c8
-rw-r--r--arch/arm/kvm/Kconfig1
-rw-r--r--arch/arm/mach-cns3xxx/pcie.c92
-rw-r--r--arch/arm/mach-integrator/pci_v3.c62
-rw-r--r--arch/arm/mach-ks8695/pci.c77
-rw-r--r--arch/arm/mach-sa1100/pci-nanoengine.c94
-rw-r--r--arch/arm/xen/enlighten.c4
-rw-r--r--arch/arm/xen/mm.c2
-rw-r--r--arch/arm/xen/p2m.c2
-rw-r--r--arch/arm64/kernel/efi-stub.c14
-rw-r--r--arch/arm64/kernel/pci.c22
-rw-r--r--arch/arm64/kvm/Kconfig1
-rw-r--r--arch/frv/mb93090-mb00/pci-vdk.c4
-rw-r--r--arch/ia64/kernel/acpi-ext.c6
-rw-r--r--arch/ia64/kernel/acpi.c6
-rw-r--r--arch/ia64/pci/pci.c14
-rw-r--r--arch/m68k/atari/atakeyb.c72
-rw-r--r--arch/m68k/atari/stdma.c2
-rw-r--r--arch/m68k/atari/time.c3
-rw-r--r--arch/m68k/configs/amiga_defconfig73
-rw-r--r--arch/m68k/configs/apollo_defconfig73
-rw-r--r--arch/m68k/configs/atari_defconfig78
-rw-r--r--arch/m68k/configs/bvme6000_defconfig73
-rw-r--r--arch/m68k/configs/hp300_defconfig73
-rw-r--r--arch/m68k/configs/mac_defconfig72
-rw-r--r--arch/m68k/configs/multi_defconfig78
-rw-r--r--arch/m68k/configs/mvme147_defconfig73
-rw-r--r--arch/m68k/configs/mvme16x_defconfig72
-rw-r--r--arch/m68k/configs/q40_defconfig73
-rw-r--r--arch/m68k/configs/sun3_defconfig72
-rw-r--r--arch/m68k/configs/sun3x_defconfig73
-rw-r--r--arch/m68k/include/asm/Kbuild1
-rw-r--r--arch/m68k/include/asm/atariints.h5
-rw-r--r--arch/m68k/include/asm/futex.h94
-rw-r--r--arch/m68k/include/asm/macintosh.h2
-rw-r--r--arch/m68k/mac/config.c32
-rw-r--r--arch/m68k/mvme147/config.c46
-rw-r--r--arch/m68k/mvme16x/rtc.c2
-rw-r--r--arch/microblaze/boot/Makefile3
-rw-r--r--arch/microblaze/boot/dts/Makefile2
-rw-r--r--arch/microblaze/include/asm/delay.h4
-rw-r--r--arch/microblaze/include/asm/kgdb.h3
-rw-r--r--arch/microblaze/include/asm/linkage.h16
-rw-r--r--arch/microblaze/include/asm/pgalloc.h14
-rw-r--r--arch/microblaze/include/asm/syscall.h2
-rw-r--r--arch/microblaze/include/asm/uaccess.h6
-rw-r--r--arch/microblaze/include/asm/unistd.h2
-rw-r--r--arch/microblaze/include/uapi/asm/unistd.h1
-rw-r--r--arch/microblaze/kernel/Makefile2
-rw-r--r--arch/microblaze/kernel/cpu/cache.c6
-rw-r--r--arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c2
-rw-r--r--arch/microblaze/kernel/cpu/cpuinfo-static.c2
-rw-r--r--arch/microblaze/kernel/cpu/cpuinfo.c7
-rw-r--r--arch/microblaze/kernel/intc.c8
-rw-r--r--arch/microblaze/kernel/kgdb.c10
-rw-r--r--arch/microblaze/kernel/prom_parse.c35
-rw-r--r--arch/microblaze/kernel/ptrace.c4
-rw-r--r--arch/microblaze/kernel/reset.c1
-rw-r--r--arch/microblaze/kernel/signal.c4
-rw-r--r--arch/microblaze/kernel/syscall_table.S1
-rw-r--r--arch/microblaze/kernel/unwind.c2
-rw-r--r--arch/mips/kvm/Kconfig1
-rw-r--r--arch/mips/pci/pci-bcm1480.c4
-rw-r--r--arch/mips/pci/pci-octeon.c4
-rw-r--r--arch/mips/pci/pcie-octeon.c12
-rw-r--r--arch/mn10300/unit-asb2305/pci.c4
-rw-r--r--arch/powerpc/kvm/Kconfig1
-rw-r--r--arch/powerpc/platforms/cell/celleb_scc_pciex.c4
-rw-r--r--arch/powerpc/platforms/powermac/pci.c209
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c46
-rw-r--r--arch/s390/kvm/Kconfig1
-rw-r--r--arch/tile/kernel/pci.c4
-rw-r--r--arch/tile/kvm/Kconfig1
-rw-r--r--arch/x86/Kconfig16
-rw-r--r--arch/x86/boot/ctype.h5
-rw-r--r--arch/x86/boot/early_serial_console.c6
-rw-r--r--arch/x86/ia32/ia32entry.S4
-rw-r--r--arch/x86/include/asm/apic.h58
-rw-r--r--arch/x86/include/asm/calling.h1
-rw-r--r--arch/x86/include/asm/cpufeature.h2
-rw-r--r--arch/x86/include/asm/debugreg.h5
-rw-r--r--arch/x86/include/asm/fpu-internal.h10
-rw-r--r--arch/x86/include/asm/hw_breakpoint.h1
-rw-r--r--arch/x86/include/asm/i387.h6
-rw-r--r--arch/x86/include/asm/io_apic.h5
-rw-r--r--arch/x86/include/asm/irq_remapping.h4
-rw-r--r--arch/x86/include/asm/mce.h1
-rw-r--r--arch/x86/include/asm/pci_x86.h2
-rw-r--r--arch/x86/include/asm/pmc_atom.h22
-rw-r--r--arch/x86/include/asm/smpboot_hooks.h68
-rw-r--r--arch/x86/include/asm/thread_info.h15
-rw-r--r--arch/x86/include/asm/traps.h6
-rw-r--r--arch/x86/include/asm/xen/page.h20
-rw-r--r--arch/x86/include/uapi/asm/msr-index.h9
-rw-r--r--arch/x86/kernel/acpi/boot.c18
-rw-r--r--arch/x86/kernel/apb_timer.c8
-rw-r--r--arch/x86/kernel/apic/apic.c456
-rw-r--r--arch/x86/kernel/apic/io_apic.c13
-rw-r--r--arch/x86/kernel/cpu/amd.c19
-rw-r--r--arch/x86/kernel/cpu/common.c15
-rw-r--r--arch/x86/kernel/cpu/intel.c6
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c137
-rw-r--r--arch/x86/kernel/cpu/mcheck/p5.c6
-rw-r--r--arch/x86/kernel/cpu/mcheck/winchip.c5
-rw-r--r--arch/x86/kernel/e820.c26
-rw-r--r--arch/x86/kernel/entry_64.S317
-rw-r--r--arch/x86/kernel/hw_breakpoint.c45
-rw-r--r--arch/x86/kernel/i387.c39
-rw-r--r--arch/x86/kernel/irq_32.c13
-rw-r--r--arch/x86/kernel/pmc_atom.c81
-rw-r--r--arch/x86/kernel/rtc.c2
-rw-r--r--arch/x86/kernel/setup.c8
-rw-r--r--arch/x86/kernel/signal.c6
-rw-r--r--arch/x86/kernel/smpboot.c113
-rw-r--r--arch/x86/kernel/traps.c131
-rw-r--r--arch/x86/kvm/Kconfig1
-rw-r--r--arch/x86/pci/acpi.c293
-rw-r--r--arch/x86/pci/bus_numa.c4
-rw-r--r--arch/x86/pci/common.c34
-rw-r--r--arch/x86/pci/intel_mid_pci.c5
-rw-r--r--arch/x86/pci/irq.c15
-rw-r--r--arch/x86/pci/mmconfig-shared.c34
-rw-r--r--arch/x86/pci/xen.c4
-rw-r--r--arch/x86/vdso/Makefile2
-rw-r--r--arch/x86/xen/mmu.c17
-rw-r--r--arch/x86/xen/p2m.c267
-rw-r--r--arch/x86/xen/setup.c37
-rw-r--r--arch/x86/xen/smp.c2
-rw-r--r--arch/x86/xen/time.c4
-rw-r--r--arch/x86/xen/xen-ops.h6
135 files changed, 2095 insertions, 2394 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 97d07ed60a0b..dcb2e0c55be4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1279,6 +1279,9 @@ config PCI_DOMAINS
1279 bool 1279 bool
1280 depends on PCI 1280 depends on PCI
1281 1281
1282config PCI_DOMAINS_GENERIC
1283 def_bool PCI_DOMAINS
1284
1282config PCI_NANOENGINE 1285config PCI_NANOENGINE
1283 bool "BSE nanoEngine PCI support" 1286 bool "BSE nanoEngine PCI support"
1284 depends on SA1100_NANOENGINE 1287 depends on SA1100_NANOENGINE
diff --git a/arch/arm/boot/dts/versatile-pb.dts b/arch/arm/boot/dts/versatile-pb.dts
index e36c1e82fea7..b83137f66034 100644
--- a/arch/arm/boot/dts/versatile-pb.dts
+++ b/arch/arm/boot/dts/versatile-pb.dts
@@ -29,6 +29,43 @@
29 clock-names = "apb_pclk"; 29 clock-names = "apb_pclk";
30 }; 30 };
31 31
32 pci-controller@10001000 {
33 compatible = "arm,versatile-pci";
34 device_type = "pci";
35 reg = <0x10001000 0x1000
36 0x41000000 0x10000
37 0x42000000 0x100000>;
38 bus-range = <0 0xff>;
39 #address-cells = <3>;
40 #size-cells = <2>;
41 #interrupt-cells = <1>;
42
43 ranges = <0x01000000 0 0x00000000 0x43000000 0 0x00010000 /* downstream I/O */
44 0x02000000 0 0x50000000 0x50000000 0 0x10000000 /* non-prefetchable memory */
45 0x42000000 0 0x60000000 0x60000000 0 0x10000000>; /* prefetchable memory */
46
47 interrupt-map-mask = <0x1800 0 0 7>;
48 interrupt-map = <0x1800 0 0 1 &sic 28
49 0x1800 0 0 2 &sic 29
50 0x1800 0 0 3 &sic 30
51 0x1800 0 0 4 &sic 27
52
53 0x1000 0 0 1 &sic 27
54 0x1000 0 0 2 &sic 28
55 0x1000 0 0 3 &sic 29
56 0x1000 0 0 4 &sic 30
57
58 0x0800 0 0 1 &sic 30
59 0x0800 0 0 2 &sic 27
60 0x0800 0 0 3 &sic 28
61 0x0800 0 0 4 &sic 29
62
63 0x0000 0 0 1 &sic 29
64 0x0000 0 0 2 &sic 30
65 0x0000 0 0 3 &sic 27
66 0x0000 0 0 4 &sic 28>;
67 };
68
32 fpga { 69 fpga {
33 uart@9000 { 70 uart@9000 {
34 compatible = "arm,pl011", "arm,primecell"; 71 compatible = "arm,pl011", "arm,primecell";
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h
index 8292b5f81e23..28b9bb35949e 100644
--- a/arch/arm/include/asm/mach/pci.h
+++ b/arch/arm/include/asm/mach/pci.h
@@ -19,9 +19,6 @@ struct pci_bus;
19struct device; 19struct device;
20 20
21struct hw_pci { 21struct hw_pci {
22#ifdef CONFIG_PCI_DOMAINS
23 int domain;
24#endif
25#ifdef CONFIG_PCI_MSI 22#ifdef CONFIG_PCI_MSI
26 struct msi_controller *msi_ctrl; 23 struct msi_controller *msi_ctrl;
27#endif 24#endif
@@ -45,9 +42,6 @@ struct hw_pci {
45 * Per-controller structure 42 * Per-controller structure
46 */ 43 */
47struct pci_sys_data { 44struct pci_sys_data {
48#ifdef CONFIG_PCI_DOMAINS
49 int domain;
50#endif
51#ifdef CONFIG_PCI_MSI 45#ifdef CONFIG_PCI_MSI
52 struct msi_controller *msi_ctrl; 46 struct msi_controller *msi_ctrl;
53#endif 47#endif
diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h
index 7e95d8535e24..585dc33a7a24 100644
--- a/arch/arm/include/asm/pci.h
+++ b/arch/arm/include/asm/pci.h
@@ -18,13 +18,6 @@ static inline int pcibios_assign_all_busses(void)
18} 18}
19 19
20#ifdef CONFIG_PCI_DOMAINS 20#ifdef CONFIG_PCI_DOMAINS
21static inline int pci_domain_nr(struct pci_bus *bus)
22{
23 struct pci_sys_data *root = bus->sysdata;
24
25 return root->domain;
26}
27
28static inline int pci_proc_domain(struct pci_bus *bus) 21static inline int pci_proc_domain(struct pci_bus *bus)
29{ 22{
30 return pci_domain_nr(bus); 23 return pci_domain_nr(bus);
diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
index 68c739b3fdf4..2f7e6ff67d51 100644
--- a/arch/arm/include/asm/xen/page.h
+++ b/arch/arm/include/asm/xen/page.h
@@ -92,7 +92,7 @@ extern int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
92 struct page **pages, unsigned int count); 92 struct page **pages, unsigned int count);
93 93
94extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, 94extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
95 struct gnttab_map_grant_ref *kmap_ops, 95 struct gnttab_unmap_grant_ref *kunmap_ops,
96 struct page **pages, unsigned int count); 96 struct page **pages, unsigned int count);
97 97
98bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn); 98bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index a4effd6d8f2f..ab19b7c03423 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -422,17 +422,16 @@ static int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
422static int pcibios_init_resources(int busnr, struct pci_sys_data *sys) 422static int pcibios_init_resources(int busnr, struct pci_sys_data *sys)
423{ 423{
424 int ret; 424 int ret;
425 struct pci_host_bridge_window *window; 425 struct resource_entry *window;
426 426
427 if (list_empty(&sys->resources)) { 427 if (list_empty(&sys->resources)) {
428 pci_add_resource_offset(&sys->resources, 428 pci_add_resource_offset(&sys->resources,
429 &iomem_resource, sys->mem_offset); 429 &iomem_resource, sys->mem_offset);
430 } 430 }
431 431
432 list_for_each_entry(window, &sys->resources, list) { 432 resource_list_for_each_entry(window, &sys->resources)
433 if (resource_type(window->res) == IORESOURCE_IO) 433 if (resource_type(window->res) == IORESOURCE_IO)
434 return 0; 434 return 0;
435 }
436 435
437 sys->io_res.start = (busnr * SZ_64K) ? : pcibios_min_io; 436 sys->io_res.start = (busnr * SZ_64K) ? : pcibios_min_io;
438 sys->io_res.end = (busnr + 1) * SZ_64K - 1; 437 sys->io_res.end = (busnr + 1) * SZ_64K - 1;
@@ -463,9 +462,6 @@ static void pcibios_init_hw(struct device *parent, struct hw_pci *hw,
463 if (!sys) 462 if (!sys)
464 panic("PCI: unable to allocate sys data!"); 463 panic("PCI: unable to allocate sys data!");
465 464
466#ifdef CONFIG_PCI_DOMAINS
467 sys->domain = hw->domain;
468#endif
469#ifdef CONFIG_PCI_MSI 465#ifdef CONFIG_PCI_MSI
470 sys->msi_ctrl = hw->msi_ctrl; 466 sys->msi_ctrl = hw->msi_ctrl;
471#endif 467#endif
diff --git a/arch/arm/kvm/Kconfig b/arch/arm/kvm/Kconfig
index 466bd299b1a8..3afee5f40f4f 100644
--- a/arch/arm/kvm/Kconfig
+++ b/arch/arm/kvm/Kconfig
@@ -23,6 +23,7 @@ config KVM
23 select HAVE_KVM_CPU_RELAX_INTERCEPT 23 select HAVE_KVM_CPU_RELAX_INTERCEPT
24 select KVM_MMIO 24 select KVM_MMIO
25 select KVM_ARM_HOST 25 select KVM_ARM_HOST
26 select SRCU
26 depends on ARM_VIRT_EXT && ARM_LPAE 27 depends on ARM_VIRT_EXT && ARM_LPAE
27 ---help--- 28 ---help---
28 Support hosting virtualized guest machines. You will also 29 Support hosting virtualized guest machines. You will also
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
index 45d6bd09e6ef..c622c306c390 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -30,18 +30,15 @@ struct cns3xxx_pcie {
30 unsigned int irqs[2]; 30 unsigned int irqs[2];
31 struct resource res_io; 31 struct resource res_io;
32 struct resource res_mem; 32 struct resource res_mem;
33 struct hw_pci hw_pci; 33 int port;
34
35 bool linked; 34 bool linked;
36}; 35};
37 36
38static struct cns3xxx_pcie cns3xxx_pcie[]; /* forward decl. */
39
40static struct cns3xxx_pcie *sysdata_to_cnspci(void *sysdata) 37static struct cns3xxx_pcie *sysdata_to_cnspci(void *sysdata)
41{ 38{
42 struct pci_sys_data *root = sysdata; 39 struct pci_sys_data *root = sysdata;
43 40
44 return &cns3xxx_pcie[root->domain]; 41 return root->private_data;
45} 42}
46 43
47static struct cns3xxx_pcie *pdev_to_cnspci(const struct pci_dev *dev) 44static struct cns3xxx_pcie *pdev_to_cnspci(const struct pci_dev *dev)
@@ -54,8 +51,8 @@ static struct cns3xxx_pcie *pbus_to_cnspci(struct pci_bus *bus)
54 return sysdata_to_cnspci(bus->sysdata); 51 return sysdata_to_cnspci(bus->sysdata);
55} 52}
56 53
57static void __iomem *cns3xxx_pci_cfg_base(struct pci_bus *bus, 54static void __iomem *cns3xxx_pci_map_bus(struct pci_bus *bus,
58 unsigned int devfn, int where) 55 unsigned int devfn, int where)
59{ 56{
60 struct cns3xxx_pcie *cnspci = pbus_to_cnspci(bus); 57 struct cns3xxx_pcie *cnspci = pbus_to_cnspci(bus);
61 int busno = bus->number; 58 int busno = bus->number;
@@ -91,55 +88,22 @@ static void __iomem *cns3xxx_pci_cfg_base(struct pci_bus *bus,
91static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, 88static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
92 int where, int size, u32 *val) 89 int where, int size, u32 *val)
93{ 90{
94 u32 v; 91 int ret;
95 void __iomem *base;
96 u32 mask = (0x1ull << (size * 8)) - 1; 92 u32 mask = (0x1ull << (size * 8)) - 1;
97 int shift = (where % 4) * 8; 93 int shift = (where % 4) * 8;
98 94
99 base = cns3xxx_pci_cfg_base(bus, devfn, where); 95 ret = pci_generic_config_read32(bus, devfn, where, size, val);
100 if (!base) {
101 *val = 0xffffffff;
102 return PCIBIOS_SUCCESSFUL;
103 }
104
105 v = __raw_readl(base);
106 96
107 if (bus->number == 0 && devfn == 0 && 97 if (ret == PCIBIOS_SUCCESSFUL && !bus->number && !devfn &&
108 (where & 0xffc) == PCI_CLASS_REVISION) { 98 (where & 0xffc) == PCI_CLASS_REVISION)
109 /* 99 /*
110 * RC's class is 0xb, but Linux PCI driver needs 0x604 100 * RC's class is 0xb, but Linux PCI driver needs 0x604
111 * for a PCIe bridge. So we must fixup the class code 101 * for a PCIe bridge. So we must fixup the class code
112 * to 0x604 here. 102 * to 0x604 here.
113 */ 103 */
114 v &= 0xff; 104 *val = ((((*val << shift) & 0xff) | (0x604 << 16)) >> shift) & mask;
115 v |= 0x604 << 16;
116 }
117 105
118 *val = (v >> shift) & mask; 106 return ret;
119
120 return PCIBIOS_SUCCESSFUL;
121}
122
123static int cns3xxx_pci_write_config(struct pci_bus *bus, unsigned int devfn,
124 int where, int size, u32 val)
125{
126 u32 v;
127 void __iomem *base;
128 u32 mask = (0x1ull << (size * 8)) - 1;
129 int shift = (where % 4) * 8;
130
131 base = cns3xxx_pci_cfg_base(bus, devfn, where);
132 if (!base)
133 return PCIBIOS_SUCCESSFUL;
134
135 v = __raw_readl(base);
136
137 v &= ~(mask << shift);
138 v |= (val & mask) << shift;
139
140 __raw_writel(v, base);
141
142 return PCIBIOS_SUCCESSFUL;
143} 107}
144 108
145static int cns3xxx_pci_setup(int nr, struct pci_sys_data *sys) 109static int cns3xxx_pci_setup(int nr, struct pci_sys_data *sys)
@@ -158,8 +122,9 @@ static int cns3xxx_pci_setup(int nr, struct pci_sys_data *sys)
158} 122}
159 123
160static struct pci_ops cns3xxx_pcie_ops = { 124static struct pci_ops cns3xxx_pcie_ops = {
125 .map_bus = cns3xxx_pci_map_bus,
161 .read = cns3xxx_pci_read_config, 126 .read = cns3xxx_pci_read_config,
162 .write = cns3xxx_pci_write_config, 127 .write = pci_generic_config_write,
163}; 128};
164 129
165static int cns3xxx_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 130static int cns3xxx_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
@@ -192,13 +157,7 @@ static struct cns3xxx_pcie cns3xxx_pcie[] = {
192 .flags = IORESOURCE_MEM, 157 .flags = IORESOURCE_MEM,
193 }, 158 },
194 .irqs = { IRQ_CNS3XXX_PCIE0_RC, IRQ_CNS3XXX_PCIE0_DEVICE, }, 159 .irqs = { IRQ_CNS3XXX_PCIE0_RC, IRQ_CNS3XXX_PCIE0_DEVICE, },
195 .hw_pci = { 160 .port = 0,
196 .domain = 0,
197 .nr_controllers = 1,
198 .ops = &cns3xxx_pcie_ops,
199 .setup = cns3xxx_pci_setup,
200 .map_irq = cns3xxx_pcie_map_irq,
201 },
202 }, 161 },
203 [1] = { 162 [1] = {
204 .host_regs = (void __iomem *)CNS3XXX_PCIE1_HOST_BASE_VIRT, 163 .host_regs = (void __iomem *)CNS3XXX_PCIE1_HOST_BASE_VIRT,
@@ -217,19 +176,13 @@ static struct cns3xxx_pcie cns3xxx_pcie[] = {
217 .flags = IORESOURCE_MEM, 176 .flags = IORESOURCE_MEM,
218 }, 177 },
219 .irqs = { IRQ_CNS3XXX_PCIE1_RC, IRQ_CNS3XXX_PCIE1_DEVICE, }, 178 .irqs = { IRQ_CNS3XXX_PCIE1_RC, IRQ_CNS3XXX_PCIE1_DEVICE, },
220 .hw_pci = { 179 .port = 1,
221 .domain = 1,
222 .nr_controllers = 1,
223 .ops = &cns3xxx_pcie_ops,
224 .setup = cns3xxx_pci_setup,
225 .map_irq = cns3xxx_pcie_map_irq,
226 },
227 }, 180 },
228}; 181};
229 182
230static void __init cns3xxx_pcie_check_link(struct cns3xxx_pcie *cnspci) 183static void __init cns3xxx_pcie_check_link(struct cns3xxx_pcie *cnspci)
231{ 184{
232 int port = cnspci->hw_pci.domain; 185 int port = cnspci->port;
233 u32 reg; 186 u32 reg;
234 unsigned long time; 187 unsigned long time;
235 188
@@ -260,9 +213,9 @@ static void __init cns3xxx_pcie_check_link(struct cns3xxx_pcie *cnspci)
260 213
261static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci) 214static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci)
262{ 215{
263 int port = cnspci->hw_pci.domain; 216 int port = cnspci->port;
264 struct pci_sys_data sd = { 217 struct pci_sys_data sd = {
265 .domain = port, 218 .private_data = cnspci,
266 }; 219 };
267 struct pci_bus bus = { 220 struct pci_bus bus = {
268 .number = 0, 221 .number = 0,
@@ -323,6 +276,14 @@ static int cns3xxx_pcie_abort_handler(unsigned long addr, unsigned int fsr,
323void __init cns3xxx_pcie_init_late(void) 276void __init cns3xxx_pcie_init_late(void)
324{ 277{
325 int i; 278 int i;
279 void *private_data;
280 struct hw_pci hw_pci = {
281 .nr_controllers = 1,
282 .ops = &cns3xxx_pcie_ops,
283 .setup = cns3xxx_pci_setup,
284 .map_irq = cns3xxx_pcie_map_irq,
285 .private_data = &private_data,
286 };
326 287
327 pcibios_min_io = 0; 288 pcibios_min_io = 0;
328 pcibios_min_mem = 0; 289 pcibios_min_mem = 0;
@@ -335,7 +296,8 @@ void __init cns3xxx_pcie_init_late(void)
335 cns3xxx_pwr_soft_rst(0x1 << PM_SOFT_RST_REG_OFFST_PCIE(i)); 296 cns3xxx_pwr_soft_rst(0x1 << PM_SOFT_RST_REG_OFFST_PCIE(i));
336 cns3xxx_pcie_check_link(&cns3xxx_pcie[i]); 297 cns3xxx_pcie_check_link(&cns3xxx_pcie[i]);
337 cns3xxx_pcie_hw_init(&cns3xxx_pcie[i]); 298 cns3xxx_pcie_hw_init(&cns3xxx_pcie[i]);
338 pci_common_init(&cns3xxx_pcie[i].hw_pci); 299 private_data = &cns3xxx_pcie[i];
300 pci_common_init(&hw_pci);
339 } 301 }
340 302
341 pci_assign_unassigned_resources(); 303 pci_assign_unassigned_resources();
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
index c186a17c2cff..2565f0e7b5cf 100644
--- a/arch/arm/mach-integrator/pci_v3.c
+++ b/arch/arm/mach-integrator/pci_v3.c
@@ -356,7 +356,6 @@ static u64 pre_mem_pci_sz;
356 * 7:2 register number 356 * 7:2 register number
357 * 357 *
358 */ 358 */
359static DEFINE_RAW_SPINLOCK(v3_lock);
360 359
361#undef V3_LB_BASE_PREFETCH 360#undef V3_LB_BASE_PREFETCH
362#define V3_LB_BASE_PREFETCH 0 361#define V3_LB_BASE_PREFETCH 0
@@ -457,67 +456,21 @@ static void v3_close_config_window(void)
457static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where, 456static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where,
458 int size, u32 *val) 457 int size, u32 *val)
459{ 458{
460 void __iomem *addr; 459 int ret = pci_generic_config_read(bus, devfn, where, size, val);
461 unsigned long flags;
462 u32 v;
463
464 raw_spin_lock_irqsave(&v3_lock, flags);
465 addr = v3_open_config_window(bus, devfn, where);
466
467 switch (size) {
468 case 1:
469 v = __raw_readb(addr);
470 break;
471
472 case 2:
473 v = __raw_readw(addr);
474 break;
475
476 default:
477 v = __raw_readl(addr);
478 break;
479 }
480
481 v3_close_config_window(); 460 v3_close_config_window();
482 raw_spin_unlock_irqrestore(&v3_lock, flags); 461 return ret;
483
484 *val = v;
485 return PCIBIOS_SUCCESSFUL;
486} 462}
487 463
488static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where, 464static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where,
489 int size, u32 val) 465 int size, u32 val)
490{ 466{
491 void __iomem *addr; 467 int ret = pci_generic_config_write(bus, devfn, where, size, val);
492 unsigned long flags;
493
494 raw_spin_lock_irqsave(&v3_lock, flags);
495 addr = v3_open_config_window(bus, devfn, where);
496
497 switch (size) {
498 case 1:
499 __raw_writeb((u8)val, addr);
500 __raw_readb(addr);
501 break;
502
503 case 2:
504 __raw_writew((u16)val, addr);
505 __raw_readw(addr);
506 break;
507
508 case 4:
509 __raw_writel(val, addr);
510 __raw_readl(addr);
511 break;
512 }
513
514 v3_close_config_window(); 468 v3_close_config_window();
515 raw_spin_unlock_irqrestore(&v3_lock, flags); 469 return ret;
516
517 return PCIBIOS_SUCCESSFUL;
518} 470}
519 471
520static struct pci_ops pci_v3_ops = { 472static struct pci_ops pci_v3_ops = {
473 .map_bus = v3_open_config_window,
521 .read = v3_read_config, 474 .read = v3_read_config,
522 .write = v3_write_config, 475 .write = v3_write_config,
523}; 476};
@@ -658,7 +611,6 @@ static int __init pci_v3_setup(int nr, struct pci_sys_data *sys)
658 */ 611 */
659static void __init pci_v3_preinit(void) 612static void __init pci_v3_preinit(void)
660{ 613{
661 unsigned long flags;
662 unsigned int temp; 614 unsigned int temp;
663 phys_addr_t io_address = pci_pio_to_address(io_mem.start); 615 phys_addr_t io_address = pci_pio_to_address(io_mem.start);
664 616
@@ -672,8 +624,6 @@ static void __init pci_v3_preinit(void)
672 hook_fault_code(8, v3_pci_fault, SIGBUS, 0, "external abort on non-linefetch"); 624 hook_fault_code(8, v3_pci_fault, SIGBUS, 0, "external abort on non-linefetch");
673 hook_fault_code(10, v3_pci_fault, SIGBUS, 0, "external abort on non-linefetch"); 625 hook_fault_code(10, v3_pci_fault, SIGBUS, 0, "external abort on non-linefetch");
674 626
675 raw_spin_lock_irqsave(&v3_lock, flags);
676
677 /* 627 /*
678 * Unlock V3 registers, but only if they were previously locked. 628 * Unlock V3 registers, but only if they were previously locked.
679 */ 629 */
@@ -736,8 +686,6 @@ static void __init pci_v3_preinit(void)
736 v3_writew(V3_LB_CFG, v3_readw(V3_LB_CFG) | (1 << 10)); 686 v3_writew(V3_LB_CFG, v3_readw(V3_LB_CFG) | (1 << 10));
737 v3_writeb(V3_LB_IMASK, 0x28); 687 v3_writeb(V3_LB_IMASK, 0x28);
738 __raw_writel(3, ap_syscon_base + INTEGRATOR_SC_PCIENABLE_OFFSET); 688 __raw_writel(3, ap_syscon_base + INTEGRATOR_SC_PCIENABLE_OFFSET);
739
740 raw_spin_unlock_irqrestore(&v3_lock, flags);
741} 689}
742 690
743static void __init pci_v3_postinit(void) 691static void __init pci_v3_postinit(void)
diff --git a/arch/arm/mach-ks8695/pci.c b/arch/arm/mach-ks8695/pci.c
index bb18193b4bac..c1bc4c3716ed 100644
--- a/arch/arm/mach-ks8695/pci.c
+++ b/arch/arm/mach-ks8695/pci.c
@@ -38,8 +38,6 @@
38 38
39 39
40static int pci_dbg; 40static int pci_dbg;
41static int pci_cfg_dbg;
42
43 41
44static void ks8695_pci_setupconfig(unsigned int bus_nr, unsigned int devfn, unsigned int where) 42static void ks8695_pci_setupconfig(unsigned int bus_nr, unsigned int devfn, unsigned int where)
45{ 43{
@@ -59,75 +57,11 @@ static void ks8695_pci_setupconfig(unsigned int bus_nr, unsigned int devfn, unsi
59 } 57 }
60} 58}
61 59
62 60static void __iomem *ks8695_pci_map_bus(struct pci_bus *bus, unsigned int devfn,
63/* 61 int where)
64 * The KS8695 datasheet prohibits anything other than 32bit accesses
65 * to the IO registers, so all our configuration must be done with
66 * 32bit operations, and the correct bit masking and shifting.
67 */
68
69static int ks8695_pci_readconfig(struct pci_bus *bus,
70 unsigned int devfn, int where, int size, u32 *value)
71{
72 ks8695_pci_setupconfig(bus->number, devfn, where);
73
74 *value = __raw_readl(KS8695_PCI_VA + KS8695_PBCD);
75
76 switch (size) {
77 case 4:
78 break;
79 case 2:
80 *value = *value >> ((where & 2) * 8);
81 *value &= 0xffff;
82 break;
83 case 1:
84 *value = *value >> ((where & 3) * 8);
85 *value &= 0xff;
86 break;
87 }
88
89 if (pci_cfg_dbg) {
90 printk("read: %d,%08x,%02x,%d: %08x (%08x)\n",
91 bus->number, devfn, where, size, *value,
92 __raw_readl(KS8695_PCI_VA + KS8695_PBCD));
93 }
94
95 return PCIBIOS_SUCCESSFUL;
96}
97
98static int ks8695_pci_writeconfig(struct pci_bus *bus,
99 unsigned int devfn, int where, int size, u32 value)
100{ 62{
101 unsigned long tmp;
102
103 if (pci_cfg_dbg) {
104 printk("write: %d,%08x,%02x,%d: %08x\n",
105 bus->number, devfn, where, size, value);
106 }
107
108 ks8695_pci_setupconfig(bus->number, devfn, where); 63 ks8695_pci_setupconfig(bus->number, devfn, where);
109 64 return KS8695_PCI_VA + KS8695_PBCD;
110 switch (size) {
111 case 4:
112 __raw_writel(value, KS8695_PCI_VA + KS8695_PBCD);
113 break;
114 case 2:
115 tmp = __raw_readl(KS8695_PCI_VA + KS8695_PBCD);
116 tmp &= ~(0xffff << ((where & 2) * 8));
117 tmp |= value << ((where & 2) * 8);
118
119 __raw_writel(tmp, KS8695_PCI_VA + KS8695_PBCD);
120 break;
121 case 1:
122 tmp = __raw_readl(KS8695_PCI_VA + KS8695_PBCD);
123 tmp &= ~(0xff << ((where & 3) * 8));
124 tmp |= value << ((where & 3) * 8);
125
126 __raw_writel(tmp, KS8695_PCI_VA + KS8695_PBCD);
127 break;
128 }
129
130 return PCIBIOS_SUCCESSFUL;
131} 65}
132 66
133static void ks8695_local_writeconfig(int where, u32 value) 67static void ks8695_local_writeconfig(int where, u32 value)
@@ -137,8 +71,9 @@ static void ks8695_local_writeconfig(int where, u32 value)
137} 71}
138 72
139static struct pci_ops ks8695_pci_ops = { 73static struct pci_ops ks8695_pci_ops = {
140 .read = ks8695_pci_readconfig, 74 .map_bus = ks8695_pci_map_bus,
141 .write = ks8695_pci_writeconfig, 75 .read = pci_generic_config_read32,
76 .write = pci_generic_config_write32,
142}; 77};
143 78
144static struct resource pci_mem = { 79static struct resource pci_mem = {
diff --git a/arch/arm/mach-sa1100/pci-nanoengine.c b/arch/arm/mach-sa1100/pci-nanoengine.c
index b704433c529c..d7ae8d50f6d8 100644
--- a/arch/arm/mach-sa1100/pci-nanoengine.c
+++ b/arch/arm/mach-sa1100/pci-nanoengine.c
@@ -22,7 +22,6 @@
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/irq.h> 23#include <linux/irq.h>
24#include <linux/pci.h> 24#include <linux/pci.h>
25#include <linux/spinlock.h>
26 25
27#include <asm/mach/pci.h> 26#include <asm/mach/pci.h>
28#include <asm/mach-types.h> 27#include <asm/mach-types.h>
@@ -30,97 +29,20 @@
30#include <mach/nanoengine.h> 29#include <mach/nanoengine.h>
31#include <mach/hardware.h> 30#include <mach/hardware.h>
32 31
33static DEFINE_SPINLOCK(nano_lock); 32static void __iomem *nanoengine_pci_map_bus(struct pci_bus *bus,
34 33 unsigned int devfn, int where)
35static int nanoengine_get_pci_address(struct pci_bus *bus,
36 unsigned int devfn, int where, void __iomem **address)
37{ 34{
38 int ret = PCIBIOS_DEVICE_NOT_FOUND; 35 if (bus->number != 0 || (devfn >> 3) != 0)
39 unsigned int busnr = bus->number; 36 return NULL;
40 37
41 *address = (void __iomem *)NANO_PCI_CONFIG_SPACE_VIRT + 38 return (void __iomem *)NANO_PCI_CONFIG_SPACE_VIRT +
42 ((bus->number << 16) | (devfn << 8) | (where & ~3)); 39 ((bus->number << 16) | (devfn << 8) | (where & ~3));
43
44 ret = (busnr > 255 || devfn > 255 || where > 255) ?
45 PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
46
47 return ret;
48}
49
50static int nanoengine_read_config(struct pci_bus *bus, unsigned int devfn, int where,
51 int size, u32 *val)
52{
53 int ret;
54 void __iomem *address;
55 unsigned long flags;
56 u32 v;
57
58 /* nanoEngine PCI bridge does not return -1 for a non-existing
59 * device. We must fake the answer. We know that the only valid
60 * device is device zero at bus 0, which is the network chip. */
61 if (bus->number != 0 || (devfn >> 3) != 0) {
62 v = -1;
63 nanoengine_get_pci_address(bus, devfn, where, &address);
64 goto exit_function;
65 }
66
67 spin_lock_irqsave(&nano_lock, flags);
68
69 ret = nanoengine_get_pci_address(bus, devfn, where, &address);
70 if (ret != PCIBIOS_SUCCESSFUL)
71 return ret;
72 v = __raw_readl(address);
73
74 spin_unlock_irqrestore(&nano_lock, flags);
75
76 v >>= ((where & 3) * 8);
77 v &= (unsigned long)(-1) >> ((4 - size) * 8);
78
79exit_function:
80 *val = v;
81 return PCIBIOS_SUCCESSFUL;
82}
83
84static int nanoengine_write_config(struct pci_bus *bus, unsigned int devfn, int where,
85 int size, u32 val)
86{
87 int ret;
88 void __iomem *address;
89 unsigned long flags;
90 unsigned shift;
91 u32 v;
92
93 shift = (where & 3) * 8;
94
95 spin_lock_irqsave(&nano_lock, flags);
96
97 ret = nanoengine_get_pci_address(bus, devfn, where, &address);
98 if (ret != PCIBIOS_SUCCESSFUL)
99 return ret;
100 v = __raw_readl(address);
101 switch (size) {
102 case 1:
103 v &= ~(0xFF << shift);
104 v |= val << shift;
105 break;
106 case 2:
107 v &= ~(0xFFFF << shift);
108 v |= val << shift;
109 break;
110 case 4:
111 v = val;
112 break;
113 }
114 __raw_writel(v, address);
115
116 spin_unlock_irqrestore(&nano_lock, flags);
117
118 return PCIBIOS_SUCCESSFUL;
119} 40}
120 41
121static struct pci_ops pci_nano_ops = { 42static struct pci_ops pci_nano_ops = {
122 .read = nanoengine_read_config, 43 .map_bus = nanoengine_pci_map_bus,
123 .write = nanoengine_write_config, 44 .read = pci_generic_config_read32,
45 .write = pci_generic_config_write32,
124}; 46};
125 47
126static int __init pci_nanoengine_map_irq(const struct pci_dev *dev, u8 slot, 48static int __init pci_nanoengine_map_irq(const struct pci_dev *dev, u8 slot,
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index c7ca936ebd99..263a2044c65b 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -29,10 +29,10 @@
29 29
30struct start_info _xen_start_info; 30struct start_info _xen_start_info;
31struct start_info *xen_start_info = &_xen_start_info; 31struct start_info *xen_start_info = &_xen_start_info;
32EXPORT_SYMBOL_GPL(xen_start_info); 32EXPORT_SYMBOL(xen_start_info);
33 33
34enum xen_domain_type xen_domain_type = XEN_NATIVE; 34enum xen_domain_type xen_domain_type = XEN_NATIVE;
35EXPORT_SYMBOL_GPL(xen_domain_type); 35EXPORT_SYMBOL(xen_domain_type);
36 36
37struct shared_info xen_dummy_shared_info; 37struct shared_info xen_dummy_shared_info;
38struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info; 38struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c
index 351b24a979d4..793551d15f1d 100644
--- a/arch/arm/xen/mm.c
+++ b/arch/arm/xen/mm.c
@@ -149,7 +149,7 @@ void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order)
149EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region); 149EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region);
150 150
151struct dma_map_ops *xen_dma_ops; 151struct dma_map_ops *xen_dma_ops;
152EXPORT_SYMBOL_GPL(xen_dma_ops); 152EXPORT_SYMBOL(xen_dma_ops);
153 153
154static struct dma_map_ops xen_swiotlb_dma_ops = { 154static struct dma_map_ops xen_swiotlb_dma_ops = {
155 .mapping_error = xen_swiotlb_dma_mapping_error, 155 .mapping_error = xen_swiotlb_dma_mapping_error,
diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
index 054857776254..cb7a14c5cd69 100644
--- a/arch/arm/xen/p2m.c
+++ b/arch/arm/xen/p2m.c
@@ -102,7 +102,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
102EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping); 102EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping);
103 103
104int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, 104int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
105 struct gnttab_map_grant_ref *kmap_ops, 105 struct gnttab_unmap_grant_ref *kunmap_ops,
106 struct page **pages, unsigned int count) 106 struct page **pages, unsigned int count)
107{ 107{
108 int i; 108 int i;
diff --git a/arch/arm64/kernel/efi-stub.c b/arch/arm64/kernel/efi-stub.c
index d27dd982ff26..f5374065ad53 100644
--- a/arch/arm64/kernel/efi-stub.c
+++ b/arch/arm64/kernel/efi-stub.c
@@ -13,13 +13,13 @@
13#include <asm/efi.h> 13#include <asm/efi.h>
14#include <asm/sections.h> 14#include <asm/sections.h>
15 15
16efi_status_t handle_kernel_image(efi_system_table_t *sys_table, 16efi_status_t __init handle_kernel_image(efi_system_table_t *sys_table,
17 unsigned long *image_addr, 17 unsigned long *image_addr,
18 unsigned long *image_size, 18 unsigned long *image_size,
19 unsigned long *reserve_addr, 19 unsigned long *reserve_addr,
20 unsigned long *reserve_size, 20 unsigned long *reserve_size,
21 unsigned long dram_base, 21 unsigned long dram_base,
22 efi_loaded_image_t *image) 22 efi_loaded_image_t *image)
23{ 23{
24 efi_status_t status; 24 efi_status_t status;
25 unsigned long kernel_size, kernel_memsize = 0; 25 unsigned long kernel_size, kernel_memsize = 0;
diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
index ce5836c14ec1..6f93c24ca801 100644
--- a/arch/arm64/kernel/pci.c
+++ b/arch/arm64/kernel/pci.c
@@ -46,25 +46,3 @@ int pcibios_add_device(struct pci_dev *dev)
46 46
47 return 0; 47 return 0;
48} 48}
49
50
51#ifdef CONFIG_PCI_DOMAINS_GENERIC
52static bool dt_domain_found = false;
53
54void pci_bus_assign_domain_nr(struct pci_bus *bus, struct device *parent)
55{
56 int domain = of_get_pci_domain_nr(parent->of_node);
57
58 if (domain >= 0) {
59 dt_domain_found = true;
60 } else if (dt_domain_found == true) {
61 dev_err(parent, "Node %s is missing \"linux,pci-domain\" property in DT\n",
62 parent->of_node->full_name);
63 return;
64 } else {
65 domain = pci_get_new_domain_nr();
66 }
67
68 bus->domain_nr = domain;
69}
70#endif
diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig
index 8ba85e9ea388..b334084d3675 100644
--- a/arch/arm64/kvm/Kconfig
+++ b/arch/arm64/kvm/Kconfig
@@ -26,6 +26,7 @@ config KVM
26 select KVM_ARM_HOST 26 select KVM_ARM_HOST
27 select KVM_ARM_VGIC 27 select KVM_ARM_VGIC
28 select KVM_ARM_TIMER 28 select KVM_ARM_TIMER
29 select SRCU
29 ---help--- 30 ---help---
30 Support hosting virtualized guest machines. 31 Support hosting virtualized guest machines.
31 32
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index efa5d65b0007..b073f4d771a5 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -168,8 +168,8 @@ static int pci_frv_write_config(struct pci_bus *bus, unsigned int devfn, int whe
168} 168}
169 169
170static struct pci_ops pci_direct_frv = { 170static struct pci_ops pci_direct_frv = {
171 pci_frv_read_config, 171 .read = pci_frv_read_config,
172 pci_frv_write_config, 172 .write = pci_frv_write_config,
173}; 173};
174 174
175/* 175/*
diff --git a/arch/ia64/kernel/acpi-ext.c b/arch/ia64/kernel/acpi-ext.c
index 8b9318d311a0..bd09bf74f187 100644
--- a/arch/ia64/kernel/acpi-ext.c
+++ b/arch/ia64/kernel/acpi-ext.c
@@ -69,10 +69,10 @@ static acpi_status find_csr_space(struct acpi_resource *resource, void *data)
69 status = acpi_resource_to_address64(resource, &addr); 69 status = acpi_resource_to_address64(resource, &addr);
70 if (ACPI_SUCCESS(status) && 70 if (ACPI_SUCCESS(status) &&
71 addr.resource_type == ACPI_MEMORY_RANGE && 71 addr.resource_type == ACPI_MEMORY_RANGE &&
72 addr.address_length && 72 addr.address.address_length &&
73 addr.producer_consumer == ACPI_CONSUMER) { 73 addr.producer_consumer == ACPI_CONSUMER) {
74 space->base = addr.minimum; 74 space->base = addr.address.minimum;
75 space->length = addr.address_length; 75 space->length = addr.address.address_length;
76 return AE_CTRL_TERMINATE; 76 return AE_CTRL_TERMINATE;
77 } 77 }
78 return AE_OK; /* keep looking */ 78 return AE_OK; /* keep looking */
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index e795cb848154..2c4498919d3c 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -380,9 +380,6 @@ static void __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
380 380
381static int __init acpi_parse_madt(struct acpi_table_header *table) 381static int __init acpi_parse_madt(struct acpi_table_header *table)
382{ 382{
383 if (!table)
384 return -EINVAL;
385
386 acpi_madt = (struct acpi_table_madt *)table; 383 acpi_madt = (struct acpi_table_madt *)table;
387 384
388 acpi_madt_rev = acpi_madt->header.revision; 385 acpi_madt_rev = acpi_madt->header.revision;
@@ -645,9 +642,6 @@ static int __init acpi_parse_fadt(struct acpi_table_header *table)
645 struct acpi_table_header *fadt_header; 642 struct acpi_table_header *fadt_header;
646 struct acpi_table_fadt *fadt; 643 struct acpi_table_fadt *fadt;
647 644
648 if (!table)
649 return -EINVAL;
650
651 fadt_header = (struct acpi_table_header *)table; 645 fadt_header = (struct acpi_table_header *)table;
652 if (fadt_header->revision != 3) 646 if (fadt_header->revision != 3)
653 return -ENODEV; /* Only deal with ACPI 2.0 FADT */ 647 return -ENODEV; /* Only deal with ACPI 2.0 FADT */
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 900cc93e5409..48cc65705db4 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -188,12 +188,12 @@ static u64 add_io_space(struct pci_root_info *info,
188 188
189 name = (char *)(iospace + 1); 189 name = (char *)(iospace + 1);
190 190
191 min = addr->minimum; 191 min = addr->address.minimum;
192 max = min + addr->address_length - 1; 192 max = min + addr->address.address_length - 1;
193 if (addr->info.io.translation_type == ACPI_SPARSE_TRANSLATION) 193 if (addr->info.io.translation_type == ACPI_SPARSE_TRANSLATION)
194 sparse = 1; 194 sparse = 1;
195 195
196 space_nr = new_space(addr->translation_offset, sparse); 196 space_nr = new_space(addr->address.translation_offset, sparse);
197 if (space_nr == ~0) 197 if (space_nr == ~0)
198 goto free_resource; 198 goto free_resource;
199 199
@@ -247,7 +247,7 @@ static acpi_status resource_to_window(struct acpi_resource *resource,
247 if (ACPI_SUCCESS(status) && 247 if (ACPI_SUCCESS(status) &&
248 (addr->resource_type == ACPI_MEMORY_RANGE || 248 (addr->resource_type == ACPI_MEMORY_RANGE ||
249 addr->resource_type == ACPI_IO_RANGE) && 249 addr->resource_type == ACPI_IO_RANGE) &&
250 addr->address_length && 250 addr->address.address_length &&
251 addr->producer_consumer == ACPI_PRODUCER) 251 addr->producer_consumer == ACPI_PRODUCER)
252 return AE_OK; 252 return AE_OK;
253 253
@@ -284,7 +284,7 @@ static acpi_status add_window(struct acpi_resource *res, void *data)
284 if (addr.resource_type == ACPI_MEMORY_RANGE) { 284 if (addr.resource_type == ACPI_MEMORY_RANGE) {
285 flags = IORESOURCE_MEM; 285 flags = IORESOURCE_MEM;
286 root = &iomem_resource; 286 root = &iomem_resource;
287 offset = addr.translation_offset; 287 offset = addr.address.translation_offset;
288 } else if (addr.resource_type == ACPI_IO_RANGE) { 288 } else if (addr.resource_type == ACPI_IO_RANGE) {
289 flags = IORESOURCE_IO; 289 flags = IORESOURCE_IO;
290 root = &ioport_resource; 290 root = &ioport_resource;
@@ -297,8 +297,8 @@ static acpi_status add_window(struct acpi_resource *res, void *data)
297 resource = &info->res[info->res_num]; 297 resource = &info->res[info->res_num];
298 resource->name = info->name; 298 resource->name = info->name;
299 resource->flags = flags; 299 resource->flags = flags;
300 resource->start = addr.minimum + offset; 300 resource->start = addr.address.minimum + offset;
301 resource->end = resource->start + addr.address_length - 1; 301 resource->end = resource->start + addr.address.address_length - 1;
302 info->res_offset[info->res_num] = offset; 302 info->res_offset[info->res_num] = offset;
303 303
304 if (insert_resource(root, resource)) { 304 if (insert_resource(root, resource)) {
diff --git a/arch/m68k/atari/atakeyb.c b/arch/m68k/atari/atakeyb.c
index 95022b04b62d..264db1126803 100644
--- a/arch/m68k/atari/atakeyb.c
+++ b/arch/m68k/atari/atakeyb.c
@@ -170,7 +170,6 @@ repeat:
170 if (acia_stat & ACIA_RDRF) { 170 if (acia_stat & ACIA_RDRF) {
171 /* received a character */ 171 /* received a character */
172 scancode = acia.key_data; /* get it or reset the ACIA, I'll get it! */ 172 scancode = acia.key_data; /* get it or reset the ACIA, I'll get it! */
173 tasklet_schedule(&keyboard_tasklet);
174 interpret_scancode: 173 interpret_scancode:
175 switch (kb_state.state) { 174 switch (kb_state.state) {
176 case KEYBOARD: 175 case KEYBOARD:
@@ -430,14 +429,6 @@ void ikbd_mouse_y0_top(void)
430} 429}
431EXPORT_SYMBOL(ikbd_mouse_y0_top); 430EXPORT_SYMBOL(ikbd_mouse_y0_top);
432 431
433/* Resume */
434void ikbd_resume(void)
435{
436 static const char cmd[1] = { 0x11 };
437
438 ikbd_write(cmd, 1);
439}
440
441/* Disable mouse */ 432/* Disable mouse */
442void ikbd_mouse_disable(void) 433void ikbd_mouse_disable(void)
443{ 434{
@@ -447,14 +438,6 @@ void ikbd_mouse_disable(void)
447} 438}
448EXPORT_SYMBOL(ikbd_mouse_disable); 439EXPORT_SYMBOL(ikbd_mouse_disable);
449 440
450/* Pause output */
451void ikbd_pause(void)
452{
453 static const char cmd[1] = { 0x13 };
454
455 ikbd_write(cmd, 1);
456}
457
458/* Set joystick event reporting */ 441/* Set joystick event reporting */
459void ikbd_joystick_event_on(void) 442void ikbd_joystick_event_on(void)
460{ 443{
@@ -502,56 +485,6 @@ void ikbd_joystick_disable(void)
502 ikbd_write(cmd, 1); 485 ikbd_write(cmd, 1);
503} 486}
504 487
505/* Time-of-day clock set */
506void ikbd_clock_set(int year, int month, int day, int hour, int minute, int second)
507{
508 char cmd[7] = { 0x1B, year, month, day, hour, minute, second };
509
510 ikbd_write(cmd, 7);
511}
512
513/* Interrogate time-of-day clock */
514void ikbd_clock_get(int *year, int *month, int *day, int *hour, int *minute, int second)
515{
516 static const char cmd[1] = { 0x1C };
517
518 ikbd_write(cmd, 1);
519}
520
521/* Memory load */
522void ikbd_mem_write(int address, int size, char *data)
523{
524 panic("Attempt to write data into keyboard memory");
525}
526
527/* Memory read */
528void ikbd_mem_read(int address, char data[6])
529{
530 char cmd[3] = { 0x21, address>>8, address&0xFF };
531
532 ikbd_write(cmd, 3);
533
534 /* receive data and put it in data */
535}
536
537/* Controller execute */
538void ikbd_exec(int address)
539{
540 char cmd[3] = { 0x22, address>>8, address&0xFF };
541
542 ikbd_write(cmd, 3);
543}
544
545/* Status inquiries (0x87-0x9A) not yet implemented */
546
547/* Set the state of the caps lock led. */
548void atari_kbd_leds(unsigned int leds)
549{
550 char cmd[6] = {32, 0, 4, 1, 254 + ((leds & 4) != 0), 0};
551
552 ikbd_write(cmd, 6);
553}
554
555/* 488/*
556 * The original code sometimes left the interrupt line of 489 * The original code sometimes left the interrupt line of
557 * the ACIAs low forever. I hope, it is fixed now. 490 * the ACIAs low forever. I hope, it is fixed now.
@@ -571,9 +504,8 @@ int atari_keyb_init(void)
571 kb_state.state = KEYBOARD; 504 kb_state.state = KEYBOARD;
572 kb_state.len = 0; 505 kb_state.len = 0;
573 506
574 error = request_irq(IRQ_MFP_ACIA, atari_keyboard_interrupt, 507 error = request_irq(IRQ_MFP_ACIA, atari_keyboard_interrupt, 0,
575 IRQ_TYPE_SLOW, "keyboard,mouse,MIDI", 508 "keyboard,mouse,MIDI", atari_keyboard_interrupt);
576 atari_keyboard_interrupt);
577 if (error) 509 if (error)
578 return error; 510 return error;
579 511
diff --git a/arch/m68k/atari/stdma.c b/arch/m68k/atari/stdma.c
index e5a66596b116..ba65f942d0c7 100644
--- a/arch/m68k/atari/stdma.c
+++ b/arch/m68k/atari/stdma.c
@@ -198,7 +198,7 @@ EXPORT_SYMBOL(stdma_islocked);
198void __init stdma_init(void) 198void __init stdma_init(void)
199{ 199{
200 stdma_isr = NULL; 200 stdma_isr = NULL;
201 if (request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW | IRQF_SHARED, 201 if (request_irq(IRQ_MFP_FDC, stdma_int, IRQF_SHARED,
202 "ST-DMA floppy,ACSI,IDE,Falcon-SCSI", stdma_int)) 202 "ST-DMA floppy,ACSI,IDE,Falcon-SCSI", stdma_int))
203 pr_err("Couldn't register ST-DMA interrupt\n"); 203 pr_err("Couldn't register ST-DMA interrupt\n");
204} 204}
diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c
index da8f981c36d6..c549b48174ec 100644
--- a/arch/m68k/atari/time.c
+++ b/arch/m68k/atari/time.c
@@ -32,8 +32,7 @@ atari_sched_init(irq_handler_t timer_routine)
32 /* start timer C, div = 1:100 */ 32 /* start timer C, div = 1:100 */
33 st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60; 33 st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60;
34 /* install interrupt service routine for MFP Timer C */ 34 /* install interrupt service routine for MFP Timer C */
35 if (request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW, 35 if (request_irq(IRQ_MFP_TIMC, timer_routine, 0, "timer", timer_routine))
36 "timer", timer_routine))
37 pr_err("Couldn't register timer interrupt\n"); 36 pr_err("Couldn't register timer interrupt\n");
38} 37}
39 38
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index 399df883c8bb..1a10a08ebec7 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_defconfig
@@ -36,6 +36,7 @@ CONFIG_AMIGA_PCMCIA=y
36CONFIG_ZORRO_NAMES=y 36CONFIG_ZORRO_NAMES=y
37# CONFIG_COMPACTION is not set 37# CONFIG_COMPACTION is not set
38CONFIG_CLEANCACHE=y 38CONFIG_CLEANCACHE=y
39CONFIG_ZPOOL=m
39# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 40# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
40CONFIG_BINFMT_AOUT=m 41CONFIG_BINFMT_AOUT=m
41CONFIG_BINFMT_MISC=m 42CONFIG_BINFMT_MISC=m
@@ -55,6 +56,8 @@ CONFIG_NET_IPIP=m
55CONFIG_NET_IPGRE_DEMUX=m 56CONFIG_NET_IPGRE_DEMUX=m
56CONFIG_NET_IPGRE=m 57CONFIG_NET_IPGRE=m
57CONFIG_NET_IPVTI=m 58CONFIG_NET_IPVTI=m
59CONFIG_NET_FOU_IP_TUNNELS=y
60CONFIG_GENEVE=m
58CONFIG_INET_AH=m 61CONFIG_INET_AH=m
59CONFIG_INET_ESP=m 62CONFIG_INET_ESP=m
60CONFIG_INET_IPCOMP=m 63CONFIG_INET_IPCOMP=m
@@ -96,6 +99,8 @@ CONFIG_NFT_HASH=m
96CONFIG_NFT_COUNTER=m 99CONFIG_NFT_COUNTER=m
97CONFIG_NFT_LOG=m 100CONFIG_NFT_LOG=m
98CONFIG_NFT_LIMIT=m 101CONFIG_NFT_LIMIT=m
102CONFIG_NFT_MASQ=m
103CONFIG_NFT_REDIR=m
99CONFIG_NFT_NAT=m 104CONFIG_NFT_NAT=m
100CONFIG_NFT_QUEUE=m 105CONFIG_NFT_QUEUE=m
101CONFIG_NFT_REJECT=m 106CONFIG_NFT_REJECT=m
@@ -142,6 +147,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
142CONFIG_NETFILTER_XT_MATCH_OSF=m 147CONFIG_NETFILTER_XT_MATCH_OSF=m
143CONFIG_NETFILTER_XT_MATCH_OWNER=m 148CONFIG_NETFILTER_XT_MATCH_OWNER=m
144CONFIG_NETFILTER_XT_MATCH_POLICY=m 149CONFIG_NETFILTER_XT_MATCH_POLICY=m
150CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
145CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 151CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
146CONFIG_NETFILTER_XT_MATCH_QUOTA=m 152CONFIG_NETFILTER_XT_MATCH_QUOTA=m
147CONFIG_NETFILTER_XT_MATCH_RATEEST=m 153CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -163,6 +169,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
163CONFIG_IP_SET_HASH_IPPORT=m 169CONFIG_IP_SET_HASH_IPPORT=m
164CONFIG_IP_SET_HASH_IPPORTIP=m 170CONFIG_IP_SET_HASH_IPPORTIP=m
165CONFIG_IP_SET_HASH_IPPORTNET=m 171CONFIG_IP_SET_HASH_IPPORTNET=m
172CONFIG_IP_SET_HASH_MAC=m
166CONFIG_IP_SET_HASH_NETPORTNET=m 173CONFIG_IP_SET_HASH_NETPORTNET=m
167CONFIG_IP_SET_HASH_NET=m 174CONFIG_IP_SET_HASH_NET=m
168CONFIG_IP_SET_HASH_NETNET=m 175CONFIG_IP_SET_HASH_NETNET=m
@@ -170,9 +177,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
170CONFIG_IP_SET_HASH_NETIFACE=m 177CONFIG_IP_SET_HASH_NETIFACE=m
171CONFIG_IP_SET_LIST_SET=m 178CONFIG_IP_SET_LIST_SET=m
172CONFIG_NF_CONNTRACK_IPV4=m 179CONFIG_NF_CONNTRACK_IPV4=m
180CONFIG_NF_LOG_ARP=m
173CONFIG_NFT_CHAIN_ROUTE_IPV4=m 181CONFIG_NFT_CHAIN_ROUTE_IPV4=m
174CONFIG_NFT_CHAIN_NAT_IPV4=m
175CONFIG_NF_TABLES_ARP=m 182CONFIG_NF_TABLES_ARP=m
183CONFIG_NFT_CHAIN_NAT_IPV4=m
184CONFIG_NFT_MASQ_IPV4=m
185CONFIG_NFT_REDIR_IPV4=m
176CONFIG_IP_NF_IPTABLES=m 186CONFIG_IP_NF_IPTABLES=m
177CONFIG_IP_NF_MATCH_AH=m 187CONFIG_IP_NF_MATCH_AH=m
178CONFIG_IP_NF_MATCH_ECN=m 188CONFIG_IP_NF_MATCH_ECN=m
@@ -181,8 +191,7 @@ CONFIG_IP_NF_MATCH_TTL=m
181CONFIG_IP_NF_FILTER=m 191CONFIG_IP_NF_FILTER=m
182CONFIG_IP_NF_TARGET_REJECT=m 192CONFIG_IP_NF_TARGET_REJECT=m
183CONFIG_IP_NF_TARGET_SYNPROXY=m 193CONFIG_IP_NF_TARGET_SYNPROXY=m
184CONFIG_IP_NF_TARGET_ULOG=m 194CONFIG_IP_NF_NAT=m
185CONFIG_NF_NAT_IPV4=m
186CONFIG_IP_NF_TARGET_MASQUERADE=m 195CONFIG_IP_NF_TARGET_MASQUERADE=m
187CONFIG_IP_NF_TARGET_NETMAP=m 196CONFIG_IP_NF_TARGET_NETMAP=m
188CONFIG_IP_NF_TARGET_REDIRECT=m 197CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -197,6 +206,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
197CONFIG_NF_CONNTRACK_IPV6=m 206CONFIG_NF_CONNTRACK_IPV6=m
198CONFIG_NFT_CHAIN_ROUTE_IPV6=m 207CONFIG_NFT_CHAIN_ROUTE_IPV6=m
199CONFIG_NFT_CHAIN_NAT_IPV6=m 208CONFIG_NFT_CHAIN_NAT_IPV6=m
209CONFIG_NFT_MASQ_IPV6=m
210CONFIG_NFT_REDIR_IPV6=m
200CONFIG_IP6_NF_IPTABLES=m 211CONFIG_IP6_NF_IPTABLES=m
201CONFIG_IP6_NF_MATCH_AH=m 212CONFIG_IP6_NF_MATCH_AH=m
202CONFIG_IP6_NF_MATCH_EUI64=m 213CONFIG_IP6_NF_MATCH_EUI64=m
@@ -213,17 +224,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
213CONFIG_IP6_NF_TARGET_SYNPROXY=m 224CONFIG_IP6_NF_TARGET_SYNPROXY=m
214CONFIG_IP6_NF_MANGLE=m 225CONFIG_IP6_NF_MANGLE=m
215CONFIG_IP6_NF_RAW=m 226CONFIG_IP6_NF_RAW=m
216CONFIG_NF_NAT_IPV6=m 227CONFIG_IP6_NF_NAT=m
217CONFIG_IP6_NF_TARGET_MASQUERADE=m 228CONFIG_IP6_NF_TARGET_MASQUERADE=m
218CONFIG_IP6_NF_TARGET_NPT=m 229CONFIG_IP6_NF_TARGET_NPT=m
219CONFIG_NF_TABLES_BRIDGE=m 230CONFIG_NF_TABLES_BRIDGE=m
231CONFIG_NFT_BRIDGE_META=m
232CONFIG_NFT_BRIDGE_REJECT=m
233CONFIG_NF_LOG_BRIDGE=m
234CONFIG_BRIDGE_NF_EBTABLES=m
235CONFIG_BRIDGE_EBT_BROUTE=m
236CONFIG_BRIDGE_EBT_T_FILTER=m
237CONFIG_BRIDGE_EBT_T_NAT=m
238CONFIG_BRIDGE_EBT_802_3=m
239CONFIG_BRIDGE_EBT_AMONG=m
240CONFIG_BRIDGE_EBT_ARP=m
241CONFIG_BRIDGE_EBT_IP=m
242CONFIG_BRIDGE_EBT_IP6=m
243CONFIG_BRIDGE_EBT_LIMIT=m
244CONFIG_BRIDGE_EBT_MARK=m
245CONFIG_BRIDGE_EBT_PKTTYPE=m
246CONFIG_BRIDGE_EBT_STP=m
247CONFIG_BRIDGE_EBT_VLAN=m
248CONFIG_BRIDGE_EBT_ARPREPLY=m
249CONFIG_BRIDGE_EBT_DNAT=m
250CONFIG_BRIDGE_EBT_MARK_T=m
251CONFIG_BRIDGE_EBT_REDIRECT=m
252CONFIG_BRIDGE_EBT_SNAT=m
253CONFIG_BRIDGE_EBT_LOG=m
254CONFIG_BRIDGE_EBT_NFLOG=m
220CONFIG_IP_DCCP=m 255CONFIG_IP_DCCP=m
221# CONFIG_IP_DCCP_CCID3 is not set 256# CONFIG_IP_DCCP_CCID3 is not set
222CONFIG_SCTP_COOKIE_HMAC_SHA1=y 257CONFIG_SCTP_COOKIE_HMAC_SHA1=y
223CONFIG_RDS=m 258CONFIG_RDS=m
224CONFIG_RDS_TCP=m 259CONFIG_RDS_TCP=m
225CONFIG_L2TP=m 260CONFIG_L2TP=m
261CONFIG_BRIDGE=m
226CONFIG_ATALK=m 262CONFIG_ATALK=m
263CONFIG_6LOWPAN=m
227CONFIG_DNS_RESOLVER=y 264CONFIG_DNS_RESOLVER=y
228CONFIG_BATMAN_ADV=m 265CONFIG_BATMAN_ADV=m
229CONFIG_BATMAN_ADV_DAT=y 266CONFIG_BATMAN_ADV_DAT=y
@@ -232,9 +269,10 @@ CONFIG_BATMAN_ADV_MCAST=y
232CONFIG_NETLINK_DIAG=m 269CONFIG_NETLINK_DIAG=m
233CONFIG_NET_MPLS_GSO=m 270CONFIG_NET_MPLS_GSO=m
234# CONFIG_WIRELESS is not set 271# CONFIG_WIRELESS is not set
272# CONFIG_UEVENT_HELPER is not set
235CONFIG_DEVTMPFS=y 273CONFIG_DEVTMPFS=y
274CONFIG_DEVTMPFS_MOUNT=y
236# CONFIG_FIRMWARE_IN_KERNEL is not set 275# CONFIG_FIRMWARE_IN_KERNEL is not set
237# CONFIG_FW_LOADER_USER_HELPER is not set
238CONFIG_CONNECTOR=m 276CONFIG_CONNECTOR=m
239CONFIG_PARPORT=m 277CONFIG_PARPORT=m
240CONFIG_PARPORT_AMIGA=m 278CONFIG_PARPORT_AMIGA=m
@@ -299,6 +337,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
299CONFIG_NET_TEAM_MODE_RANDOM=m 337CONFIG_NET_TEAM_MODE_RANDOM=m
300CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 338CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
301CONFIG_NET_TEAM_MODE_LOADBALANCE=m 339CONFIG_NET_TEAM_MODE_LOADBALANCE=m
340CONFIG_MACVLAN=m
341CONFIG_MACVTAP=m
342CONFIG_IPVLAN=m
302CONFIG_VXLAN=m 343CONFIG_VXLAN=m
303CONFIG_NETCONSOLE=m 344CONFIG_NETCONSOLE=m
304CONFIG_NETCONSOLE_DYNAMIC=y 345CONFIG_NETCONSOLE_DYNAMIC=y
@@ -316,6 +357,8 @@ CONFIG_ARIADNE=y
316CONFIG_HYDRA=y 357CONFIG_HYDRA=y
317CONFIG_APNE=y 358CONFIG_APNE=y
318CONFIG_ZORRO8390=y 359CONFIG_ZORRO8390=y
360# CONFIG_NET_VENDOR_QUALCOMM is not set
361# CONFIG_NET_VENDOR_ROCKER is not set
319# CONFIG_NET_VENDOR_SAMSUNG is not set 362# CONFIG_NET_VENDOR_SAMSUNG is not set
320# CONFIG_NET_VENDOR_SEEQ is not set 363# CONFIG_NET_VENDOR_SEEQ is not set
321# CONFIG_NET_VENDOR_SMSC is not set 364# CONFIG_NET_VENDOR_SMSC is not set
@@ -371,6 +414,7 @@ CONFIG_HID=m
371CONFIG_HIDRAW=y 414CONFIG_HIDRAW=y
372CONFIG_UHID=m 415CONFIG_UHID=m
373# CONFIG_HID_GENERIC is not set 416# CONFIG_HID_GENERIC is not set
417# CONFIG_HID_PLANTRONICS is not set
374# CONFIG_USB_SUPPORT is not set 418# CONFIG_USB_SUPPORT is not set
375CONFIG_RTC_CLASS=y 419CONFIG_RTC_CLASS=y
376CONFIG_RTC_DRV_MSM6242=m 420CONFIG_RTC_DRV_MSM6242=m
@@ -392,6 +436,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
392CONFIG_AUTOFS4_FS=m 436CONFIG_AUTOFS4_FS=m
393CONFIG_FUSE_FS=m 437CONFIG_FUSE_FS=m
394CONFIG_CUSE=m 438CONFIG_CUSE=m
439CONFIG_OVERLAY_FS=m
395CONFIG_ISO9660_FS=y 440CONFIG_ISO9660_FS=y
396CONFIG_JOLIET=y 441CONFIG_JOLIET=y
397CONFIG_ZISOFS=y 442CONFIG_ZISOFS=y
@@ -407,6 +452,7 @@ CONFIG_HFS_FS=m
407CONFIG_HFSPLUS_FS=m 452CONFIG_HFSPLUS_FS=m
408CONFIG_CRAMFS=m 453CONFIG_CRAMFS=m
409CONFIG_SQUASHFS=m 454CONFIG_SQUASHFS=m
455CONFIG_SQUASHFS_LZ4=y
410CONFIG_SQUASHFS_LZO=y 456CONFIG_SQUASHFS_LZO=y
411CONFIG_MINIX_FS=m 457CONFIG_MINIX_FS=m
412CONFIG_OMFS_FS=m 458CONFIG_OMFS_FS=m
@@ -476,10 +522,18 @@ CONFIG_DLM=m
476CONFIG_MAGIC_SYSRQ=y 522CONFIG_MAGIC_SYSRQ=y
477CONFIG_ASYNC_RAID6_TEST=m 523CONFIG_ASYNC_RAID6_TEST=m
478CONFIG_TEST_STRING_HELPERS=m 524CONFIG_TEST_STRING_HELPERS=m
525CONFIG_TEST_KSTRTOX=m
526CONFIG_TEST_LKM=m
527CONFIG_TEST_USER_COPY=m
528CONFIG_TEST_BPF=m
529CONFIG_TEST_FIRMWARE=m
530CONFIG_TEST_UDELAY=m
531CONFIG_EARLY_PRINTK=y
479CONFIG_ENCRYPTED_KEYS=m 532CONFIG_ENCRYPTED_KEYS=m
480CONFIG_CRYPTO_MANAGER=y 533CONFIG_CRYPTO_MANAGER=y
481CONFIG_CRYPTO_USER=m 534CONFIG_CRYPTO_USER=m
482CONFIG_CRYPTO_CRYPTD=m 535CONFIG_CRYPTO_CRYPTD=m
536CONFIG_CRYPTO_MCRYPTD=m
483CONFIG_CRYPTO_TEST=m 537CONFIG_CRYPTO_TEST=m
484CONFIG_CRYPTO_CCM=m 538CONFIG_CRYPTO_CCM=m
485CONFIG_CRYPTO_GCM=m 539CONFIG_CRYPTO_GCM=m
@@ -514,13 +568,10 @@ CONFIG_CRYPTO_LZO=m
514CONFIG_CRYPTO_LZ4=m 568CONFIG_CRYPTO_LZ4=m
515CONFIG_CRYPTO_LZ4HC=m 569CONFIG_CRYPTO_LZ4HC=m
516# CONFIG_CRYPTO_ANSI_CPRNG is not set 570# CONFIG_CRYPTO_ANSI_CPRNG is not set
571CONFIG_CRYPTO_DRBG_MENU=m
572CONFIG_CRYPTO_DRBG_HASH=y
573CONFIG_CRYPTO_DRBG_CTR=y
517CONFIG_CRYPTO_USER_API_HASH=m 574CONFIG_CRYPTO_USER_API_HASH=m
518CONFIG_CRYPTO_USER_API_SKCIPHER=m 575CONFIG_CRYPTO_USER_API_SKCIPHER=m
519# CONFIG_CRYPTO_HW is not set 576# CONFIG_CRYPTO_HW is not set
520CONFIG_XZ_DEC_X86=y
521CONFIG_XZ_DEC_POWERPC=y
522CONFIG_XZ_DEC_IA64=y
523CONFIG_XZ_DEC_ARM=y
524CONFIG_XZ_DEC_ARMTHUMB=y
525CONFIG_XZ_DEC_SPARC=y
526CONFIG_XZ_DEC_TEST=m 577CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index be16740c0749..7859a738c81e 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_defconfig
@@ -34,6 +34,7 @@ CONFIG_M68060=y
34CONFIG_APOLLO=y 34CONFIG_APOLLO=y
35# CONFIG_COMPACTION is not set 35# CONFIG_COMPACTION is not set
36CONFIG_CLEANCACHE=y 36CONFIG_CLEANCACHE=y
37CONFIG_ZPOOL=m
37# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 38# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
38CONFIG_BINFMT_AOUT=m 39CONFIG_BINFMT_AOUT=m
39CONFIG_BINFMT_MISC=m 40CONFIG_BINFMT_MISC=m
@@ -53,6 +54,8 @@ CONFIG_NET_IPIP=m
53CONFIG_NET_IPGRE_DEMUX=m 54CONFIG_NET_IPGRE_DEMUX=m
54CONFIG_NET_IPGRE=m 55CONFIG_NET_IPGRE=m
55CONFIG_NET_IPVTI=m 56CONFIG_NET_IPVTI=m
57CONFIG_NET_FOU_IP_TUNNELS=y
58CONFIG_GENEVE=m
56CONFIG_INET_AH=m 59CONFIG_INET_AH=m
57CONFIG_INET_ESP=m 60CONFIG_INET_ESP=m
58CONFIG_INET_IPCOMP=m 61CONFIG_INET_IPCOMP=m
@@ -94,6 +97,8 @@ CONFIG_NFT_HASH=m
94CONFIG_NFT_COUNTER=m 97CONFIG_NFT_COUNTER=m
95CONFIG_NFT_LOG=m 98CONFIG_NFT_LOG=m
96CONFIG_NFT_LIMIT=m 99CONFIG_NFT_LIMIT=m
100CONFIG_NFT_MASQ=m
101CONFIG_NFT_REDIR=m
97CONFIG_NFT_NAT=m 102CONFIG_NFT_NAT=m
98CONFIG_NFT_QUEUE=m 103CONFIG_NFT_QUEUE=m
99CONFIG_NFT_REJECT=m 104CONFIG_NFT_REJECT=m
@@ -140,6 +145,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
140CONFIG_NETFILTER_XT_MATCH_OSF=m 145CONFIG_NETFILTER_XT_MATCH_OSF=m
141CONFIG_NETFILTER_XT_MATCH_OWNER=m 146CONFIG_NETFILTER_XT_MATCH_OWNER=m
142CONFIG_NETFILTER_XT_MATCH_POLICY=m 147CONFIG_NETFILTER_XT_MATCH_POLICY=m
148CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
143CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 149CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
144CONFIG_NETFILTER_XT_MATCH_QUOTA=m 150CONFIG_NETFILTER_XT_MATCH_QUOTA=m
145CONFIG_NETFILTER_XT_MATCH_RATEEST=m 151CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -161,6 +167,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
161CONFIG_IP_SET_HASH_IPPORT=m 167CONFIG_IP_SET_HASH_IPPORT=m
162CONFIG_IP_SET_HASH_IPPORTIP=m 168CONFIG_IP_SET_HASH_IPPORTIP=m
163CONFIG_IP_SET_HASH_IPPORTNET=m 169CONFIG_IP_SET_HASH_IPPORTNET=m
170CONFIG_IP_SET_HASH_MAC=m
164CONFIG_IP_SET_HASH_NETPORTNET=m 171CONFIG_IP_SET_HASH_NETPORTNET=m
165CONFIG_IP_SET_HASH_NET=m 172CONFIG_IP_SET_HASH_NET=m
166CONFIG_IP_SET_HASH_NETNET=m 173CONFIG_IP_SET_HASH_NETNET=m
@@ -168,9 +175,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
168CONFIG_IP_SET_HASH_NETIFACE=m 175CONFIG_IP_SET_HASH_NETIFACE=m
169CONFIG_IP_SET_LIST_SET=m 176CONFIG_IP_SET_LIST_SET=m
170CONFIG_NF_CONNTRACK_IPV4=m 177CONFIG_NF_CONNTRACK_IPV4=m
178CONFIG_NF_LOG_ARP=m
171CONFIG_NFT_CHAIN_ROUTE_IPV4=m 179CONFIG_NFT_CHAIN_ROUTE_IPV4=m
172CONFIG_NFT_CHAIN_NAT_IPV4=m
173CONFIG_NF_TABLES_ARP=m 180CONFIG_NF_TABLES_ARP=m
181CONFIG_NFT_CHAIN_NAT_IPV4=m
182CONFIG_NFT_MASQ_IPV4=m
183CONFIG_NFT_REDIR_IPV4=m
174CONFIG_IP_NF_IPTABLES=m 184CONFIG_IP_NF_IPTABLES=m
175CONFIG_IP_NF_MATCH_AH=m 185CONFIG_IP_NF_MATCH_AH=m
176CONFIG_IP_NF_MATCH_ECN=m 186CONFIG_IP_NF_MATCH_ECN=m
@@ -179,8 +189,7 @@ CONFIG_IP_NF_MATCH_TTL=m
179CONFIG_IP_NF_FILTER=m 189CONFIG_IP_NF_FILTER=m
180CONFIG_IP_NF_TARGET_REJECT=m 190CONFIG_IP_NF_TARGET_REJECT=m
181CONFIG_IP_NF_TARGET_SYNPROXY=m 191CONFIG_IP_NF_TARGET_SYNPROXY=m
182CONFIG_IP_NF_TARGET_ULOG=m 192CONFIG_IP_NF_NAT=m
183CONFIG_NF_NAT_IPV4=m
184CONFIG_IP_NF_TARGET_MASQUERADE=m 193CONFIG_IP_NF_TARGET_MASQUERADE=m
185CONFIG_IP_NF_TARGET_NETMAP=m 194CONFIG_IP_NF_TARGET_NETMAP=m
186CONFIG_IP_NF_TARGET_REDIRECT=m 195CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -195,6 +204,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
195CONFIG_NF_CONNTRACK_IPV6=m 204CONFIG_NF_CONNTRACK_IPV6=m
196CONFIG_NFT_CHAIN_ROUTE_IPV6=m 205CONFIG_NFT_CHAIN_ROUTE_IPV6=m
197CONFIG_NFT_CHAIN_NAT_IPV6=m 206CONFIG_NFT_CHAIN_NAT_IPV6=m
207CONFIG_NFT_MASQ_IPV6=m
208CONFIG_NFT_REDIR_IPV6=m
198CONFIG_IP6_NF_IPTABLES=m 209CONFIG_IP6_NF_IPTABLES=m
199CONFIG_IP6_NF_MATCH_AH=m 210CONFIG_IP6_NF_MATCH_AH=m
200CONFIG_IP6_NF_MATCH_EUI64=m 211CONFIG_IP6_NF_MATCH_EUI64=m
@@ -211,17 +222,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
211CONFIG_IP6_NF_TARGET_SYNPROXY=m 222CONFIG_IP6_NF_TARGET_SYNPROXY=m
212CONFIG_IP6_NF_MANGLE=m 223CONFIG_IP6_NF_MANGLE=m
213CONFIG_IP6_NF_RAW=m 224CONFIG_IP6_NF_RAW=m
214CONFIG_NF_NAT_IPV6=m 225CONFIG_IP6_NF_NAT=m
215CONFIG_IP6_NF_TARGET_MASQUERADE=m 226CONFIG_IP6_NF_TARGET_MASQUERADE=m
216CONFIG_IP6_NF_TARGET_NPT=m 227CONFIG_IP6_NF_TARGET_NPT=m
217CONFIG_NF_TABLES_BRIDGE=m 228CONFIG_NF_TABLES_BRIDGE=m
229CONFIG_NFT_BRIDGE_META=m
230CONFIG_NFT_BRIDGE_REJECT=m
231CONFIG_NF_LOG_BRIDGE=m
232CONFIG_BRIDGE_NF_EBTABLES=m
233CONFIG_BRIDGE_EBT_BROUTE=m
234CONFIG_BRIDGE_EBT_T_FILTER=m
235CONFIG_BRIDGE_EBT_T_NAT=m
236CONFIG_BRIDGE_EBT_802_3=m
237CONFIG_BRIDGE_EBT_AMONG=m
238CONFIG_BRIDGE_EBT_ARP=m
239CONFIG_BRIDGE_EBT_IP=m
240CONFIG_BRIDGE_EBT_IP6=m
241CONFIG_BRIDGE_EBT_LIMIT=m
242CONFIG_BRIDGE_EBT_MARK=m
243CONFIG_BRIDGE_EBT_PKTTYPE=m
244CONFIG_BRIDGE_EBT_STP=m
245CONFIG_BRIDGE_EBT_VLAN=m
246CONFIG_BRIDGE_EBT_ARPREPLY=m
247CONFIG_BRIDGE_EBT_DNAT=m
248CONFIG_BRIDGE_EBT_MARK_T=m
249CONFIG_BRIDGE_EBT_REDIRECT=m
250CONFIG_BRIDGE_EBT_SNAT=m
251CONFIG_BRIDGE_EBT_LOG=m
252CONFIG_BRIDGE_EBT_NFLOG=m
218CONFIG_IP_DCCP=m 253CONFIG_IP_DCCP=m
219# CONFIG_IP_DCCP_CCID3 is not set 254# CONFIG_IP_DCCP_CCID3 is not set
220CONFIG_SCTP_COOKIE_HMAC_SHA1=y 255CONFIG_SCTP_COOKIE_HMAC_SHA1=y
221CONFIG_RDS=m 256CONFIG_RDS=m
222CONFIG_RDS_TCP=m 257CONFIG_RDS_TCP=m
223CONFIG_L2TP=m 258CONFIG_L2TP=m
259CONFIG_BRIDGE=m
224CONFIG_ATALK=m 260CONFIG_ATALK=m
261CONFIG_6LOWPAN=m
225CONFIG_DNS_RESOLVER=y 262CONFIG_DNS_RESOLVER=y
226CONFIG_BATMAN_ADV=m 263CONFIG_BATMAN_ADV=m
227CONFIG_BATMAN_ADV_DAT=y 264CONFIG_BATMAN_ADV_DAT=y
@@ -230,9 +267,10 @@ CONFIG_BATMAN_ADV_MCAST=y
230CONFIG_NETLINK_DIAG=m 267CONFIG_NETLINK_DIAG=m
231CONFIG_NET_MPLS_GSO=m 268CONFIG_NET_MPLS_GSO=m
232# CONFIG_WIRELESS is not set 269# CONFIG_WIRELESS is not set
270# CONFIG_UEVENT_HELPER is not set
233CONFIG_DEVTMPFS=y 271CONFIG_DEVTMPFS=y
272CONFIG_DEVTMPFS_MOUNT=y
234# CONFIG_FIRMWARE_IN_KERNEL is not set 273# CONFIG_FIRMWARE_IN_KERNEL is not set
235# CONFIG_FW_LOADER_USER_HELPER is not set
236CONFIG_CONNECTOR=m 274CONFIG_CONNECTOR=m
237CONFIG_BLK_DEV_LOOP=y 275CONFIG_BLK_DEV_LOOP=y
238CONFIG_BLK_DEV_CRYPTOLOOP=m 276CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -281,6 +319,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
281CONFIG_NET_TEAM_MODE_RANDOM=m 319CONFIG_NET_TEAM_MODE_RANDOM=m
282CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 320CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
283CONFIG_NET_TEAM_MODE_LOADBALANCE=m 321CONFIG_NET_TEAM_MODE_LOADBALANCE=m
322CONFIG_MACVLAN=m
323CONFIG_MACVTAP=m
324CONFIG_IPVLAN=m
284CONFIG_VXLAN=m 325CONFIG_VXLAN=m
285CONFIG_NETCONSOLE=m 326CONFIG_NETCONSOLE=m
286CONFIG_NETCONSOLE_DYNAMIC=y 327CONFIG_NETCONSOLE_DYNAMIC=y
@@ -291,6 +332,8 @@ CONFIG_VETH=m
291# CONFIG_NET_VENDOR_MARVELL is not set 332# CONFIG_NET_VENDOR_MARVELL is not set
292# CONFIG_NET_VENDOR_MICREL is not set 333# CONFIG_NET_VENDOR_MICREL is not set
293# CONFIG_NET_VENDOR_NATSEMI is not set 334# CONFIG_NET_VENDOR_NATSEMI is not set
335# CONFIG_NET_VENDOR_QUALCOMM is not set
336# CONFIG_NET_VENDOR_ROCKER is not set
294# CONFIG_NET_VENDOR_SAMSUNG is not set 337# CONFIG_NET_VENDOR_SAMSUNG is not set
295# CONFIG_NET_VENDOR_SEEQ is not set 338# CONFIG_NET_VENDOR_SEEQ is not set
296# CONFIG_NET_VENDOR_STMICRO is not set 339# CONFIG_NET_VENDOR_STMICRO is not set
@@ -332,6 +375,7 @@ CONFIG_HID=m
332CONFIG_HIDRAW=y 375CONFIG_HIDRAW=y
333CONFIG_UHID=m 376CONFIG_UHID=m
334# CONFIG_HID_GENERIC is not set 377# CONFIG_HID_GENERIC is not set
378# CONFIG_HID_PLANTRONICS is not set
335# CONFIG_USB_SUPPORT is not set 379# CONFIG_USB_SUPPORT is not set
336CONFIG_RTC_CLASS=y 380CONFIG_RTC_CLASS=y
337CONFIG_RTC_DRV_GENERIC=m 381CONFIG_RTC_DRV_GENERIC=m
@@ -350,6 +394,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
350CONFIG_AUTOFS4_FS=m 394CONFIG_AUTOFS4_FS=m
351CONFIG_FUSE_FS=m 395CONFIG_FUSE_FS=m
352CONFIG_CUSE=m 396CONFIG_CUSE=m
397CONFIG_OVERLAY_FS=m
353CONFIG_ISO9660_FS=y 398CONFIG_ISO9660_FS=y
354CONFIG_JOLIET=y 399CONFIG_JOLIET=y
355CONFIG_ZISOFS=y 400CONFIG_ZISOFS=y
@@ -365,6 +410,7 @@ CONFIG_HFS_FS=m
365CONFIG_HFSPLUS_FS=m 410CONFIG_HFSPLUS_FS=m
366CONFIG_CRAMFS=m 411CONFIG_CRAMFS=m
367CONFIG_SQUASHFS=m 412CONFIG_SQUASHFS=m
413CONFIG_SQUASHFS_LZ4=y
368CONFIG_SQUASHFS_LZO=y 414CONFIG_SQUASHFS_LZO=y
369CONFIG_MINIX_FS=m 415CONFIG_MINIX_FS=m
370CONFIG_OMFS_FS=m 416CONFIG_OMFS_FS=m
@@ -434,10 +480,18 @@ CONFIG_DLM=m
434CONFIG_MAGIC_SYSRQ=y 480CONFIG_MAGIC_SYSRQ=y
435CONFIG_ASYNC_RAID6_TEST=m 481CONFIG_ASYNC_RAID6_TEST=m
436CONFIG_TEST_STRING_HELPERS=m 482CONFIG_TEST_STRING_HELPERS=m
483CONFIG_TEST_KSTRTOX=m
484CONFIG_TEST_LKM=m
485CONFIG_TEST_USER_COPY=m
486CONFIG_TEST_BPF=m
487CONFIG_TEST_FIRMWARE=m
488CONFIG_TEST_UDELAY=m
489CONFIG_EARLY_PRINTK=y
437CONFIG_ENCRYPTED_KEYS=m 490CONFIG_ENCRYPTED_KEYS=m
438CONFIG_CRYPTO_MANAGER=y 491CONFIG_CRYPTO_MANAGER=y
439CONFIG_CRYPTO_USER=m 492CONFIG_CRYPTO_USER=m
440CONFIG_CRYPTO_CRYPTD=m 493CONFIG_CRYPTO_CRYPTD=m
494CONFIG_CRYPTO_MCRYPTD=m
441CONFIG_CRYPTO_TEST=m 495CONFIG_CRYPTO_TEST=m
442CONFIG_CRYPTO_CCM=m 496CONFIG_CRYPTO_CCM=m
443CONFIG_CRYPTO_GCM=m 497CONFIG_CRYPTO_GCM=m
@@ -472,13 +526,10 @@ CONFIG_CRYPTO_LZO=m
472CONFIG_CRYPTO_LZ4=m 526CONFIG_CRYPTO_LZ4=m
473CONFIG_CRYPTO_LZ4HC=m 527CONFIG_CRYPTO_LZ4HC=m
474# CONFIG_CRYPTO_ANSI_CPRNG is not set 528# CONFIG_CRYPTO_ANSI_CPRNG is not set
529CONFIG_CRYPTO_DRBG_MENU=m
530CONFIG_CRYPTO_DRBG_HASH=y
531CONFIG_CRYPTO_DRBG_CTR=y
475CONFIG_CRYPTO_USER_API_HASH=m 532CONFIG_CRYPTO_USER_API_HASH=m
476CONFIG_CRYPTO_USER_API_SKCIPHER=m 533CONFIG_CRYPTO_USER_API_SKCIPHER=m
477# CONFIG_CRYPTO_HW is not set 534# CONFIG_CRYPTO_HW is not set
478CONFIG_XZ_DEC_X86=y
479CONFIG_XZ_DEC_POWERPC=y
480CONFIG_XZ_DEC_IA64=y
481CONFIG_XZ_DEC_ARM=y
482CONFIG_XZ_DEC_ARMTHUMB=y
483CONFIG_XZ_DEC_SPARC=y
484CONFIG_XZ_DEC_TEST=m 535CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index 391e185d73be..372593a3b398 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_defconfig
@@ -31,8 +31,10 @@ CONFIG_M68030=y
31CONFIG_M68040=y 31CONFIG_M68040=y
32CONFIG_M68060=y 32CONFIG_M68060=y
33CONFIG_ATARI=y 33CONFIG_ATARI=y
34CONFIG_ATARI_ROM_ISA=y
34# CONFIG_COMPACTION is not set 35# CONFIG_COMPACTION is not set
35CONFIG_CLEANCACHE=y 36CONFIG_CLEANCACHE=y
37CONFIG_ZPOOL=m
36# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 38# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
37CONFIG_BINFMT_AOUT=m 39CONFIG_BINFMT_AOUT=m
38CONFIG_BINFMT_MISC=m 40CONFIG_BINFMT_MISC=m
@@ -52,6 +54,8 @@ CONFIG_NET_IPIP=m
52CONFIG_NET_IPGRE_DEMUX=m 54CONFIG_NET_IPGRE_DEMUX=m
53CONFIG_NET_IPGRE=m 55CONFIG_NET_IPGRE=m
54CONFIG_NET_IPVTI=m 56CONFIG_NET_IPVTI=m
57CONFIG_NET_FOU_IP_TUNNELS=y
58CONFIG_GENEVE=m
55CONFIG_INET_AH=m 59CONFIG_INET_AH=m
56CONFIG_INET_ESP=m 60CONFIG_INET_ESP=m
57CONFIG_INET_IPCOMP=m 61CONFIG_INET_IPCOMP=m
@@ -93,6 +97,8 @@ CONFIG_NFT_HASH=m
93CONFIG_NFT_COUNTER=m 97CONFIG_NFT_COUNTER=m
94CONFIG_NFT_LOG=m 98CONFIG_NFT_LOG=m
95CONFIG_NFT_LIMIT=m 99CONFIG_NFT_LIMIT=m
100CONFIG_NFT_MASQ=m
101CONFIG_NFT_REDIR=m
96CONFIG_NFT_NAT=m 102CONFIG_NFT_NAT=m
97CONFIG_NFT_QUEUE=m 103CONFIG_NFT_QUEUE=m
98CONFIG_NFT_REJECT=m 104CONFIG_NFT_REJECT=m
@@ -139,6 +145,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
139CONFIG_NETFILTER_XT_MATCH_OSF=m 145CONFIG_NETFILTER_XT_MATCH_OSF=m
140CONFIG_NETFILTER_XT_MATCH_OWNER=m 146CONFIG_NETFILTER_XT_MATCH_OWNER=m
141CONFIG_NETFILTER_XT_MATCH_POLICY=m 147CONFIG_NETFILTER_XT_MATCH_POLICY=m
148CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
142CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 149CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
143CONFIG_NETFILTER_XT_MATCH_QUOTA=m 150CONFIG_NETFILTER_XT_MATCH_QUOTA=m
144CONFIG_NETFILTER_XT_MATCH_RATEEST=m 151CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -160,6 +167,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
160CONFIG_IP_SET_HASH_IPPORT=m 167CONFIG_IP_SET_HASH_IPPORT=m
161CONFIG_IP_SET_HASH_IPPORTIP=m 168CONFIG_IP_SET_HASH_IPPORTIP=m
162CONFIG_IP_SET_HASH_IPPORTNET=m 169CONFIG_IP_SET_HASH_IPPORTNET=m
170CONFIG_IP_SET_HASH_MAC=m
163CONFIG_IP_SET_HASH_NETPORTNET=m 171CONFIG_IP_SET_HASH_NETPORTNET=m
164CONFIG_IP_SET_HASH_NET=m 172CONFIG_IP_SET_HASH_NET=m
165CONFIG_IP_SET_HASH_NETNET=m 173CONFIG_IP_SET_HASH_NETNET=m
@@ -167,9 +175,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
167CONFIG_IP_SET_HASH_NETIFACE=m 175CONFIG_IP_SET_HASH_NETIFACE=m
168CONFIG_IP_SET_LIST_SET=m 176CONFIG_IP_SET_LIST_SET=m
169CONFIG_NF_CONNTRACK_IPV4=m 177CONFIG_NF_CONNTRACK_IPV4=m
178CONFIG_NF_LOG_ARP=m
170CONFIG_NFT_CHAIN_ROUTE_IPV4=m 179CONFIG_NFT_CHAIN_ROUTE_IPV4=m
171CONFIG_NFT_CHAIN_NAT_IPV4=m
172CONFIG_NF_TABLES_ARP=m 180CONFIG_NF_TABLES_ARP=m
181CONFIG_NFT_CHAIN_NAT_IPV4=m
182CONFIG_NFT_MASQ_IPV4=m
183CONFIG_NFT_REDIR_IPV4=m
173CONFIG_IP_NF_IPTABLES=m 184CONFIG_IP_NF_IPTABLES=m
174CONFIG_IP_NF_MATCH_AH=m 185CONFIG_IP_NF_MATCH_AH=m
175CONFIG_IP_NF_MATCH_ECN=m 186CONFIG_IP_NF_MATCH_ECN=m
@@ -178,8 +189,7 @@ CONFIG_IP_NF_MATCH_TTL=m
178CONFIG_IP_NF_FILTER=m 189CONFIG_IP_NF_FILTER=m
179CONFIG_IP_NF_TARGET_REJECT=m 190CONFIG_IP_NF_TARGET_REJECT=m
180CONFIG_IP_NF_TARGET_SYNPROXY=m 191CONFIG_IP_NF_TARGET_SYNPROXY=m
181CONFIG_IP_NF_TARGET_ULOG=m 192CONFIG_IP_NF_NAT=m
182CONFIG_NF_NAT_IPV4=m
183CONFIG_IP_NF_TARGET_MASQUERADE=m 193CONFIG_IP_NF_TARGET_MASQUERADE=m
184CONFIG_IP_NF_TARGET_NETMAP=m 194CONFIG_IP_NF_TARGET_NETMAP=m
185CONFIG_IP_NF_TARGET_REDIRECT=m 195CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -194,6 +204,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
194CONFIG_NF_CONNTRACK_IPV6=m 204CONFIG_NF_CONNTRACK_IPV6=m
195CONFIG_NFT_CHAIN_ROUTE_IPV6=m 205CONFIG_NFT_CHAIN_ROUTE_IPV6=m
196CONFIG_NFT_CHAIN_NAT_IPV6=m 206CONFIG_NFT_CHAIN_NAT_IPV6=m
207CONFIG_NFT_MASQ_IPV6=m
208CONFIG_NFT_REDIR_IPV6=m
197CONFIG_IP6_NF_IPTABLES=m 209CONFIG_IP6_NF_IPTABLES=m
198CONFIG_IP6_NF_MATCH_AH=m 210CONFIG_IP6_NF_MATCH_AH=m
199CONFIG_IP6_NF_MATCH_EUI64=m 211CONFIG_IP6_NF_MATCH_EUI64=m
@@ -210,17 +222,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
210CONFIG_IP6_NF_TARGET_SYNPROXY=m 222CONFIG_IP6_NF_TARGET_SYNPROXY=m
211CONFIG_IP6_NF_MANGLE=m 223CONFIG_IP6_NF_MANGLE=m
212CONFIG_IP6_NF_RAW=m 224CONFIG_IP6_NF_RAW=m
213CONFIG_NF_NAT_IPV6=m 225CONFIG_IP6_NF_NAT=m
214CONFIG_IP6_NF_TARGET_MASQUERADE=m 226CONFIG_IP6_NF_TARGET_MASQUERADE=m
215CONFIG_IP6_NF_TARGET_NPT=m 227CONFIG_IP6_NF_TARGET_NPT=m
216CONFIG_NF_TABLES_BRIDGE=m 228CONFIG_NF_TABLES_BRIDGE=m
229CONFIG_NFT_BRIDGE_META=m
230CONFIG_NFT_BRIDGE_REJECT=m
231CONFIG_NF_LOG_BRIDGE=m
232CONFIG_BRIDGE_NF_EBTABLES=m
233CONFIG_BRIDGE_EBT_BROUTE=m
234CONFIG_BRIDGE_EBT_T_FILTER=m
235CONFIG_BRIDGE_EBT_T_NAT=m
236CONFIG_BRIDGE_EBT_802_3=m
237CONFIG_BRIDGE_EBT_AMONG=m
238CONFIG_BRIDGE_EBT_ARP=m
239CONFIG_BRIDGE_EBT_IP=m
240CONFIG_BRIDGE_EBT_IP6=m
241CONFIG_BRIDGE_EBT_LIMIT=m
242CONFIG_BRIDGE_EBT_MARK=m
243CONFIG_BRIDGE_EBT_PKTTYPE=m
244CONFIG_BRIDGE_EBT_STP=m
245CONFIG_BRIDGE_EBT_VLAN=m
246CONFIG_BRIDGE_EBT_ARPREPLY=m
247CONFIG_BRIDGE_EBT_DNAT=m
248CONFIG_BRIDGE_EBT_MARK_T=m
249CONFIG_BRIDGE_EBT_REDIRECT=m
250CONFIG_BRIDGE_EBT_SNAT=m
251CONFIG_BRIDGE_EBT_LOG=m
252CONFIG_BRIDGE_EBT_NFLOG=m
217CONFIG_IP_DCCP=m 253CONFIG_IP_DCCP=m
218# CONFIG_IP_DCCP_CCID3 is not set 254# CONFIG_IP_DCCP_CCID3 is not set
219CONFIG_SCTP_COOKIE_HMAC_SHA1=y 255CONFIG_SCTP_COOKIE_HMAC_SHA1=y
220CONFIG_RDS=m 256CONFIG_RDS=m
221CONFIG_RDS_TCP=m 257CONFIG_RDS_TCP=m
222CONFIG_L2TP=m 258CONFIG_L2TP=m
259CONFIG_BRIDGE=m
223CONFIG_ATALK=m 260CONFIG_ATALK=m
261CONFIG_6LOWPAN=m
224CONFIG_DNS_RESOLVER=y 262CONFIG_DNS_RESOLVER=y
225CONFIG_BATMAN_ADV=m 263CONFIG_BATMAN_ADV=m
226CONFIG_BATMAN_ADV_DAT=y 264CONFIG_BATMAN_ADV_DAT=y
@@ -229,9 +267,10 @@ CONFIG_BATMAN_ADV_MCAST=y
229CONFIG_NETLINK_DIAG=m 267CONFIG_NETLINK_DIAG=m
230CONFIG_NET_MPLS_GSO=m 268CONFIG_NET_MPLS_GSO=m
231# CONFIG_WIRELESS is not set 269# CONFIG_WIRELESS is not set
270# CONFIG_UEVENT_HELPER is not set
232CONFIG_DEVTMPFS=y 271CONFIG_DEVTMPFS=y
272CONFIG_DEVTMPFS_MOUNT=y
233# CONFIG_FIRMWARE_IN_KERNEL is not set 273# CONFIG_FIRMWARE_IN_KERNEL is not set
234# CONFIG_FW_LOADER_USER_HELPER is not set
235CONFIG_CONNECTOR=m 274CONFIG_CONNECTOR=m
236CONFIG_PARPORT=m 275CONFIG_PARPORT=m
237CONFIG_PARPORT_ATARI=m 276CONFIG_PARPORT_ATARI=m
@@ -289,6 +328,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
289CONFIG_NET_TEAM_MODE_RANDOM=m 328CONFIG_NET_TEAM_MODE_RANDOM=m
290CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 329CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
291CONFIG_NET_TEAM_MODE_LOADBALANCE=m 330CONFIG_NET_TEAM_MODE_LOADBALANCE=m
331CONFIG_MACVLAN=m
332CONFIG_MACVTAP=m
333CONFIG_IPVLAN=m
292CONFIG_VXLAN=m 334CONFIG_VXLAN=m
293CONFIG_NETCONSOLE=m 335CONFIG_NETCONSOLE=m
294CONFIG_NETCONSOLE_DYNAMIC=y 336CONFIG_NETCONSOLE_DYNAMIC=y
@@ -299,8 +341,12 @@ CONFIG_ATARILANCE=y
299# CONFIG_NET_VENDOR_INTEL is not set 341# CONFIG_NET_VENDOR_INTEL is not set
300# CONFIG_NET_VENDOR_MARVELL is not set 342# CONFIG_NET_VENDOR_MARVELL is not set
301# CONFIG_NET_VENDOR_MICREL is not set 343# CONFIG_NET_VENDOR_MICREL is not set
344CONFIG_NE2000=y
345# CONFIG_NET_VENDOR_QUALCOMM is not set
346# CONFIG_NET_VENDOR_ROCKER is not set
302# CONFIG_NET_VENDOR_SAMSUNG is not set 347# CONFIG_NET_VENDOR_SAMSUNG is not set
303# CONFIG_NET_VENDOR_SEEQ is not set 348# CONFIG_NET_VENDOR_SEEQ is not set
349CONFIG_SMC91X=y
304# CONFIG_NET_VENDOR_STMICRO is not set 350# CONFIG_NET_VENDOR_STMICRO is not set
305# CONFIG_NET_VENDOR_VIA is not set 351# CONFIG_NET_VENDOR_VIA is not set
306# CONFIG_NET_VENDOR_WIZNET is not set 352# CONFIG_NET_VENDOR_WIZNET is not set
@@ -345,6 +391,7 @@ CONFIG_DMASOUND_ATARI=m
345CONFIG_HID=m 391CONFIG_HID=m
346CONFIG_HIDRAW=y 392CONFIG_HIDRAW=y
347CONFIG_UHID=m 393CONFIG_UHID=m
394# CONFIG_HID_PLANTRONICS is not set
348CONFIG_RTC_CLASS=y 395CONFIG_RTC_CLASS=y
349CONFIG_RTC_DRV_GENERIC=m 396CONFIG_RTC_DRV_GENERIC=m
350# CONFIG_IOMMU_SUPPORT is not set 397# CONFIG_IOMMU_SUPPORT is not set
@@ -354,6 +401,8 @@ CONFIG_NATFEAT=y
354CONFIG_NFBLOCK=y 401CONFIG_NFBLOCK=y
355CONFIG_NFCON=y 402CONFIG_NFCON=y
356CONFIG_NFETH=y 403CONFIG_NFETH=y
404CONFIG_ATARI_ETHERNAT=y
405CONFIG_ATARI_ETHERNEC=y
357CONFIG_ATARI_DSP56K=m 406CONFIG_ATARI_DSP56K=m
358CONFIG_EXT4_FS=y 407CONFIG_EXT4_FS=y
359CONFIG_REISERFS_FS=m 408CONFIG_REISERFS_FS=m
@@ -367,6 +416,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
367CONFIG_AUTOFS4_FS=m 416CONFIG_AUTOFS4_FS=m
368CONFIG_FUSE_FS=m 417CONFIG_FUSE_FS=m
369CONFIG_CUSE=m 418CONFIG_CUSE=m
419CONFIG_OVERLAY_FS=m
370CONFIG_ISO9660_FS=y 420CONFIG_ISO9660_FS=y
371CONFIG_JOLIET=y 421CONFIG_JOLIET=y
372CONFIG_ZISOFS=y 422CONFIG_ZISOFS=y
@@ -382,6 +432,7 @@ CONFIG_HFS_FS=m
382CONFIG_HFSPLUS_FS=m 432CONFIG_HFSPLUS_FS=m
383CONFIG_CRAMFS=m 433CONFIG_CRAMFS=m
384CONFIG_SQUASHFS=m 434CONFIG_SQUASHFS=m
435CONFIG_SQUASHFS_LZ4=y
385CONFIG_SQUASHFS_LZO=y 436CONFIG_SQUASHFS_LZO=y
386CONFIG_MINIX_FS=m 437CONFIG_MINIX_FS=m
387CONFIG_OMFS_FS=m 438CONFIG_OMFS_FS=m
@@ -451,10 +502,18 @@ CONFIG_DLM=m
451CONFIG_MAGIC_SYSRQ=y 502CONFIG_MAGIC_SYSRQ=y
452CONFIG_ASYNC_RAID6_TEST=m 503CONFIG_ASYNC_RAID6_TEST=m
453CONFIG_TEST_STRING_HELPERS=m 504CONFIG_TEST_STRING_HELPERS=m
505CONFIG_TEST_KSTRTOX=m
506CONFIG_TEST_LKM=m
507CONFIG_TEST_USER_COPY=m
508CONFIG_TEST_BPF=m
509CONFIG_TEST_FIRMWARE=m
510CONFIG_TEST_UDELAY=m
511CONFIG_EARLY_PRINTK=y
454CONFIG_ENCRYPTED_KEYS=m 512CONFIG_ENCRYPTED_KEYS=m
455CONFIG_CRYPTO_MANAGER=y 513CONFIG_CRYPTO_MANAGER=y
456CONFIG_CRYPTO_USER=m 514CONFIG_CRYPTO_USER=m
457CONFIG_CRYPTO_CRYPTD=m 515CONFIG_CRYPTO_CRYPTD=m
516CONFIG_CRYPTO_MCRYPTD=m
458CONFIG_CRYPTO_TEST=m 517CONFIG_CRYPTO_TEST=m
459CONFIG_CRYPTO_CCM=m 518CONFIG_CRYPTO_CCM=m
460CONFIG_CRYPTO_GCM=m 519CONFIG_CRYPTO_GCM=m
@@ -489,13 +548,10 @@ CONFIG_CRYPTO_LZO=m
489CONFIG_CRYPTO_LZ4=m 548CONFIG_CRYPTO_LZ4=m
490CONFIG_CRYPTO_LZ4HC=m 549CONFIG_CRYPTO_LZ4HC=m
491# CONFIG_CRYPTO_ANSI_CPRNG is not set 550# CONFIG_CRYPTO_ANSI_CPRNG is not set
551CONFIG_CRYPTO_DRBG_MENU=m
552CONFIG_CRYPTO_DRBG_HASH=y
553CONFIG_CRYPTO_DRBG_CTR=y
492CONFIG_CRYPTO_USER_API_HASH=m 554CONFIG_CRYPTO_USER_API_HASH=m
493CONFIG_CRYPTO_USER_API_SKCIPHER=m 555CONFIG_CRYPTO_USER_API_SKCIPHER=m
494# CONFIG_CRYPTO_HW is not set 556# CONFIG_CRYPTO_HW is not set
495CONFIG_XZ_DEC_X86=y
496CONFIG_XZ_DEC_POWERPC=y
497CONFIG_XZ_DEC_IA64=y
498CONFIG_XZ_DEC_ARM=y
499CONFIG_XZ_DEC_ARMTHUMB=y
500CONFIG_XZ_DEC_SPARC=y
501CONFIG_XZ_DEC_TEST=m 557CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index d0e705d1a063..f3bd35e76ea4 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_defconfig
@@ -32,6 +32,7 @@ CONFIG_VME=y
32CONFIG_BVME6000=y 32CONFIG_BVME6000=y
33# CONFIG_COMPACTION is not set 33# CONFIG_COMPACTION is not set
34CONFIG_CLEANCACHE=y 34CONFIG_CLEANCACHE=y
35CONFIG_ZPOOL=m
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 36# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
36CONFIG_BINFMT_AOUT=m 37CONFIG_BINFMT_AOUT=m
37CONFIG_BINFMT_MISC=m 38CONFIG_BINFMT_MISC=m
@@ -51,6 +52,8 @@ CONFIG_NET_IPIP=m
51CONFIG_NET_IPGRE_DEMUX=m 52CONFIG_NET_IPGRE_DEMUX=m
52CONFIG_NET_IPGRE=m 53CONFIG_NET_IPGRE=m
53CONFIG_NET_IPVTI=m 54CONFIG_NET_IPVTI=m
55CONFIG_NET_FOU_IP_TUNNELS=y
56CONFIG_GENEVE=m
54CONFIG_INET_AH=m 57CONFIG_INET_AH=m
55CONFIG_INET_ESP=m 58CONFIG_INET_ESP=m
56CONFIG_INET_IPCOMP=m 59CONFIG_INET_IPCOMP=m
@@ -92,6 +95,8 @@ CONFIG_NFT_HASH=m
92CONFIG_NFT_COUNTER=m 95CONFIG_NFT_COUNTER=m
93CONFIG_NFT_LOG=m 96CONFIG_NFT_LOG=m
94CONFIG_NFT_LIMIT=m 97CONFIG_NFT_LIMIT=m
98CONFIG_NFT_MASQ=m
99CONFIG_NFT_REDIR=m
95CONFIG_NFT_NAT=m 100CONFIG_NFT_NAT=m
96CONFIG_NFT_QUEUE=m 101CONFIG_NFT_QUEUE=m
97CONFIG_NFT_REJECT=m 102CONFIG_NFT_REJECT=m
@@ -138,6 +143,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
138CONFIG_NETFILTER_XT_MATCH_OSF=m 143CONFIG_NETFILTER_XT_MATCH_OSF=m
139CONFIG_NETFILTER_XT_MATCH_OWNER=m 144CONFIG_NETFILTER_XT_MATCH_OWNER=m
140CONFIG_NETFILTER_XT_MATCH_POLICY=m 145CONFIG_NETFILTER_XT_MATCH_POLICY=m
146CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
141CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 147CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
142CONFIG_NETFILTER_XT_MATCH_QUOTA=m 148CONFIG_NETFILTER_XT_MATCH_QUOTA=m
143CONFIG_NETFILTER_XT_MATCH_RATEEST=m 149CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -159,6 +165,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
159CONFIG_IP_SET_HASH_IPPORT=m 165CONFIG_IP_SET_HASH_IPPORT=m
160CONFIG_IP_SET_HASH_IPPORTIP=m 166CONFIG_IP_SET_HASH_IPPORTIP=m
161CONFIG_IP_SET_HASH_IPPORTNET=m 167CONFIG_IP_SET_HASH_IPPORTNET=m
168CONFIG_IP_SET_HASH_MAC=m
162CONFIG_IP_SET_HASH_NETPORTNET=m 169CONFIG_IP_SET_HASH_NETPORTNET=m
163CONFIG_IP_SET_HASH_NET=m 170CONFIG_IP_SET_HASH_NET=m
164CONFIG_IP_SET_HASH_NETNET=m 171CONFIG_IP_SET_HASH_NETNET=m
@@ -166,9 +173,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
166CONFIG_IP_SET_HASH_NETIFACE=m 173CONFIG_IP_SET_HASH_NETIFACE=m
167CONFIG_IP_SET_LIST_SET=m 174CONFIG_IP_SET_LIST_SET=m
168CONFIG_NF_CONNTRACK_IPV4=m 175CONFIG_NF_CONNTRACK_IPV4=m
176CONFIG_NF_LOG_ARP=m
169CONFIG_NFT_CHAIN_ROUTE_IPV4=m 177CONFIG_NFT_CHAIN_ROUTE_IPV4=m
170CONFIG_NFT_CHAIN_NAT_IPV4=m
171CONFIG_NF_TABLES_ARP=m 178CONFIG_NF_TABLES_ARP=m
179CONFIG_NFT_CHAIN_NAT_IPV4=m
180CONFIG_NFT_MASQ_IPV4=m
181CONFIG_NFT_REDIR_IPV4=m
172CONFIG_IP_NF_IPTABLES=m 182CONFIG_IP_NF_IPTABLES=m
173CONFIG_IP_NF_MATCH_AH=m 183CONFIG_IP_NF_MATCH_AH=m
174CONFIG_IP_NF_MATCH_ECN=m 184CONFIG_IP_NF_MATCH_ECN=m
@@ -177,8 +187,7 @@ CONFIG_IP_NF_MATCH_TTL=m
177CONFIG_IP_NF_FILTER=m 187CONFIG_IP_NF_FILTER=m
178CONFIG_IP_NF_TARGET_REJECT=m 188CONFIG_IP_NF_TARGET_REJECT=m
179CONFIG_IP_NF_TARGET_SYNPROXY=m 189CONFIG_IP_NF_TARGET_SYNPROXY=m
180CONFIG_IP_NF_TARGET_ULOG=m 190CONFIG_IP_NF_NAT=m
181CONFIG_NF_NAT_IPV4=m
182CONFIG_IP_NF_TARGET_MASQUERADE=m 191CONFIG_IP_NF_TARGET_MASQUERADE=m
183CONFIG_IP_NF_TARGET_NETMAP=m 192CONFIG_IP_NF_TARGET_NETMAP=m
184CONFIG_IP_NF_TARGET_REDIRECT=m 193CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -193,6 +202,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
193CONFIG_NF_CONNTRACK_IPV6=m 202CONFIG_NF_CONNTRACK_IPV6=m
194CONFIG_NFT_CHAIN_ROUTE_IPV6=m 203CONFIG_NFT_CHAIN_ROUTE_IPV6=m
195CONFIG_NFT_CHAIN_NAT_IPV6=m 204CONFIG_NFT_CHAIN_NAT_IPV6=m
205CONFIG_NFT_MASQ_IPV6=m
206CONFIG_NFT_REDIR_IPV6=m
196CONFIG_IP6_NF_IPTABLES=m 207CONFIG_IP6_NF_IPTABLES=m
197CONFIG_IP6_NF_MATCH_AH=m 208CONFIG_IP6_NF_MATCH_AH=m
198CONFIG_IP6_NF_MATCH_EUI64=m 209CONFIG_IP6_NF_MATCH_EUI64=m
@@ -209,17 +220,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
209CONFIG_IP6_NF_TARGET_SYNPROXY=m 220CONFIG_IP6_NF_TARGET_SYNPROXY=m
210CONFIG_IP6_NF_MANGLE=m 221CONFIG_IP6_NF_MANGLE=m
211CONFIG_IP6_NF_RAW=m 222CONFIG_IP6_NF_RAW=m
212CONFIG_NF_NAT_IPV6=m 223CONFIG_IP6_NF_NAT=m
213CONFIG_IP6_NF_TARGET_MASQUERADE=m 224CONFIG_IP6_NF_TARGET_MASQUERADE=m
214CONFIG_IP6_NF_TARGET_NPT=m 225CONFIG_IP6_NF_TARGET_NPT=m
215CONFIG_NF_TABLES_BRIDGE=m 226CONFIG_NF_TABLES_BRIDGE=m
227CONFIG_NFT_BRIDGE_META=m
228CONFIG_NFT_BRIDGE_REJECT=m
229CONFIG_NF_LOG_BRIDGE=m
230CONFIG_BRIDGE_NF_EBTABLES=m
231CONFIG_BRIDGE_EBT_BROUTE=m
232CONFIG_BRIDGE_EBT_T_FILTER=m
233CONFIG_BRIDGE_EBT_T_NAT=m
234CONFIG_BRIDGE_EBT_802_3=m
235CONFIG_BRIDGE_EBT_AMONG=m
236CONFIG_BRIDGE_EBT_ARP=m
237CONFIG_BRIDGE_EBT_IP=m
238CONFIG_BRIDGE_EBT_IP6=m
239CONFIG_BRIDGE_EBT_LIMIT=m
240CONFIG_BRIDGE_EBT_MARK=m
241CONFIG_BRIDGE_EBT_PKTTYPE=m
242CONFIG_BRIDGE_EBT_STP=m
243CONFIG_BRIDGE_EBT_VLAN=m
244CONFIG_BRIDGE_EBT_ARPREPLY=m
245CONFIG_BRIDGE_EBT_DNAT=m
246CONFIG_BRIDGE_EBT_MARK_T=m
247CONFIG_BRIDGE_EBT_REDIRECT=m
248CONFIG_BRIDGE_EBT_SNAT=m
249CONFIG_BRIDGE_EBT_LOG=m
250CONFIG_BRIDGE_EBT_NFLOG=m
216CONFIG_IP_DCCP=m 251CONFIG_IP_DCCP=m
217# CONFIG_IP_DCCP_CCID3 is not set 252# CONFIG_IP_DCCP_CCID3 is not set
218CONFIG_SCTP_COOKIE_HMAC_SHA1=y 253CONFIG_SCTP_COOKIE_HMAC_SHA1=y
219CONFIG_RDS=m 254CONFIG_RDS=m
220CONFIG_RDS_TCP=m 255CONFIG_RDS_TCP=m
221CONFIG_L2TP=m 256CONFIG_L2TP=m
257CONFIG_BRIDGE=m
222CONFIG_ATALK=m 258CONFIG_ATALK=m
259CONFIG_6LOWPAN=m
223CONFIG_DNS_RESOLVER=y 260CONFIG_DNS_RESOLVER=y
224CONFIG_BATMAN_ADV=m 261CONFIG_BATMAN_ADV=m
225CONFIG_BATMAN_ADV_DAT=y 262CONFIG_BATMAN_ADV_DAT=y
@@ -228,9 +265,10 @@ CONFIG_BATMAN_ADV_MCAST=y
228CONFIG_NETLINK_DIAG=m 265CONFIG_NETLINK_DIAG=m
229CONFIG_NET_MPLS_GSO=m 266CONFIG_NET_MPLS_GSO=m
230# CONFIG_WIRELESS is not set 267# CONFIG_WIRELESS is not set
268# CONFIG_UEVENT_HELPER is not set
231CONFIG_DEVTMPFS=y 269CONFIG_DEVTMPFS=y
270CONFIG_DEVTMPFS_MOUNT=y
232# CONFIG_FIRMWARE_IN_KERNEL is not set 271# CONFIG_FIRMWARE_IN_KERNEL is not set
233# CONFIG_FW_LOADER_USER_HELPER is not set
234CONFIG_CONNECTOR=m 272CONFIG_CONNECTOR=m
235CONFIG_BLK_DEV_LOOP=y 273CONFIG_BLK_DEV_LOOP=y
236CONFIG_BLK_DEV_CRYPTOLOOP=m 274CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -280,6 +318,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
280CONFIG_NET_TEAM_MODE_RANDOM=m 318CONFIG_NET_TEAM_MODE_RANDOM=m
281CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 319CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
282CONFIG_NET_TEAM_MODE_LOADBALANCE=m 320CONFIG_NET_TEAM_MODE_LOADBALANCE=m
321CONFIG_MACVLAN=m
322CONFIG_MACVTAP=m
323CONFIG_IPVLAN=m
283CONFIG_VXLAN=m 324CONFIG_VXLAN=m
284CONFIG_NETCONSOLE=m 325CONFIG_NETCONSOLE=m
285CONFIG_NETCONSOLE_DYNAMIC=y 326CONFIG_NETCONSOLE_DYNAMIC=y
@@ -290,6 +331,8 @@ CONFIG_BVME6000_NET=y
290# CONFIG_NET_VENDOR_MARVELL is not set 331# CONFIG_NET_VENDOR_MARVELL is not set
291# CONFIG_NET_VENDOR_MICREL is not set 332# CONFIG_NET_VENDOR_MICREL is not set
292# CONFIG_NET_VENDOR_NATSEMI is not set 333# CONFIG_NET_VENDOR_NATSEMI is not set
334# CONFIG_NET_VENDOR_QUALCOMM is not set
335# CONFIG_NET_VENDOR_ROCKER is not set
293# CONFIG_NET_VENDOR_SAMSUNG is not set 336# CONFIG_NET_VENDOR_SAMSUNG is not set
294# CONFIG_NET_VENDOR_SEEQ is not set 337# CONFIG_NET_VENDOR_SEEQ is not set
295# CONFIG_NET_VENDOR_STMICRO is not set 338# CONFIG_NET_VENDOR_STMICRO is not set
@@ -326,6 +369,7 @@ CONFIG_HID=m
326CONFIG_HIDRAW=y 369CONFIG_HIDRAW=y
327CONFIG_UHID=m 370CONFIG_UHID=m
328# CONFIG_HID_GENERIC is not set 371# CONFIG_HID_GENERIC is not set
372# CONFIG_HID_PLANTRONICS is not set
329# CONFIG_USB_SUPPORT is not set 373# CONFIG_USB_SUPPORT is not set
330CONFIG_RTC_CLASS=y 374CONFIG_RTC_CLASS=y
331CONFIG_RTC_DRV_GENERIC=m 375CONFIG_RTC_DRV_GENERIC=m
@@ -343,6 +387,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
343CONFIG_AUTOFS4_FS=m 387CONFIG_AUTOFS4_FS=m
344CONFIG_FUSE_FS=m 388CONFIG_FUSE_FS=m
345CONFIG_CUSE=m 389CONFIG_CUSE=m
390CONFIG_OVERLAY_FS=m
346CONFIG_ISO9660_FS=y 391CONFIG_ISO9660_FS=y
347CONFIG_JOLIET=y 392CONFIG_JOLIET=y
348CONFIG_ZISOFS=y 393CONFIG_ZISOFS=y
@@ -358,6 +403,7 @@ CONFIG_HFS_FS=m
358CONFIG_HFSPLUS_FS=m 403CONFIG_HFSPLUS_FS=m
359CONFIG_CRAMFS=m 404CONFIG_CRAMFS=m
360CONFIG_SQUASHFS=m 405CONFIG_SQUASHFS=m
406CONFIG_SQUASHFS_LZ4=y
361CONFIG_SQUASHFS_LZO=y 407CONFIG_SQUASHFS_LZO=y
362CONFIG_MINIX_FS=m 408CONFIG_MINIX_FS=m
363CONFIG_OMFS_FS=m 409CONFIG_OMFS_FS=m
@@ -427,10 +473,18 @@ CONFIG_DLM=m
427CONFIG_MAGIC_SYSRQ=y 473CONFIG_MAGIC_SYSRQ=y
428CONFIG_ASYNC_RAID6_TEST=m 474CONFIG_ASYNC_RAID6_TEST=m
429CONFIG_TEST_STRING_HELPERS=m 475CONFIG_TEST_STRING_HELPERS=m
476CONFIG_TEST_KSTRTOX=m
477CONFIG_TEST_LKM=m
478CONFIG_TEST_USER_COPY=m
479CONFIG_TEST_BPF=m
480CONFIG_TEST_FIRMWARE=m
481CONFIG_TEST_UDELAY=m
482CONFIG_EARLY_PRINTK=y
430CONFIG_ENCRYPTED_KEYS=m 483CONFIG_ENCRYPTED_KEYS=m
431CONFIG_CRYPTO_MANAGER=y 484CONFIG_CRYPTO_MANAGER=y
432CONFIG_CRYPTO_USER=m 485CONFIG_CRYPTO_USER=m
433CONFIG_CRYPTO_CRYPTD=m 486CONFIG_CRYPTO_CRYPTD=m
487CONFIG_CRYPTO_MCRYPTD=m
434CONFIG_CRYPTO_TEST=m 488CONFIG_CRYPTO_TEST=m
435CONFIG_CRYPTO_CCM=m 489CONFIG_CRYPTO_CCM=m
436CONFIG_CRYPTO_GCM=m 490CONFIG_CRYPTO_GCM=m
@@ -465,13 +519,10 @@ CONFIG_CRYPTO_LZO=m
465CONFIG_CRYPTO_LZ4=m 519CONFIG_CRYPTO_LZ4=m
466CONFIG_CRYPTO_LZ4HC=m 520CONFIG_CRYPTO_LZ4HC=m
467# CONFIG_CRYPTO_ANSI_CPRNG is not set 521# CONFIG_CRYPTO_ANSI_CPRNG is not set
522CONFIG_CRYPTO_DRBG_MENU=m
523CONFIG_CRYPTO_DRBG_HASH=y
524CONFIG_CRYPTO_DRBG_CTR=y
468CONFIG_CRYPTO_USER_API_HASH=m 525CONFIG_CRYPTO_USER_API_HASH=m
469CONFIG_CRYPTO_USER_API_SKCIPHER=m 526CONFIG_CRYPTO_USER_API_SKCIPHER=m
470# CONFIG_CRYPTO_HW is not set 527# CONFIG_CRYPTO_HW is not set
471CONFIG_XZ_DEC_X86=y
472CONFIG_XZ_DEC_POWERPC=y
473CONFIG_XZ_DEC_IA64=y
474CONFIG_XZ_DEC_ARM=y
475CONFIG_XZ_DEC_ARMTHUMB=y
476CONFIG_XZ_DEC_SPARC=y
477CONFIG_XZ_DEC_TEST=m 528CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index fdc7e9672249..9f9793fb2b73 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_defconfig
@@ -34,6 +34,7 @@ CONFIG_M68060=y
34CONFIG_HP300=y 34CONFIG_HP300=y
35# CONFIG_COMPACTION is not set 35# CONFIG_COMPACTION is not set
36CONFIG_CLEANCACHE=y 36CONFIG_CLEANCACHE=y
37CONFIG_ZPOOL=m
37# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 38# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
38CONFIG_BINFMT_AOUT=m 39CONFIG_BINFMT_AOUT=m
39CONFIG_BINFMT_MISC=m 40CONFIG_BINFMT_MISC=m
@@ -53,6 +54,8 @@ CONFIG_NET_IPIP=m
53CONFIG_NET_IPGRE_DEMUX=m 54CONFIG_NET_IPGRE_DEMUX=m
54CONFIG_NET_IPGRE=m 55CONFIG_NET_IPGRE=m
55CONFIG_NET_IPVTI=m 56CONFIG_NET_IPVTI=m
57CONFIG_NET_FOU_IP_TUNNELS=y
58CONFIG_GENEVE=m
56CONFIG_INET_AH=m 59CONFIG_INET_AH=m
57CONFIG_INET_ESP=m 60CONFIG_INET_ESP=m
58CONFIG_INET_IPCOMP=m 61CONFIG_INET_IPCOMP=m
@@ -94,6 +97,8 @@ CONFIG_NFT_HASH=m
94CONFIG_NFT_COUNTER=m 97CONFIG_NFT_COUNTER=m
95CONFIG_NFT_LOG=m 98CONFIG_NFT_LOG=m
96CONFIG_NFT_LIMIT=m 99CONFIG_NFT_LIMIT=m
100CONFIG_NFT_MASQ=m
101CONFIG_NFT_REDIR=m
97CONFIG_NFT_NAT=m 102CONFIG_NFT_NAT=m
98CONFIG_NFT_QUEUE=m 103CONFIG_NFT_QUEUE=m
99CONFIG_NFT_REJECT=m 104CONFIG_NFT_REJECT=m
@@ -140,6 +145,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
140CONFIG_NETFILTER_XT_MATCH_OSF=m 145CONFIG_NETFILTER_XT_MATCH_OSF=m
141CONFIG_NETFILTER_XT_MATCH_OWNER=m 146CONFIG_NETFILTER_XT_MATCH_OWNER=m
142CONFIG_NETFILTER_XT_MATCH_POLICY=m 147CONFIG_NETFILTER_XT_MATCH_POLICY=m
148CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
143CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 149CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
144CONFIG_NETFILTER_XT_MATCH_QUOTA=m 150CONFIG_NETFILTER_XT_MATCH_QUOTA=m
145CONFIG_NETFILTER_XT_MATCH_RATEEST=m 151CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -161,6 +167,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
161CONFIG_IP_SET_HASH_IPPORT=m 167CONFIG_IP_SET_HASH_IPPORT=m
162CONFIG_IP_SET_HASH_IPPORTIP=m 168CONFIG_IP_SET_HASH_IPPORTIP=m
163CONFIG_IP_SET_HASH_IPPORTNET=m 169CONFIG_IP_SET_HASH_IPPORTNET=m
170CONFIG_IP_SET_HASH_MAC=m
164CONFIG_IP_SET_HASH_NETPORTNET=m 171CONFIG_IP_SET_HASH_NETPORTNET=m
165CONFIG_IP_SET_HASH_NET=m 172CONFIG_IP_SET_HASH_NET=m
166CONFIG_IP_SET_HASH_NETNET=m 173CONFIG_IP_SET_HASH_NETNET=m
@@ -168,9 +175,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
168CONFIG_IP_SET_HASH_NETIFACE=m 175CONFIG_IP_SET_HASH_NETIFACE=m
169CONFIG_IP_SET_LIST_SET=m 176CONFIG_IP_SET_LIST_SET=m
170CONFIG_NF_CONNTRACK_IPV4=m 177CONFIG_NF_CONNTRACK_IPV4=m
178CONFIG_NF_LOG_ARP=m
171CONFIG_NFT_CHAIN_ROUTE_IPV4=m 179CONFIG_NFT_CHAIN_ROUTE_IPV4=m
172CONFIG_NFT_CHAIN_NAT_IPV4=m
173CONFIG_NF_TABLES_ARP=m 180CONFIG_NF_TABLES_ARP=m
181CONFIG_NFT_CHAIN_NAT_IPV4=m
182CONFIG_NFT_MASQ_IPV4=m
183CONFIG_NFT_REDIR_IPV4=m
174CONFIG_IP_NF_IPTABLES=m 184CONFIG_IP_NF_IPTABLES=m
175CONFIG_IP_NF_MATCH_AH=m 185CONFIG_IP_NF_MATCH_AH=m
176CONFIG_IP_NF_MATCH_ECN=m 186CONFIG_IP_NF_MATCH_ECN=m
@@ -179,8 +189,7 @@ CONFIG_IP_NF_MATCH_TTL=m
179CONFIG_IP_NF_FILTER=m 189CONFIG_IP_NF_FILTER=m
180CONFIG_IP_NF_TARGET_REJECT=m 190CONFIG_IP_NF_TARGET_REJECT=m
181CONFIG_IP_NF_TARGET_SYNPROXY=m 191CONFIG_IP_NF_TARGET_SYNPROXY=m
182CONFIG_IP_NF_TARGET_ULOG=m 192CONFIG_IP_NF_NAT=m
183CONFIG_NF_NAT_IPV4=m
184CONFIG_IP_NF_TARGET_MASQUERADE=m 193CONFIG_IP_NF_TARGET_MASQUERADE=m
185CONFIG_IP_NF_TARGET_NETMAP=m 194CONFIG_IP_NF_TARGET_NETMAP=m
186CONFIG_IP_NF_TARGET_REDIRECT=m 195CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -195,6 +204,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
195CONFIG_NF_CONNTRACK_IPV6=m 204CONFIG_NF_CONNTRACK_IPV6=m
196CONFIG_NFT_CHAIN_ROUTE_IPV6=m 205CONFIG_NFT_CHAIN_ROUTE_IPV6=m
197CONFIG_NFT_CHAIN_NAT_IPV6=m 206CONFIG_NFT_CHAIN_NAT_IPV6=m
207CONFIG_NFT_MASQ_IPV6=m
208CONFIG_NFT_REDIR_IPV6=m
198CONFIG_IP6_NF_IPTABLES=m 209CONFIG_IP6_NF_IPTABLES=m
199CONFIG_IP6_NF_MATCH_AH=m 210CONFIG_IP6_NF_MATCH_AH=m
200CONFIG_IP6_NF_MATCH_EUI64=m 211CONFIG_IP6_NF_MATCH_EUI64=m
@@ -211,17 +222,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
211CONFIG_IP6_NF_TARGET_SYNPROXY=m 222CONFIG_IP6_NF_TARGET_SYNPROXY=m
212CONFIG_IP6_NF_MANGLE=m 223CONFIG_IP6_NF_MANGLE=m
213CONFIG_IP6_NF_RAW=m 224CONFIG_IP6_NF_RAW=m
214CONFIG_NF_NAT_IPV6=m 225CONFIG_IP6_NF_NAT=m
215CONFIG_IP6_NF_TARGET_MASQUERADE=m 226CONFIG_IP6_NF_TARGET_MASQUERADE=m
216CONFIG_IP6_NF_TARGET_NPT=m 227CONFIG_IP6_NF_TARGET_NPT=m
217CONFIG_NF_TABLES_BRIDGE=m 228CONFIG_NF_TABLES_BRIDGE=m
229CONFIG_NFT_BRIDGE_META=m
230CONFIG_NFT_BRIDGE_REJECT=m
231CONFIG_NF_LOG_BRIDGE=m
232CONFIG_BRIDGE_NF_EBTABLES=m
233CONFIG_BRIDGE_EBT_BROUTE=m
234CONFIG_BRIDGE_EBT_T_FILTER=m
235CONFIG_BRIDGE_EBT_T_NAT=m
236CONFIG_BRIDGE_EBT_802_3=m
237CONFIG_BRIDGE_EBT_AMONG=m
238CONFIG_BRIDGE_EBT_ARP=m
239CONFIG_BRIDGE_EBT_IP=m
240CONFIG_BRIDGE_EBT_IP6=m
241CONFIG_BRIDGE_EBT_LIMIT=m
242CONFIG_BRIDGE_EBT_MARK=m
243CONFIG_BRIDGE_EBT_PKTTYPE=m
244CONFIG_BRIDGE_EBT_STP=m
245CONFIG_BRIDGE_EBT_VLAN=m
246CONFIG_BRIDGE_EBT_ARPREPLY=m
247CONFIG_BRIDGE_EBT_DNAT=m
248CONFIG_BRIDGE_EBT_MARK_T=m
249CONFIG_BRIDGE_EBT_REDIRECT=m
250CONFIG_BRIDGE_EBT_SNAT=m
251CONFIG_BRIDGE_EBT_LOG=m
252CONFIG_BRIDGE_EBT_NFLOG=m
218CONFIG_IP_DCCP=m 253CONFIG_IP_DCCP=m
219# CONFIG_IP_DCCP_CCID3 is not set 254# CONFIG_IP_DCCP_CCID3 is not set
220CONFIG_SCTP_COOKIE_HMAC_SHA1=y 255CONFIG_SCTP_COOKIE_HMAC_SHA1=y
221CONFIG_RDS=m 256CONFIG_RDS=m
222CONFIG_RDS_TCP=m 257CONFIG_RDS_TCP=m
223CONFIG_L2TP=m 258CONFIG_L2TP=m
259CONFIG_BRIDGE=m
224CONFIG_ATALK=m 260CONFIG_ATALK=m
261CONFIG_6LOWPAN=m
225CONFIG_DNS_RESOLVER=y 262CONFIG_DNS_RESOLVER=y
226CONFIG_BATMAN_ADV=m 263CONFIG_BATMAN_ADV=m
227CONFIG_BATMAN_ADV_DAT=y 264CONFIG_BATMAN_ADV_DAT=y
@@ -230,9 +267,10 @@ CONFIG_BATMAN_ADV_MCAST=y
230CONFIG_NETLINK_DIAG=m 267CONFIG_NETLINK_DIAG=m
231CONFIG_NET_MPLS_GSO=m 268CONFIG_NET_MPLS_GSO=m
232# CONFIG_WIRELESS is not set 269# CONFIG_WIRELESS is not set
270# CONFIG_UEVENT_HELPER is not set
233CONFIG_DEVTMPFS=y 271CONFIG_DEVTMPFS=y
272CONFIG_DEVTMPFS_MOUNT=y
234# CONFIG_FIRMWARE_IN_KERNEL is not set 273# CONFIG_FIRMWARE_IN_KERNEL is not set
235# CONFIG_FW_LOADER_USER_HELPER is not set
236CONFIG_CONNECTOR=m 274CONFIG_CONNECTOR=m
237CONFIG_BLK_DEV_LOOP=y 275CONFIG_BLK_DEV_LOOP=y
238CONFIG_BLK_DEV_CRYPTOLOOP=m 276CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -281,6 +319,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
281CONFIG_NET_TEAM_MODE_RANDOM=m 319CONFIG_NET_TEAM_MODE_RANDOM=m
282CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 320CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
283CONFIG_NET_TEAM_MODE_LOADBALANCE=m 321CONFIG_NET_TEAM_MODE_LOADBALANCE=m
322CONFIG_MACVLAN=m
323CONFIG_MACVTAP=m
324CONFIG_IPVLAN=m
284CONFIG_VXLAN=m 325CONFIG_VXLAN=m
285CONFIG_NETCONSOLE=m 326CONFIG_NETCONSOLE=m
286CONFIG_NETCONSOLE_DYNAMIC=y 327CONFIG_NETCONSOLE_DYNAMIC=y
@@ -292,6 +333,8 @@ CONFIG_HPLANCE=y
292# CONFIG_NET_VENDOR_MARVELL is not set 333# CONFIG_NET_VENDOR_MARVELL is not set
293# CONFIG_NET_VENDOR_MICREL is not set 334# CONFIG_NET_VENDOR_MICREL is not set
294# CONFIG_NET_VENDOR_NATSEMI is not set 335# CONFIG_NET_VENDOR_NATSEMI is not set
336# CONFIG_NET_VENDOR_QUALCOMM is not set
337# CONFIG_NET_VENDOR_ROCKER is not set
295# CONFIG_NET_VENDOR_SAMSUNG is not set 338# CONFIG_NET_VENDOR_SAMSUNG is not set
296# CONFIG_NET_VENDOR_SEEQ is not set 339# CONFIG_NET_VENDOR_SEEQ is not set
297# CONFIG_NET_VENDOR_STMICRO is not set 340# CONFIG_NET_VENDOR_STMICRO is not set
@@ -335,6 +378,7 @@ CONFIG_HID=m
335CONFIG_HIDRAW=y 378CONFIG_HIDRAW=y
336CONFIG_UHID=m 379CONFIG_UHID=m
337# CONFIG_HID_GENERIC is not set 380# CONFIG_HID_GENERIC is not set
381# CONFIG_HID_PLANTRONICS is not set
338# CONFIG_USB_SUPPORT is not set 382# CONFIG_USB_SUPPORT is not set
339CONFIG_RTC_CLASS=y 383CONFIG_RTC_CLASS=y
340CONFIG_RTC_DRV_GENERIC=m 384CONFIG_RTC_DRV_GENERIC=m
@@ -352,6 +396,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
352CONFIG_AUTOFS4_FS=m 396CONFIG_AUTOFS4_FS=m
353CONFIG_FUSE_FS=m 397CONFIG_FUSE_FS=m
354CONFIG_CUSE=m 398CONFIG_CUSE=m
399CONFIG_OVERLAY_FS=m
355CONFIG_ISO9660_FS=y 400CONFIG_ISO9660_FS=y
356CONFIG_JOLIET=y 401CONFIG_JOLIET=y
357CONFIG_ZISOFS=y 402CONFIG_ZISOFS=y
@@ -367,6 +412,7 @@ CONFIG_HFS_FS=m
367CONFIG_HFSPLUS_FS=m 412CONFIG_HFSPLUS_FS=m
368CONFIG_CRAMFS=m 413CONFIG_CRAMFS=m
369CONFIG_SQUASHFS=m 414CONFIG_SQUASHFS=m
415CONFIG_SQUASHFS_LZ4=y
370CONFIG_SQUASHFS_LZO=y 416CONFIG_SQUASHFS_LZO=y
371CONFIG_MINIX_FS=m 417CONFIG_MINIX_FS=m
372CONFIG_OMFS_FS=m 418CONFIG_OMFS_FS=m
@@ -436,10 +482,18 @@ CONFIG_DLM=m
436CONFIG_MAGIC_SYSRQ=y 482CONFIG_MAGIC_SYSRQ=y
437CONFIG_ASYNC_RAID6_TEST=m 483CONFIG_ASYNC_RAID6_TEST=m
438CONFIG_TEST_STRING_HELPERS=m 484CONFIG_TEST_STRING_HELPERS=m
485CONFIG_TEST_KSTRTOX=m
486CONFIG_TEST_LKM=m
487CONFIG_TEST_USER_COPY=m
488CONFIG_TEST_BPF=m
489CONFIG_TEST_FIRMWARE=m
490CONFIG_TEST_UDELAY=m
491CONFIG_EARLY_PRINTK=y
439CONFIG_ENCRYPTED_KEYS=m 492CONFIG_ENCRYPTED_KEYS=m
440CONFIG_CRYPTO_MANAGER=y 493CONFIG_CRYPTO_MANAGER=y
441CONFIG_CRYPTO_USER=m 494CONFIG_CRYPTO_USER=m
442CONFIG_CRYPTO_CRYPTD=m 495CONFIG_CRYPTO_CRYPTD=m
496CONFIG_CRYPTO_MCRYPTD=m
443CONFIG_CRYPTO_TEST=m 497CONFIG_CRYPTO_TEST=m
444CONFIG_CRYPTO_CCM=m 498CONFIG_CRYPTO_CCM=m
445CONFIG_CRYPTO_GCM=m 499CONFIG_CRYPTO_GCM=m
@@ -474,13 +528,10 @@ CONFIG_CRYPTO_LZO=m
474CONFIG_CRYPTO_LZ4=m 528CONFIG_CRYPTO_LZ4=m
475CONFIG_CRYPTO_LZ4HC=m 529CONFIG_CRYPTO_LZ4HC=m
476# CONFIG_CRYPTO_ANSI_CPRNG is not set 530# CONFIG_CRYPTO_ANSI_CPRNG is not set
531CONFIG_CRYPTO_DRBG_MENU=m
532CONFIG_CRYPTO_DRBG_HASH=y
533CONFIG_CRYPTO_DRBG_CTR=y
477CONFIG_CRYPTO_USER_API_HASH=m 534CONFIG_CRYPTO_USER_API_HASH=m
478CONFIG_CRYPTO_USER_API_SKCIPHER=m 535CONFIG_CRYPTO_USER_API_SKCIPHER=m
479# CONFIG_CRYPTO_HW is not set 536# CONFIG_CRYPTO_HW is not set
480CONFIG_XZ_DEC_X86=y
481CONFIG_XZ_DEC_POWERPC=y
482CONFIG_XZ_DEC_IA64=y
483CONFIG_XZ_DEC_ARM=y
484CONFIG_XZ_DEC_ARMTHUMB=y
485CONFIG_XZ_DEC_SPARC=y
486CONFIG_XZ_DEC_TEST=m 537CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index 3d345641d5a0..89f225c01a0b 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_defconfig
@@ -33,6 +33,7 @@ CONFIG_M68KFPU_EMU=y
33CONFIG_MAC=y 33CONFIG_MAC=y
34# CONFIG_COMPACTION is not set 34# CONFIG_COMPACTION is not set
35CONFIG_CLEANCACHE=y 35CONFIG_CLEANCACHE=y
36CONFIG_ZPOOL=m
36# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 37# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
37CONFIG_BINFMT_AOUT=m 38CONFIG_BINFMT_AOUT=m
38CONFIG_BINFMT_MISC=m 39CONFIG_BINFMT_MISC=m
@@ -52,6 +53,8 @@ CONFIG_NET_IPIP=m
52CONFIG_NET_IPGRE_DEMUX=m 53CONFIG_NET_IPGRE_DEMUX=m
53CONFIG_NET_IPGRE=m 54CONFIG_NET_IPGRE=m
54CONFIG_NET_IPVTI=m 55CONFIG_NET_IPVTI=m
56CONFIG_NET_FOU_IP_TUNNELS=y
57CONFIG_GENEVE=m
55CONFIG_INET_AH=m 58CONFIG_INET_AH=m
56CONFIG_INET_ESP=m 59CONFIG_INET_ESP=m
57CONFIG_INET_IPCOMP=m 60CONFIG_INET_IPCOMP=m
@@ -93,6 +96,8 @@ CONFIG_NFT_HASH=m
93CONFIG_NFT_COUNTER=m 96CONFIG_NFT_COUNTER=m
94CONFIG_NFT_LOG=m 97CONFIG_NFT_LOG=m
95CONFIG_NFT_LIMIT=m 98CONFIG_NFT_LIMIT=m
99CONFIG_NFT_MASQ=m
100CONFIG_NFT_REDIR=m
96CONFIG_NFT_NAT=m 101CONFIG_NFT_NAT=m
97CONFIG_NFT_QUEUE=m 102CONFIG_NFT_QUEUE=m
98CONFIG_NFT_REJECT=m 103CONFIG_NFT_REJECT=m
@@ -139,6 +144,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
139CONFIG_NETFILTER_XT_MATCH_OSF=m 144CONFIG_NETFILTER_XT_MATCH_OSF=m
140CONFIG_NETFILTER_XT_MATCH_OWNER=m 145CONFIG_NETFILTER_XT_MATCH_OWNER=m
141CONFIG_NETFILTER_XT_MATCH_POLICY=m 146CONFIG_NETFILTER_XT_MATCH_POLICY=m
147CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
142CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 148CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
143CONFIG_NETFILTER_XT_MATCH_QUOTA=m 149CONFIG_NETFILTER_XT_MATCH_QUOTA=m
144CONFIG_NETFILTER_XT_MATCH_RATEEST=m 150CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -160,6 +166,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
160CONFIG_IP_SET_HASH_IPPORT=m 166CONFIG_IP_SET_HASH_IPPORT=m
161CONFIG_IP_SET_HASH_IPPORTIP=m 167CONFIG_IP_SET_HASH_IPPORTIP=m
162CONFIG_IP_SET_HASH_IPPORTNET=m 168CONFIG_IP_SET_HASH_IPPORTNET=m
169CONFIG_IP_SET_HASH_MAC=m
163CONFIG_IP_SET_HASH_NETPORTNET=m 170CONFIG_IP_SET_HASH_NETPORTNET=m
164CONFIG_IP_SET_HASH_NET=m 171CONFIG_IP_SET_HASH_NET=m
165CONFIG_IP_SET_HASH_NETNET=m 172CONFIG_IP_SET_HASH_NETNET=m
@@ -167,9 +174,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
167CONFIG_IP_SET_HASH_NETIFACE=m 174CONFIG_IP_SET_HASH_NETIFACE=m
168CONFIG_IP_SET_LIST_SET=m 175CONFIG_IP_SET_LIST_SET=m
169CONFIG_NF_CONNTRACK_IPV4=m 176CONFIG_NF_CONNTRACK_IPV4=m
177CONFIG_NF_LOG_ARP=m
170CONFIG_NFT_CHAIN_ROUTE_IPV4=m 178CONFIG_NFT_CHAIN_ROUTE_IPV4=m
171CONFIG_NFT_CHAIN_NAT_IPV4=m
172CONFIG_NF_TABLES_ARP=m 179CONFIG_NF_TABLES_ARP=m
180CONFIG_NFT_CHAIN_NAT_IPV4=m
181CONFIG_NFT_MASQ_IPV4=m
182CONFIG_NFT_REDIR_IPV4=m
173CONFIG_IP_NF_IPTABLES=m 183CONFIG_IP_NF_IPTABLES=m
174CONFIG_IP_NF_MATCH_AH=m 184CONFIG_IP_NF_MATCH_AH=m
175CONFIG_IP_NF_MATCH_ECN=m 185CONFIG_IP_NF_MATCH_ECN=m
@@ -178,8 +188,7 @@ CONFIG_IP_NF_MATCH_TTL=m
178CONFIG_IP_NF_FILTER=m 188CONFIG_IP_NF_FILTER=m
179CONFIG_IP_NF_TARGET_REJECT=m 189CONFIG_IP_NF_TARGET_REJECT=m
180CONFIG_IP_NF_TARGET_SYNPROXY=m 190CONFIG_IP_NF_TARGET_SYNPROXY=m
181CONFIG_IP_NF_TARGET_ULOG=m 191CONFIG_IP_NF_NAT=m
182CONFIG_NF_NAT_IPV4=m
183CONFIG_IP_NF_TARGET_MASQUERADE=m 192CONFIG_IP_NF_TARGET_MASQUERADE=m
184CONFIG_IP_NF_TARGET_NETMAP=m 193CONFIG_IP_NF_TARGET_NETMAP=m
185CONFIG_IP_NF_TARGET_REDIRECT=m 194CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -194,6 +203,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
194CONFIG_NF_CONNTRACK_IPV6=m 203CONFIG_NF_CONNTRACK_IPV6=m
195CONFIG_NFT_CHAIN_ROUTE_IPV6=m 204CONFIG_NFT_CHAIN_ROUTE_IPV6=m
196CONFIG_NFT_CHAIN_NAT_IPV6=m 205CONFIG_NFT_CHAIN_NAT_IPV6=m
206CONFIG_NFT_MASQ_IPV6=m
207CONFIG_NFT_REDIR_IPV6=m
197CONFIG_IP6_NF_IPTABLES=m 208CONFIG_IP6_NF_IPTABLES=m
198CONFIG_IP6_NF_MATCH_AH=m 209CONFIG_IP6_NF_MATCH_AH=m
199CONFIG_IP6_NF_MATCH_EUI64=m 210CONFIG_IP6_NF_MATCH_EUI64=m
@@ -210,20 +221,46 @@ CONFIG_IP6_NF_TARGET_REJECT=m
210CONFIG_IP6_NF_TARGET_SYNPROXY=m 221CONFIG_IP6_NF_TARGET_SYNPROXY=m
211CONFIG_IP6_NF_MANGLE=m 222CONFIG_IP6_NF_MANGLE=m
212CONFIG_IP6_NF_RAW=m 223CONFIG_IP6_NF_RAW=m
213CONFIG_NF_NAT_IPV6=m 224CONFIG_IP6_NF_NAT=m
214CONFIG_IP6_NF_TARGET_MASQUERADE=m 225CONFIG_IP6_NF_TARGET_MASQUERADE=m
215CONFIG_IP6_NF_TARGET_NPT=m 226CONFIG_IP6_NF_TARGET_NPT=m
216CONFIG_NF_TABLES_BRIDGE=m 227CONFIG_NF_TABLES_BRIDGE=m
228CONFIG_NFT_BRIDGE_META=m
229CONFIG_NFT_BRIDGE_REJECT=m
230CONFIG_NF_LOG_BRIDGE=m
231CONFIG_BRIDGE_NF_EBTABLES=m
232CONFIG_BRIDGE_EBT_BROUTE=m
233CONFIG_BRIDGE_EBT_T_FILTER=m
234CONFIG_BRIDGE_EBT_T_NAT=m
235CONFIG_BRIDGE_EBT_802_3=m
236CONFIG_BRIDGE_EBT_AMONG=m
237CONFIG_BRIDGE_EBT_ARP=m
238CONFIG_BRIDGE_EBT_IP=m
239CONFIG_BRIDGE_EBT_IP6=m
240CONFIG_BRIDGE_EBT_LIMIT=m
241CONFIG_BRIDGE_EBT_MARK=m
242CONFIG_BRIDGE_EBT_PKTTYPE=m
243CONFIG_BRIDGE_EBT_STP=m
244CONFIG_BRIDGE_EBT_VLAN=m
245CONFIG_BRIDGE_EBT_ARPREPLY=m
246CONFIG_BRIDGE_EBT_DNAT=m
247CONFIG_BRIDGE_EBT_MARK_T=m
248CONFIG_BRIDGE_EBT_REDIRECT=m
249CONFIG_BRIDGE_EBT_SNAT=m
250CONFIG_BRIDGE_EBT_LOG=m
251CONFIG_BRIDGE_EBT_NFLOG=m
217CONFIG_IP_DCCP=m 252CONFIG_IP_DCCP=m
218# CONFIG_IP_DCCP_CCID3 is not set 253# CONFIG_IP_DCCP_CCID3 is not set
219CONFIG_SCTP_COOKIE_HMAC_SHA1=y 254CONFIG_SCTP_COOKIE_HMAC_SHA1=y
220CONFIG_RDS=m 255CONFIG_RDS=m
221CONFIG_RDS_TCP=m 256CONFIG_RDS_TCP=m
222CONFIG_L2TP=m 257CONFIG_L2TP=m
258CONFIG_BRIDGE=m
223CONFIG_ATALK=m 259CONFIG_ATALK=m
224CONFIG_DEV_APPLETALK=m 260CONFIG_DEV_APPLETALK=m
225CONFIG_IPDDP=m 261CONFIG_IPDDP=m
226CONFIG_IPDDP_ENCAP=y 262CONFIG_IPDDP_ENCAP=y
263CONFIG_6LOWPAN=m
227CONFIG_DNS_RESOLVER=y 264CONFIG_DNS_RESOLVER=y
228CONFIG_BATMAN_ADV=m 265CONFIG_BATMAN_ADV=m
229CONFIG_BATMAN_ADV_DAT=y 266CONFIG_BATMAN_ADV_DAT=y
@@ -232,9 +269,10 @@ CONFIG_BATMAN_ADV_MCAST=y
232CONFIG_NETLINK_DIAG=m 269CONFIG_NETLINK_DIAG=m
233CONFIG_NET_MPLS_GSO=m 270CONFIG_NET_MPLS_GSO=m
234# CONFIG_WIRELESS is not set 271# CONFIG_WIRELESS is not set
272# CONFIG_UEVENT_HELPER is not set
235CONFIG_DEVTMPFS=y 273CONFIG_DEVTMPFS=y
274CONFIG_DEVTMPFS_MOUNT=y
236# CONFIG_FIRMWARE_IN_KERNEL is not set 275# CONFIG_FIRMWARE_IN_KERNEL is not set
237# CONFIG_FW_LOADER_USER_HELPER is not set
238CONFIG_CONNECTOR=m 276CONFIG_CONNECTOR=m
239CONFIG_BLK_DEV_SWIM=m 277CONFIG_BLK_DEV_SWIM=m
240CONFIG_BLK_DEV_LOOP=y 278CONFIG_BLK_DEV_LOOP=y
@@ -297,6 +335,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
297CONFIG_NET_TEAM_MODE_RANDOM=m 335CONFIG_NET_TEAM_MODE_RANDOM=m
298CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 336CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
299CONFIG_NET_TEAM_MODE_LOADBALANCE=m 337CONFIG_NET_TEAM_MODE_LOADBALANCE=m
338CONFIG_MACVLAN=m
339CONFIG_MACVTAP=m
340CONFIG_IPVLAN=m
300CONFIG_VXLAN=m 341CONFIG_VXLAN=m
301CONFIG_NETCONSOLE=m 342CONFIG_NETCONSOLE=m
302CONFIG_NETCONSOLE_DYNAMIC=y 343CONFIG_NETCONSOLE_DYNAMIC=y
@@ -310,6 +351,8 @@ CONFIG_MAC89x0=y
310# CONFIG_NET_VENDOR_MICREL is not set 351# CONFIG_NET_VENDOR_MICREL is not set
311CONFIG_MACSONIC=y 352CONFIG_MACSONIC=y
312CONFIG_MAC8390=y 353CONFIG_MAC8390=y
354# CONFIG_NET_VENDOR_QUALCOMM is not set
355# CONFIG_NET_VENDOR_ROCKER is not set
313# CONFIG_NET_VENDOR_SAMSUNG is not set 356# CONFIG_NET_VENDOR_SAMSUNG is not set
314# CONFIG_NET_VENDOR_SEEQ is not set 357# CONFIG_NET_VENDOR_SEEQ is not set
315# CONFIG_NET_VENDOR_SMSC is not set 358# CONFIG_NET_VENDOR_SMSC is not set
@@ -357,6 +400,7 @@ CONFIG_HID=m
357CONFIG_HIDRAW=y 400CONFIG_HIDRAW=y
358CONFIG_UHID=m 401CONFIG_UHID=m
359# CONFIG_HID_GENERIC is not set 402# CONFIG_HID_GENERIC is not set
403# CONFIG_HID_PLANTRONICS is not set
360# CONFIG_USB_SUPPORT is not set 404# CONFIG_USB_SUPPORT is not set
361CONFIG_RTC_CLASS=y 405CONFIG_RTC_CLASS=y
362CONFIG_RTC_DRV_GENERIC=m 406CONFIG_RTC_DRV_GENERIC=m
@@ -374,6 +418,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
374CONFIG_AUTOFS4_FS=m 418CONFIG_AUTOFS4_FS=m
375CONFIG_FUSE_FS=m 419CONFIG_FUSE_FS=m
376CONFIG_CUSE=m 420CONFIG_CUSE=m
421CONFIG_OVERLAY_FS=m
377CONFIG_ISO9660_FS=y 422CONFIG_ISO9660_FS=y
378CONFIG_JOLIET=y 423CONFIG_JOLIET=y
379CONFIG_ZISOFS=y 424CONFIG_ZISOFS=y
@@ -389,6 +434,7 @@ CONFIG_HFS_FS=m
389CONFIG_HFSPLUS_FS=m 434CONFIG_HFSPLUS_FS=m
390CONFIG_CRAMFS=m 435CONFIG_CRAMFS=m
391CONFIG_SQUASHFS=m 436CONFIG_SQUASHFS=m
437CONFIG_SQUASHFS_LZ4=y
392CONFIG_SQUASHFS_LZO=y 438CONFIG_SQUASHFS_LZO=y
393CONFIG_MINIX_FS=m 439CONFIG_MINIX_FS=m
394CONFIG_OMFS_FS=m 440CONFIG_OMFS_FS=m
@@ -458,11 +504,18 @@ CONFIG_DLM=m
458CONFIG_MAGIC_SYSRQ=y 504CONFIG_MAGIC_SYSRQ=y
459CONFIG_ASYNC_RAID6_TEST=m 505CONFIG_ASYNC_RAID6_TEST=m
460CONFIG_TEST_STRING_HELPERS=m 506CONFIG_TEST_STRING_HELPERS=m
507CONFIG_TEST_KSTRTOX=m
508CONFIG_TEST_LKM=m
509CONFIG_TEST_USER_COPY=m
510CONFIG_TEST_BPF=m
511CONFIG_TEST_FIRMWARE=m
512CONFIG_TEST_UDELAY=m
461CONFIG_EARLY_PRINTK=y 513CONFIG_EARLY_PRINTK=y
462CONFIG_ENCRYPTED_KEYS=m 514CONFIG_ENCRYPTED_KEYS=m
463CONFIG_CRYPTO_MANAGER=y 515CONFIG_CRYPTO_MANAGER=y
464CONFIG_CRYPTO_USER=m 516CONFIG_CRYPTO_USER=m
465CONFIG_CRYPTO_CRYPTD=m 517CONFIG_CRYPTO_CRYPTD=m
518CONFIG_CRYPTO_MCRYPTD=m
466CONFIG_CRYPTO_TEST=m 519CONFIG_CRYPTO_TEST=m
467CONFIG_CRYPTO_CCM=m 520CONFIG_CRYPTO_CCM=m
468CONFIG_CRYPTO_GCM=m 521CONFIG_CRYPTO_GCM=m
@@ -497,13 +550,10 @@ CONFIG_CRYPTO_LZO=m
497CONFIG_CRYPTO_LZ4=m 550CONFIG_CRYPTO_LZ4=m
498CONFIG_CRYPTO_LZ4HC=m 551CONFIG_CRYPTO_LZ4HC=m
499# CONFIG_CRYPTO_ANSI_CPRNG is not set 552# CONFIG_CRYPTO_ANSI_CPRNG is not set
553CONFIG_CRYPTO_DRBG_MENU=m
554CONFIG_CRYPTO_DRBG_HASH=y
555CONFIG_CRYPTO_DRBG_CTR=y
500CONFIG_CRYPTO_USER_API_HASH=m 556CONFIG_CRYPTO_USER_API_HASH=m
501CONFIG_CRYPTO_USER_API_SKCIPHER=m 557CONFIG_CRYPTO_USER_API_SKCIPHER=m
502# CONFIG_CRYPTO_HW is not set 558# CONFIG_CRYPTO_HW is not set
503CONFIG_XZ_DEC_X86=y
504CONFIG_XZ_DEC_POWERPC=y
505CONFIG_XZ_DEC_IA64=y
506CONFIG_XZ_DEC_ARM=y
507CONFIG_XZ_DEC_ARMTHUMB=y
508CONFIG_XZ_DEC_SPARC=y
509CONFIG_XZ_DEC_TEST=m 559CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 59aa42096000..d3cdb5447a2c 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_defconfig
@@ -39,9 +39,11 @@ CONFIG_SUN3X=y
39CONFIG_Q40=y 39CONFIG_Q40=y
40CONFIG_ZORRO=y 40CONFIG_ZORRO=y
41CONFIG_AMIGA_PCMCIA=y 41CONFIG_AMIGA_PCMCIA=y
42CONFIG_ATARI_ROM_ISA=y
42CONFIG_ZORRO_NAMES=y 43CONFIG_ZORRO_NAMES=y
43# CONFIG_COMPACTION is not set 44# CONFIG_COMPACTION is not set
44CONFIG_CLEANCACHE=y 45CONFIG_CLEANCACHE=y
46CONFIG_ZPOOL=m
45# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 47# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
46CONFIG_BINFMT_AOUT=m 48CONFIG_BINFMT_AOUT=m
47CONFIG_BINFMT_MISC=m 49CONFIG_BINFMT_MISC=m
@@ -61,6 +63,8 @@ CONFIG_NET_IPIP=m
61CONFIG_NET_IPGRE_DEMUX=m 63CONFIG_NET_IPGRE_DEMUX=m
62CONFIG_NET_IPGRE=m 64CONFIG_NET_IPGRE=m
63CONFIG_NET_IPVTI=m 65CONFIG_NET_IPVTI=m
66CONFIG_NET_FOU_IP_TUNNELS=y
67CONFIG_GENEVE=m
64CONFIG_INET_AH=m 68CONFIG_INET_AH=m
65CONFIG_INET_ESP=m 69CONFIG_INET_ESP=m
66CONFIG_INET_IPCOMP=m 70CONFIG_INET_IPCOMP=m
@@ -102,6 +106,8 @@ CONFIG_NFT_HASH=m
102CONFIG_NFT_COUNTER=m 106CONFIG_NFT_COUNTER=m
103CONFIG_NFT_LOG=m 107CONFIG_NFT_LOG=m
104CONFIG_NFT_LIMIT=m 108CONFIG_NFT_LIMIT=m
109CONFIG_NFT_MASQ=m
110CONFIG_NFT_REDIR=m
105CONFIG_NFT_NAT=m 111CONFIG_NFT_NAT=m
106CONFIG_NFT_QUEUE=m 112CONFIG_NFT_QUEUE=m
107CONFIG_NFT_REJECT=m 113CONFIG_NFT_REJECT=m
@@ -148,6 +154,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
148CONFIG_NETFILTER_XT_MATCH_OSF=m 154CONFIG_NETFILTER_XT_MATCH_OSF=m
149CONFIG_NETFILTER_XT_MATCH_OWNER=m 155CONFIG_NETFILTER_XT_MATCH_OWNER=m
150CONFIG_NETFILTER_XT_MATCH_POLICY=m 156CONFIG_NETFILTER_XT_MATCH_POLICY=m
157CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
151CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 158CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
152CONFIG_NETFILTER_XT_MATCH_QUOTA=m 159CONFIG_NETFILTER_XT_MATCH_QUOTA=m
153CONFIG_NETFILTER_XT_MATCH_RATEEST=m 160CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -169,6 +176,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
169CONFIG_IP_SET_HASH_IPPORT=m 176CONFIG_IP_SET_HASH_IPPORT=m
170CONFIG_IP_SET_HASH_IPPORTIP=m 177CONFIG_IP_SET_HASH_IPPORTIP=m
171CONFIG_IP_SET_HASH_IPPORTNET=m 178CONFIG_IP_SET_HASH_IPPORTNET=m
179CONFIG_IP_SET_HASH_MAC=m
172CONFIG_IP_SET_HASH_NETPORTNET=m 180CONFIG_IP_SET_HASH_NETPORTNET=m
173CONFIG_IP_SET_HASH_NET=m 181CONFIG_IP_SET_HASH_NET=m
174CONFIG_IP_SET_HASH_NETNET=m 182CONFIG_IP_SET_HASH_NETNET=m
@@ -176,9 +184,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
176CONFIG_IP_SET_HASH_NETIFACE=m 184CONFIG_IP_SET_HASH_NETIFACE=m
177CONFIG_IP_SET_LIST_SET=m 185CONFIG_IP_SET_LIST_SET=m
178CONFIG_NF_CONNTRACK_IPV4=m 186CONFIG_NF_CONNTRACK_IPV4=m
187CONFIG_NF_LOG_ARP=m
179CONFIG_NFT_CHAIN_ROUTE_IPV4=m 188CONFIG_NFT_CHAIN_ROUTE_IPV4=m
180CONFIG_NFT_CHAIN_NAT_IPV4=m
181CONFIG_NF_TABLES_ARP=m 189CONFIG_NF_TABLES_ARP=m
190CONFIG_NFT_CHAIN_NAT_IPV4=m
191CONFIG_NFT_MASQ_IPV4=m
192CONFIG_NFT_REDIR_IPV4=m
182CONFIG_IP_NF_IPTABLES=m 193CONFIG_IP_NF_IPTABLES=m
183CONFIG_IP_NF_MATCH_AH=m 194CONFIG_IP_NF_MATCH_AH=m
184CONFIG_IP_NF_MATCH_ECN=m 195CONFIG_IP_NF_MATCH_ECN=m
@@ -187,8 +198,7 @@ CONFIG_IP_NF_MATCH_TTL=m
187CONFIG_IP_NF_FILTER=m 198CONFIG_IP_NF_FILTER=m
188CONFIG_IP_NF_TARGET_REJECT=m 199CONFIG_IP_NF_TARGET_REJECT=m
189CONFIG_IP_NF_TARGET_SYNPROXY=m 200CONFIG_IP_NF_TARGET_SYNPROXY=m
190CONFIG_IP_NF_TARGET_ULOG=m 201CONFIG_IP_NF_NAT=m
191CONFIG_NF_NAT_IPV4=m
192CONFIG_IP_NF_TARGET_MASQUERADE=m 202CONFIG_IP_NF_TARGET_MASQUERADE=m
193CONFIG_IP_NF_TARGET_NETMAP=m 203CONFIG_IP_NF_TARGET_NETMAP=m
194CONFIG_IP_NF_TARGET_REDIRECT=m 204CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -203,6 +213,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
203CONFIG_NF_CONNTRACK_IPV6=m 213CONFIG_NF_CONNTRACK_IPV6=m
204CONFIG_NFT_CHAIN_ROUTE_IPV6=m 214CONFIG_NFT_CHAIN_ROUTE_IPV6=m
205CONFIG_NFT_CHAIN_NAT_IPV6=m 215CONFIG_NFT_CHAIN_NAT_IPV6=m
216CONFIG_NFT_MASQ_IPV6=m
217CONFIG_NFT_REDIR_IPV6=m
206CONFIG_IP6_NF_IPTABLES=m 218CONFIG_IP6_NF_IPTABLES=m
207CONFIG_IP6_NF_MATCH_AH=m 219CONFIG_IP6_NF_MATCH_AH=m
208CONFIG_IP6_NF_MATCH_EUI64=m 220CONFIG_IP6_NF_MATCH_EUI64=m
@@ -219,20 +231,46 @@ CONFIG_IP6_NF_TARGET_REJECT=m
219CONFIG_IP6_NF_TARGET_SYNPROXY=m 231CONFIG_IP6_NF_TARGET_SYNPROXY=m
220CONFIG_IP6_NF_MANGLE=m 232CONFIG_IP6_NF_MANGLE=m
221CONFIG_IP6_NF_RAW=m 233CONFIG_IP6_NF_RAW=m
222CONFIG_NF_NAT_IPV6=m 234CONFIG_IP6_NF_NAT=m
223CONFIG_IP6_NF_TARGET_MASQUERADE=m 235CONFIG_IP6_NF_TARGET_MASQUERADE=m
224CONFIG_IP6_NF_TARGET_NPT=m 236CONFIG_IP6_NF_TARGET_NPT=m
225CONFIG_NF_TABLES_BRIDGE=m 237CONFIG_NF_TABLES_BRIDGE=m
238CONFIG_NFT_BRIDGE_META=m
239CONFIG_NFT_BRIDGE_REJECT=m
240CONFIG_NF_LOG_BRIDGE=m
241CONFIG_BRIDGE_NF_EBTABLES=m
242CONFIG_BRIDGE_EBT_BROUTE=m
243CONFIG_BRIDGE_EBT_T_FILTER=m
244CONFIG_BRIDGE_EBT_T_NAT=m
245CONFIG_BRIDGE_EBT_802_3=m
246CONFIG_BRIDGE_EBT_AMONG=m
247CONFIG_BRIDGE_EBT_ARP=m
248CONFIG_BRIDGE_EBT_IP=m
249CONFIG_BRIDGE_EBT_IP6=m
250CONFIG_BRIDGE_EBT_LIMIT=m
251CONFIG_BRIDGE_EBT_MARK=m
252CONFIG_BRIDGE_EBT_PKTTYPE=m
253CONFIG_BRIDGE_EBT_STP=m
254CONFIG_BRIDGE_EBT_VLAN=m
255CONFIG_BRIDGE_EBT_ARPREPLY=m
256CONFIG_BRIDGE_EBT_DNAT=m
257CONFIG_BRIDGE_EBT_MARK_T=m
258CONFIG_BRIDGE_EBT_REDIRECT=m
259CONFIG_BRIDGE_EBT_SNAT=m
260CONFIG_BRIDGE_EBT_LOG=m
261CONFIG_BRIDGE_EBT_NFLOG=m
226CONFIG_IP_DCCP=m 262CONFIG_IP_DCCP=m
227# CONFIG_IP_DCCP_CCID3 is not set 263# CONFIG_IP_DCCP_CCID3 is not set
228CONFIG_SCTP_COOKIE_HMAC_SHA1=y 264CONFIG_SCTP_COOKIE_HMAC_SHA1=y
229CONFIG_RDS=m 265CONFIG_RDS=m
230CONFIG_RDS_TCP=m 266CONFIG_RDS_TCP=m
231CONFIG_L2TP=m 267CONFIG_L2TP=m
268CONFIG_BRIDGE=m
232CONFIG_ATALK=m 269CONFIG_ATALK=m
233CONFIG_DEV_APPLETALK=m 270CONFIG_DEV_APPLETALK=m
234CONFIG_IPDDP=m 271CONFIG_IPDDP=m
235CONFIG_IPDDP_ENCAP=y 272CONFIG_IPDDP_ENCAP=y
273CONFIG_6LOWPAN=m
236CONFIG_DNS_RESOLVER=y 274CONFIG_DNS_RESOLVER=y
237CONFIG_BATMAN_ADV=m 275CONFIG_BATMAN_ADV=m
238CONFIG_BATMAN_ADV_DAT=y 276CONFIG_BATMAN_ADV_DAT=y
@@ -241,9 +279,10 @@ CONFIG_BATMAN_ADV_MCAST=y
241CONFIG_NETLINK_DIAG=m 279CONFIG_NETLINK_DIAG=m
242CONFIG_NET_MPLS_GSO=m 280CONFIG_NET_MPLS_GSO=m
243# CONFIG_WIRELESS is not set 281# CONFIG_WIRELESS is not set
282# CONFIG_UEVENT_HELPER is not set
244CONFIG_DEVTMPFS=y 283CONFIG_DEVTMPFS=y
284CONFIG_DEVTMPFS_MOUNT=y
245# CONFIG_FIRMWARE_IN_KERNEL is not set 285# CONFIG_FIRMWARE_IN_KERNEL is not set
246# CONFIG_FW_LOADER_USER_HELPER is not set
247CONFIG_CONNECTOR=m 286CONFIG_CONNECTOR=m
248CONFIG_PARPORT=m 287CONFIG_PARPORT=m
249CONFIG_PARPORT_PC=m 288CONFIG_PARPORT_PC=m
@@ -329,6 +368,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
329CONFIG_NET_TEAM_MODE_RANDOM=m 368CONFIG_NET_TEAM_MODE_RANDOM=m
330CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 369CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
331CONFIG_NET_TEAM_MODE_LOADBALANCE=m 370CONFIG_NET_TEAM_MODE_LOADBALANCE=m
371CONFIG_MACVLAN=m
372CONFIG_MACVTAP=m
373CONFIG_IPVLAN=m
332CONFIG_VXLAN=m 374CONFIG_VXLAN=m
333CONFIG_NETCONSOLE=m 375CONFIG_NETCONSOLE=m
334CONFIG_NETCONSOLE_DYNAMIC=y 376CONFIG_NETCONSOLE_DYNAMIC=y
@@ -352,11 +394,14 @@ CONFIG_MVME16x_NET=y
352CONFIG_MACSONIC=y 394CONFIG_MACSONIC=y
353CONFIG_HYDRA=y 395CONFIG_HYDRA=y
354CONFIG_MAC8390=y 396CONFIG_MAC8390=y
355CONFIG_NE2000=m 397CONFIG_NE2000=y
356CONFIG_APNE=y 398CONFIG_APNE=y
357CONFIG_ZORRO8390=y 399CONFIG_ZORRO8390=y
400# CONFIG_NET_VENDOR_QUALCOMM is not set
401# CONFIG_NET_VENDOR_ROCKER is not set
358# CONFIG_NET_VENDOR_SAMSUNG is not set 402# CONFIG_NET_VENDOR_SAMSUNG is not set
359# CONFIG_NET_VENDOR_SEEQ is not set 403# CONFIG_NET_VENDOR_SEEQ is not set
404CONFIG_SMC91X=y
360# CONFIG_NET_VENDOR_STMICRO is not set 405# CONFIG_NET_VENDOR_STMICRO is not set
361# CONFIG_NET_VENDOR_VIA is not set 406# CONFIG_NET_VENDOR_VIA is not set
362# CONFIG_NET_VENDOR_WIZNET is not set 407# CONFIG_NET_VENDOR_WIZNET is not set
@@ -423,6 +468,7 @@ CONFIG_HID=m
423CONFIG_HIDRAW=y 468CONFIG_HIDRAW=y
424CONFIG_UHID=m 469CONFIG_UHID=m
425# CONFIG_HID_GENERIC is not set 470# CONFIG_HID_GENERIC is not set
471# CONFIG_HID_PLANTRONICS is not set
426# CONFIG_USB_SUPPORT is not set 472# CONFIG_USB_SUPPORT is not set
427CONFIG_RTC_CLASS=y 473CONFIG_RTC_CLASS=y
428CONFIG_RTC_DRV_MSM6242=m 474CONFIG_RTC_DRV_MSM6242=m
@@ -435,6 +481,8 @@ CONFIG_NATFEAT=y
435CONFIG_NFBLOCK=y 481CONFIG_NFBLOCK=y
436CONFIG_NFCON=y 482CONFIG_NFCON=y
437CONFIG_NFETH=y 483CONFIG_NFETH=y
484CONFIG_ATARI_ETHERNAT=y
485CONFIG_ATARI_ETHERNEC=y
438CONFIG_ATARI_DSP56K=m 486CONFIG_ATARI_DSP56K=m
439CONFIG_AMIGA_BUILTIN_SERIAL=y 487CONFIG_AMIGA_BUILTIN_SERIAL=y
440CONFIG_SERIAL_CONSOLE=y 488CONFIG_SERIAL_CONSOLE=y
@@ -450,6 +498,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
450CONFIG_AUTOFS4_FS=m 498CONFIG_AUTOFS4_FS=m
451CONFIG_FUSE_FS=m 499CONFIG_FUSE_FS=m
452CONFIG_CUSE=m 500CONFIG_CUSE=m
501CONFIG_OVERLAY_FS=m
453CONFIG_ISO9660_FS=y 502CONFIG_ISO9660_FS=y
454CONFIG_JOLIET=y 503CONFIG_JOLIET=y
455CONFIG_ZISOFS=y 504CONFIG_ZISOFS=y
@@ -465,6 +514,7 @@ CONFIG_HFS_FS=m
465CONFIG_HFSPLUS_FS=m 514CONFIG_HFSPLUS_FS=m
466CONFIG_CRAMFS=m 515CONFIG_CRAMFS=m
467CONFIG_SQUASHFS=m 516CONFIG_SQUASHFS=m
517CONFIG_SQUASHFS_LZ4=y
468CONFIG_SQUASHFS_LZO=y 518CONFIG_SQUASHFS_LZO=y
469CONFIG_MINIX_FS=m 519CONFIG_MINIX_FS=m
470CONFIG_OMFS_FS=m 520CONFIG_OMFS_FS=m
@@ -534,11 +584,18 @@ CONFIG_DLM=m
534CONFIG_MAGIC_SYSRQ=y 584CONFIG_MAGIC_SYSRQ=y
535CONFIG_ASYNC_RAID6_TEST=m 585CONFIG_ASYNC_RAID6_TEST=m
536CONFIG_TEST_STRING_HELPERS=m 586CONFIG_TEST_STRING_HELPERS=m
587CONFIG_TEST_KSTRTOX=m
588CONFIG_TEST_LKM=m
589CONFIG_TEST_USER_COPY=m
590CONFIG_TEST_BPF=m
591CONFIG_TEST_FIRMWARE=m
592CONFIG_TEST_UDELAY=m
537CONFIG_EARLY_PRINTK=y 593CONFIG_EARLY_PRINTK=y
538CONFIG_ENCRYPTED_KEYS=m 594CONFIG_ENCRYPTED_KEYS=m
539CONFIG_CRYPTO_MANAGER=y 595CONFIG_CRYPTO_MANAGER=y
540CONFIG_CRYPTO_USER=m 596CONFIG_CRYPTO_USER=m
541CONFIG_CRYPTO_CRYPTD=m 597CONFIG_CRYPTO_CRYPTD=m
598CONFIG_CRYPTO_MCRYPTD=m
542CONFIG_CRYPTO_TEST=m 599CONFIG_CRYPTO_TEST=m
543CONFIG_CRYPTO_CCM=m 600CONFIG_CRYPTO_CCM=m
544CONFIG_CRYPTO_GCM=m 601CONFIG_CRYPTO_GCM=m
@@ -573,13 +630,10 @@ CONFIG_CRYPTO_LZO=m
573CONFIG_CRYPTO_LZ4=m 630CONFIG_CRYPTO_LZ4=m
574CONFIG_CRYPTO_LZ4HC=m 631CONFIG_CRYPTO_LZ4HC=m
575# CONFIG_CRYPTO_ANSI_CPRNG is not set 632# CONFIG_CRYPTO_ANSI_CPRNG is not set
633CONFIG_CRYPTO_DRBG_MENU=m
634CONFIG_CRYPTO_DRBG_HASH=y
635CONFIG_CRYPTO_DRBG_CTR=y
576CONFIG_CRYPTO_USER_API_HASH=m 636CONFIG_CRYPTO_USER_API_HASH=m
577CONFIG_CRYPTO_USER_API_SKCIPHER=m 637CONFIG_CRYPTO_USER_API_SKCIPHER=m
578# CONFIG_CRYPTO_HW is not set 638# CONFIG_CRYPTO_HW is not set
579CONFIG_XZ_DEC_X86=y
580CONFIG_XZ_DEC_POWERPC=y
581CONFIG_XZ_DEC_IA64=y
582CONFIG_XZ_DEC_ARM=y
583CONFIG_XZ_DEC_ARMTHUMB=y
584CONFIG_XZ_DEC_SPARC=y
585CONFIG_XZ_DEC_TEST=m 639CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index 066b24af095e..b4c76640973e 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_defconfig
@@ -31,6 +31,7 @@ CONFIG_VME=y
31CONFIG_MVME147=y 31CONFIG_MVME147=y
32# CONFIG_COMPACTION is not set 32# CONFIG_COMPACTION is not set
33CONFIG_CLEANCACHE=y 33CONFIG_CLEANCACHE=y
34CONFIG_ZPOOL=m
34# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
35CONFIG_BINFMT_AOUT=m 36CONFIG_BINFMT_AOUT=m
36CONFIG_BINFMT_MISC=m 37CONFIG_BINFMT_MISC=m
@@ -50,6 +51,8 @@ CONFIG_NET_IPIP=m
50CONFIG_NET_IPGRE_DEMUX=m 51CONFIG_NET_IPGRE_DEMUX=m
51CONFIG_NET_IPGRE=m 52CONFIG_NET_IPGRE=m
52CONFIG_NET_IPVTI=m 53CONFIG_NET_IPVTI=m
54CONFIG_NET_FOU_IP_TUNNELS=y
55CONFIG_GENEVE=m
53CONFIG_INET_AH=m 56CONFIG_INET_AH=m
54CONFIG_INET_ESP=m 57CONFIG_INET_ESP=m
55CONFIG_INET_IPCOMP=m 58CONFIG_INET_IPCOMP=m
@@ -91,6 +94,8 @@ CONFIG_NFT_HASH=m
91CONFIG_NFT_COUNTER=m 94CONFIG_NFT_COUNTER=m
92CONFIG_NFT_LOG=m 95CONFIG_NFT_LOG=m
93CONFIG_NFT_LIMIT=m 96CONFIG_NFT_LIMIT=m
97CONFIG_NFT_MASQ=m
98CONFIG_NFT_REDIR=m
94CONFIG_NFT_NAT=m 99CONFIG_NFT_NAT=m
95CONFIG_NFT_QUEUE=m 100CONFIG_NFT_QUEUE=m
96CONFIG_NFT_REJECT=m 101CONFIG_NFT_REJECT=m
@@ -137,6 +142,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
137CONFIG_NETFILTER_XT_MATCH_OSF=m 142CONFIG_NETFILTER_XT_MATCH_OSF=m
138CONFIG_NETFILTER_XT_MATCH_OWNER=m 143CONFIG_NETFILTER_XT_MATCH_OWNER=m
139CONFIG_NETFILTER_XT_MATCH_POLICY=m 144CONFIG_NETFILTER_XT_MATCH_POLICY=m
145CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
140CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 146CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
141CONFIG_NETFILTER_XT_MATCH_QUOTA=m 147CONFIG_NETFILTER_XT_MATCH_QUOTA=m
142CONFIG_NETFILTER_XT_MATCH_RATEEST=m 148CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -158,6 +164,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
158CONFIG_IP_SET_HASH_IPPORT=m 164CONFIG_IP_SET_HASH_IPPORT=m
159CONFIG_IP_SET_HASH_IPPORTIP=m 165CONFIG_IP_SET_HASH_IPPORTIP=m
160CONFIG_IP_SET_HASH_IPPORTNET=m 166CONFIG_IP_SET_HASH_IPPORTNET=m
167CONFIG_IP_SET_HASH_MAC=m
161CONFIG_IP_SET_HASH_NETPORTNET=m 168CONFIG_IP_SET_HASH_NETPORTNET=m
162CONFIG_IP_SET_HASH_NET=m 169CONFIG_IP_SET_HASH_NET=m
163CONFIG_IP_SET_HASH_NETNET=m 170CONFIG_IP_SET_HASH_NETNET=m
@@ -165,9 +172,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
165CONFIG_IP_SET_HASH_NETIFACE=m 172CONFIG_IP_SET_HASH_NETIFACE=m
166CONFIG_IP_SET_LIST_SET=m 173CONFIG_IP_SET_LIST_SET=m
167CONFIG_NF_CONNTRACK_IPV4=m 174CONFIG_NF_CONNTRACK_IPV4=m
175CONFIG_NF_LOG_ARP=m
168CONFIG_NFT_CHAIN_ROUTE_IPV4=m 176CONFIG_NFT_CHAIN_ROUTE_IPV4=m
169CONFIG_NFT_CHAIN_NAT_IPV4=m
170CONFIG_NF_TABLES_ARP=m 177CONFIG_NF_TABLES_ARP=m
178CONFIG_NFT_CHAIN_NAT_IPV4=m
179CONFIG_NFT_MASQ_IPV4=m
180CONFIG_NFT_REDIR_IPV4=m
171CONFIG_IP_NF_IPTABLES=m 181CONFIG_IP_NF_IPTABLES=m
172CONFIG_IP_NF_MATCH_AH=m 182CONFIG_IP_NF_MATCH_AH=m
173CONFIG_IP_NF_MATCH_ECN=m 183CONFIG_IP_NF_MATCH_ECN=m
@@ -176,8 +186,7 @@ CONFIG_IP_NF_MATCH_TTL=m
176CONFIG_IP_NF_FILTER=m 186CONFIG_IP_NF_FILTER=m
177CONFIG_IP_NF_TARGET_REJECT=m 187CONFIG_IP_NF_TARGET_REJECT=m
178CONFIG_IP_NF_TARGET_SYNPROXY=m 188CONFIG_IP_NF_TARGET_SYNPROXY=m
179CONFIG_IP_NF_TARGET_ULOG=m 189CONFIG_IP_NF_NAT=m
180CONFIG_NF_NAT_IPV4=m
181CONFIG_IP_NF_TARGET_MASQUERADE=m 190CONFIG_IP_NF_TARGET_MASQUERADE=m
182CONFIG_IP_NF_TARGET_NETMAP=m 191CONFIG_IP_NF_TARGET_NETMAP=m
183CONFIG_IP_NF_TARGET_REDIRECT=m 192CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -192,6 +201,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
192CONFIG_NF_CONNTRACK_IPV6=m 201CONFIG_NF_CONNTRACK_IPV6=m
193CONFIG_NFT_CHAIN_ROUTE_IPV6=m 202CONFIG_NFT_CHAIN_ROUTE_IPV6=m
194CONFIG_NFT_CHAIN_NAT_IPV6=m 203CONFIG_NFT_CHAIN_NAT_IPV6=m
204CONFIG_NFT_MASQ_IPV6=m
205CONFIG_NFT_REDIR_IPV6=m
195CONFIG_IP6_NF_IPTABLES=m 206CONFIG_IP6_NF_IPTABLES=m
196CONFIG_IP6_NF_MATCH_AH=m 207CONFIG_IP6_NF_MATCH_AH=m
197CONFIG_IP6_NF_MATCH_EUI64=m 208CONFIG_IP6_NF_MATCH_EUI64=m
@@ -208,17 +219,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
208CONFIG_IP6_NF_TARGET_SYNPROXY=m 219CONFIG_IP6_NF_TARGET_SYNPROXY=m
209CONFIG_IP6_NF_MANGLE=m 220CONFIG_IP6_NF_MANGLE=m
210CONFIG_IP6_NF_RAW=m 221CONFIG_IP6_NF_RAW=m
211CONFIG_NF_NAT_IPV6=m 222CONFIG_IP6_NF_NAT=m
212CONFIG_IP6_NF_TARGET_MASQUERADE=m 223CONFIG_IP6_NF_TARGET_MASQUERADE=m
213CONFIG_IP6_NF_TARGET_NPT=m 224CONFIG_IP6_NF_TARGET_NPT=m
214CONFIG_NF_TABLES_BRIDGE=m 225CONFIG_NF_TABLES_BRIDGE=m
226CONFIG_NFT_BRIDGE_META=m
227CONFIG_NFT_BRIDGE_REJECT=m
228CONFIG_NF_LOG_BRIDGE=m
229CONFIG_BRIDGE_NF_EBTABLES=m
230CONFIG_BRIDGE_EBT_BROUTE=m
231CONFIG_BRIDGE_EBT_T_FILTER=m
232CONFIG_BRIDGE_EBT_T_NAT=m
233CONFIG_BRIDGE_EBT_802_3=m
234CONFIG_BRIDGE_EBT_AMONG=m
235CONFIG_BRIDGE_EBT_ARP=m
236CONFIG_BRIDGE_EBT_IP=m
237CONFIG_BRIDGE_EBT_IP6=m
238CONFIG_BRIDGE_EBT_LIMIT=m
239CONFIG_BRIDGE_EBT_MARK=m
240CONFIG_BRIDGE_EBT_PKTTYPE=m
241CONFIG_BRIDGE_EBT_STP=m
242CONFIG_BRIDGE_EBT_VLAN=m
243CONFIG_BRIDGE_EBT_ARPREPLY=m
244CONFIG_BRIDGE_EBT_DNAT=m
245CONFIG_BRIDGE_EBT_MARK_T=m
246CONFIG_BRIDGE_EBT_REDIRECT=m
247CONFIG_BRIDGE_EBT_SNAT=m
248CONFIG_BRIDGE_EBT_LOG=m
249CONFIG_BRIDGE_EBT_NFLOG=m
215CONFIG_IP_DCCP=m 250CONFIG_IP_DCCP=m
216# CONFIG_IP_DCCP_CCID3 is not set 251# CONFIG_IP_DCCP_CCID3 is not set
217CONFIG_SCTP_COOKIE_HMAC_SHA1=y 252CONFIG_SCTP_COOKIE_HMAC_SHA1=y
218CONFIG_RDS=m 253CONFIG_RDS=m
219CONFIG_RDS_TCP=m 254CONFIG_RDS_TCP=m
220CONFIG_L2TP=m 255CONFIG_L2TP=m
256CONFIG_BRIDGE=m
221CONFIG_ATALK=m 257CONFIG_ATALK=m
258CONFIG_6LOWPAN=m
222CONFIG_DNS_RESOLVER=y 259CONFIG_DNS_RESOLVER=y
223CONFIG_BATMAN_ADV=m 260CONFIG_BATMAN_ADV=m
224CONFIG_BATMAN_ADV_DAT=y 261CONFIG_BATMAN_ADV_DAT=y
@@ -227,9 +264,10 @@ CONFIG_BATMAN_ADV_MCAST=y
227CONFIG_NETLINK_DIAG=m 264CONFIG_NETLINK_DIAG=m
228CONFIG_NET_MPLS_GSO=m 265CONFIG_NET_MPLS_GSO=m
229# CONFIG_WIRELESS is not set 266# CONFIG_WIRELESS is not set
267# CONFIG_UEVENT_HELPER is not set
230CONFIG_DEVTMPFS=y 268CONFIG_DEVTMPFS=y
269CONFIG_DEVTMPFS_MOUNT=y
231# CONFIG_FIRMWARE_IN_KERNEL is not set 270# CONFIG_FIRMWARE_IN_KERNEL is not set
232# CONFIG_FW_LOADER_USER_HELPER is not set
233CONFIG_CONNECTOR=m 271CONFIG_CONNECTOR=m
234CONFIG_BLK_DEV_LOOP=y 272CONFIG_BLK_DEV_LOOP=y
235CONFIG_BLK_DEV_CRYPTOLOOP=m 273CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -279,6 +317,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
279CONFIG_NET_TEAM_MODE_RANDOM=m 317CONFIG_NET_TEAM_MODE_RANDOM=m
280CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 318CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
281CONFIG_NET_TEAM_MODE_LOADBALANCE=m 319CONFIG_NET_TEAM_MODE_LOADBALANCE=m
320CONFIG_MACVLAN=m
321CONFIG_MACVTAP=m
322CONFIG_IPVLAN=m
282CONFIG_VXLAN=m 323CONFIG_VXLAN=m
283CONFIG_NETCONSOLE=m 324CONFIG_NETCONSOLE=m
284CONFIG_NETCONSOLE_DYNAMIC=y 325CONFIG_NETCONSOLE_DYNAMIC=y
@@ -290,6 +331,8 @@ CONFIG_MVME147_NET=y
290# CONFIG_NET_VENDOR_MARVELL is not set 331# CONFIG_NET_VENDOR_MARVELL is not set
291# CONFIG_NET_VENDOR_MICREL is not set 332# CONFIG_NET_VENDOR_MICREL is not set
292# CONFIG_NET_VENDOR_NATSEMI is not set 333# CONFIG_NET_VENDOR_NATSEMI is not set
334# CONFIG_NET_VENDOR_QUALCOMM is not set
335# CONFIG_NET_VENDOR_ROCKER is not set
293# CONFIG_NET_VENDOR_SAMSUNG is not set 336# CONFIG_NET_VENDOR_SAMSUNG is not set
294# CONFIG_NET_VENDOR_SEEQ is not set 337# CONFIG_NET_VENDOR_SEEQ is not set
295# CONFIG_NET_VENDOR_STMICRO is not set 338# CONFIG_NET_VENDOR_STMICRO is not set
@@ -326,6 +369,7 @@ CONFIG_HID=m
326CONFIG_HIDRAW=y 369CONFIG_HIDRAW=y
327CONFIG_UHID=m 370CONFIG_UHID=m
328# CONFIG_HID_GENERIC is not set 371# CONFIG_HID_GENERIC is not set
372# CONFIG_HID_PLANTRONICS is not set
329# CONFIG_USB_SUPPORT is not set 373# CONFIG_USB_SUPPORT is not set
330CONFIG_RTC_CLASS=y 374CONFIG_RTC_CLASS=y
331CONFIG_RTC_DRV_GENERIC=m 375CONFIG_RTC_DRV_GENERIC=m
@@ -343,6 +387,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
343CONFIG_AUTOFS4_FS=m 387CONFIG_AUTOFS4_FS=m
344CONFIG_FUSE_FS=m 388CONFIG_FUSE_FS=m
345CONFIG_CUSE=m 389CONFIG_CUSE=m
390CONFIG_OVERLAY_FS=m
346CONFIG_ISO9660_FS=y 391CONFIG_ISO9660_FS=y
347CONFIG_JOLIET=y 392CONFIG_JOLIET=y
348CONFIG_ZISOFS=y 393CONFIG_ZISOFS=y
@@ -358,6 +403,7 @@ CONFIG_HFS_FS=m
358CONFIG_HFSPLUS_FS=m 403CONFIG_HFSPLUS_FS=m
359CONFIG_CRAMFS=m 404CONFIG_CRAMFS=m
360CONFIG_SQUASHFS=m 405CONFIG_SQUASHFS=m
406CONFIG_SQUASHFS_LZ4=y
361CONFIG_SQUASHFS_LZO=y 407CONFIG_SQUASHFS_LZO=y
362CONFIG_MINIX_FS=m 408CONFIG_MINIX_FS=m
363CONFIG_OMFS_FS=m 409CONFIG_OMFS_FS=m
@@ -427,10 +473,18 @@ CONFIG_DLM=m
427CONFIG_MAGIC_SYSRQ=y 473CONFIG_MAGIC_SYSRQ=y
428CONFIG_ASYNC_RAID6_TEST=m 474CONFIG_ASYNC_RAID6_TEST=m
429CONFIG_TEST_STRING_HELPERS=m 475CONFIG_TEST_STRING_HELPERS=m
476CONFIG_TEST_KSTRTOX=m
477CONFIG_TEST_LKM=m
478CONFIG_TEST_USER_COPY=m
479CONFIG_TEST_BPF=m
480CONFIG_TEST_FIRMWARE=m
481CONFIG_TEST_UDELAY=m
482CONFIG_EARLY_PRINTK=y
430CONFIG_ENCRYPTED_KEYS=m 483CONFIG_ENCRYPTED_KEYS=m
431CONFIG_CRYPTO_MANAGER=y 484CONFIG_CRYPTO_MANAGER=y
432CONFIG_CRYPTO_USER=m 485CONFIG_CRYPTO_USER=m
433CONFIG_CRYPTO_CRYPTD=m 486CONFIG_CRYPTO_CRYPTD=m
487CONFIG_CRYPTO_MCRYPTD=m
434CONFIG_CRYPTO_TEST=m 488CONFIG_CRYPTO_TEST=m
435CONFIG_CRYPTO_CCM=m 489CONFIG_CRYPTO_CCM=m
436CONFIG_CRYPTO_GCM=m 490CONFIG_CRYPTO_GCM=m
@@ -465,13 +519,10 @@ CONFIG_CRYPTO_LZO=m
465CONFIG_CRYPTO_LZ4=m 519CONFIG_CRYPTO_LZ4=m
466CONFIG_CRYPTO_LZ4HC=m 520CONFIG_CRYPTO_LZ4HC=m
467# CONFIG_CRYPTO_ANSI_CPRNG is not set 521# CONFIG_CRYPTO_ANSI_CPRNG is not set
522CONFIG_CRYPTO_DRBG_MENU=m
523CONFIG_CRYPTO_DRBG_HASH=y
524CONFIG_CRYPTO_DRBG_CTR=y
468CONFIG_CRYPTO_USER_API_HASH=m 525CONFIG_CRYPTO_USER_API_HASH=m
469CONFIG_CRYPTO_USER_API_SKCIPHER=m 526CONFIG_CRYPTO_USER_API_SKCIPHER=m
470# CONFIG_CRYPTO_HW is not set 527# CONFIG_CRYPTO_HW is not set
471CONFIG_XZ_DEC_X86=y
472CONFIG_XZ_DEC_POWERPC=y
473CONFIG_XZ_DEC_IA64=y
474CONFIG_XZ_DEC_ARM=y
475CONFIG_XZ_DEC_ARMTHUMB=y
476CONFIG_XZ_DEC_SPARC=y
477CONFIG_XZ_DEC_TEST=m 528CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index 9326ea664a5b..0d4a26f9b58c 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_defconfig
@@ -32,6 +32,7 @@ CONFIG_VME=y
32CONFIG_MVME16x=y 32CONFIG_MVME16x=y
33# CONFIG_COMPACTION is not set 33# CONFIG_COMPACTION is not set
34CONFIG_CLEANCACHE=y 34CONFIG_CLEANCACHE=y
35CONFIG_ZPOOL=m
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 36# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
36CONFIG_BINFMT_AOUT=m 37CONFIG_BINFMT_AOUT=m
37CONFIG_BINFMT_MISC=m 38CONFIG_BINFMT_MISC=m
@@ -51,6 +52,8 @@ CONFIG_NET_IPIP=m
51CONFIG_NET_IPGRE_DEMUX=m 52CONFIG_NET_IPGRE_DEMUX=m
52CONFIG_NET_IPGRE=m 53CONFIG_NET_IPGRE=m
53CONFIG_NET_IPVTI=m 54CONFIG_NET_IPVTI=m
55CONFIG_NET_FOU_IP_TUNNELS=y
56CONFIG_GENEVE=m
54CONFIG_INET_AH=m 57CONFIG_INET_AH=m
55CONFIG_INET_ESP=m 58CONFIG_INET_ESP=m
56CONFIG_INET_IPCOMP=m 59CONFIG_INET_IPCOMP=m
@@ -92,6 +95,8 @@ CONFIG_NFT_HASH=m
92CONFIG_NFT_COUNTER=m 95CONFIG_NFT_COUNTER=m
93CONFIG_NFT_LOG=m 96CONFIG_NFT_LOG=m
94CONFIG_NFT_LIMIT=m 97CONFIG_NFT_LIMIT=m
98CONFIG_NFT_MASQ=m
99CONFIG_NFT_REDIR=m
95CONFIG_NFT_NAT=m 100CONFIG_NFT_NAT=m
96CONFIG_NFT_QUEUE=m 101CONFIG_NFT_QUEUE=m
97CONFIG_NFT_REJECT=m 102CONFIG_NFT_REJECT=m
@@ -138,6 +143,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
138CONFIG_NETFILTER_XT_MATCH_OSF=m 143CONFIG_NETFILTER_XT_MATCH_OSF=m
139CONFIG_NETFILTER_XT_MATCH_OWNER=m 144CONFIG_NETFILTER_XT_MATCH_OWNER=m
140CONFIG_NETFILTER_XT_MATCH_POLICY=m 145CONFIG_NETFILTER_XT_MATCH_POLICY=m
146CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
141CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 147CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
142CONFIG_NETFILTER_XT_MATCH_QUOTA=m 148CONFIG_NETFILTER_XT_MATCH_QUOTA=m
143CONFIG_NETFILTER_XT_MATCH_RATEEST=m 149CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -159,6 +165,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
159CONFIG_IP_SET_HASH_IPPORT=m 165CONFIG_IP_SET_HASH_IPPORT=m
160CONFIG_IP_SET_HASH_IPPORTIP=m 166CONFIG_IP_SET_HASH_IPPORTIP=m
161CONFIG_IP_SET_HASH_IPPORTNET=m 167CONFIG_IP_SET_HASH_IPPORTNET=m
168CONFIG_IP_SET_HASH_MAC=m
162CONFIG_IP_SET_HASH_NETPORTNET=m 169CONFIG_IP_SET_HASH_NETPORTNET=m
163CONFIG_IP_SET_HASH_NET=m 170CONFIG_IP_SET_HASH_NET=m
164CONFIG_IP_SET_HASH_NETNET=m 171CONFIG_IP_SET_HASH_NETNET=m
@@ -166,9 +173,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
166CONFIG_IP_SET_HASH_NETIFACE=m 173CONFIG_IP_SET_HASH_NETIFACE=m
167CONFIG_IP_SET_LIST_SET=m 174CONFIG_IP_SET_LIST_SET=m
168CONFIG_NF_CONNTRACK_IPV4=m 175CONFIG_NF_CONNTRACK_IPV4=m
176CONFIG_NF_LOG_ARP=m
169CONFIG_NFT_CHAIN_ROUTE_IPV4=m 177CONFIG_NFT_CHAIN_ROUTE_IPV4=m
170CONFIG_NFT_CHAIN_NAT_IPV4=m
171CONFIG_NF_TABLES_ARP=m 178CONFIG_NF_TABLES_ARP=m
179CONFIG_NFT_CHAIN_NAT_IPV4=m
180CONFIG_NFT_MASQ_IPV4=m
181CONFIG_NFT_REDIR_IPV4=m
172CONFIG_IP_NF_IPTABLES=m 182CONFIG_IP_NF_IPTABLES=m
173CONFIG_IP_NF_MATCH_AH=m 183CONFIG_IP_NF_MATCH_AH=m
174CONFIG_IP_NF_MATCH_ECN=m 184CONFIG_IP_NF_MATCH_ECN=m
@@ -177,8 +187,7 @@ CONFIG_IP_NF_MATCH_TTL=m
177CONFIG_IP_NF_FILTER=m 187CONFIG_IP_NF_FILTER=m
178CONFIG_IP_NF_TARGET_REJECT=m 188CONFIG_IP_NF_TARGET_REJECT=m
179CONFIG_IP_NF_TARGET_SYNPROXY=m 189CONFIG_IP_NF_TARGET_SYNPROXY=m
180CONFIG_IP_NF_TARGET_ULOG=m 190CONFIG_IP_NF_NAT=m
181CONFIG_NF_NAT_IPV4=m
182CONFIG_IP_NF_TARGET_MASQUERADE=m 191CONFIG_IP_NF_TARGET_MASQUERADE=m
183CONFIG_IP_NF_TARGET_NETMAP=m 192CONFIG_IP_NF_TARGET_NETMAP=m
184CONFIG_IP_NF_TARGET_REDIRECT=m 193CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -193,6 +202,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
193CONFIG_NF_CONNTRACK_IPV6=m 202CONFIG_NF_CONNTRACK_IPV6=m
194CONFIG_NFT_CHAIN_ROUTE_IPV6=m 203CONFIG_NFT_CHAIN_ROUTE_IPV6=m
195CONFIG_NFT_CHAIN_NAT_IPV6=m 204CONFIG_NFT_CHAIN_NAT_IPV6=m
205CONFIG_NFT_MASQ_IPV6=m
206CONFIG_NFT_REDIR_IPV6=m
196CONFIG_IP6_NF_IPTABLES=m 207CONFIG_IP6_NF_IPTABLES=m
197CONFIG_IP6_NF_MATCH_AH=m 208CONFIG_IP6_NF_MATCH_AH=m
198CONFIG_IP6_NF_MATCH_EUI64=m 209CONFIG_IP6_NF_MATCH_EUI64=m
@@ -209,17 +220,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
209CONFIG_IP6_NF_TARGET_SYNPROXY=m 220CONFIG_IP6_NF_TARGET_SYNPROXY=m
210CONFIG_IP6_NF_MANGLE=m 221CONFIG_IP6_NF_MANGLE=m
211CONFIG_IP6_NF_RAW=m 222CONFIG_IP6_NF_RAW=m
212CONFIG_NF_NAT_IPV6=m 223CONFIG_IP6_NF_NAT=m
213CONFIG_IP6_NF_TARGET_MASQUERADE=m 224CONFIG_IP6_NF_TARGET_MASQUERADE=m
214CONFIG_IP6_NF_TARGET_NPT=m 225CONFIG_IP6_NF_TARGET_NPT=m
215CONFIG_NF_TABLES_BRIDGE=m 226CONFIG_NF_TABLES_BRIDGE=m
227CONFIG_NFT_BRIDGE_META=m
228CONFIG_NFT_BRIDGE_REJECT=m
229CONFIG_NF_LOG_BRIDGE=m
230CONFIG_BRIDGE_NF_EBTABLES=m
231CONFIG_BRIDGE_EBT_BROUTE=m
232CONFIG_BRIDGE_EBT_T_FILTER=m
233CONFIG_BRIDGE_EBT_T_NAT=m
234CONFIG_BRIDGE_EBT_802_3=m
235CONFIG_BRIDGE_EBT_AMONG=m
236CONFIG_BRIDGE_EBT_ARP=m
237CONFIG_BRIDGE_EBT_IP=m
238CONFIG_BRIDGE_EBT_IP6=m
239CONFIG_BRIDGE_EBT_LIMIT=m
240CONFIG_BRIDGE_EBT_MARK=m
241CONFIG_BRIDGE_EBT_PKTTYPE=m
242CONFIG_BRIDGE_EBT_STP=m
243CONFIG_BRIDGE_EBT_VLAN=m
244CONFIG_BRIDGE_EBT_ARPREPLY=m
245CONFIG_BRIDGE_EBT_DNAT=m
246CONFIG_BRIDGE_EBT_MARK_T=m
247CONFIG_BRIDGE_EBT_REDIRECT=m
248CONFIG_BRIDGE_EBT_SNAT=m
249CONFIG_BRIDGE_EBT_LOG=m
250CONFIG_BRIDGE_EBT_NFLOG=m
216CONFIG_IP_DCCP=m 251CONFIG_IP_DCCP=m
217# CONFIG_IP_DCCP_CCID3 is not set 252# CONFIG_IP_DCCP_CCID3 is not set
218CONFIG_SCTP_COOKIE_HMAC_SHA1=y 253CONFIG_SCTP_COOKIE_HMAC_SHA1=y
219CONFIG_RDS=m 254CONFIG_RDS=m
220CONFIG_RDS_TCP=m 255CONFIG_RDS_TCP=m
221CONFIG_L2TP=m 256CONFIG_L2TP=m
257CONFIG_BRIDGE=m
222CONFIG_ATALK=m 258CONFIG_ATALK=m
259CONFIG_6LOWPAN=m
223CONFIG_DNS_RESOLVER=y 260CONFIG_DNS_RESOLVER=y
224CONFIG_BATMAN_ADV=m 261CONFIG_BATMAN_ADV=m
225CONFIG_BATMAN_ADV_DAT=y 262CONFIG_BATMAN_ADV_DAT=y
@@ -228,9 +265,10 @@ CONFIG_BATMAN_ADV_MCAST=y
228CONFIG_NETLINK_DIAG=m 265CONFIG_NETLINK_DIAG=m
229CONFIG_NET_MPLS_GSO=m 266CONFIG_NET_MPLS_GSO=m
230# CONFIG_WIRELESS is not set 267# CONFIG_WIRELESS is not set
268# CONFIG_UEVENT_HELPER is not set
231CONFIG_DEVTMPFS=y 269CONFIG_DEVTMPFS=y
270CONFIG_DEVTMPFS_MOUNT=y
232# CONFIG_FIRMWARE_IN_KERNEL is not set 271# CONFIG_FIRMWARE_IN_KERNEL is not set
233# CONFIG_FW_LOADER_USER_HELPER is not set
234CONFIG_CONNECTOR=m 272CONFIG_CONNECTOR=m
235CONFIG_BLK_DEV_LOOP=y 273CONFIG_BLK_DEV_LOOP=y
236CONFIG_BLK_DEV_CRYPTOLOOP=m 274CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -280,6 +318,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
280CONFIG_NET_TEAM_MODE_RANDOM=m 318CONFIG_NET_TEAM_MODE_RANDOM=m
281CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 319CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
282CONFIG_NET_TEAM_MODE_LOADBALANCE=m 320CONFIG_NET_TEAM_MODE_LOADBALANCE=m
321CONFIG_MACVLAN=m
322CONFIG_MACVTAP=m
323CONFIG_IPVLAN=m
283CONFIG_VXLAN=m 324CONFIG_VXLAN=m
284CONFIG_NETCONSOLE=m 325CONFIG_NETCONSOLE=m
285CONFIG_NETCONSOLE_DYNAMIC=y 326CONFIG_NETCONSOLE_DYNAMIC=y
@@ -290,6 +331,8 @@ CONFIG_MVME16x_NET=y
290# CONFIG_NET_VENDOR_MARVELL is not set 331# CONFIG_NET_VENDOR_MARVELL is not set
291# CONFIG_NET_VENDOR_MICREL is not set 332# CONFIG_NET_VENDOR_MICREL is not set
292# CONFIG_NET_VENDOR_NATSEMI is not set 333# CONFIG_NET_VENDOR_NATSEMI is not set
334# CONFIG_NET_VENDOR_QUALCOMM is not set
335# CONFIG_NET_VENDOR_ROCKER is not set
293# CONFIG_NET_VENDOR_SAMSUNG is not set 336# CONFIG_NET_VENDOR_SAMSUNG is not set
294# CONFIG_NET_VENDOR_SEEQ is not set 337# CONFIG_NET_VENDOR_SEEQ is not set
295# CONFIG_NET_VENDOR_STMICRO is not set 338# CONFIG_NET_VENDOR_STMICRO is not set
@@ -326,6 +369,7 @@ CONFIG_HID=m
326CONFIG_HIDRAW=y 369CONFIG_HIDRAW=y
327CONFIG_UHID=m 370CONFIG_UHID=m
328# CONFIG_HID_GENERIC is not set 371# CONFIG_HID_GENERIC is not set
372# CONFIG_HID_PLANTRONICS is not set
329# CONFIG_USB_SUPPORT is not set 373# CONFIG_USB_SUPPORT is not set
330CONFIG_RTC_CLASS=y 374CONFIG_RTC_CLASS=y
331CONFIG_RTC_DRV_GENERIC=m 375CONFIG_RTC_DRV_GENERIC=m
@@ -343,6 +387,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
343CONFIG_AUTOFS4_FS=m 387CONFIG_AUTOFS4_FS=m
344CONFIG_FUSE_FS=m 388CONFIG_FUSE_FS=m
345CONFIG_CUSE=m 389CONFIG_CUSE=m
390CONFIG_OVERLAY_FS=m
346CONFIG_ISO9660_FS=y 391CONFIG_ISO9660_FS=y
347CONFIG_JOLIET=y 392CONFIG_JOLIET=y
348CONFIG_ZISOFS=y 393CONFIG_ZISOFS=y
@@ -358,6 +403,7 @@ CONFIG_HFS_FS=m
358CONFIG_HFSPLUS_FS=m 403CONFIG_HFSPLUS_FS=m
359CONFIG_CRAMFS=m 404CONFIG_CRAMFS=m
360CONFIG_SQUASHFS=m 405CONFIG_SQUASHFS=m
406CONFIG_SQUASHFS_LZ4=y
361CONFIG_SQUASHFS_LZO=y 407CONFIG_SQUASHFS_LZO=y
362CONFIG_MINIX_FS=m 408CONFIG_MINIX_FS=m
363CONFIG_OMFS_FS=m 409CONFIG_OMFS_FS=m
@@ -427,11 +473,18 @@ CONFIG_DLM=m
427CONFIG_MAGIC_SYSRQ=y 473CONFIG_MAGIC_SYSRQ=y
428CONFIG_ASYNC_RAID6_TEST=m 474CONFIG_ASYNC_RAID6_TEST=m
429CONFIG_TEST_STRING_HELPERS=m 475CONFIG_TEST_STRING_HELPERS=m
476CONFIG_TEST_KSTRTOX=m
477CONFIG_TEST_LKM=m
478CONFIG_TEST_USER_COPY=m
479CONFIG_TEST_BPF=m
480CONFIG_TEST_FIRMWARE=m
481CONFIG_TEST_UDELAY=m
430CONFIG_EARLY_PRINTK=y 482CONFIG_EARLY_PRINTK=y
431CONFIG_ENCRYPTED_KEYS=m 483CONFIG_ENCRYPTED_KEYS=m
432CONFIG_CRYPTO_MANAGER=y 484CONFIG_CRYPTO_MANAGER=y
433CONFIG_CRYPTO_USER=m 485CONFIG_CRYPTO_USER=m
434CONFIG_CRYPTO_CRYPTD=m 486CONFIG_CRYPTO_CRYPTD=m
487CONFIG_CRYPTO_MCRYPTD=m
435CONFIG_CRYPTO_TEST=m 488CONFIG_CRYPTO_TEST=m
436CONFIG_CRYPTO_CCM=m 489CONFIG_CRYPTO_CCM=m
437CONFIG_CRYPTO_GCM=m 490CONFIG_CRYPTO_GCM=m
@@ -466,13 +519,10 @@ CONFIG_CRYPTO_LZO=m
466CONFIG_CRYPTO_LZ4=m 519CONFIG_CRYPTO_LZ4=m
467CONFIG_CRYPTO_LZ4HC=m 520CONFIG_CRYPTO_LZ4HC=m
468# CONFIG_CRYPTO_ANSI_CPRNG is not set 521# CONFIG_CRYPTO_ANSI_CPRNG is not set
522CONFIG_CRYPTO_DRBG_MENU=m
523CONFIG_CRYPTO_DRBG_HASH=y
524CONFIG_CRYPTO_DRBG_CTR=y
469CONFIG_CRYPTO_USER_API_HASH=m 525CONFIG_CRYPTO_USER_API_HASH=m
470CONFIG_CRYPTO_USER_API_SKCIPHER=m 526CONFIG_CRYPTO_USER_API_SKCIPHER=m
471# CONFIG_CRYPTO_HW is not set 527# CONFIG_CRYPTO_HW is not set
472CONFIG_XZ_DEC_X86=y
473CONFIG_XZ_DEC_POWERPC=y
474CONFIG_XZ_DEC_IA64=y
475CONFIG_XZ_DEC_ARM=y
476CONFIG_XZ_DEC_ARMTHUMB=y
477CONFIG_XZ_DEC_SPARC=y
478CONFIG_XZ_DEC_TEST=m 528CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index d7d1101e31b5..5d581c503fa3 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_defconfig
@@ -32,6 +32,7 @@ CONFIG_M68060=y
32CONFIG_Q40=y 32CONFIG_Q40=y
33# CONFIG_COMPACTION is not set 33# CONFIG_COMPACTION is not set
34CONFIG_CLEANCACHE=y 34CONFIG_CLEANCACHE=y
35CONFIG_ZPOOL=m
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 36# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
36CONFIG_BINFMT_AOUT=m 37CONFIG_BINFMT_AOUT=m
37CONFIG_BINFMT_MISC=m 38CONFIG_BINFMT_MISC=m
@@ -51,6 +52,8 @@ CONFIG_NET_IPIP=m
51CONFIG_NET_IPGRE_DEMUX=m 52CONFIG_NET_IPGRE_DEMUX=m
52CONFIG_NET_IPGRE=m 53CONFIG_NET_IPGRE=m
53CONFIG_NET_IPVTI=m 54CONFIG_NET_IPVTI=m
55CONFIG_NET_FOU_IP_TUNNELS=y
56CONFIG_GENEVE=m
54CONFIG_INET_AH=m 57CONFIG_INET_AH=m
55CONFIG_INET_ESP=m 58CONFIG_INET_ESP=m
56CONFIG_INET_IPCOMP=m 59CONFIG_INET_IPCOMP=m
@@ -92,6 +95,8 @@ CONFIG_NFT_HASH=m
92CONFIG_NFT_COUNTER=m 95CONFIG_NFT_COUNTER=m
93CONFIG_NFT_LOG=m 96CONFIG_NFT_LOG=m
94CONFIG_NFT_LIMIT=m 97CONFIG_NFT_LIMIT=m
98CONFIG_NFT_MASQ=m
99CONFIG_NFT_REDIR=m
95CONFIG_NFT_NAT=m 100CONFIG_NFT_NAT=m
96CONFIG_NFT_QUEUE=m 101CONFIG_NFT_QUEUE=m
97CONFIG_NFT_REJECT=m 102CONFIG_NFT_REJECT=m
@@ -138,6 +143,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
138CONFIG_NETFILTER_XT_MATCH_OSF=m 143CONFIG_NETFILTER_XT_MATCH_OSF=m
139CONFIG_NETFILTER_XT_MATCH_OWNER=m 144CONFIG_NETFILTER_XT_MATCH_OWNER=m
140CONFIG_NETFILTER_XT_MATCH_POLICY=m 145CONFIG_NETFILTER_XT_MATCH_POLICY=m
146CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
141CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 147CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
142CONFIG_NETFILTER_XT_MATCH_QUOTA=m 148CONFIG_NETFILTER_XT_MATCH_QUOTA=m
143CONFIG_NETFILTER_XT_MATCH_RATEEST=m 149CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -159,6 +165,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
159CONFIG_IP_SET_HASH_IPPORT=m 165CONFIG_IP_SET_HASH_IPPORT=m
160CONFIG_IP_SET_HASH_IPPORTIP=m 166CONFIG_IP_SET_HASH_IPPORTIP=m
161CONFIG_IP_SET_HASH_IPPORTNET=m 167CONFIG_IP_SET_HASH_IPPORTNET=m
168CONFIG_IP_SET_HASH_MAC=m
162CONFIG_IP_SET_HASH_NETPORTNET=m 169CONFIG_IP_SET_HASH_NETPORTNET=m
163CONFIG_IP_SET_HASH_NET=m 170CONFIG_IP_SET_HASH_NET=m
164CONFIG_IP_SET_HASH_NETNET=m 171CONFIG_IP_SET_HASH_NETNET=m
@@ -166,9 +173,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
166CONFIG_IP_SET_HASH_NETIFACE=m 173CONFIG_IP_SET_HASH_NETIFACE=m
167CONFIG_IP_SET_LIST_SET=m 174CONFIG_IP_SET_LIST_SET=m
168CONFIG_NF_CONNTRACK_IPV4=m 175CONFIG_NF_CONNTRACK_IPV4=m
176CONFIG_NF_LOG_ARP=m
169CONFIG_NFT_CHAIN_ROUTE_IPV4=m 177CONFIG_NFT_CHAIN_ROUTE_IPV4=m
170CONFIG_NFT_CHAIN_NAT_IPV4=m
171CONFIG_NF_TABLES_ARP=m 178CONFIG_NF_TABLES_ARP=m
179CONFIG_NFT_CHAIN_NAT_IPV4=m
180CONFIG_NFT_MASQ_IPV4=m
181CONFIG_NFT_REDIR_IPV4=m
172CONFIG_IP_NF_IPTABLES=m 182CONFIG_IP_NF_IPTABLES=m
173CONFIG_IP_NF_MATCH_AH=m 183CONFIG_IP_NF_MATCH_AH=m
174CONFIG_IP_NF_MATCH_ECN=m 184CONFIG_IP_NF_MATCH_ECN=m
@@ -177,8 +187,7 @@ CONFIG_IP_NF_MATCH_TTL=m
177CONFIG_IP_NF_FILTER=m 187CONFIG_IP_NF_FILTER=m
178CONFIG_IP_NF_TARGET_REJECT=m 188CONFIG_IP_NF_TARGET_REJECT=m
179CONFIG_IP_NF_TARGET_SYNPROXY=m 189CONFIG_IP_NF_TARGET_SYNPROXY=m
180CONFIG_IP_NF_TARGET_ULOG=m 190CONFIG_IP_NF_NAT=m
181CONFIG_NF_NAT_IPV4=m
182CONFIG_IP_NF_TARGET_MASQUERADE=m 191CONFIG_IP_NF_TARGET_MASQUERADE=m
183CONFIG_IP_NF_TARGET_NETMAP=m 192CONFIG_IP_NF_TARGET_NETMAP=m
184CONFIG_IP_NF_TARGET_REDIRECT=m 193CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -193,6 +202,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
193CONFIG_NF_CONNTRACK_IPV6=m 202CONFIG_NF_CONNTRACK_IPV6=m
194CONFIG_NFT_CHAIN_ROUTE_IPV6=m 203CONFIG_NFT_CHAIN_ROUTE_IPV6=m
195CONFIG_NFT_CHAIN_NAT_IPV6=m 204CONFIG_NFT_CHAIN_NAT_IPV6=m
205CONFIG_NFT_MASQ_IPV6=m
206CONFIG_NFT_REDIR_IPV6=m
196CONFIG_IP6_NF_IPTABLES=m 207CONFIG_IP6_NF_IPTABLES=m
197CONFIG_IP6_NF_MATCH_AH=m 208CONFIG_IP6_NF_MATCH_AH=m
198CONFIG_IP6_NF_MATCH_EUI64=m 209CONFIG_IP6_NF_MATCH_EUI64=m
@@ -209,17 +220,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
209CONFIG_IP6_NF_TARGET_SYNPROXY=m 220CONFIG_IP6_NF_TARGET_SYNPROXY=m
210CONFIG_IP6_NF_MANGLE=m 221CONFIG_IP6_NF_MANGLE=m
211CONFIG_IP6_NF_RAW=m 222CONFIG_IP6_NF_RAW=m
212CONFIG_NF_NAT_IPV6=m 223CONFIG_IP6_NF_NAT=m
213CONFIG_IP6_NF_TARGET_MASQUERADE=m 224CONFIG_IP6_NF_TARGET_MASQUERADE=m
214CONFIG_IP6_NF_TARGET_NPT=m 225CONFIG_IP6_NF_TARGET_NPT=m
215CONFIG_NF_TABLES_BRIDGE=m 226CONFIG_NF_TABLES_BRIDGE=m
227CONFIG_NFT_BRIDGE_META=m
228CONFIG_NFT_BRIDGE_REJECT=m
229CONFIG_NF_LOG_BRIDGE=m
230CONFIG_BRIDGE_NF_EBTABLES=m
231CONFIG_BRIDGE_EBT_BROUTE=m
232CONFIG_BRIDGE_EBT_T_FILTER=m
233CONFIG_BRIDGE_EBT_T_NAT=m
234CONFIG_BRIDGE_EBT_802_3=m
235CONFIG_BRIDGE_EBT_AMONG=m
236CONFIG_BRIDGE_EBT_ARP=m
237CONFIG_BRIDGE_EBT_IP=m
238CONFIG_BRIDGE_EBT_IP6=m
239CONFIG_BRIDGE_EBT_LIMIT=m
240CONFIG_BRIDGE_EBT_MARK=m
241CONFIG_BRIDGE_EBT_PKTTYPE=m
242CONFIG_BRIDGE_EBT_STP=m
243CONFIG_BRIDGE_EBT_VLAN=m
244CONFIG_BRIDGE_EBT_ARPREPLY=m
245CONFIG_BRIDGE_EBT_DNAT=m
246CONFIG_BRIDGE_EBT_MARK_T=m
247CONFIG_BRIDGE_EBT_REDIRECT=m
248CONFIG_BRIDGE_EBT_SNAT=m
249CONFIG_BRIDGE_EBT_LOG=m
250CONFIG_BRIDGE_EBT_NFLOG=m
216CONFIG_IP_DCCP=m 251CONFIG_IP_DCCP=m
217# CONFIG_IP_DCCP_CCID3 is not set 252# CONFIG_IP_DCCP_CCID3 is not set
218CONFIG_SCTP_COOKIE_HMAC_SHA1=y 253CONFIG_SCTP_COOKIE_HMAC_SHA1=y
219CONFIG_RDS=m 254CONFIG_RDS=m
220CONFIG_RDS_TCP=m 255CONFIG_RDS_TCP=m
221CONFIG_L2TP=m 256CONFIG_L2TP=m
257CONFIG_BRIDGE=m
222CONFIG_ATALK=m 258CONFIG_ATALK=m
259CONFIG_6LOWPAN=m
223CONFIG_DNS_RESOLVER=y 260CONFIG_DNS_RESOLVER=y
224CONFIG_BATMAN_ADV=m 261CONFIG_BATMAN_ADV=m
225CONFIG_BATMAN_ADV_DAT=y 262CONFIG_BATMAN_ADV_DAT=y
@@ -228,9 +265,10 @@ CONFIG_BATMAN_ADV_MCAST=y
228CONFIG_NETLINK_DIAG=m 265CONFIG_NETLINK_DIAG=m
229CONFIG_NET_MPLS_GSO=m 266CONFIG_NET_MPLS_GSO=m
230# CONFIG_WIRELESS is not set 267# CONFIG_WIRELESS is not set
268# CONFIG_UEVENT_HELPER is not set
231CONFIG_DEVTMPFS=y 269CONFIG_DEVTMPFS=y
270CONFIG_DEVTMPFS_MOUNT=y
232# CONFIG_FIRMWARE_IN_KERNEL is not set 271# CONFIG_FIRMWARE_IN_KERNEL is not set
233# CONFIG_FW_LOADER_USER_HELPER is not set
234CONFIG_CONNECTOR=m 272CONFIG_CONNECTOR=m
235CONFIG_PARPORT=m 273CONFIG_PARPORT=m
236CONFIG_PARPORT_PC=m 274CONFIG_PARPORT_PC=m
@@ -286,6 +324,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
286CONFIG_NET_TEAM_MODE_RANDOM=m 324CONFIG_NET_TEAM_MODE_RANDOM=m
287CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 325CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
288CONFIG_NET_TEAM_MODE_LOADBALANCE=m 326CONFIG_NET_TEAM_MODE_LOADBALANCE=m
327CONFIG_MACVLAN=m
328CONFIG_MACVTAP=m
329CONFIG_IPVLAN=m
289CONFIG_VXLAN=m 330CONFIG_VXLAN=m
290CONFIG_NETCONSOLE=m 331CONFIG_NETCONSOLE=m
291CONFIG_NETCONSOLE_DYNAMIC=y 332CONFIG_NETCONSOLE_DYNAMIC=y
@@ -300,6 +341,8 @@ CONFIG_VETH=m
300# CONFIG_NET_VENDOR_MARVELL is not set 341# CONFIG_NET_VENDOR_MARVELL is not set
301# CONFIG_NET_VENDOR_MICREL is not set 342# CONFIG_NET_VENDOR_MICREL is not set
302CONFIG_NE2000=m 343CONFIG_NE2000=m
344# CONFIG_NET_VENDOR_QUALCOMM is not set
345# CONFIG_NET_VENDOR_ROCKER is not set
303# CONFIG_NET_VENDOR_SAMSUNG is not set 346# CONFIG_NET_VENDOR_SAMSUNG is not set
304# CONFIG_NET_VENDOR_SEEQ is not set 347# CONFIG_NET_VENDOR_SEEQ is not set
305# CONFIG_NET_VENDOR_SMSC is not set 348# CONFIG_NET_VENDOR_SMSC is not set
@@ -347,6 +390,7 @@ CONFIG_HID=m
347CONFIG_HIDRAW=y 390CONFIG_HIDRAW=y
348CONFIG_UHID=m 391CONFIG_UHID=m
349# CONFIG_HID_GENERIC is not set 392# CONFIG_HID_GENERIC is not set
393# CONFIG_HID_PLANTRONICS is not set
350# CONFIG_USB_SUPPORT is not set 394# CONFIG_USB_SUPPORT is not set
351CONFIG_RTC_CLASS=y 395CONFIG_RTC_CLASS=y
352CONFIG_RTC_DRV_GENERIC=m 396CONFIG_RTC_DRV_GENERIC=m
@@ -365,6 +409,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
365CONFIG_AUTOFS4_FS=m 409CONFIG_AUTOFS4_FS=m
366CONFIG_FUSE_FS=m 410CONFIG_FUSE_FS=m
367CONFIG_CUSE=m 411CONFIG_CUSE=m
412CONFIG_OVERLAY_FS=m
368CONFIG_ISO9660_FS=y 413CONFIG_ISO9660_FS=y
369CONFIG_JOLIET=y 414CONFIG_JOLIET=y
370CONFIG_ZISOFS=y 415CONFIG_ZISOFS=y
@@ -380,6 +425,7 @@ CONFIG_HFS_FS=m
380CONFIG_HFSPLUS_FS=m 425CONFIG_HFSPLUS_FS=m
381CONFIG_CRAMFS=m 426CONFIG_CRAMFS=m
382CONFIG_SQUASHFS=m 427CONFIG_SQUASHFS=m
428CONFIG_SQUASHFS_LZ4=y
383CONFIG_SQUASHFS_LZO=y 429CONFIG_SQUASHFS_LZO=y
384CONFIG_MINIX_FS=m 430CONFIG_MINIX_FS=m
385CONFIG_OMFS_FS=m 431CONFIG_OMFS_FS=m
@@ -449,10 +495,18 @@ CONFIG_DLM=m
449CONFIG_MAGIC_SYSRQ=y 495CONFIG_MAGIC_SYSRQ=y
450CONFIG_ASYNC_RAID6_TEST=m 496CONFIG_ASYNC_RAID6_TEST=m
451CONFIG_TEST_STRING_HELPERS=m 497CONFIG_TEST_STRING_HELPERS=m
498CONFIG_TEST_KSTRTOX=m
499CONFIG_TEST_LKM=m
500CONFIG_TEST_USER_COPY=m
501CONFIG_TEST_BPF=m
502CONFIG_TEST_FIRMWARE=m
503CONFIG_TEST_UDELAY=m
504CONFIG_EARLY_PRINTK=y
452CONFIG_ENCRYPTED_KEYS=m 505CONFIG_ENCRYPTED_KEYS=m
453CONFIG_CRYPTO_MANAGER=y 506CONFIG_CRYPTO_MANAGER=y
454CONFIG_CRYPTO_USER=m 507CONFIG_CRYPTO_USER=m
455CONFIG_CRYPTO_CRYPTD=m 508CONFIG_CRYPTO_CRYPTD=m
509CONFIG_CRYPTO_MCRYPTD=m
456CONFIG_CRYPTO_TEST=m 510CONFIG_CRYPTO_TEST=m
457CONFIG_CRYPTO_CCM=m 511CONFIG_CRYPTO_CCM=m
458CONFIG_CRYPTO_GCM=m 512CONFIG_CRYPTO_GCM=m
@@ -487,13 +541,10 @@ CONFIG_CRYPTO_LZO=m
487CONFIG_CRYPTO_LZ4=m 541CONFIG_CRYPTO_LZ4=m
488CONFIG_CRYPTO_LZ4HC=m 542CONFIG_CRYPTO_LZ4HC=m
489# CONFIG_CRYPTO_ANSI_CPRNG is not set 543# CONFIG_CRYPTO_ANSI_CPRNG is not set
544CONFIG_CRYPTO_DRBG_MENU=m
545CONFIG_CRYPTO_DRBG_HASH=y
546CONFIG_CRYPTO_DRBG_CTR=y
490CONFIG_CRYPTO_USER_API_HASH=m 547CONFIG_CRYPTO_USER_API_HASH=m
491CONFIG_CRYPTO_USER_API_SKCIPHER=m 548CONFIG_CRYPTO_USER_API_SKCIPHER=m
492# CONFIG_CRYPTO_HW is not set 549# CONFIG_CRYPTO_HW is not set
493CONFIG_XZ_DEC_X86=y
494CONFIG_XZ_DEC_POWERPC=y
495CONFIG_XZ_DEC_IA64=y
496CONFIG_XZ_DEC_ARM=y
497CONFIG_XZ_DEC_ARMTHUMB=y
498CONFIG_XZ_DEC_SPARC=y
499CONFIG_XZ_DEC_TEST=m 550CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index 98522e8fb852..c6b49a4a887c 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_defconfig
@@ -29,6 +29,7 @@ CONFIG_BOOTINFO_PROC=y
29CONFIG_SUN3=y 29CONFIG_SUN3=y
30# CONFIG_COMPACTION is not set 30# CONFIG_COMPACTION is not set
31CONFIG_CLEANCACHE=y 31CONFIG_CLEANCACHE=y
32CONFIG_ZPOOL=m
32# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 33# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
33CONFIG_BINFMT_AOUT=m 34CONFIG_BINFMT_AOUT=m
34CONFIG_BINFMT_MISC=m 35CONFIG_BINFMT_MISC=m
@@ -48,6 +49,8 @@ CONFIG_NET_IPIP=m
48CONFIG_NET_IPGRE_DEMUX=m 49CONFIG_NET_IPGRE_DEMUX=m
49CONFIG_NET_IPGRE=m 50CONFIG_NET_IPGRE=m
50CONFIG_NET_IPVTI=m 51CONFIG_NET_IPVTI=m
52CONFIG_NET_FOU_IP_TUNNELS=y
53CONFIG_GENEVE=m
51CONFIG_INET_AH=m 54CONFIG_INET_AH=m
52CONFIG_INET_ESP=m 55CONFIG_INET_ESP=m
53CONFIG_INET_IPCOMP=m 56CONFIG_INET_IPCOMP=m
@@ -89,6 +92,8 @@ CONFIG_NFT_HASH=m
89CONFIG_NFT_COUNTER=m 92CONFIG_NFT_COUNTER=m
90CONFIG_NFT_LOG=m 93CONFIG_NFT_LOG=m
91CONFIG_NFT_LIMIT=m 94CONFIG_NFT_LIMIT=m
95CONFIG_NFT_MASQ=m
96CONFIG_NFT_REDIR=m
92CONFIG_NFT_NAT=m 97CONFIG_NFT_NAT=m
93CONFIG_NFT_QUEUE=m 98CONFIG_NFT_QUEUE=m
94CONFIG_NFT_REJECT=m 99CONFIG_NFT_REJECT=m
@@ -135,6 +140,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
135CONFIG_NETFILTER_XT_MATCH_OSF=m 140CONFIG_NETFILTER_XT_MATCH_OSF=m
136CONFIG_NETFILTER_XT_MATCH_OWNER=m 141CONFIG_NETFILTER_XT_MATCH_OWNER=m
137CONFIG_NETFILTER_XT_MATCH_POLICY=m 142CONFIG_NETFILTER_XT_MATCH_POLICY=m
143CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
138CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 144CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
139CONFIG_NETFILTER_XT_MATCH_QUOTA=m 145CONFIG_NETFILTER_XT_MATCH_QUOTA=m
140CONFIG_NETFILTER_XT_MATCH_RATEEST=m 146CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -156,6 +162,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
156CONFIG_IP_SET_HASH_IPPORT=m 162CONFIG_IP_SET_HASH_IPPORT=m
157CONFIG_IP_SET_HASH_IPPORTIP=m 163CONFIG_IP_SET_HASH_IPPORTIP=m
158CONFIG_IP_SET_HASH_IPPORTNET=m 164CONFIG_IP_SET_HASH_IPPORTNET=m
165CONFIG_IP_SET_HASH_MAC=m
159CONFIG_IP_SET_HASH_NETPORTNET=m 166CONFIG_IP_SET_HASH_NETPORTNET=m
160CONFIG_IP_SET_HASH_NET=m 167CONFIG_IP_SET_HASH_NET=m
161CONFIG_IP_SET_HASH_NETNET=m 168CONFIG_IP_SET_HASH_NETNET=m
@@ -163,9 +170,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
163CONFIG_IP_SET_HASH_NETIFACE=m 170CONFIG_IP_SET_HASH_NETIFACE=m
164CONFIG_IP_SET_LIST_SET=m 171CONFIG_IP_SET_LIST_SET=m
165CONFIG_NF_CONNTRACK_IPV4=m 172CONFIG_NF_CONNTRACK_IPV4=m
173CONFIG_NF_LOG_ARP=m
166CONFIG_NFT_CHAIN_ROUTE_IPV4=m 174CONFIG_NFT_CHAIN_ROUTE_IPV4=m
167CONFIG_NFT_CHAIN_NAT_IPV4=m
168CONFIG_NF_TABLES_ARP=m 175CONFIG_NF_TABLES_ARP=m
176CONFIG_NFT_CHAIN_NAT_IPV4=m
177CONFIG_NFT_MASQ_IPV4=m
178CONFIG_NFT_REDIR_IPV4=m
169CONFIG_IP_NF_IPTABLES=m 179CONFIG_IP_NF_IPTABLES=m
170CONFIG_IP_NF_MATCH_AH=m 180CONFIG_IP_NF_MATCH_AH=m
171CONFIG_IP_NF_MATCH_ECN=m 181CONFIG_IP_NF_MATCH_ECN=m
@@ -174,8 +184,7 @@ CONFIG_IP_NF_MATCH_TTL=m
174CONFIG_IP_NF_FILTER=m 184CONFIG_IP_NF_FILTER=m
175CONFIG_IP_NF_TARGET_REJECT=m 185CONFIG_IP_NF_TARGET_REJECT=m
176CONFIG_IP_NF_TARGET_SYNPROXY=m 186CONFIG_IP_NF_TARGET_SYNPROXY=m
177CONFIG_IP_NF_TARGET_ULOG=m 187CONFIG_IP_NF_NAT=m
178CONFIG_NF_NAT_IPV4=m
179CONFIG_IP_NF_TARGET_MASQUERADE=m 188CONFIG_IP_NF_TARGET_MASQUERADE=m
180CONFIG_IP_NF_TARGET_NETMAP=m 189CONFIG_IP_NF_TARGET_NETMAP=m
181CONFIG_IP_NF_TARGET_REDIRECT=m 190CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -190,6 +199,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
190CONFIG_NF_CONNTRACK_IPV6=m 199CONFIG_NF_CONNTRACK_IPV6=m
191CONFIG_NFT_CHAIN_ROUTE_IPV6=m 200CONFIG_NFT_CHAIN_ROUTE_IPV6=m
192CONFIG_NFT_CHAIN_NAT_IPV6=m 201CONFIG_NFT_CHAIN_NAT_IPV6=m
202CONFIG_NFT_MASQ_IPV6=m
203CONFIG_NFT_REDIR_IPV6=m
193CONFIG_IP6_NF_IPTABLES=m 204CONFIG_IP6_NF_IPTABLES=m
194CONFIG_IP6_NF_MATCH_AH=m 205CONFIG_IP6_NF_MATCH_AH=m
195CONFIG_IP6_NF_MATCH_EUI64=m 206CONFIG_IP6_NF_MATCH_EUI64=m
@@ -206,17 +217,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
206CONFIG_IP6_NF_TARGET_SYNPROXY=m 217CONFIG_IP6_NF_TARGET_SYNPROXY=m
207CONFIG_IP6_NF_MANGLE=m 218CONFIG_IP6_NF_MANGLE=m
208CONFIG_IP6_NF_RAW=m 219CONFIG_IP6_NF_RAW=m
209CONFIG_NF_NAT_IPV6=m 220CONFIG_IP6_NF_NAT=m
210CONFIG_IP6_NF_TARGET_MASQUERADE=m 221CONFIG_IP6_NF_TARGET_MASQUERADE=m
211CONFIG_IP6_NF_TARGET_NPT=m 222CONFIG_IP6_NF_TARGET_NPT=m
212CONFIG_NF_TABLES_BRIDGE=m 223CONFIG_NF_TABLES_BRIDGE=m
224CONFIG_NFT_BRIDGE_META=m
225CONFIG_NFT_BRIDGE_REJECT=m
226CONFIG_NF_LOG_BRIDGE=m
227CONFIG_BRIDGE_NF_EBTABLES=m
228CONFIG_BRIDGE_EBT_BROUTE=m
229CONFIG_BRIDGE_EBT_T_FILTER=m
230CONFIG_BRIDGE_EBT_T_NAT=m
231CONFIG_BRIDGE_EBT_802_3=m
232CONFIG_BRIDGE_EBT_AMONG=m
233CONFIG_BRIDGE_EBT_ARP=m
234CONFIG_BRIDGE_EBT_IP=m
235CONFIG_BRIDGE_EBT_IP6=m
236CONFIG_BRIDGE_EBT_LIMIT=m
237CONFIG_BRIDGE_EBT_MARK=m
238CONFIG_BRIDGE_EBT_PKTTYPE=m
239CONFIG_BRIDGE_EBT_STP=m
240CONFIG_BRIDGE_EBT_VLAN=m
241CONFIG_BRIDGE_EBT_ARPREPLY=m
242CONFIG_BRIDGE_EBT_DNAT=m
243CONFIG_BRIDGE_EBT_MARK_T=m
244CONFIG_BRIDGE_EBT_REDIRECT=m
245CONFIG_BRIDGE_EBT_SNAT=m
246CONFIG_BRIDGE_EBT_LOG=m
247CONFIG_BRIDGE_EBT_NFLOG=m
213CONFIG_IP_DCCP=m 248CONFIG_IP_DCCP=m
214# CONFIG_IP_DCCP_CCID3 is not set 249# CONFIG_IP_DCCP_CCID3 is not set
215CONFIG_SCTP_COOKIE_HMAC_SHA1=y 250CONFIG_SCTP_COOKIE_HMAC_SHA1=y
216CONFIG_RDS=m 251CONFIG_RDS=m
217CONFIG_RDS_TCP=m 252CONFIG_RDS_TCP=m
218CONFIG_L2TP=m 253CONFIG_L2TP=m
254CONFIG_BRIDGE=m
219CONFIG_ATALK=m 255CONFIG_ATALK=m
256CONFIG_6LOWPAN=m
220CONFIG_DNS_RESOLVER=y 257CONFIG_DNS_RESOLVER=y
221CONFIG_BATMAN_ADV=m 258CONFIG_BATMAN_ADV=m
222CONFIG_BATMAN_ADV_DAT=y 259CONFIG_BATMAN_ADV_DAT=y
@@ -225,9 +262,10 @@ CONFIG_BATMAN_ADV_MCAST=y
225CONFIG_NETLINK_DIAG=m 262CONFIG_NETLINK_DIAG=m
226CONFIG_NET_MPLS_GSO=m 263CONFIG_NET_MPLS_GSO=m
227# CONFIG_WIRELESS is not set 264# CONFIG_WIRELESS is not set
265# CONFIG_UEVENT_HELPER is not set
228CONFIG_DEVTMPFS=y 266CONFIG_DEVTMPFS=y
267CONFIG_DEVTMPFS_MOUNT=y
229# CONFIG_FIRMWARE_IN_KERNEL is not set 268# CONFIG_FIRMWARE_IN_KERNEL is not set
230# CONFIG_FW_LOADER_USER_HELPER is not set
231CONFIG_CONNECTOR=m 269CONFIG_CONNECTOR=m
232CONFIG_BLK_DEV_LOOP=y 270CONFIG_BLK_DEV_LOOP=y
233CONFIG_BLK_DEV_CRYPTOLOOP=m 271CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -277,6 +315,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
277CONFIG_NET_TEAM_MODE_RANDOM=m 315CONFIG_NET_TEAM_MODE_RANDOM=m
278CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 316CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
279CONFIG_NET_TEAM_MODE_LOADBALANCE=m 317CONFIG_NET_TEAM_MODE_LOADBALANCE=m
318CONFIG_MACVLAN=m
319CONFIG_MACVTAP=m
320CONFIG_IPVLAN=m
280CONFIG_VXLAN=m 321CONFIG_VXLAN=m
281CONFIG_NETCONSOLE=m 322CONFIG_NETCONSOLE=m
282CONFIG_NETCONSOLE_DYNAMIC=y 323CONFIG_NETCONSOLE_DYNAMIC=y
@@ -287,6 +328,8 @@ CONFIG_SUN3_82586=y
287# CONFIG_NET_VENDOR_MARVELL is not set 328# CONFIG_NET_VENDOR_MARVELL is not set
288# CONFIG_NET_VENDOR_MICREL is not set 329# CONFIG_NET_VENDOR_MICREL is not set
289# CONFIG_NET_VENDOR_NATSEMI is not set 330# CONFIG_NET_VENDOR_NATSEMI is not set
331# CONFIG_NET_VENDOR_QUALCOMM is not set
332# CONFIG_NET_VENDOR_ROCKER is not set
290# CONFIG_NET_VENDOR_SAMSUNG is not set 333# CONFIG_NET_VENDOR_SAMSUNG is not set
291# CONFIG_NET_VENDOR_SEEQ is not set 334# CONFIG_NET_VENDOR_SEEQ is not set
292# CONFIG_NET_VENDOR_STMICRO is not set 335# CONFIG_NET_VENDOR_STMICRO is not set
@@ -327,6 +370,7 @@ CONFIG_HID=m
327CONFIG_HIDRAW=y 370CONFIG_HIDRAW=y
328CONFIG_UHID=m 371CONFIG_UHID=m
329# CONFIG_HID_GENERIC is not set 372# CONFIG_HID_GENERIC is not set
373# CONFIG_HID_PLANTRONICS is not set
330# CONFIG_USB_SUPPORT is not set 374# CONFIG_USB_SUPPORT is not set
331CONFIG_RTC_CLASS=y 375CONFIG_RTC_CLASS=y
332CONFIG_RTC_DRV_GENERIC=m 376CONFIG_RTC_DRV_GENERIC=m
@@ -344,6 +388,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
344CONFIG_AUTOFS4_FS=m 388CONFIG_AUTOFS4_FS=m
345CONFIG_FUSE_FS=m 389CONFIG_FUSE_FS=m
346CONFIG_CUSE=m 390CONFIG_CUSE=m
391CONFIG_OVERLAY_FS=m
347CONFIG_ISO9660_FS=y 392CONFIG_ISO9660_FS=y
348CONFIG_JOLIET=y 393CONFIG_JOLIET=y
349CONFIG_ZISOFS=y 394CONFIG_ZISOFS=y
@@ -359,6 +404,7 @@ CONFIG_HFS_FS=m
359CONFIG_HFSPLUS_FS=m 404CONFIG_HFSPLUS_FS=m
360CONFIG_CRAMFS=m 405CONFIG_CRAMFS=m
361CONFIG_SQUASHFS=m 406CONFIG_SQUASHFS=m
407CONFIG_SQUASHFS_LZ4=y
362CONFIG_SQUASHFS_LZO=y 408CONFIG_SQUASHFS_LZO=y
363CONFIG_MINIX_FS=m 409CONFIG_MINIX_FS=m
364CONFIG_OMFS_FS=m 410CONFIG_OMFS_FS=m
@@ -428,10 +474,17 @@ CONFIG_DLM=m
428CONFIG_MAGIC_SYSRQ=y 474CONFIG_MAGIC_SYSRQ=y
429CONFIG_ASYNC_RAID6_TEST=m 475CONFIG_ASYNC_RAID6_TEST=m
430CONFIG_TEST_STRING_HELPERS=m 476CONFIG_TEST_STRING_HELPERS=m
477CONFIG_TEST_KSTRTOX=m
478CONFIG_TEST_LKM=m
479CONFIG_TEST_USER_COPY=m
480CONFIG_TEST_BPF=m
481CONFIG_TEST_FIRMWARE=m
482CONFIG_TEST_UDELAY=m
431CONFIG_ENCRYPTED_KEYS=m 483CONFIG_ENCRYPTED_KEYS=m
432CONFIG_CRYPTO_MANAGER=y 484CONFIG_CRYPTO_MANAGER=y
433CONFIG_CRYPTO_USER=m 485CONFIG_CRYPTO_USER=m
434CONFIG_CRYPTO_CRYPTD=m 486CONFIG_CRYPTO_CRYPTD=m
487CONFIG_CRYPTO_MCRYPTD=m
435CONFIG_CRYPTO_TEST=m 488CONFIG_CRYPTO_TEST=m
436CONFIG_CRYPTO_CCM=m 489CONFIG_CRYPTO_CCM=m
437CONFIG_CRYPTO_GCM=m 490CONFIG_CRYPTO_GCM=m
@@ -466,13 +519,10 @@ CONFIG_CRYPTO_LZO=m
466CONFIG_CRYPTO_LZ4=m 519CONFIG_CRYPTO_LZ4=m
467CONFIG_CRYPTO_LZ4HC=m 520CONFIG_CRYPTO_LZ4HC=m
468# CONFIG_CRYPTO_ANSI_CPRNG is not set 521# CONFIG_CRYPTO_ANSI_CPRNG is not set
522CONFIG_CRYPTO_DRBG_MENU=m
523CONFIG_CRYPTO_DRBG_HASH=y
524CONFIG_CRYPTO_DRBG_CTR=y
469CONFIG_CRYPTO_USER_API_HASH=m 525CONFIG_CRYPTO_USER_API_HASH=m
470CONFIG_CRYPTO_USER_API_SKCIPHER=m 526CONFIG_CRYPTO_USER_API_SKCIPHER=m
471# CONFIG_CRYPTO_HW is not set 527# CONFIG_CRYPTO_HW is not set
472CONFIG_XZ_DEC_X86=y
473CONFIG_XZ_DEC_POWERPC=y
474CONFIG_XZ_DEC_IA64=y
475CONFIG_XZ_DEC_ARM=y
476CONFIG_XZ_DEC_ARMTHUMB=y
477CONFIG_XZ_DEC_SPARC=y
478CONFIG_XZ_DEC_TEST=m 528CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index 5128a8c3f4e3..b65785eaff8d 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_defconfig
@@ -29,6 +29,7 @@ CONFIG_BOOTINFO_PROC=y
29CONFIG_SUN3X=y 29CONFIG_SUN3X=y
30# CONFIG_COMPACTION is not set 30# CONFIG_COMPACTION is not set
31CONFIG_CLEANCACHE=y 31CONFIG_CLEANCACHE=y
32CONFIG_ZPOOL=m
32# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 33# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
33CONFIG_BINFMT_AOUT=m 34CONFIG_BINFMT_AOUT=m
34CONFIG_BINFMT_MISC=m 35CONFIG_BINFMT_MISC=m
@@ -48,6 +49,8 @@ CONFIG_NET_IPIP=m
48CONFIG_NET_IPGRE_DEMUX=m 49CONFIG_NET_IPGRE_DEMUX=m
49CONFIG_NET_IPGRE=m 50CONFIG_NET_IPGRE=m
50CONFIG_NET_IPVTI=m 51CONFIG_NET_IPVTI=m
52CONFIG_NET_FOU_IP_TUNNELS=y
53CONFIG_GENEVE=m
51CONFIG_INET_AH=m 54CONFIG_INET_AH=m
52CONFIG_INET_ESP=m 55CONFIG_INET_ESP=m
53CONFIG_INET_IPCOMP=m 56CONFIG_INET_IPCOMP=m
@@ -89,6 +92,8 @@ CONFIG_NFT_HASH=m
89CONFIG_NFT_COUNTER=m 92CONFIG_NFT_COUNTER=m
90CONFIG_NFT_LOG=m 93CONFIG_NFT_LOG=m
91CONFIG_NFT_LIMIT=m 94CONFIG_NFT_LIMIT=m
95CONFIG_NFT_MASQ=m
96CONFIG_NFT_REDIR=m
92CONFIG_NFT_NAT=m 97CONFIG_NFT_NAT=m
93CONFIG_NFT_QUEUE=m 98CONFIG_NFT_QUEUE=m
94CONFIG_NFT_REJECT=m 99CONFIG_NFT_REJECT=m
@@ -135,6 +140,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m
135CONFIG_NETFILTER_XT_MATCH_OSF=m 140CONFIG_NETFILTER_XT_MATCH_OSF=m
136CONFIG_NETFILTER_XT_MATCH_OWNER=m 141CONFIG_NETFILTER_XT_MATCH_OWNER=m
137CONFIG_NETFILTER_XT_MATCH_POLICY=m 142CONFIG_NETFILTER_XT_MATCH_POLICY=m
143CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
138CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 144CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
139CONFIG_NETFILTER_XT_MATCH_QUOTA=m 145CONFIG_NETFILTER_XT_MATCH_QUOTA=m
140CONFIG_NETFILTER_XT_MATCH_RATEEST=m 146CONFIG_NETFILTER_XT_MATCH_RATEEST=m
@@ -156,6 +162,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
156CONFIG_IP_SET_HASH_IPPORT=m 162CONFIG_IP_SET_HASH_IPPORT=m
157CONFIG_IP_SET_HASH_IPPORTIP=m 163CONFIG_IP_SET_HASH_IPPORTIP=m
158CONFIG_IP_SET_HASH_IPPORTNET=m 164CONFIG_IP_SET_HASH_IPPORTNET=m
165CONFIG_IP_SET_HASH_MAC=m
159CONFIG_IP_SET_HASH_NETPORTNET=m 166CONFIG_IP_SET_HASH_NETPORTNET=m
160CONFIG_IP_SET_HASH_NET=m 167CONFIG_IP_SET_HASH_NET=m
161CONFIG_IP_SET_HASH_NETNET=m 168CONFIG_IP_SET_HASH_NETNET=m
@@ -163,9 +170,12 @@ CONFIG_IP_SET_HASH_NETPORT=m
163CONFIG_IP_SET_HASH_NETIFACE=m 170CONFIG_IP_SET_HASH_NETIFACE=m
164CONFIG_IP_SET_LIST_SET=m 171CONFIG_IP_SET_LIST_SET=m
165CONFIG_NF_CONNTRACK_IPV4=m 172CONFIG_NF_CONNTRACK_IPV4=m
173CONFIG_NF_LOG_ARP=m
166CONFIG_NFT_CHAIN_ROUTE_IPV4=m 174CONFIG_NFT_CHAIN_ROUTE_IPV4=m
167CONFIG_NFT_CHAIN_NAT_IPV4=m
168CONFIG_NF_TABLES_ARP=m 175CONFIG_NF_TABLES_ARP=m
176CONFIG_NFT_CHAIN_NAT_IPV4=m
177CONFIG_NFT_MASQ_IPV4=m
178CONFIG_NFT_REDIR_IPV4=m
169CONFIG_IP_NF_IPTABLES=m 179CONFIG_IP_NF_IPTABLES=m
170CONFIG_IP_NF_MATCH_AH=m 180CONFIG_IP_NF_MATCH_AH=m
171CONFIG_IP_NF_MATCH_ECN=m 181CONFIG_IP_NF_MATCH_ECN=m
@@ -174,8 +184,7 @@ CONFIG_IP_NF_MATCH_TTL=m
174CONFIG_IP_NF_FILTER=m 184CONFIG_IP_NF_FILTER=m
175CONFIG_IP_NF_TARGET_REJECT=m 185CONFIG_IP_NF_TARGET_REJECT=m
176CONFIG_IP_NF_TARGET_SYNPROXY=m 186CONFIG_IP_NF_TARGET_SYNPROXY=m
177CONFIG_IP_NF_TARGET_ULOG=m 187CONFIG_IP_NF_NAT=m
178CONFIG_NF_NAT_IPV4=m
179CONFIG_IP_NF_TARGET_MASQUERADE=m 188CONFIG_IP_NF_TARGET_MASQUERADE=m
180CONFIG_IP_NF_TARGET_NETMAP=m 189CONFIG_IP_NF_TARGET_NETMAP=m
181CONFIG_IP_NF_TARGET_REDIRECT=m 190CONFIG_IP_NF_TARGET_REDIRECT=m
@@ -190,6 +199,8 @@ CONFIG_IP_NF_ARP_MANGLE=m
190CONFIG_NF_CONNTRACK_IPV6=m 199CONFIG_NF_CONNTRACK_IPV6=m
191CONFIG_NFT_CHAIN_ROUTE_IPV6=m 200CONFIG_NFT_CHAIN_ROUTE_IPV6=m
192CONFIG_NFT_CHAIN_NAT_IPV6=m 201CONFIG_NFT_CHAIN_NAT_IPV6=m
202CONFIG_NFT_MASQ_IPV6=m
203CONFIG_NFT_REDIR_IPV6=m
193CONFIG_IP6_NF_IPTABLES=m 204CONFIG_IP6_NF_IPTABLES=m
194CONFIG_IP6_NF_MATCH_AH=m 205CONFIG_IP6_NF_MATCH_AH=m
195CONFIG_IP6_NF_MATCH_EUI64=m 206CONFIG_IP6_NF_MATCH_EUI64=m
@@ -206,17 +217,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m
206CONFIG_IP6_NF_TARGET_SYNPROXY=m 217CONFIG_IP6_NF_TARGET_SYNPROXY=m
207CONFIG_IP6_NF_MANGLE=m 218CONFIG_IP6_NF_MANGLE=m
208CONFIG_IP6_NF_RAW=m 219CONFIG_IP6_NF_RAW=m
209CONFIG_NF_NAT_IPV6=m 220CONFIG_IP6_NF_NAT=m
210CONFIG_IP6_NF_TARGET_MASQUERADE=m 221CONFIG_IP6_NF_TARGET_MASQUERADE=m
211CONFIG_IP6_NF_TARGET_NPT=m 222CONFIG_IP6_NF_TARGET_NPT=m
212CONFIG_NF_TABLES_BRIDGE=m 223CONFIG_NF_TABLES_BRIDGE=m
224CONFIG_NFT_BRIDGE_META=m
225CONFIG_NFT_BRIDGE_REJECT=m
226CONFIG_NF_LOG_BRIDGE=m
227CONFIG_BRIDGE_NF_EBTABLES=m
228CONFIG_BRIDGE_EBT_BROUTE=m
229CONFIG_BRIDGE_EBT_T_FILTER=m
230CONFIG_BRIDGE_EBT_T_NAT=m
231CONFIG_BRIDGE_EBT_802_3=m
232CONFIG_BRIDGE_EBT_AMONG=m
233CONFIG_BRIDGE_EBT_ARP=m
234CONFIG_BRIDGE_EBT_IP=m
235CONFIG_BRIDGE_EBT_IP6=m
236CONFIG_BRIDGE_EBT_LIMIT=m
237CONFIG_BRIDGE_EBT_MARK=m
238CONFIG_BRIDGE_EBT_PKTTYPE=m
239CONFIG_BRIDGE_EBT_STP=m
240CONFIG_BRIDGE_EBT_VLAN=m
241CONFIG_BRIDGE_EBT_ARPREPLY=m
242CONFIG_BRIDGE_EBT_DNAT=m
243CONFIG_BRIDGE_EBT_MARK_T=m
244CONFIG_BRIDGE_EBT_REDIRECT=m
245CONFIG_BRIDGE_EBT_SNAT=m
246CONFIG_BRIDGE_EBT_LOG=m
247CONFIG_BRIDGE_EBT_NFLOG=m
213CONFIG_IP_DCCP=m 248CONFIG_IP_DCCP=m
214# CONFIG_IP_DCCP_CCID3 is not set 249# CONFIG_IP_DCCP_CCID3 is not set
215CONFIG_SCTP_COOKIE_HMAC_SHA1=y 250CONFIG_SCTP_COOKIE_HMAC_SHA1=y
216CONFIG_RDS=m 251CONFIG_RDS=m
217CONFIG_RDS_TCP=m 252CONFIG_RDS_TCP=m
218CONFIG_L2TP=m 253CONFIG_L2TP=m
254CONFIG_BRIDGE=m
219CONFIG_ATALK=m 255CONFIG_ATALK=m
256CONFIG_6LOWPAN=m
220CONFIG_DNS_RESOLVER=y 257CONFIG_DNS_RESOLVER=y
221CONFIG_BATMAN_ADV=m 258CONFIG_BATMAN_ADV=m
222CONFIG_BATMAN_ADV_DAT=y 259CONFIG_BATMAN_ADV_DAT=y
@@ -225,9 +262,10 @@ CONFIG_BATMAN_ADV_MCAST=y
225CONFIG_NETLINK_DIAG=m 262CONFIG_NETLINK_DIAG=m
226CONFIG_NET_MPLS_GSO=m 263CONFIG_NET_MPLS_GSO=m
227# CONFIG_WIRELESS is not set 264# CONFIG_WIRELESS is not set
265# CONFIG_UEVENT_HELPER is not set
228CONFIG_DEVTMPFS=y 266CONFIG_DEVTMPFS=y
267CONFIG_DEVTMPFS_MOUNT=y
229# CONFIG_FIRMWARE_IN_KERNEL is not set 268# CONFIG_FIRMWARE_IN_KERNEL is not set
230# CONFIG_FW_LOADER_USER_HELPER is not set
231CONFIG_CONNECTOR=m 269CONFIG_CONNECTOR=m
232CONFIG_BLK_DEV_LOOP=y 270CONFIG_BLK_DEV_LOOP=y
233CONFIG_BLK_DEV_CRYPTOLOOP=m 271CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -277,6 +315,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
277CONFIG_NET_TEAM_MODE_RANDOM=m 315CONFIG_NET_TEAM_MODE_RANDOM=m
278CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 316CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
279CONFIG_NET_TEAM_MODE_LOADBALANCE=m 317CONFIG_NET_TEAM_MODE_LOADBALANCE=m
318CONFIG_MACVLAN=m
319CONFIG_MACVTAP=m
320CONFIG_IPVLAN=m
280CONFIG_VXLAN=m 321CONFIG_VXLAN=m
281CONFIG_NETCONSOLE=m 322CONFIG_NETCONSOLE=m
282CONFIG_NETCONSOLE_DYNAMIC=y 323CONFIG_NETCONSOLE_DYNAMIC=y
@@ -288,6 +329,8 @@ CONFIG_SUN3LANCE=y
288# CONFIG_NET_VENDOR_MARVELL is not set 329# CONFIG_NET_VENDOR_MARVELL is not set
289# CONFIG_NET_VENDOR_MICREL is not set 330# CONFIG_NET_VENDOR_MICREL is not set
290# CONFIG_NET_VENDOR_NATSEMI is not set 331# CONFIG_NET_VENDOR_NATSEMI is not set
332# CONFIG_NET_VENDOR_QUALCOMM is not set
333# CONFIG_NET_VENDOR_ROCKER is not set
291# CONFIG_NET_VENDOR_SAMSUNG is not set 334# CONFIG_NET_VENDOR_SAMSUNG is not set
292# CONFIG_NET_VENDOR_SEEQ is not set 335# CONFIG_NET_VENDOR_SEEQ is not set
293# CONFIG_NET_VENDOR_STMICRO is not set 336# CONFIG_NET_VENDOR_STMICRO is not set
@@ -327,6 +370,7 @@ CONFIG_HID=m
327CONFIG_HIDRAW=y 370CONFIG_HIDRAW=y
328CONFIG_UHID=m 371CONFIG_UHID=m
329# CONFIG_HID_GENERIC is not set 372# CONFIG_HID_GENERIC is not set
373# CONFIG_HID_PLANTRONICS is not set
330# CONFIG_USB_SUPPORT is not set 374# CONFIG_USB_SUPPORT is not set
331CONFIG_RTC_CLASS=y 375CONFIG_RTC_CLASS=y
332CONFIG_RTC_DRV_GENERIC=m 376CONFIG_RTC_DRV_GENERIC=m
@@ -344,6 +388,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
344CONFIG_AUTOFS4_FS=m 388CONFIG_AUTOFS4_FS=m
345CONFIG_FUSE_FS=m 389CONFIG_FUSE_FS=m
346CONFIG_CUSE=m 390CONFIG_CUSE=m
391CONFIG_OVERLAY_FS=m
347CONFIG_ISO9660_FS=y 392CONFIG_ISO9660_FS=y
348CONFIG_JOLIET=y 393CONFIG_JOLIET=y
349CONFIG_ZISOFS=y 394CONFIG_ZISOFS=y
@@ -359,6 +404,7 @@ CONFIG_HFS_FS=m
359CONFIG_HFSPLUS_FS=m 404CONFIG_HFSPLUS_FS=m
360CONFIG_CRAMFS=m 405CONFIG_CRAMFS=m
361CONFIG_SQUASHFS=m 406CONFIG_SQUASHFS=m
407CONFIG_SQUASHFS_LZ4=y
362CONFIG_SQUASHFS_LZO=y 408CONFIG_SQUASHFS_LZO=y
363CONFIG_MINIX_FS=m 409CONFIG_MINIX_FS=m
364CONFIG_OMFS_FS=m 410CONFIG_OMFS_FS=m
@@ -428,10 +474,18 @@ CONFIG_DLM=m
428CONFIG_MAGIC_SYSRQ=y 474CONFIG_MAGIC_SYSRQ=y
429CONFIG_ASYNC_RAID6_TEST=m 475CONFIG_ASYNC_RAID6_TEST=m
430CONFIG_TEST_STRING_HELPERS=m 476CONFIG_TEST_STRING_HELPERS=m
477CONFIG_TEST_KSTRTOX=m
478CONFIG_TEST_LKM=m
479CONFIG_TEST_USER_COPY=m
480CONFIG_TEST_BPF=m
481CONFIG_TEST_FIRMWARE=m
482CONFIG_TEST_UDELAY=m
483CONFIG_EARLY_PRINTK=y
431CONFIG_ENCRYPTED_KEYS=m 484CONFIG_ENCRYPTED_KEYS=m
432CONFIG_CRYPTO_MANAGER=y 485CONFIG_CRYPTO_MANAGER=y
433CONFIG_CRYPTO_USER=m 486CONFIG_CRYPTO_USER=m
434CONFIG_CRYPTO_CRYPTD=m 487CONFIG_CRYPTO_CRYPTD=m
488CONFIG_CRYPTO_MCRYPTD=m
435CONFIG_CRYPTO_TEST=m 489CONFIG_CRYPTO_TEST=m
436CONFIG_CRYPTO_CCM=m 490CONFIG_CRYPTO_CCM=m
437CONFIG_CRYPTO_GCM=m 491CONFIG_CRYPTO_GCM=m
@@ -466,13 +520,10 @@ CONFIG_CRYPTO_LZO=m
466CONFIG_CRYPTO_LZ4=m 520CONFIG_CRYPTO_LZ4=m
467CONFIG_CRYPTO_LZ4HC=m 521CONFIG_CRYPTO_LZ4HC=m
468# CONFIG_CRYPTO_ANSI_CPRNG is not set 522# CONFIG_CRYPTO_ANSI_CPRNG is not set
523CONFIG_CRYPTO_DRBG_MENU=m
524CONFIG_CRYPTO_DRBG_HASH=y
525CONFIG_CRYPTO_DRBG_CTR=y
469CONFIG_CRYPTO_USER_API_HASH=m 526CONFIG_CRYPTO_USER_API_HASH=m
470CONFIG_CRYPTO_USER_API_SKCIPHER=m 527CONFIG_CRYPTO_USER_API_SKCIPHER=m
471# CONFIG_CRYPTO_HW is not set 528# CONFIG_CRYPTO_HW is not set
472CONFIG_XZ_DEC_X86=y
473CONFIG_XZ_DEC_POWERPC=y
474CONFIG_XZ_DEC_IA64=y
475CONFIG_XZ_DEC_ARM=y
476CONFIG_XZ_DEC_ARMTHUMB=y
477CONFIG_XZ_DEC_SPARC=y
478CONFIG_XZ_DEC_TEST=m 529CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/include/asm/Kbuild b/arch/m68k/include/asm/Kbuild
index 9b6c691874bd..1517ed1c6471 100644
--- a/arch/m68k/include/asm/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
@@ -6,6 +6,7 @@ generic-y += device.h
6generic-y += emergency-restart.h 6generic-y += emergency-restart.h
7generic-y += errno.h 7generic-y += errno.h
8generic-y += exec.h 8generic-y += exec.h
9generic-y += futex.h
9generic-y += hw_irq.h 10generic-y += hw_irq.h
10generic-y += ioctl.h 11generic-y += ioctl.h
11generic-y += ipcbuf.h 12generic-y += ipcbuf.h
diff --git a/arch/m68k/include/asm/atariints.h b/arch/m68k/include/asm/atariints.h
index 953e0ac6855e..6321c4495620 100644
--- a/arch/m68k/include/asm/atariints.h
+++ b/arch/m68k/include/asm/atariints.h
@@ -40,11 +40,6 @@
40/* convert irq_handler index to vector number */ 40/* convert irq_handler index to vector number */
41#define IRQ_SOURCE_TO_VECTOR(i) ((i) + ((i) < 8 ? 0x18 : (0x40-8))) 41#define IRQ_SOURCE_TO_VECTOR(i) ((i) + ((i) < 8 ? 0x18 : (0x40-8)))
42 42
43/* interrupt service types */
44#define IRQ_TYPE_SLOW 0
45#define IRQ_TYPE_FAST 1
46#define IRQ_TYPE_PRIO 2
47
48/* ST-MFP interrupts */ 43/* ST-MFP interrupts */
49#define IRQ_MFP_BUSY (8) 44#define IRQ_MFP_BUSY (8)
50#define IRQ_MFP_DCD (9) 45#define IRQ_MFP_DCD (9)
diff --git a/arch/m68k/include/asm/futex.h b/arch/m68k/include/asm/futex.h
deleted file mode 100644
index bc868af10c96..000000000000
--- a/arch/m68k/include/asm/futex.h
+++ /dev/null
@@ -1,94 +0,0 @@
1#ifndef _ASM_M68K_FUTEX_H
2#define _ASM_M68K_FUTEX_H
3
4#ifdef __KERNEL__
5#if !defined(CONFIG_MMU)
6#include <asm-generic/futex.h>
7#else /* CONFIG_MMU */
8
9#include <linux/futex.h>
10#include <linux/uaccess.h>
11#include <asm/errno.h>
12
13static inline int
14futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
15 u32 oldval, u32 newval)
16{
17 u32 val;
18
19 if (unlikely(get_user(val, uaddr) != 0))
20 return -EFAULT;
21
22 if (val == oldval && unlikely(put_user(newval, uaddr) != 0))
23 return -EFAULT;
24
25 *uval = val;
26
27 return 0;
28}
29
30static inline int
31futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
32{
33 int op = (encoded_op >> 28) & 7;
34 int cmp = (encoded_op >> 24) & 15;
35 int oparg = (encoded_op << 8) >> 20;
36 int cmparg = (encoded_op << 20) >> 20;
37 int oldval, ret;
38 u32 tmp;
39
40 if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
41 oparg = 1 << oparg;
42
43 pagefault_disable(); /* implies preempt_disable() */
44
45 ret = -EFAULT;
46 if (unlikely(get_user(oldval, uaddr) != 0))
47 goto out_pagefault_enable;
48
49 ret = 0;
50 tmp = oldval;
51
52 switch (op) {
53 case FUTEX_OP_SET:
54 tmp = oparg;
55 break;
56 case FUTEX_OP_ADD:
57 tmp += oparg;
58 break;
59 case FUTEX_OP_OR:
60 tmp |= oparg;
61 break;
62 case FUTEX_OP_ANDN:
63 tmp &= ~oparg;
64 break;
65 case FUTEX_OP_XOR:
66 tmp ^= oparg;
67 break;
68 default:
69 ret = -ENOSYS;
70 }
71
72 if (ret == 0 && unlikely(put_user(tmp, uaddr) != 0))
73 ret = -EFAULT;
74
75out_pagefault_enable:
76 pagefault_enable(); /* subsumes preempt_enable() */
77
78 if (ret == 0) {
79 switch (cmp) {
80 case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
81 case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
82 case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
83 case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
84 case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
85 case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
86 default: ret = -ENOSYS;
87 }
88 }
89 return ret;
90}
91
92#endif /* CONFIG_MMU */
93#endif /* __KERNEL__ */
94#endif /* _ASM_M68K_FUTEX_H */
diff --git a/arch/m68k/include/asm/macintosh.h b/arch/m68k/include/asm/macintosh.h
index 29c7c6c3a5f2..42235e7fbeed 100644
--- a/arch/m68k/include/asm/macintosh.h
+++ b/arch/m68k/include/asm/macintosh.h
@@ -55,7 +55,7 @@ struct mac_model
55#define MAC_SCSI_QUADRA3 4 55#define MAC_SCSI_QUADRA3 4
56#define MAC_SCSI_IIFX 5 56#define MAC_SCSI_IIFX 5
57#define MAC_SCSI_DUO 6 57#define MAC_SCSI_DUO 6
58#define MAC_SCSI_CCL 7 58#define MAC_SCSI_LC 7
59#define MAC_SCSI_LATE 8 59#define MAC_SCSI_LATE 8
60 60
61#define MAC_IDE_NONE 0 61#define MAC_IDE_NONE 0
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index e9c3756139fc..689b47d292ac 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -296,7 +296,7 @@ static struct mac_model mac_data_table[] = {
296 .name = "IIvi", 296 .name = "IIvi",
297 .adb_type = MAC_ADB_IISI, 297 .adb_type = MAC_ADB_IISI,
298 .via_type = MAC_VIA_IICI, 298 .via_type = MAC_VIA_IICI,
299 .scsi_type = MAC_SCSI_OLD, 299 .scsi_type = MAC_SCSI_LC,
300 .scc_type = MAC_SCC_II, 300 .scc_type = MAC_SCC_II,
301 .nubus_type = MAC_NUBUS, 301 .nubus_type = MAC_NUBUS,
302 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 302 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -305,7 +305,7 @@ static struct mac_model mac_data_table[] = {
305 .name = "IIvx", 305 .name = "IIvx",
306 .adb_type = MAC_ADB_IISI, 306 .adb_type = MAC_ADB_IISI,
307 .via_type = MAC_VIA_IICI, 307 .via_type = MAC_VIA_IICI,
308 .scsi_type = MAC_SCSI_OLD, 308 .scsi_type = MAC_SCSI_LC,
309 .scc_type = MAC_SCC_II, 309 .scc_type = MAC_SCC_II,
310 .nubus_type = MAC_NUBUS, 310 .nubus_type = MAC_NUBUS,
311 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 311 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -320,7 +320,7 @@ static struct mac_model mac_data_table[] = {
320 .name = "Classic II", 320 .name = "Classic II",
321 .adb_type = MAC_ADB_IISI, 321 .adb_type = MAC_ADB_IISI,
322 .via_type = MAC_VIA_IICI, 322 .via_type = MAC_VIA_IICI,
323 .scsi_type = MAC_SCSI_OLD, 323 .scsi_type = MAC_SCSI_LC,
324 .scc_type = MAC_SCC_II, 324 .scc_type = MAC_SCC_II,
325 .nubus_type = MAC_NUBUS, 325 .nubus_type = MAC_NUBUS,
326 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 326 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -329,7 +329,7 @@ static struct mac_model mac_data_table[] = {
329 .name = "Color Classic", 329 .name = "Color Classic",
330 .adb_type = MAC_ADB_CUDA, 330 .adb_type = MAC_ADB_CUDA,
331 .via_type = MAC_VIA_IICI, 331 .via_type = MAC_VIA_IICI,
332 .scsi_type = MAC_SCSI_CCL, 332 .scsi_type = MAC_SCSI_LC,
333 .scc_type = MAC_SCC_II, 333 .scc_type = MAC_SCC_II,
334 .nubus_type = MAC_NUBUS, 334 .nubus_type = MAC_NUBUS,
335 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 335 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -338,7 +338,7 @@ static struct mac_model mac_data_table[] = {
338 .name = "Color Classic II", 338 .name = "Color Classic II",
339 .adb_type = MAC_ADB_CUDA, 339 .adb_type = MAC_ADB_CUDA,
340 .via_type = MAC_VIA_IICI, 340 .via_type = MAC_VIA_IICI,
341 .scsi_type = MAC_SCSI_CCL, 341 .scsi_type = MAC_SCSI_LC,
342 .scc_type = MAC_SCC_II, 342 .scc_type = MAC_SCC_II,
343 .nubus_type = MAC_NUBUS, 343 .nubus_type = MAC_NUBUS,
344 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 344 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -353,7 +353,7 @@ static struct mac_model mac_data_table[] = {
353 .name = "LC", 353 .name = "LC",
354 .adb_type = MAC_ADB_IISI, 354 .adb_type = MAC_ADB_IISI,
355 .via_type = MAC_VIA_IICI, 355 .via_type = MAC_VIA_IICI,
356 .scsi_type = MAC_SCSI_OLD, 356 .scsi_type = MAC_SCSI_LC,
357 .scc_type = MAC_SCC_II, 357 .scc_type = MAC_SCC_II,
358 .nubus_type = MAC_NUBUS, 358 .nubus_type = MAC_NUBUS,
359 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 359 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -362,7 +362,7 @@ static struct mac_model mac_data_table[] = {
362 .name = "LC II", 362 .name = "LC II",
363 .adb_type = MAC_ADB_IISI, 363 .adb_type = MAC_ADB_IISI,
364 .via_type = MAC_VIA_IICI, 364 .via_type = MAC_VIA_IICI,
365 .scsi_type = MAC_SCSI_OLD, 365 .scsi_type = MAC_SCSI_LC,
366 .scc_type = MAC_SCC_II, 366 .scc_type = MAC_SCC_II,
367 .nubus_type = MAC_NUBUS, 367 .nubus_type = MAC_NUBUS,
368 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 368 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -371,7 +371,7 @@ static struct mac_model mac_data_table[] = {
371 .name = "LC III", 371 .name = "LC III",
372 .adb_type = MAC_ADB_IISI, 372 .adb_type = MAC_ADB_IISI,
373 .via_type = MAC_VIA_IICI, 373 .via_type = MAC_VIA_IICI,
374 .scsi_type = MAC_SCSI_OLD, 374 .scsi_type = MAC_SCSI_LC,
375 .scc_type = MAC_SCC_II, 375 .scc_type = MAC_SCC_II,
376 .nubus_type = MAC_NUBUS, 376 .nubus_type = MAC_NUBUS,
377 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 377 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -499,7 +499,7 @@ static struct mac_model mac_data_table[] = {
499 .name = "Performa 460", 499 .name = "Performa 460",
500 .adb_type = MAC_ADB_IISI, 500 .adb_type = MAC_ADB_IISI,
501 .via_type = MAC_VIA_IICI, 501 .via_type = MAC_VIA_IICI,
502 .scsi_type = MAC_SCSI_OLD, 502 .scsi_type = MAC_SCSI_LC,
503 .scc_type = MAC_SCC_II, 503 .scc_type = MAC_SCC_II,
504 .nubus_type = MAC_NUBUS, 504 .nubus_type = MAC_NUBUS,
505 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 505 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -526,7 +526,7 @@ static struct mac_model mac_data_table[] = {
526 .name = "Performa 520", 526 .name = "Performa 520",
527 .adb_type = MAC_ADB_CUDA, 527 .adb_type = MAC_ADB_CUDA,
528 .via_type = MAC_VIA_IICI, 528 .via_type = MAC_VIA_IICI,
529 .scsi_type = MAC_SCSI_CCL, 529 .scsi_type = MAC_SCSI_LC,
530 .scc_type = MAC_SCC_II, 530 .scc_type = MAC_SCC_II,
531 .nubus_type = MAC_NUBUS, 531 .nubus_type = MAC_NUBUS,
532 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 532 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -535,7 +535,7 @@ static struct mac_model mac_data_table[] = {
535 .name = "Performa 550", 535 .name = "Performa 550",
536 .adb_type = MAC_ADB_CUDA, 536 .adb_type = MAC_ADB_CUDA,
537 .via_type = MAC_VIA_IICI, 537 .via_type = MAC_VIA_IICI,
538 .scsi_type = MAC_SCSI_CCL, 538 .scsi_type = MAC_SCSI_LC,
539 .scc_type = MAC_SCC_II, 539 .scc_type = MAC_SCC_II,
540 .nubus_type = MAC_NUBUS, 540 .nubus_type = MAC_NUBUS,
541 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 541 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -567,7 +567,7 @@ static struct mac_model mac_data_table[] = {
567 .name = "TV", 567 .name = "TV",
568 .adb_type = MAC_ADB_CUDA, 568 .adb_type = MAC_ADB_CUDA,
569 .via_type = MAC_VIA_IICI, 569 .via_type = MAC_VIA_IICI,
570 .scsi_type = MAC_SCSI_CCL, 570 .scsi_type = MAC_SCSI_LC,
571 .scc_type = MAC_SCC_II, 571 .scc_type = MAC_SCC_II,
572 .nubus_type = MAC_NUBUS, 572 .nubus_type = MAC_NUBUS,
573 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 573 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -576,7 +576,7 @@ static struct mac_model mac_data_table[] = {
576 .name = "Performa 600", 576 .name = "Performa 600",
577 .adb_type = MAC_ADB_IISI, 577 .adb_type = MAC_ADB_IISI,
578 .via_type = MAC_VIA_IICI, 578 .via_type = MAC_VIA_IICI,
579 .scsi_type = MAC_SCSI_OLD, 579 .scsi_type = MAC_SCSI_LC,
580 .scc_type = MAC_SCC_II, 580 .scc_type = MAC_SCC_II,
581 .nubus_type = MAC_NUBUS, 581 .nubus_type = MAC_NUBUS,
582 .floppy_type = MAC_FLOPPY_SWIM_ADDR2, 582 .floppy_type = MAC_FLOPPY_SWIM_ADDR2,
@@ -1109,8 +1109,10 @@ int __init mac_platform_init(void)
1109 platform_device_register_simple("mac_scsi", 0, 1109 platform_device_register_simple("mac_scsi", 0,
1110 mac_scsi_late_rsrc, ARRAY_SIZE(mac_scsi_late_rsrc)); 1110 mac_scsi_late_rsrc, ARRAY_SIZE(mac_scsi_late_rsrc));
1111 break; 1111 break;
1112 case MAC_SCSI_CCL: 1112 case MAC_SCSI_LC:
1113 /* Addresses from the Color Classic Developer Note. 1113 /* Addresses from Mac LC data in Designing Cards & Drivers 3ed.
1114 * Also from the Developer Notes for Classic II, LC III,
1115 * Color Classic and IIvx.
1114 * $50F0 6000 - $50F0 7FFF: SCSI handshake 1116 * $50F0 6000 - $50F0 7FFF: SCSI handshake
1115 * $50F1 0000 - $50F1 1FFF: SCSI 1117 * $50F1 0000 - $50F1 1FFF: SCSI
1116 * $50F1 2000 - $50F1 3FFF: SCSI DMA 1118 * $50F1 2000 - $50F1 3FFF: SCSI DMA
diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c
index 1bb3ce6634d3..e6a3b56c6481 100644
--- a/arch/m68k/mvme147/config.c
+++ b/arch/m68k/mvme147/config.c
@@ -168,49 +168,3 @@ int mvme147_set_clock_mmss (unsigned long nowtime)
168{ 168{
169 return 0; 169 return 0;
170} 170}
171
172/*------------------- Serial console stuff ------------------------*/
173
174static void scc_delay (void)
175{
176 int n;
177 volatile int trash;
178
179 for (n = 0; n < 20; n++)
180 trash = n;
181}
182
183static void scc_write (char ch)
184{
185 volatile char *p = (volatile char *)M147_SCC_A_ADDR;
186
187 do {
188 scc_delay();
189 }
190 while (!(*p & 4));
191 scc_delay();
192 *p = 8;
193 scc_delay();
194 *p = ch;
195}
196
197
198void m147_scc_write (struct console *co, const char *str, unsigned count)
199{
200 unsigned long flags;
201
202 local_irq_save(flags);
203
204 while (count--)
205 {
206 if (*str == '\n')
207 scc_write ('\r');
208 scc_write (*str++);
209 }
210 local_irq_restore(flags);
211}
212
213void mvme147_init_console_port (struct console *co, int cflag)
214{
215 co->write = m147_scc_write;
216}
diff --git a/arch/m68k/mvme16x/rtc.c b/arch/m68k/mvme16x/rtc.c
index 6ef7a81a3b12..1755e2f7137d 100644
--- a/arch/m68k/mvme16x/rtc.c
+++ b/arch/m68k/mvme16x/rtc.c
@@ -161,4 +161,4 @@ static int __init rtc_MK48T08_init(void)
161 printk(KERN_INFO "MK48T08 Real Time Clock Driver v%s\n", RTC_VERSION); 161 printk(KERN_INFO "MK48T08 Real Time Clock Driver v%s\n", RTC_VERSION);
162 return misc_register(&rtc_dev); 162 return misc_register(&rtc_dev);
163} 163}
164module_init(rtc_MK48T08_init); 164device_initcall(rtc_MK48T08_init);
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index 8e211cc28dac..91d2068da1b9 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -34,5 +34,4 @@ $(obj)/simpleImage.%: vmlinux FORCE
34 $(call if_changed,strip) 34 $(call if_changed,strip)
35 @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' 35 @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
36 36
37 37clean-files += simpleImage.*.unstrip linux.bin.ub dts/*.dtb
38clean-files += simpleImage.*.unstrip linux.bin.ub
diff --git a/arch/microblaze/boot/dts/Makefile b/arch/microblaze/boot/dts/Makefile
index c4982d16e555..a3d2e42c3c97 100644
--- a/arch/microblaze/boot/dts/Makefile
+++ b/arch/microblaze/boot/dts/Makefile
@@ -16,5 +16,3 @@ quiet_cmd_cp = CP $< $@$2
16 16
17# Rule to build device tree blobs 17# Rule to build device tree blobs
18DTC_FLAGS := -p 1024 18DTC_FLAGS := -p 1024
19
20clean-files += *.dtb
diff --git a/arch/microblaze/include/asm/delay.h b/arch/microblaze/include/asm/delay.h
index 60cb39deb533..ea2a9cd9b159 100644
--- a/arch/microblaze/include/asm/delay.h
+++ b/arch/microblaze/include/asm/delay.h
@@ -15,7 +15,7 @@
15 15
16#include <linux/param.h> 16#include <linux/param.h>
17 17
18extern inline void __delay(unsigned long loops) 18static inline void __delay(unsigned long loops)
19{ 19{
20 asm volatile ("# __delay \n\t" \ 20 asm volatile ("# __delay \n\t" \
21 "1: addi %0, %0, -1\t\n" \ 21 "1: addi %0, %0, -1\t\n" \
@@ -43,7 +43,7 @@ extern inline void __delay(unsigned long loops)
43 43
44extern unsigned long loops_per_jiffy; 44extern unsigned long loops_per_jiffy;
45 45
46extern inline void __udelay(unsigned int x) 46static inline void __udelay(unsigned int x)
47{ 47{
48 48
49 unsigned long long tmp = 49 unsigned long long tmp =
diff --git a/arch/microblaze/include/asm/kgdb.h b/arch/microblaze/include/asm/kgdb.h
index 78b17d40b235..ad27acb2b15f 100644
--- a/arch/microblaze/include/asm/kgdb.h
+++ b/arch/microblaze/include/asm/kgdb.h
@@ -23,6 +23,9 @@ static inline void arch_kgdb_breakpoint(void)
23 __asm__ __volatile__("brki r16, 0x18;"); 23 __asm__ __volatile__("brki r16, 0x18;");
24} 24}
25 25
26struct pt_regs;
27asmlinkage void microblaze_kgdb_break(struct pt_regs *regs);
28
26#endif /* __ASSEMBLY__ */ 29#endif /* __ASSEMBLY__ */
27#endif /* __MICROBLAZE_KGDB_H__ */ 30#endif /* __MICROBLAZE_KGDB_H__ */
28#endif /* __KERNEL__ */ 31#endif /* __KERNEL__ */
diff --git a/arch/microblaze/include/asm/linkage.h b/arch/microblaze/include/asm/linkage.h
index 3a8e36d057eb..0540bbaad897 100644
--- a/arch/microblaze/include/asm/linkage.h
+++ b/arch/microblaze/include/asm/linkage.h
@@ -1,15 +1 @@
1/* #include <asm-generic/linkage.h>
2 * Copyright (C) 2006 Atmark Techno, Inc.
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 */
8
9#ifndef _ASM_MICROBLAZE_LINKAGE_H
10#define _ASM_MICROBLAZE_LINKAGE_H
11
12#define __ALIGN .align 4
13#define __ALIGN_STR ".align 4"
14
15#endif /* _ASM_MICROBLAZE_LINKAGE_H */
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h
index 7fdf7fabc7d7..61436d69775c 100644
--- a/arch/microblaze/include/asm/pgalloc.h
+++ b/arch/microblaze/include/asm/pgalloc.h
@@ -60,7 +60,7 @@ extern unsigned long get_zero_page_fast(void);
60 60
61extern void __bad_pte(pmd_t *pmd); 61extern void __bad_pte(pmd_t *pmd);
62 62
63extern inline pgd_t *get_pgd_slow(void) 63static inline pgd_t *get_pgd_slow(void)
64{ 64{
65 pgd_t *ret; 65 pgd_t *ret;
66 66
@@ -70,7 +70,7 @@ extern inline pgd_t *get_pgd_slow(void)
70 return ret; 70 return ret;
71} 71}
72 72
73extern inline pgd_t *get_pgd_fast(void) 73static inline pgd_t *get_pgd_fast(void)
74{ 74{
75 unsigned long *ret; 75 unsigned long *ret;
76 76
@@ -84,14 +84,14 @@ extern inline pgd_t *get_pgd_fast(void)
84 return (pgd_t *)ret; 84 return (pgd_t *)ret;
85} 85}
86 86
87extern inline void free_pgd_fast(pgd_t *pgd) 87static inline void free_pgd_fast(pgd_t *pgd)
88{ 88{
89 *(unsigned long **)pgd = pgd_quicklist; 89 *(unsigned long **)pgd = pgd_quicklist;
90 pgd_quicklist = (unsigned long *) pgd; 90 pgd_quicklist = (unsigned long *) pgd;
91 pgtable_cache_size++; 91 pgtable_cache_size++;
92} 92}
93 93
94extern inline void free_pgd_slow(pgd_t *pgd) 94static inline void free_pgd_slow(pgd_t *pgd)
95{ 95{
96 free_page((unsigned long)pgd); 96 free_page((unsigned long)pgd);
97} 97}
@@ -146,19 +146,19 @@ static inline pte_t *pte_alloc_one_fast(struct mm_struct *mm,
146 return (pte_t *)ret; 146 return (pte_t *)ret;
147} 147}
148 148
149extern inline void pte_free_fast(pte_t *pte) 149static inline void pte_free_fast(pte_t *pte)
150{ 150{
151 *(unsigned long **)pte = pte_quicklist; 151 *(unsigned long **)pte = pte_quicklist;
152 pte_quicklist = (unsigned long *) pte; 152 pte_quicklist = (unsigned long *) pte;
153 pgtable_cache_size++; 153 pgtable_cache_size++;
154} 154}
155 155
156extern inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) 156static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
157{ 157{
158 free_page((unsigned long)pte); 158 free_page((unsigned long)pte);
159} 159}
160 160
161extern inline void pte_free_slow(struct page *ptepage) 161static inline void pte_free_slow(struct page *ptepage)
162{ 162{
163 __free_page(ptepage); 163 __free_page(ptepage);
164} 164}
diff --git a/arch/microblaze/include/asm/syscall.h b/arch/microblaze/include/asm/syscall.h
index 53cfaf34c343..04a5bece8168 100644
--- a/arch/microblaze/include/asm/syscall.h
+++ b/arch/microblaze/include/asm/syscall.h
@@ -97,7 +97,7 @@ static inline void syscall_set_arguments(struct task_struct *task,
97 microblaze_set_syscall_arg(regs, i++, *args++); 97 microblaze_set_syscall_arg(regs, i++, *args++);
98} 98}
99 99
100asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); 100asmlinkage unsigned long do_syscall_trace_enter(struct pt_regs *regs);
101asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); 101asmlinkage void do_syscall_trace_leave(struct pt_regs *regs);
102 102
103static inline int syscall_get_arch(void) 103static inline int syscall_get_arch(void)
diff --git a/arch/microblaze/include/asm/uaccess.h b/arch/microblaze/include/asm/uaccess.h
index 59a89a64a865..62942fd12672 100644
--- a/arch/microblaze/include/asm/uaccess.h
+++ b/arch/microblaze/include/asm/uaccess.h
@@ -220,7 +220,7 @@ extern long __user_bad(void);
220 } else { \ 220 } else { \
221 __gu_err = -EFAULT; \ 221 __gu_err = -EFAULT; \
222 } \ 222 } \
223 x = (typeof(*(ptr)))__gu_val; \ 223 x = (__force typeof(*(ptr)))__gu_val; \
224 __gu_err; \ 224 __gu_err; \
225}) 225})
226 226
@@ -242,7 +242,7 @@ extern long __user_bad(void);
242 default: \ 242 default: \
243 /* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\ 243 /* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\
244 } \ 244 } \
245 x = (__typeof__(*(ptr))) __gu_val; \ 245 x = (__force __typeof__(*(ptr))) __gu_val; \
246 __gu_err; \ 246 __gu_err; \
247}) 247})
248 248
@@ -306,7 +306,7 @@ extern long __user_bad(void);
306 306
307#define __put_user_check(x, ptr, size) \ 307#define __put_user_check(x, ptr, size) \
308({ \ 308({ \
309 typeof(*(ptr)) volatile __pu_val = x; \ 309 typeof(*(ptr)) volatile __pu_val = x; \
310 typeof(*(ptr)) __user *__pu_addr = (ptr); \ 310 typeof(*(ptr)) __user *__pu_addr = (ptr); \
311 int __pu_err = 0; \ 311 int __pu_err = 0; \
312 \ 312 \
diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h
index 0a53362d5548..76ed17b56fea 100644
--- a/arch/microblaze/include/asm/unistd.h
+++ b/arch/microblaze/include/asm/unistd.h
@@ -38,6 +38,6 @@
38 38
39#endif /* __ASSEMBLY__ */ 39#endif /* __ASSEMBLY__ */
40 40
41#define __NR_syscalls 388 41#define __NR_syscalls 389
42 42
43#endif /* _ASM_MICROBLAZE_UNISTD_H */ 43#endif /* _ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index c712677f8a2a..32850c73be09 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -403,5 +403,6 @@
403#define __NR_getrandom 385 403#define __NR_getrandom 385
404#define __NR_memfd_create 386 404#define __NR_memfd_create 386
405#define __NR_bpf 387 405#define __NR_bpf 387
406#define __NR_execveat 388
406 407
407#endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ 408#endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/kernel/Makefile b/arch/microblaze/kernel/Makefile
index 08d50cc55e7d..f08bacaf8a95 100644
--- a/arch/microblaze/kernel/Makefile
+++ b/arch/microblaze/kernel/Makefile
@@ -16,7 +16,7 @@ extra-y := head.o vmlinux.lds
16 16
17obj-y += dma.o exceptions.o \ 17obj-y += dma.o exceptions.o \
18 hw_exception_handler.o intc.o irq.o \ 18 hw_exception_handler.o intc.o irq.o \
19 platform.o process.o prom.o prom_parse.o ptrace.o \ 19 platform.o process.o prom.o ptrace.o \
20 reset.o setup.o signal.o sys_microblaze.o timer.o traps.o unwind.o 20 reset.o setup.o signal.o sys_microblaze.o timer.o traps.o unwind.o
21 21
22obj-y += cpu/ 22obj-y += cpu/
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c
index a6e44410672d..0bde47e4fa69 100644
--- a/arch/microblaze/kernel/cpu/cache.c
+++ b/arch/microblaze/kernel/cpu/cache.c
@@ -140,10 +140,10 @@ do { \
140/* It is used only first parameter for OP - for wic, wdc */ 140/* It is used only first parameter for OP - for wic, wdc */
141#define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ 141#define CACHE_RANGE_LOOP_1(start, end, line_length, op) \
142do { \ 142do { \
143 int volatile temp = 0; \ 143 unsigned int volatile temp = 0; \
144 int align = ~(line_length - 1); \ 144 unsigned int align = ~(line_length - 1); \
145 end = ((end & align) == end) ? end - line_length : end & align; \ 145 end = ((end & align) == end) ? end - line_length : end & align; \
146 WARN_ON(end - start < 0); \ 146 WARN_ON(end < start); \
147 \ 147 \
148 __asm__ __volatile__ (" 1: " #op " %1, r0;" \ 148 __asm__ __volatile__ (" 1: " #op " %1, r0;" \
149 "cmpu %0, %1, %2;" \ 149 "cmpu %0, %1, %2;" \
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
index 93c26cf50de5..a32daec96c12 100644
--- a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
+++ b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
@@ -33,7 +33,7 @@
33void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) 33void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
34{ 34{
35 struct pvr_s pvr; 35 struct pvr_s pvr;
36 int temp; /* for saving temp value */ 36 u32 temp; /* for saving temp value */
37 get_pvr(&pvr); 37 get_pvr(&pvr);
38 38
39 CI(ver_code, VERSION); 39 CI(ver_code, VERSION);
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-static.c b/arch/microblaze/kernel/cpu/cpuinfo-static.c
index 4854285b26e7..85dbda4a08a8 100644
--- a/arch/microblaze/kernel/cpu/cpuinfo-static.c
+++ b/arch/microblaze/kernel/cpu/cpuinfo-static.c
@@ -22,7 +22,7 @@ static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;
22 22
23void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu) 23void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu)
24{ 24{
25 int i = 0; 25 u32 i = 0;
26 26
27 ci->use_instr = 27 ci->use_instr =
28 (fcpu(cpu, "xlnx,use-barrel") ? PVR0_USE_BARREL_MASK : 0) | 28 (fcpu(cpu, "xlnx,use-barrel") ? PVR0_USE_BARREL_MASK : 0) |
diff --git a/arch/microblaze/kernel/cpu/cpuinfo.c b/arch/microblaze/kernel/cpu/cpuinfo.c
index 234acad79b9e..d1dd6e83d59b 100644
--- a/arch/microblaze/kernel/cpu/cpuinfo.c
+++ b/arch/microblaze/kernel/cpu/cpuinfo.c
@@ -41,8 +41,12 @@ const struct cpu_ver_key cpu_ver_lookup[] = {
41 {"8.40.a", 0x18}, 41 {"8.40.a", 0x18},
42 {"8.40.b", 0x19}, 42 {"8.40.b", 0x19},
43 {"8.50.a", 0x1a}, 43 {"8.50.a", 0x1a},
44 {"8.50.b", 0x1c},
45 {"8.50.c", 0x1e},
44 {"9.0", 0x1b}, 46 {"9.0", 0x1b},
45 {"9.1", 0x1d}, 47 {"9.1", 0x1d},
48 {"9.2", 0x1f},
49 {"9.3", 0x20},
46 {NULL, 0}, 50 {NULL, 0},
47}; 51};
48 52
@@ -61,11 +65,14 @@ const struct family_string_key family_string_lookup[] = {
61 {"spartan3adsp", 0xc}, 65 {"spartan3adsp", 0xc},
62 {"spartan6", 0xd}, 66 {"spartan6", 0xd},
63 {"virtex6", 0xe}, 67 {"virtex6", 0xe},
68 {"virtex7", 0xf},
64 /* FIXME There is no key code defined for spartan2 */ 69 /* FIXME There is no key code defined for spartan2 */
65 {"spartan2", 0xf0}, 70 {"spartan2", 0xf0},
66 {"kintex7", 0x10}, 71 {"kintex7", 0x10},
67 {"artix7", 0x11}, 72 {"artix7", 0x11},
68 {"zynq7000", 0x12}, 73 {"zynq7000", 0x12},
74 {"UltraScale Virtex", 0x13},
75 {"UltraScale Kintex", 0x14},
69 {NULL, 0}, 76 {NULL, 0},
70}; 77};
71 78
diff --git a/arch/microblaze/kernel/intc.c b/arch/microblaze/kernel/intc.c
index 15c7c12ea0e7..719feee1e043 100644
--- a/arch/microblaze/kernel/intc.c
+++ b/arch/microblaze/kernel/intc.c
@@ -148,17 +148,17 @@ static int __init xilinx_intc_of_init(struct device_node *intc,
148 ret = of_property_read_u32(intc, "xlnx,num-intr-inputs", &nr_irq); 148 ret = of_property_read_u32(intc, "xlnx,num-intr-inputs", &nr_irq);
149 if (ret < 0) { 149 if (ret < 0) {
150 pr_err("%s: unable to read xlnx,num-intr-inputs\n", __func__); 150 pr_err("%s: unable to read xlnx,num-intr-inputs\n", __func__);
151 return -EINVAL; 151 return ret;
152 } 152 }
153 153
154 ret = of_property_read_u32(intc, "xlnx,kind-of-intr", &intr_mask); 154 ret = of_property_read_u32(intc, "xlnx,kind-of-intr", &intr_mask);
155 if (ret < 0) { 155 if (ret < 0) {
156 pr_err("%s: unable to read xlnx,kind-of-intr\n", __func__); 156 pr_err("%s: unable to read xlnx,kind-of-intr\n", __func__);
157 return -EINVAL; 157 return ret;
158 } 158 }
159 159
160 if (intr_mask > (u32)((1ULL << nr_irq) - 1)) 160 if (intr_mask >> nr_irq)
161 pr_info(" ERROR: Mismatch in kind-of-intr param\n"); 161 pr_warn("%s: mismatch in kind-of-intr param\n", __func__);
162 162
163 pr_info("%s: num_irq=%d, edge=0x%x\n", 163 pr_info("%s: num_irq=%d, edge=0x%x\n",
164 intc->full_name, nr_irq, intr_mask); 164 intc->full_name, nr_irq, intr_mask);
diff --git a/arch/microblaze/kernel/kgdb.c b/arch/microblaze/kernel/kgdb.c
index 09a5e8286137..8736af5806ae 100644
--- a/arch/microblaze/kernel/kgdb.c
+++ b/arch/microblaze/kernel/kgdb.c
@@ -12,6 +12,7 @@
12#include <linux/io.h> 12#include <linux/io.h>
13#include <asm/cacheflush.h> 13#include <asm/cacheflush.h>
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/kgdb.h>
15#include <asm/pvr.h> 16#include <asm/pvr.h>
16 17
17#define GDB_REG 0 18#define GDB_REG 0
@@ -35,9 +36,10 @@ struct pvr_s pvr;
35 36
36void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) 37void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
37{ 38{
38 int i; 39 unsigned int i;
39 unsigned long *pt_regb = (unsigned long *)regs; 40 unsigned long *pt_regb = (unsigned long *)regs;
40 int temp; 41 int temp;
42
41 /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */ 43 /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */
42 for (i = 0; i < (sizeof(struct pt_regs) / 4) - 1; i++) 44 for (i = 0; i < (sizeof(struct pt_regs) / 4) - 1; i++)
43 gdb_regs[i] = pt_regb[i]; 45 gdb_regs[i] = pt_regb[i];
@@ -67,7 +69,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
67 69
68void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) 70void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
69{ 71{
70 int i; 72 unsigned int i;
71 unsigned long *pt_regb = (unsigned long *)regs; 73 unsigned long *pt_regb = (unsigned long *)regs;
72 74
73 /* pt_regs and gdb_regs have the same 37 values. 75 /* pt_regs and gdb_regs have the same 37 values.
@@ -77,7 +79,7 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
77 pt_regb[i] = gdb_regs[i]; 79 pt_regb[i] = gdb_regs[i];
78} 80}
79 81
80void microblaze_kgdb_break(struct pt_regs *regs) 82asmlinkage void microblaze_kgdb_break(struct pt_regs *regs)
81{ 83{
82 if (kgdb_handle_exception(1, SIGTRAP, 0, regs) != 0) 84 if (kgdb_handle_exception(1, SIGTRAP, 0, regs) != 0)
83 return; 85 return;
@@ -91,7 +93,7 @@ void microblaze_kgdb_break(struct pt_regs *regs)
91/* untested */ 93/* untested */
92void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p) 94void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
93{ 95{
94 int i; 96 unsigned int i;
95 unsigned long *pt_regb = (unsigned long *)(p->thread.regs); 97 unsigned long *pt_regb = (unsigned long *)(p->thread.regs);
96 98
97 /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */ 99 /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */
diff --git a/arch/microblaze/kernel/prom_parse.c b/arch/microblaze/kernel/prom_parse.c
deleted file mode 100644
index 068762f55fd6..000000000000
--- a/arch/microblaze/kernel/prom_parse.c
+++ /dev/null
@@ -1,35 +0,0 @@
1#undef DEBUG
2
3#include <linux/export.h>
4#include <linux/kernel.h>
5#include <linux/string.h>
6#include <linux/ioport.h>
7#include <linux/etherdevice.h>
8#include <linux/of_address.h>
9#include <asm/prom.h>
10
11void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop,
12 unsigned long *busno, unsigned long *phys, unsigned long *size)
13{
14 const u32 *dma_window;
15 u32 cells;
16 const unsigned char *prop;
17
18 dma_window = dma_window_prop;
19
20 /* busno is always one cell */
21 *busno = *(dma_window++);
22
23 prop = of_get_property(dn, "ibm,#dma-address-cells", NULL);
24 if (!prop)
25 prop = of_get_property(dn, "#address-cells", NULL);
26
27 cells = prop ? *(u32 *)prop : of_n_addr_cells(dn);
28 *phys = of_read_number(dma_window, cells);
29
30 dma_window += cells;
31
32 prop = of_get_property(dn, "ibm,#dma-size-cells", NULL);
33 cells = prop ? *(u32 *)prop : of_n_size_cells(dn);
34 *size = of_read_number(dma_window, cells);
35}
diff --git a/arch/microblaze/kernel/ptrace.c b/arch/microblaze/kernel/ptrace.c
index bb10637ce688..8cfa98cadf3d 100644
--- a/arch/microblaze/kernel/ptrace.c
+++ b/arch/microblaze/kernel/ptrace.c
@@ -132,9 +132,9 @@ long arch_ptrace(struct task_struct *child, long request,
132 return rval; 132 return rval;
133} 133}
134 134
135asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) 135asmlinkage unsigned long do_syscall_trace_enter(struct pt_regs *regs)
136{ 136{
137 long ret = 0; 137 unsigned long ret = 0;
138 138
139 secure_computing_strict(regs->r12); 139 secure_computing_strict(regs->r12);
140 140
diff --git a/arch/microblaze/kernel/reset.c b/arch/microblaze/kernel/reset.c
index fbe58c6554a8..bab4c8330ef4 100644
--- a/arch/microblaze/kernel/reset.c
+++ b/arch/microblaze/kernel/reset.c
@@ -9,7 +9,6 @@
9 9
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/of_platform.h> 11#include <linux/of_platform.h>
12#include <asm/prom.h>
13 12
14/* Trigger specific functions */ 13/* Trigger specific functions */
15#ifdef CONFIG_GPIOLIB 14#ifdef CONFIG_GPIOLIB
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
index 8955a3829cf0..235706055b7f 100644
--- a/arch/microblaze/kernel/signal.c
+++ b/arch/microblaze/kernel/signal.c
@@ -158,7 +158,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
158{ 158{
159 struct rt_sigframe __user *frame; 159 struct rt_sigframe __user *frame;
160 int err = 0, sig = ksig->sig; 160 int err = 0, sig = ksig->sig;
161 int signal; 161 unsigned long signal;
162 unsigned long address = 0; 162 unsigned long address = 0;
163#ifdef CONFIG_MMU 163#ifdef CONFIG_MMU
164 pmd_t *pmdp; 164 pmd_t *pmdp;
@@ -174,7 +174,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
174 && current_thread_info()->exec_domain->signal_invmap 174 && current_thread_info()->exec_domain->signal_invmap
175 && sig < 32 175 && sig < 32
176 ? current_thread_info()->exec_domain->signal_invmap[sig] 176 ? current_thread_info()->exec_domain->signal_invmap[sig]
177 : sig; 177 : (unsigned long)sig;
178 178
179 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 179 if (ksig->ka.sa.sa_flags & SA_SIGINFO)
180 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 180 err |= copy_siginfo_to_user(&frame->info, &ksig->info);
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
index 0166e890486c..29c8568ec55c 100644
--- a/arch/microblaze/kernel/syscall_table.S
+++ b/arch/microblaze/kernel/syscall_table.S
@@ -388,3 +388,4 @@ ENTRY(sys_call_table)
388 .long sys_getrandom /* 385 */ 388 .long sys_getrandom /* 385 */
389 .long sys_memfd_create 389 .long sys_memfd_create
390 .long sys_bpf 390 .long sys_bpf
391 .long sys_execveat
diff --git a/arch/microblaze/kernel/unwind.c b/arch/microblaze/kernel/unwind.c
index 1f7b8d449668..61c04eed14d5 100644
--- a/arch/microblaze/kernel/unwind.c
+++ b/arch/microblaze/kernel/unwind.c
@@ -59,7 +59,7 @@ struct stack_trace;
59 * 59 *
60 * Return - Number of stack bytes the instruction reserves or reclaims 60 * Return - Number of stack bytes the instruction reserves or reclaims
61 */ 61 */
62inline long get_frame_size(unsigned long instr) 62static inline long get_frame_size(unsigned long instr)
63{ 63{
64 return abs((s16)(instr & 0xFFFF)); 64 return abs((s16)(instr & 0xFFFF));
65} 65}
diff --git a/arch/mips/kvm/Kconfig b/arch/mips/kvm/Kconfig
index 30e334e823bd..2ae12825529f 100644
--- a/arch/mips/kvm/Kconfig
+++ b/arch/mips/kvm/Kconfig
@@ -20,6 +20,7 @@ config KVM
20 select PREEMPT_NOTIFIERS 20 select PREEMPT_NOTIFIERS
21 select ANON_INODES 21 select ANON_INODES
22 select KVM_MMIO 22 select KVM_MMIO
23 select SRCU
23 ---help--- 24 ---help---
24 Support for hosting Guest kernels. 25 Support for hosting Guest kernels.
25 Currently supported on MIPS32 processors. 26 Currently supported on MIPS32 processors.
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c
index 5ec2a7bae02c..f2355e3e65a1 100644
--- a/arch/mips/pci/pci-bcm1480.c
+++ b/arch/mips/pci/pci-bcm1480.c
@@ -173,8 +173,8 @@ static int bcm1480_pcibios_write(struct pci_bus *bus, unsigned int devfn,
173} 173}
174 174
175struct pci_ops bcm1480_pci_ops = { 175struct pci_ops bcm1480_pci_ops = {
176 bcm1480_pcibios_read, 176 .read = bcm1480_pcibios_read,
177 bcm1480_pcibios_write, 177 .write = bcm1480_pcibios_write,
178}; 178};
179 179
180static struct resource bcm1480_mem_resource = { 180static struct resource bcm1480_mem_resource = {
diff --git a/arch/mips/pci/pci-octeon.c b/arch/mips/pci/pci-octeon.c
index d07e04121cc6..bedb72bd3a27 100644
--- a/arch/mips/pci/pci-octeon.c
+++ b/arch/mips/pci/pci-octeon.c
@@ -327,8 +327,8 @@ static int octeon_write_config(struct pci_bus *bus, unsigned int devfn,
327 327
328 328
329static struct pci_ops octeon_pci_ops = { 329static struct pci_ops octeon_pci_ops = {
330 octeon_read_config, 330 .read = octeon_read_config,
331 octeon_write_config, 331 .write = octeon_write_config,
332}; 332};
333 333
334static struct resource octeon_pci_mem_resource = { 334static struct resource octeon_pci_mem_resource = {
diff --git a/arch/mips/pci/pcie-octeon.c b/arch/mips/pci/pcie-octeon.c
index 5e36c33e5543..eb4a17ba4a53 100644
--- a/arch/mips/pci/pcie-octeon.c
+++ b/arch/mips/pci/pcie-octeon.c
@@ -1792,8 +1792,8 @@ static int octeon_dummy_write_config(struct pci_bus *bus, unsigned int devfn,
1792} 1792}
1793 1793
1794static struct pci_ops octeon_pcie0_ops = { 1794static struct pci_ops octeon_pcie0_ops = {
1795 octeon_pcie0_read_config, 1795 .read = octeon_pcie0_read_config,
1796 octeon_pcie0_write_config, 1796 .write = octeon_pcie0_write_config,
1797}; 1797};
1798 1798
1799static struct resource octeon_pcie0_mem_resource = { 1799static struct resource octeon_pcie0_mem_resource = {
@@ -1813,8 +1813,8 @@ static struct pci_controller octeon_pcie0_controller = {
1813}; 1813};
1814 1814
1815static struct pci_ops octeon_pcie1_ops = { 1815static struct pci_ops octeon_pcie1_ops = {
1816 octeon_pcie1_read_config, 1816 .read = octeon_pcie1_read_config,
1817 octeon_pcie1_write_config, 1817 .write = octeon_pcie1_write_config,
1818}; 1818};
1819 1819
1820static struct resource octeon_pcie1_mem_resource = { 1820static struct resource octeon_pcie1_mem_resource = {
@@ -1834,8 +1834,8 @@ static struct pci_controller octeon_pcie1_controller = {
1834}; 1834};
1835 1835
1836static struct pci_ops octeon_dummy_ops = { 1836static struct pci_ops octeon_dummy_ops = {
1837 octeon_dummy_read_config, 1837 .read = octeon_dummy_read_config,
1838 octeon_dummy_write_config, 1838 .write = octeon_dummy_write_config,
1839}; 1839};
1840 1840
1841static struct resource octeon_dummy_mem_resource = { 1841static struct resource octeon_dummy_mem_resource = {
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c
index 471ff398090c..613ca1e55b4b 100644
--- a/arch/mn10300/unit-asb2305/pci.c
+++ b/arch/mn10300/unit-asb2305/pci.c
@@ -228,8 +228,8 @@ static int pci_ampci_write_config(struct pci_bus *bus, unsigned int devfn,
228} 228}
229 229
230static struct pci_ops pci_direct_ampci = { 230static struct pci_ops pci_direct_ampci = {
231 pci_ampci_read_config, 231 .read = pci_ampci_read_config,
232 pci_ampci_write_config, 232 .write = pci_ampci_write_config,
233}; 233};
234 234
235/* 235/*
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig
index f5769f19ae25..11850f310fb4 100644
--- a/arch/powerpc/kvm/Kconfig
+++ b/arch/powerpc/kvm/Kconfig
@@ -21,6 +21,7 @@ config KVM
21 select PREEMPT_NOTIFIERS 21 select PREEMPT_NOTIFIERS
22 select ANON_INODES 22 select ANON_INODES
23 select HAVE_KVM_EVENTFD 23 select HAVE_KVM_EVENTFD
24 select SRCU
24 25
25config KVM_BOOK3S_HANDLER 26config KVM_BOOK3S_HANDLER
26 bool 27 bool
diff --git a/arch/powerpc/platforms/cell/celleb_scc_pciex.c b/arch/powerpc/platforms/cell/celleb_scc_pciex.c
index f22387598040..94170e4f2ce7 100644
--- a/arch/powerpc/platforms/cell/celleb_scc_pciex.c
+++ b/arch/powerpc/platforms/cell/celleb_scc_pciex.c
@@ -399,8 +399,8 @@ static int scc_pciex_write_config(struct pci_bus *bus, unsigned int devfn,
399} 399}
400 400
401static struct pci_ops scc_pciex_pci_ops = { 401static struct pci_ops scc_pciex_pci_ops = {
402 scc_pciex_read_config, 402 .read = scc_pciex_read_config,
403 scc_pciex_write_config, 403 .write = scc_pciex_write_config,
404}; 404};
405 405
406static void pciex_clear_intr_all(unsigned int __iomem *base) 406static void pciex_clear_intr_all(unsigned int __iomem *base)
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c
index 04702db35d45..f4071a67ad00 100644
--- a/arch/powerpc/platforms/powermac/pci.c
+++ b/arch/powerpc/platforms/powermac/pci.c
@@ -133,17 +133,23 @@ static void __init fixup_bus_range(struct device_node *bridge)
133 |(((unsigned int)(off)) & 0xFCUL) \ 133 |(((unsigned int)(off)) & 0xFCUL) \
134 |1UL) 134 |1UL)
135 135
136static volatile void __iomem *macrisc_cfg_access(struct pci_controller* hose, 136static void __iomem *macrisc_cfg_map_bus(struct pci_bus *bus,
137 u8 bus, u8 dev_fn, u8 offset) 137 unsigned int dev_fn,
138 int offset)
138{ 139{
139 unsigned int caddr; 140 unsigned int caddr;
141 struct pci_controller *hose;
140 142
141 if (bus == hose->first_busno) { 143 hose = pci_bus_to_host(bus);
144 if (hose == NULL)
145 return NULL;
146
147 if (bus->number == hose->first_busno) {
142 if (dev_fn < (11 << 3)) 148 if (dev_fn < (11 << 3))
143 return NULL; 149 return NULL;
144 caddr = MACRISC_CFA0(dev_fn, offset); 150 caddr = MACRISC_CFA0(dev_fn, offset);
145 } else 151 } else
146 caddr = MACRISC_CFA1(bus, dev_fn, offset); 152 caddr = MACRISC_CFA1(bus->number, dev_fn, offset);
147 153
148 /* Uninorth will return garbage if we don't read back the value ! */ 154 /* Uninorth will return garbage if we don't read back the value ! */
149 do { 155 do {
@@ -154,129 +160,46 @@ static volatile void __iomem *macrisc_cfg_access(struct pci_controller* hose,
154 return hose->cfg_data + offset; 160 return hose->cfg_data + offset;
155} 161}
156 162
157static int macrisc_read_config(struct pci_bus *bus, unsigned int devfn,
158 int offset, int len, u32 *val)
159{
160 struct pci_controller *hose;
161 volatile void __iomem *addr;
162
163 hose = pci_bus_to_host(bus);
164 if (hose == NULL)
165 return PCIBIOS_DEVICE_NOT_FOUND;
166 if (offset >= 0x100)
167 return PCIBIOS_BAD_REGISTER_NUMBER;
168 addr = macrisc_cfg_access(hose, bus->number, devfn, offset);
169 if (!addr)
170 return PCIBIOS_DEVICE_NOT_FOUND;
171 /*
172 * Note: the caller has already checked that offset is
173 * suitably aligned and that len is 1, 2 or 4.
174 */
175 switch (len) {
176 case 1:
177 *val = in_8(addr);
178 break;
179 case 2:
180 *val = in_le16(addr);
181 break;
182 default:
183 *val = in_le32(addr);
184 break;
185 }
186 return PCIBIOS_SUCCESSFUL;
187}
188
189static int macrisc_write_config(struct pci_bus *bus, unsigned int devfn,
190 int offset, int len, u32 val)
191{
192 struct pci_controller *hose;
193 volatile void __iomem *addr;
194
195 hose = pci_bus_to_host(bus);
196 if (hose == NULL)
197 return PCIBIOS_DEVICE_NOT_FOUND;
198 if (offset >= 0x100)
199 return PCIBIOS_BAD_REGISTER_NUMBER;
200 addr = macrisc_cfg_access(hose, bus->number, devfn, offset);
201 if (!addr)
202 return PCIBIOS_DEVICE_NOT_FOUND;
203 /*
204 * Note: the caller has already checked that offset is
205 * suitably aligned and that len is 1, 2 or 4.
206 */
207 switch (len) {
208 case 1:
209 out_8(addr, val);
210 break;
211 case 2:
212 out_le16(addr, val);
213 break;
214 default:
215 out_le32(addr, val);
216 break;
217 }
218 return PCIBIOS_SUCCESSFUL;
219}
220
221static struct pci_ops macrisc_pci_ops = 163static struct pci_ops macrisc_pci_ops =
222{ 164{
223 .read = macrisc_read_config, 165 .map_bus = macrisc_cfg_map_bus,
224 .write = macrisc_write_config, 166 .read = pci_generic_config_read,
167 .write = pci_generic_config_write,
225}; 168};
226 169
227#ifdef CONFIG_PPC32 170#ifdef CONFIG_PPC32
228/* 171/*
229 * Verify that a specific (bus, dev_fn) exists on chaos 172 * Verify that a specific (bus, dev_fn) exists on chaos
230 */ 173 */
231static int chaos_validate_dev(struct pci_bus *bus, int devfn, int offset) 174static void __iomem *chaos_map_bus(struct pci_bus *bus, unsigned int devfn,
175 int offset)
232{ 176{
233 struct device_node *np; 177 struct device_node *np;
234 const u32 *vendor, *device; 178 const u32 *vendor, *device;
235 179
236 if (offset >= 0x100) 180 if (offset >= 0x100)
237 return PCIBIOS_BAD_REGISTER_NUMBER; 181 return NULL;
238 np = of_pci_find_child_device(bus->dev.of_node, devfn); 182 np = of_pci_find_child_device(bus->dev.of_node, devfn);
239 if (np == NULL) 183 if (np == NULL)
240 return PCIBIOS_DEVICE_NOT_FOUND; 184 return NULL;
241 185
242 vendor = of_get_property(np, "vendor-id", NULL); 186 vendor = of_get_property(np, "vendor-id", NULL);
243 device = of_get_property(np, "device-id", NULL); 187 device = of_get_property(np, "device-id", NULL);
244 if (vendor == NULL || device == NULL) 188 if (vendor == NULL || device == NULL)
245 return PCIBIOS_DEVICE_NOT_FOUND; 189 return NULL;
246 190
247 if ((*vendor == 0x106b) && (*device == 3) && (offset >= 0x10) 191 if ((*vendor == 0x106b) && (*device == 3) && (offset >= 0x10)
248 && (offset != 0x14) && (offset != 0x18) && (offset <= 0x24)) 192 && (offset != 0x14) && (offset != 0x18) && (offset <= 0x24))
249 return PCIBIOS_BAD_REGISTER_NUMBER; 193 return NULL;
250
251 return PCIBIOS_SUCCESSFUL;
252}
253 194
254static int 195 return macrisc_cfg_map_bus(bus, devfn, offset);
255chaos_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
256 int len, u32 *val)
257{
258 int result = chaos_validate_dev(bus, devfn, offset);
259 if (result == PCIBIOS_BAD_REGISTER_NUMBER)
260 *val = ~0U;
261 if (result != PCIBIOS_SUCCESSFUL)
262 return result;
263 return macrisc_read_config(bus, devfn, offset, len, val);
264}
265
266static int
267chaos_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
268 int len, u32 val)
269{
270 int result = chaos_validate_dev(bus, devfn, offset);
271 if (result != PCIBIOS_SUCCESSFUL)
272 return result;
273 return macrisc_write_config(bus, devfn, offset, len, val);
274} 196}
275 197
276static struct pci_ops chaos_pci_ops = 198static struct pci_ops chaos_pci_ops =
277{ 199{
278 .read = chaos_read_config, 200 .map_bus = chaos_map_bus,
279 .write = chaos_write_config, 201 .read = pci_generic_config_read,
202 .write = pci_generic_config_write,
280}; 203};
281 204
282static void __init setup_chaos(struct pci_controller *hose, 205static void __init setup_chaos(struct pci_controller *hose,
@@ -471,15 +394,24 @@ static struct pci_ops u3_ht_pci_ops =
471 |(((unsigned int)(off)) & 0xfcU) \ 394 |(((unsigned int)(off)) & 0xfcU) \
472 |1UL) 395 |1UL)
473 396
474static volatile void __iomem *u4_pcie_cfg_access(struct pci_controller* hose, 397static void __iomem *u4_pcie_cfg_map_bus(struct pci_bus *bus,
475 u8 bus, u8 dev_fn, int offset) 398 unsigned int dev_fn,
399 int offset)
476{ 400{
401 struct pci_controller *hose;
477 unsigned int caddr; 402 unsigned int caddr;
478 403
479 if (bus == hose->first_busno) { 404 if (offset >= 0x1000)
405 return NULL;
406
407 hose = pci_bus_to_host(bus);
408 if (!hose)
409 return NULL;
410
411 if (bus->number == hose->first_busno) {
480 caddr = U4_PCIE_CFA0(dev_fn, offset); 412 caddr = U4_PCIE_CFA0(dev_fn, offset);
481 } else 413 } else
482 caddr = U4_PCIE_CFA1(bus, dev_fn, offset); 414 caddr = U4_PCIE_CFA1(bus->number, dev_fn, offset);
483 415
484 /* Uninorth will return garbage if we don't read back the value ! */ 416 /* Uninorth will return garbage if we don't read back the value ! */
485 do { 417 do {
@@ -490,74 +422,11 @@ static volatile void __iomem *u4_pcie_cfg_access(struct pci_controller* hose,
490 return hose->cfg_data + offset; 422 return hose->cfg_data + offset;
491} 423}
492 424
493static int u4_pcie_read_config(struct pci_bus *bus, unsigned int devfn,
494 int offset, int len, u32 *val)
495{
496 struct pci_controller *hose;
497 volatile void __iomem *addr;
498
499 hose = pci_bus_to_host(bus);
500 if (hose == NULL)
501 return PCIBIOS_DEVICE_NOT_FOUND;
502 if (offset >= 0x1000)
503 return PCIBIOS_BAD_REGISTER_NUMBER;
504 addr = u4_pcie_cfg_access(hose, bus->number, devfn, offset);
505 if (!addr)
506 return PCIBIOS_DEVICE_NOT_FOUND;
507 /*
508 * Note: the caller has already checked that offset is
509 * suitably aligned and that len is 1, 2 or 4.
510 */
511 switch (len) {
512 case 1:
513 *val = in_8(addr);
514 break;
515 case 2:
516 *val = in_le16(addr);
517 break;
518 default:
519 *val = in_le32(addr);
520 break;
521 }
522 return PCIBIOS_SUCCESSFUL;
523}
524
525static int u4_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
526 int offset, int len, u32 val)
527{
528 struct pci_controller *hose;
529 volatile void __iomem *addr;
530
531 hose = pci_bus_to_host(bus);
532 if (hose == NULL)
533 return PCIBIOS_DEVICE_NOT_FOUND;
534 if (offset >= 0x1000)
535 return PCIBIOS_BAD_REGISTER_NUMBER;
536 addr = u4_pcie_cfg_access(hose, bus->number, devfn, offset);
537 if (!addr)
538 return PCIBIOS_DEVICE_NOT_FOUND;
539 /*
540 * Note: the caller has already checked that offset is
541 * suitably aligned and that len is 1, 2 or 4.
542 */
543 switch (len) {
544 case 1:
545 out_8(addr, val);
546 break;
547 case 2:
548 out_le16(addr, val);
549 break;
550 default:
551 out_le32(addr, val);
552 break;
553 }
554 return PCIBIOS_SUCCESSFUL;
555}
556
557static struct pci_ops u4_pcie_pci_ops = 425static struct pci_ops u4_pcie_pci_ops =
558{ 426{
559 .read = u4_pcie_read_config, 427 .map_bus = u4_pcie_cfg_map_bus,
560 .write = u4_pcie_write_config, 428 .read = pci_generic_config_read,
429 .write = pci_generic_config_write,
561}; 430};
562 431
563static void pmac_pci_fixup_u4_of_node(struct pci_dev *dev) 432static void pmac_pci_fixup_u4_of_node(struct pci_dev *dev)
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 6455c1eada1a..271b67e7670c 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -645,61 +645,21 @@ mapped:
645 return pcie->cfg_type1 + offset; 645 return pcie->cfg_type1 + offset;
646} 646}
647 647
648static int mpc83xx_pcie_read_config(struct pci_bus *bus, unsigned int devfn,
649 int offset, int len, u32 *val)
650{
651 void __iomem *cfg_addr;
652
653 cfg_addr = mpc83xx_pcie_remap_cfg(bus, devfn, offset);
654 if (!cfg_addr)
655 return PCIBIOS_DEVICE_NOT_FOUND;
656
657 switch (len) {
658 case 1:
659 *val = in_8(cfg_addr);
660 break;
661 case 2:
662 *val = in_le16(cfg_addr);
663 break;
664 default:
665 *val = in_le32(cfg_addr);
666 break;
667 }
668
669 return PCIBIOS_SUCCESSFUL;
670}
671
672static int mpc83xx_pcie_write_config(struct pci_bus *bus, unsigned int devfn, 648static int mpc83xx_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
673 int offset, int len, u32 val) 649 int offset, int len, u32 val)
674{ 650{
675 struct pci_controller *hose = pci_bus_to_host(bus); 651 struct pci_controller *hose = pci_bus_to_host(bus);
676 void __iomem *cfg_addr;
677
678 cfg_addr = mpc83xx_pcie_remap_cfg(bus, devfn, offset);
679 if (!cfg_addr)
680 return PCIBIOS_DEVICE_NOT_FOUND;
681 652
682 /* PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS */ 653 /* PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS */
683 if (offset == PCI_PRIMARY_BUS && bus->number == hose->first_busno) 654 if (offset == PCI_PRIMARY_BUS && bus->number == hose->first_busno)
684 val &= 0xffffff00; 655 val &= 0xffffff00;
685 656
686 switch (len) { 657 return pci_generic_config_write(bus, devfn, offset, len, val);
687 case 1:
688 out_8(cfg_addr, val);
689 break;
690 case 2:
691 out_le16(cfg_addr, val);
692 break;
693 default:
694 out_le32(cfg_addr, val);
695 break;
696 }
697
698 return PCIBIOS_SUCCESSFUL;
699} 658}
700 659
701static struct pci_ops mpc83xx_pcie_ops = { 660static struct pci_ops mpc83xx_pcie_ops = {
702 .read = mpc83xx_pcie_read_config, 661 .map_bus = mpc83xx_pcie_remap_cfg,
662 .read = pci_generic_config_read,
703 .write = mpc83xx_pcie_write_config, 663 .write = mpc83xx_pcie_write_config,
704}; 664};
705 665
diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig
index 646db9c467d1..5fce52cf0e57 100644
--- a/arch/s390/kvm/Kconfig
+++ b/arch/s390/kvm/Kconfig
@@ -28,6 +28,7 @@ config KVM
28 select HAVE_KVM_IRQCHIP 28 select HAVE_KVM_IRQCHIP
29 select HAVE_KVM_IRQFD 29 select HAVE_KVM_IRQFD
30 select HAVE_KVM_IRQ_ROUTING 30 select HAVE_KVM_IRQ_ROUTING
31 select SRCU
31 ---help--- 32 ---help---
32 Support hosting paravirtualized guest machines using the SIE 33 Support hosting paravirtualized guest machines using the SIE
33 virtualization capability on the mainframe. This should work 34 virtualization capability on the mainframe. This should work
diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c
index f70c7892fa25..325df47f114d 100644
--- a/arch/tile/kernel/pci.c
+++ b/arch/tile/kernel/pci.c
@@ -245,7 +245,7 @@ static void fixup_read_and_payload_sizes(void)
245{ 245{
246 struct pci_dev *dev = NULL; 246 struct pci_dev *dev = NULL;
247 int smallest_max_payload = 0x1; /* Tile maxes out at 256 bytes. */ 247 int smallest_max_payload = 0x1; /* Tile maxes out at 256 bytes. */
248 int max_read_size = 0x2; /* Limit to 512 byte reads. */ 248 int max_read_size = PCI_EXP_DEVCTL_READRQ_512B;
249 u16 new_values; 249 u16 new_values;
250 250
251 /* Scan for the smallest maximum payload size. */ 251 /* Scan for the smallest maximum payload size. */
@@ -258,7 +258,7 @@ static void fixup_read_and_payload_sizes(void)
258 } 258 }
259 259
260 /* Now, set the max_payload_size for all devices to that value. */ 260 /* Now, set the max_payload_size for all devices to that value. */
261 new_values = (max_read_size << 12) | (smallest_max_payload << 5); 261 new_values = max_read_size | (smallest_max_payload << 5);
262 for_each_pci_dev(dev) 262 for_each_pci_dev(dev)
263 pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL, 263 pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
264 PCI_EXP_DEVCTL_PAYLOAD | PCI_EXP_DEVCTL_READRQ, 264 PCI_EXP_DEVCTL_PAYLOAD | PCI_EXP_DEVCTL_READRQ,
diff --git a/arch/tile/kvm/Kconfig b/arch/tile/kvm/Kconfig
index 2298cb1daff7..1e968f7550dc 100644
--- a/arch/tile/kvm/Kconfig
+++ b/arch/tile/kvm/Kconfig
@@ -21,6 +21,7 @@ config KVM
21 depends on HAVE_KVM && MODULES 21 depends on HAVE_KVM && MODULES
22 select PREEMPT_NOTIFIERS 22 select PREEMPT_NOTIFIERS
23 select ANON_INODES 23 select ANON_INODES
24 select SRCU
24 ---help--- 25 ---help---
25 Support hosting paravirtualized guest machines. 26 Support hosting paravirtualized guest machines.
26 27
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 0dc9d0144a27..019f4e5c2b75 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -138,6 +138,7 @@ config X86
138 select HAVE_ACPI_APEI_NMI if ACPI 138 select HAVE_ACPI_APEI_NMI if ACPI
139 select ACPI_LEGACY_TABLES_LOOKUP if ACPI 139 select ACPI_LEGACY_TABLES_LOOKUP if ACPI
140 select X86_FEATURE_NAMES if PROC_FS 140 select X86_FEATURE_NAMES if PROC_FS
141 select SRCU
141 142
142config INSTRUCTION_DECODER 143config INSTRUCTION_DECODER
143 def_bool y 144 def_bool y
@@ -496,6 +497,17 @@ config X86_INTEL_LPSS
496 things like clock tree (common clock framework) and pincontrol 497 things like clock tree (common clock framework) and pincontrol
497 which are needed by the LPSS peripheral drivers. 498 which are needed by the LPSS peripheral drivers.
498 499
500config X86_AMD_PLATFORM_DEVICE
501 bool "AMD ACPI2Platform devices support"
502 depends on ACPI
503 select COMMON_CLK
504 select PINCTRL
505 ---help---
506 Select to interpret AMD specific ACPI device to platform device
507 such as I2C, UART, GPIO found on AMD Carrizo and later chipsets.
508 I2C and UART depend on COMMON_CLK to set clock. GPIO driver is
509 implemented under PINCTRL subsystem.
510
499config IOSF_MBI 511config IOSF_MBI
500 tristate "Intel SoC IOSF Sideband support for SoC platforms" 512 tristate "Intel SoC IOSF Sideband support for SoC platforms"
501 depends on PCI 513 depends on PCI
@@ -855,6 +867,10 @@ config SCHED_MC
855 867
856source "kernel/Kconfig.preempt" 868source "kernel/Kconfig.preempt"
857 869
870config UP_LATE_INIT
871 def_bool y
872 depends on !SMP && X86_LOCAL_APIC
873
858config X86_UP_APIC 874config X86_UP_APIC
859 bool "Local APIC support on uniprocessors" 875 bool "Local APIC support on uniprocessors"
860 depends on X86_32 && !SMP && !X86_32_NON_STANDARD 876 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
diff --git a/arch/x86/boot/ctype.h b/arch/x86/boot/ctype.h
index 25e13403193c..020f137df7a2 100644
--- a/arch/x86/boot/ctype.h
+++ b/arch/x86/boot/ctype.h
@@ -1,6 +1,5 @@
1#ifndef BOOT_ISDIGIT_H 1#ifndef BOOT_CTYPE_H
2 2#define BOOT_CTYPE_H
3#define BOOT_ISDIGIT_H
4 3
5static inline int isdigit(int ch) 4static inline int isdigit(int ch)
6{ 5{
diff --git a/arch/x86/boot/early_serial_console.c b/arch/x86/boot/early_serial_console.c
index 5df2869c874b..45a07684bbab 100644
--- a/arch/x86/boot/early_serial_console.c
+++ b/arch/x86/boot/early_serial_console.c
@@ -2,8 +2,6 @@
2 2
3#define DEFAULT_SERIAL_PORT 0x3f8 /* ttyS0 */ 3#define DEFAULT_SERIAL_PORT 0x3f8 /* ttyS0 */
4 4
5#define XMTRDY 0x20
6
7#define DLAB 0x80 5#define DLAB 0x80
8 6
9#define TXR 0 /* Transmit register (WRITE) */ 7#define TXR 0 /* Transmit register (WRITE) */
@@ -74,8 +72,8 @@ static void parse_earlyprintk(void)
74 static const int bases[] = { 0x3f8, 0x2f8 }; 72 static const int bases[] = { 0x3f8, 0x2f8 };
75 int idx = 0; 73 int idx = 0;
76 74
77 if (!strncmp(arg + pos, "ttyS", 4)) 75 /* += strlen("ttyS"); */
78 pos += 4; 76 pos += 4;
79 77
80 if (arg[pos++] == '1') 78 if (arg[pos++] == '1')
81 idx = 1; 79 idx = 1;
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 82e8a1d44658..156ebcab4ada 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -179,8 +179,8 @@ sysenter_dispatch:
179sysexit_from_sys_call: 179sysexit_from_sys_call:
180 andl $~TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET) 180 andl $~TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
181 /* clear IF, that popfq doesn't enable interrupts early */ 181 /* clear IF, that popfq doesn't enable interrupts early */
182 andl $~0x200,EFLAGS-R11(%rsp) 182 andl $~0x200,EFLAGS-ARGOFFSET(%rsp)
183 movl RIP-R11(%rsp),%edx /* User %eip */ 183 movl RIP-ARGOFFSET(%rsp),%edx /* User %eip */
184 CFI_REGISTER rip,rdx 184 CFI_REGISTER rip,rdx
185 RESTORE_ARGS 0,24,0,0,0,0 185 RESTORE_ARGS 0,24,0,0,0,0
186 xorq %r8,%r8 186 xorq %r8,%r8
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 465b309af254..92003f3c8a42 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -106,7 +106,14 @@ extern u32 native_safe_apic_wait_icr_idle(void);
106extern void native_apic_icr_write(u32 low, u32 id); 106extern void native_apic_icr_write(u32 low, u32 id);
107extern u64 native_apic_icr_read(void); 107extern u64 native_apic_icr_read(void);
108 108
109extern int x2apic_mode; 109static inline bool apic_is_x2apic_enabled(void)
110{
111 u64 msr;
112
113 if (rdmsrl_safe(MSR_IA32_APICBASE, &msr))
114 return false;
115 return msr & X2APIC_ENABLE;
116}
110 117
111#ifdef CONFIG_X86_X2APIC 118#ifdef CONFIG_X86_X2APIC
112/* 119/*
@@ -169,48 +176,23 @@ static inline u64 native_x2apic_icr_read(void)
169 return val; 176 return val;
170} 177}
171 178
179extern int x2apic_mode;
172extern int x2apic_phys; 180extern int x2apic_phys;
173extern int x2apic_preenabled; 181extern void __init check_x2apic(void);
174extern void check_x2apic(void); 182extern void x2apic_setup(void);
175extern void enable_x2apic(void);
176static inline int x2apic_enabled(void) 183static inline int x2apic_enabled(void)
177{ 184{
178 u64 msr; 185 return cpu_has_x2apic && apic_is_x2apic_enabled();
179
180 if (!cpu_has_x2apic)
181 return 0;
182
183 rdmsrl(MSR_IA32_APICBASE, msr);
184 if (msr & X2APIC_ENABLE)
185 return 1;
186 return 0;
187} 186}
188 187
189#define x2apic_supported() (cpu_has_x2apic) 188#define x2apic_supported() (cpu_has_x2apic)
190static inline void x2apic_force_phys(void)
191{
192 x2apic_phys = 1;
193}
194#else 189#else
195static inline void disable_x2apic(void) 190static inline void check_x2apic(void) { }
196{ 191static inline void x2apic_setup(void) { }
197} 192static inline int x2apic_enabled(void) { return 0; }
198static inline void check_x2apic(void)
199{
200}
201static inline void enable_x2apic(void)
202{
203}
204static inline int x2apic_enabled(void)
205{
206 return 0;
207}
208static inline void x2apic_force_phys(void)
209{
210}
211 193
212#define x2apic_preenabled 0 194#define x2apic_mode (0)
213#define x2apic_supported() 0 195#define x2apic_supported() (0)
214#endif 196#endif
215 197
216extern void enable_IR_x2apic(void); 198extern void enable_IR_x2apic(void);
@@ -219,7 +201,6 @@ extern int get_physical_broadcast(void);
219 201
220extern int lapic_get_maxlvt(void); 202extern int lapic_get_maxlvt(void);
221extern void clear_local_APIC(void); 203extern void clear_local_APIC(void);
222extern void connect_bsp_APIC(void);
223extern void disconnect_bsp_APIC(int virt_wire_setup); 204extern void disconnect_bsp_APIC(int virt_wire_setup);
224extern void disable_local_APIC(void); 205extern void disable_local_APIC(void);
225extern void lapic_shutdown(void); 206extern void lapic_shutdown(void);
@@ -227,8 +208,6 @@ extern int verify_local_APIC(void);
227extern void sync_Arb_IDs(void); 208extern void sync_Arb_IDs(void);
228extern void init_bsp_APIC(void); 209extern void init_bsp_APIC(void);
229extern void setup_local_APIC(void); 210extern void setup_local_APIC(void);
230extern void end_local_APIC_setup(void);
231extern void bsp_end_local_APIC_setup(void);
232extern void init_apic_mappings(void); 211extern void init_apic_mappings(void);
233void register_lapic_address(unsigned long address); 212void register_lapic_address(unsigned long address);
234extern void setup_boot_APIC_clock(void); 213extern void setup_boot_APIC_clock(void);
@@ -236,6 +215,9 @@ extern void setup_secondary_APIC_clock(void);
236extern int APIC_init_uniprocessor(void); 215extern int APIC_init_uniprocessor(void);
237extern int apic_force_enable(unsigned long addr); 216extern int apic_force_enable(unsigned long addr);
238 217
218extern int apic_bsp_setup(bool upmode);
219extern void apic_ap_setup(void);
220
239/* 221/*
240 * On 32bit this is mach-xxx local 222 * On 32bit this is mach-xxx local
241 */ 223 */
diff --git a/arch/x86/include/asm/calling.h b/arch/x86/include/asm/calling.h
index 76659b67fd11..1f1297b46f83 100644
--- a/arch/x86/include/asm/calling.h
+++ b/arch/x86/include/asm/calling.h
@@ -83,7 +83,6 @@ For 32-bit we have the following conventions - kernel is built with
83#define SS 160 83#define SS 160
84 84
85#define ARGOFFSET R11 85#define ARGOFFSET R11
86#define SWFRAME ORIG_RAX
87 86
88 .macro SAVE_ARGS addskip=0, save_rcx=1, save_r891011=1, rax_enosys=0 87 .macro SAVE_ARGS addskip=0, save_rcx=1, save_r891011=1, rax_enosys=0
89 subq $9*8+\addskip, %rsp 88 subq $9*8+\addskip, %rsp
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index aede2c347bde..90a54851aedc 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -174,6 +174,7 @@
174#define X86_FEATURE_TOPOEXT ( 6*32+22) /* topology extensions CPUID leafs */ 174#define X86_FEATURE_TOPOEXT ( 6*32+22) /* topology extensions CPUID leafs */
175#define X86_FEATURE_PERFCTR_CORE ( 6*32+23) /* core performance counter extensions */ 175#define X86_FEATURE_PERFCTR_CORE ( 6*32+23) /* core performance counter extensions */
176#define X86_FEATURE_PERFCTR_NB ( 6*32+24) /* NB performance counter extensions */ 176#define X86_FEATURE_PERFCTR_NB ( 6*32+24) /* NB performance counter extensions */
177#define X86_FEATURE_BPEXT (6*32+26) /* data breakpoint extension */
177#define X86_FEATURE_PERFCTR_L2 ( 6*32+28) /* L2 performance counter extensions */ 178#define X86_FEATURE_PERFCTR_L2 ( 6*32+28) /* L2 performance counter extensions */
178 179
179/* 180/*
@@ -388,6 +389,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
388#define cpu_has_cx16 boot_cpu_has(X86_FEATURE_CX16) 389#define cpu_has_cx16 boot_cpu_has(X86_FEATURE_CX16)
389#define cpu_has_eager_fpu boot_cpu_has(X86_FEATURE_EAGER_FPU) 390#define cpu_has_eager_fpu boot_cpu_has(X86_FEATURE_EAGER_FPU)
390#define cpu_has_topoext boot_cpu_has(X86_FEATURE_TOPOEXT) 391#define cpu_has_topoext boot_cpu_has(X86_FEATURE_TOPOEXT)
392#define cpu_has_bpext boot_cpu_has(X86_FEATURE_BPEXT)
391 393
392#if __GNUC__ >= 4 394#if __GNUC__ >= 4
393extern void warn_pre_alternatives(void); 395extern void warn_pre_alternatives(void);
diff --git a/arch/x86/include/asm/debugreg.h b/arch/x86/include/asm/debugreg.h
index 61fd18b83b6c..12cb66f6d3a5 100644
--- a/arch/x86/include/asm/debugreg.h
+++ b/arch/x86/include/asm/debugreg.h
@@ -114,5 +114,10 @@ static inline void debug_stack_usage_inc(void) { }
114static inline void debug_stack_usage_dec(void) { } 114static inline void debug_stack_usage_dec(void) { }
115#endif /* X86_64 */ 115#endif /* X86_64 */
116 116
117#ifdef CONFIG_CPU_SUP_AMD
118extern void set_dr_addr_mask(unsigned long mask, int dr);
119#else
120static inline void set_dr_addr_mask(unsigned long mask, int dr) { }
121#endif
117 122
118#endif /* _ASM_X86_DEBUGREG_H */ 123#endif /* _ASM_X86_DEBUGREG_H */
diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
index e97622f57722..0dbc08282291 100644
--- a/arch/x86/include/asm/fpu-internal.h
+++ b/arch/x86/include/asm/fpu-internal.h
@@ -207,7 +207,7 @@ static inline void fpu_fxsave(struct fpu *fpu)
207 if (config_enabled(CONFIG_X86_32)) 207 if (config_enabled(CONFIG_X86_32))
208 asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state->fxsave)); 208 asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state->fxsave));
209 else if (config_enabled(CONFIG_AS_FXSAVEQ)) 209 else if (config_enabled(CONFIG_AS_FXSAVEQ))
210 asm volatile("fxsaveq %0" : "=m" (fpu->state->fxsave)); 210 asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state->fxsave));
211 else { 211 else {
212 /* Using "rex64; fxsave %0" is broken because, if the memory 212 /* Using "rex64; fxsave %0" is broken because, if the memory
213 * operand uses any extended registers for addressing, a second 213 * operand uses any extended registers for addressing, a second
@@ -290,9 +290,11 @@ static inline int fpu_restore_checking(struct fpu *fpu)
290 290
291static inline int restore_fpu_checking(struct task_struct *tsk) 291static inline int restore_fpu_checking(struct task_struct *tsk)
292{ 292{
293 /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception 293 /*
294 is pending. Clear the x87 state here by setting it to fixed 294 * AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception is
295 values. "m" is a random variable that should be in L1 */ 295 * pending. Clear the x87 state here by setting it to fixed values.
296 * "m" is a random variable that should be in L1.
297 */
296 if (unlikely(static_cpu_has_bug_safe(X86_BUG_FXSAVE_LEAK))) { 298 if (unlikely(static_cpu_has_bug_safe(X86_BUG_FXSAVE_LEAK))) {
297 asm volatile( 299 asm volatile(
298 "fnclex\n\t" 300 "fnclex\n\t"
diff --git a/arch/x86/include/asm/hw_breakpoint.h b/arch/x86/include/asm/hw_breakpoint.h
index ef1c4d2d41ec..6c98be864a75 100644
--- a/arch/x86/include/asm/hw_breakpoint.h
+++ b/arch/x86/include/asm/hw_breakpoint.h
@@ -12,6 +12,7 @@
12 */ 12 */
13struct arch_hw_breakpoint { 13struct arch_hw_breakpoint {
14 unsigned long address; 14 unsigned long address;
15 unsigned long mask;
15 u8 len; 16 u8 len;
16 u8 type; 17 u8 type;
17}; 18};
diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
index ed8089d69094..6eb6fcb83f63 100644
--- a/arch/x86/include/asm/i387.h
+++ b/arch/x86/include/asm/i387.h
@@ -40,8 +40,8 @@ extern void __kernel_fpu_end(void);
40 40
41static inline void kernel_fpu_begin(void) 41static inline void kernel_fpu_begin(void)
42{ 42{
43 WARN_ON_ONCE(!irq_fpu_usable());
44 preempt_disable(); 43 preempt_disable();
44 WARN_ON_ONCE(!irq_fpu_usable());
45 __kernel_fpu_begin(); 45 __kernel_fpu_begin();
46} 46}
47 47
@@ -51,6 +51,10 @@ static inline void kernel_fpu_end(void)
51 preempt_enable(); 51 preempt_enable();
52} 52}
53 53
54/* Must be called with preempt disabled */
55extern void kernel_fpu_disable(void);
56extern void kernel_fpu_enable(void);
57
54/* 58/*
55 * Some instructions like VIA's padlock instructions generate a spurious 59 * Some instructions like VIA's padlock instructions generate a spurious
56 * DNA fault but don't modify SSE registers. And these instructions 60 * DNA fault but don't modify SSE registers. And these instructions
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index bf006cce9418..2f91685fe1cd 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -279,6 +279,11 @@ static inline void disable_ioapic_support(void) { }
279#define native_ioapic_set_affinity NULL 279#define native_ioapic_set_affinity NULL
280#define native_setup_ioapic_entry NULL 280#define native_setup_ioapic_entry NULL
281#define native_eoi_ioapic_pin NULL 281#define native_eoi_ioapic_pin NULL
282
283static inline void setup_IO_APIC(void) { }
284static inline void enable_IO_APIC(void) { }
285static inline void setup_ioapic_dest(void) { }
286
282#endif 287#endif
283 288
284#endif /* _ASM_X86_IO_APIC_H */ 289#endif /* _ASM_X86_IO_APIC_H */
diff --git a/arch/x86/include/asm/irq_remapping.h b/arch/x86/include/asm/irq_remapping.h
index b7747c4c2cf2..6224d316c405 100644
--- a/arch/x86/include/asm/irq_remapping.h
+++ b/arch/x86/include/asm/irq_remapping.h
@@ -33,8 +33,6 @@ struct irq_cfg;
33 33
34#ifdef CONFIG_IRQ_REMAP 34#ifdef CONFIG_IRQ_REMAP
35 35
36extern void setup_irq_remapping_ops(void);
37extern int irq_remapping_supported(void);
38extern void set_irq_remapping_broken(void); 36extern void set_irq_remapping_broken(void);
39extern int irq_remapping_prepare(void); 37extern int irq_remapping_prepare(void);
40extern int irq_remapping_enable(void); 38extern int irq_remapping_enable(void);
@@ -60,8 +58,6 @@ void irq_remap_modify_chip_defaults(struct irq_chip *chip);
60 58
61#else /* CONFIG_IRQ_REMAP */ 59#else /* CONFIG_IRQ_REMAP */
62 60
63static inline void setup_irq_remapping_ops(void) { }
64static inline int irq_remapping_supported(void) { return 0; }
65static inline void set_irq_remapping_broken(void) { } 61static inline void set_irq_remapping_broken(void) { }
66static inline int irq_remapping_prepare(void) { return -ENODEV; } 62static inline int irq_remapping_prepare(void) { return -ENODEV; }
67static inline int irq_remapping_enable(void) { return -ENODEV; } 63static inline int irq_remapping_enable(void) { return -ENODEV; }
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index 51b26e895933..9b3de99dc004 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -190,7 +190,6 @@ enum mcp_flags {
190void machine_check_poll(enum mcp_flags flags, mce_banks_t *b); 190void machine_check_poll(enum mcp_flags flags, mce_banks_t *b);
191 191
192int mce_notify_irq(void); 192int mce_notify_irq(void);
193void mce_notify_process(void);
194 193
195DECLARE_PER_CPU(struct mce, injectm); 194DECLARE_PER_CPU(struct mce, injectm);
196 195
diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index 164e3f8d3c3d..fa1195dae425 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
@@ -93,8 +93,6 @@ extern raw_spinlock_t pci_config_lock;
93extern int (*pcibios_enable_irq)(struct pci_dev *dev); 93extern int (*pcibios_enable_irq)(struct pci_dev *dev);
94extern void (*pcibios_disable_irq)(struct pci_dev *dev); 94extern void (*pcibios_disable_irq)(struct pci_dev *dev);
95 95
96extern bool mp_should_keep_irq(struct device *dev);
97
98struct pci_raw_ops { 96struct pci_raw_ops {
99 int (*read)(unsigned int domain, unsigned int bus, unsigned int devfn, 97 int (*read)(unsigned int domain, unsigned int bus, unsigned int devfn,
100 int reg, int len, u32 *val); 98 int reg, int len, u32 *val);
diff --git a/arch/x86/include/asm/pmc_atom.h b/arch/x86/include/asm/pmc_atom.h
index fc7a17c05d35..bc0fc0866553 100644
--- a/arch/x86/include/asm/pmc_atom.h
+++ b/arch/x86/include/asm/pmc_atom.h
@@ -53,6 +53,28 @@
53/* Sleep state counter is in units of of 32us */ 53/* Sleep state counter is in units of of 32us */
54#define PMC_TMR_SHIFT 5 54#define PMC_TMR_SHIFT 5
55 55
56/* Power status of power islands */
57#define PMC_PSS 0x98
58
59#define PMC_PSS_BIT_GBE BIT(0)
60#define PMC_PSS_BIT_SATA BIT(1)
61#define PMC_PSS_BIT_HDA BIT(2)
62#define PMC_PSS_BIT_SEC BIT(3)
63#define PMC_PSS_BIT_PCIE BIT(4)
64#define PMC_PSS_BIT_LPSS BIT(5)
65#define PMC_PSS_BIT_LPE BIT(6)
66#define PMC_PSS_BIT_DFX BIT(7)
67#define PMC_PSS_BIT_USH_CTRL BIT(8)
68#define PMC_PSS_BIT_USH_SUS BIT(9)
69#define PMC_PSS_BIT_USH_VCCS BIT(10)
70#define PMC_PSS_BIT_USH_VCCA BIT(11)
71#define PMC_PSS_BIT_OTG_CTRL BIT(12)
72#define PMC_PSS_BIT_OTG_VCCS BIT(13)
73#define PMC_PSS_BIT_OTG_VCCA_CLK BIT(14)
74#define PMC_PSS_BIT_OTG_VCCA BIT(15)
75#define PMC_PSS_BIT_USB BIT(16)
76#define PMC_PSS_BIT_USB_SUS BIT(17)
77
56/* These registers reflect D3 status of functions */ 78/* These registers reflect D3 status of functions */
57#define PMC_D3_STS_0 0xA0 79#define PMC_D3_STS_0 0xA0
58 80
diff --git a/arch/x86/include/asm/smpboot_hooks.h b/arch/x86/include/asm/smpboot_hooks.h
deleted file mode 100644
index 0da7409f0bec..000000000000
--- a/arch/x86/include/asm/smpboot_hooks.h
+++ /dev/null
@@ -1,68 +0,0 @@
1/* two abstractions specific to kernel/smpboot.c, mainly to cater to visws
2 * which needs to alter them. */
3
4static inline void smpboot_clear_io_apic_irqs(void)
5{
6#ifdef CONFIG_X86_IO_APIC
7 io_apic_irqs = 0;
8#endif
9}
10
11static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
12{
13 unsigned long flags;
14
15 spin_lock_irqsave(&rtc_lock, flags);
16 CMOS_WRITE(0xa, 0xf);
17 spin_unlock_irqrestore(&rtc_lock, flags);
18 local_flush_tlb();
19 pr_debug("1.\n");
20 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
21 start_eip >> 4;
22 pr_debug("2.\n");
23 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
24 start_eip & 0xf;
25 pr_debug("3.\n");
26}
27
28static inline void smpboot_restore_warm_reset_vector(void)
29{
30 unsigned long flags;
31
32 /*
33 * Install writable page 0 entry to set BIOS data area.
34 */
35 local_flush_tlb();
36
37 /*
38 * Paranoid: Set warm reset code and vector here back
39 * to default values.
40 */
41 spin_lock_irqsave(&rtc_lock, flags);
42 CMOS_WRITE(0, 0xf);
43 spin_unlock_irqrestore(&rtc_lock, flags);
44
45 *((volatile u32 *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0;
46}
47
48static inline void __init smpboot_setup_io_apic(void)
49{
50#ifdef CONFIG_X86_IO_APIC
51 /*
52 * Here we can be sure that there is an IO-APIC in the system. Let's
53 * go and set it up:
54 */
55 if (!skip_ioapic_setup && nr_ioapics)
56 setup_IO_APIC();
57 else {
58 nr_ioapics = 0;
59 }
60#endif
61}
62
63static inline void smpboot_clear_io_apic(void)
64{
65#ifdef CONFIG_X86_IO_APIC
66 nr_ioapics = 0;
67#endif
68}
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index 547e344a6dc6..e82e95abc92b 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -75,7 +75,6 @@ struct thread_info {
75#define TIF_SYSCALL_EMU 6 /* syscall emulation active */ 75#define TIF_SYSCALL_EMU 6 /* syscall emulation active */
76#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ 76#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
77#define TIF_SECCOMP 8 /* secure computing */ 77#define TIF_SECCOMP 8 /* secure computing */
78#define TIF_MCE_NOTIFY 10 /* notify userspace of an MCE */
79#define TIF_USER_RETURN_NOTIFY 11 /* notify kernel of userspace return */ 78#define TIF_USER_RETURN_NOTIFY 11 /* notify kernel of userspace return */
80#define TIF_UPROBE 12 /* breakpointed or singlestepping */ 79#define TIF_UPROBE 12 /* breakpointed or singlestepping */
81#define TIF_NOTSC 16 /* TSC is not accessible in userland */ 80#define TIF_NOTSC 16 /* TSC is not accessible in userland */
@@ -100,7 +99,6 @@ struct thread_info {
100#define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU) 99#define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU)
101#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) 100#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
102#define _TIF_SECCOMP (1 << TIF_SECCOMP) 101#define _TIF_SECCOMP (1 << TIF_SECCOMP)
103#define _TIF_MCE_NOTIFY (1 << TIF_MCE_NOTIFY)
104#define _TIF_USER_RETURN_NOTIFY (1 << TIF_USER_RETURN_NOTIFY) 102#define _TIF_USER_RETURN_NOTIFY (1 << TIF_USER_RETURN_NOTIFY)
105#define _TIF_UPROBE (1 << TIF_UPROBE) 103#define _TIF_UPROBE (1 << TIF_UPROBE)
106#define _TIF_NOTSC (1 << TIF_NOTSC) 104#define _TIF_NOTSC (1 << TIF_NOTSC)
@@ -140,7 +138,7 @@ struct thread_info {
140 138
141/* Only used for 64 bit */ 139/* Only used for 64 bit */
142#define _TIF_DO_NOTIFY_MASK \ 140#define _TIF_DO_NOTIFY_MASK \
143 (_TIF_SIGPENDING | _TIF_MCE_NOTIFY | _TIF_NOTIFY_RESUME | \ 141 (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \
144 _TIF_USER_RETURN_NOTIFY | _TIF_UPROBE) 142 _TIF_USER_RETURN_NOTIFY | _TIF_UPROBE)
145 143
146/* flags to check in __switch_to() */ 144/* flags to check in __switch_to() */
@@ -170,6 +168,17 @@ static inline struct thread_info *current_thread_info(void)
170 return ti; 168 return ti;
171} 169}
172 170
171static inline unsigned long current_stack_pointer(void)
172{
173 unsigned long sp;
174#ifdef CONFIG_X86_64
175 asm("mov %%rsp,%0" : "=g" (sp));
176#else
177 asm("mov %%esp,%0" : "=g" (sp));
178#endif
179 return sp;
180}
181
173#else /* !__ASSEMBLY__ */ 182#else /* !__ASSEMBLY__ */
174 183
175/* how to get the thread information struct from ASM */ 184/* how to get the thread information struct from ASM */
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
index 707adc6549d8..4e49d7dff78e 100644
--- a/arch/x86/include/asm/traps.h
+++ b/arch/x86/include/asm/traps.h
@@ -1,6 +1,7 @@
1#ifndef _ASM_X86_TRAPS_H 1#ifndef _ASM_X86_TRAPS_H
2#define _ASM_X86_TRAPS_H 2#define _ASM_X86_TRAPS_H
3 3
4#include <linux/context_tracking_state.h>
4#include <linux/kprobes.h> 5#include <linux/kprobes.h>
5 6
6#include <asm/debugreg.h> 7#include <asm/debugreg.h>
@@ -110,6 +111,11 @@ asmlinkage void smp_thermal_interrupt(void);
110asmlinkage void mce_threshold_interrupt(void); 111asmlinkage void mce_threshold_interrupt(void);
111#endif 112#endif
112 113
114extern enum ctx_state ist_enter(struct pt_regs *regs);
115extern void ist_exit(struct pt_regs *regs, enum ctx_state prev_state);
116extern void ist_begin_non_atomic(struct pt_regs *regs);
117extern void ist_end_non_atomic(void);
118
113/* Interrupts/Exceptions */ 119/* Interrupts/Exceptions */
114enum { 120enum {
115 X86_TRAP_DE = 0, /* 0, Divide-by-zero */ 121 X86_TRAP_DE = 0, /* 0, Divide-by-zero */
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index 5eea09915a15..358dcd338915 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -55,9 +55,8 @@ extern int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
55 struct gnttab_map_grant_ref *kmap_ops, 55 struct gnttab_map_grant_ref *kmap_ops,
56 struct page **pages, unsigned int count); 56 struct page **pages, unsigned int count);
57extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, 57extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
58 struct gnttab_map_grant_ref *kmap_ops, 58 struct gnttab_unmap_grant_ref *kunmap_ops,
59 struct page **pages, unsigned int count); 59 struct page **pages, unsigned int count);
60extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn);
61 60
62/* 61/*
63 * Helper functions to write or read unsigned long values to/from 62 * Helper functions to write or read unsigned long values to/from
@@ -154,21 +153,12 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn)
154 return mfn; 153 return mfn;
155 154
156 pfn = mfn_to_pfn_no_overrides(mfn); 155 pfn = mfn_to_pfn_no_overrides(mfn);
157 if (__pfn_to_mfn(pfn) != mfn) { 156 if (__pfn_to_mfn(pfn) != mfn)
158 /* 157 pfn = ~0;
159 * If this appears to be a foreign mfn (because the pfn
160 * doesn't map back to the mfn), then check the local override
161 * table to see if there's a better pfn to use.
162 *
163 * m2p_find_override_pfn returns ~0 if it doesn't find anything.
164 */
165 pfn = m2p_find_override_pfn(mfn, ~0);
166 }
167 158
168 /* 159 /*
169 * pfn is ~0 if there are no entries in the m2p for mfn or if the 160 * pfn is ~0 if there are no entries in the m2p for mfn or the
170 * entry doesn't map back to the mfn and m2p_override doesn't have a 161 * entry doesn't map back to the mfn.
171 * valid entry for it.
172 */ 162 */
173 if (pfn == ~0 && __pfn_to_mfn(mfn) == IDENTITY_FRAME(mfn)) 163 if (pfn == ~0 && __pfn_to_mfn(mfn) == IDENTITY_FRAME(mfn))
174 pfn = mfn; 164 pfn = mfn;
diff --git a/arch/x86/include/uapi/asm/msr-index.h b/arch/x86/include/uapi/asm/msr-index.h
index c8aa65d56027..536240fa9a95 100644
--- a/arch/x86/include/uapi/asm/msr-index.h
+++ b/arch/x86/include/uapi/asm/msr-index.h
@@ -152,6 +152,10 @@
152#define MSR_CC6_DEMOTION_POLICY_CONFIG 0x00000668 152#define MSR_CC6_DEMOTION_POLICY_CONFIG 0x00000668
153#define MSR_MC6_DEMOTION_POLICY_CONFIG 0x00000669 153#define MSR_MC6_DEMOTION_POLICY_CONFIG 0x00000669
154 154
155#define MSR_CORE_PERF_LIMIT_REASONS 0x00000690
156#define MSR_GFX_PERF_LIMIT_REASONS 0x000006B0
157#define MSR_RING_PERF_LIMIT_REASONS 0x000006B1
158
155/* Hardware P state interface */ 159/* Hardware P state interface */
156#define MSR_PPERF 0x0000064e 160#define MSR_PPERF 0x0000064e
157#define MSR_PERF_LIMIT_REASONS 0x0000064f 161#define MSR_PERF_LIMIT_REASONS 0x0000064f
@@ -251,6 +255,10 @@
251/* Fam 16h MSRs */ 255/* Fam 16h MSRs */
252#define MSR_F16H_L2I_PERF_CTL 0xc0010230 256#define MSR_F16H_L2I_PERF_CTL 0xc0010230
253#define MSR_F16H_L2I_PERF_CTR 0xc0010231 257#define MSR_F16H_L2I_PERF_CTR 0xc0010231
258#define MSR_F16H_DR1_ADDR_MASK 0xc0011019
259#define MSR_F16H_DR2_ADDR_MASK 0xc001101a
260#define MSR_F16H_DR3_ADDR_MASK 0xc001101b
261#define MSR_F16H_DR0_ADDR_MASK 0xc0011027
254 262
255/* Fam 15h MSRs */ 263/* Fam 15h MSRs */
256#define MSR_F15H_PERF_CTL 0xc0010200 264#define MSR_F15H_PERF_CTL 0xc0010200
@@ -358,6 +366,7 @@
358 366
359#define MSR_IA32_PERF_STATUS 0x00000198 367#define MSR_IA32_PERF_STATUS 0x00000198
360#define MSR_IA32_PERF_CTL 0x00000199 368#define MSR_IA32_PERF_CTL 0x00000199
369#define INTEL_PERF_CTL_MASK 0xffff
361#define MSR_AMD_PSTATE_DEF_BASE 0xc0010064 370#define MSR_AMD_PSTATE_DEF_BASE 0xc0010064
362#define MSR_AMD_PERF_STATUS 0xc0010063 371#define MSR_AMD_PERF_STATUS 0xc0010063
363#define MSR_AMD_PERF_CTL 0xc0010062 372#define MSR_AMD_PERF_CTL 0xc0010062
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index b9e30daa0881..ae97ed0873c6 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -653,6 +653,7 @@ static int acpi_register_gsi_pic(struct device *dev, u32 gsi,
653 return gsi; 653 return gsi;
654} 654}
655 655
656#ifdef CONFIG_X86_LOCAL_APIC
656static int acpi_register_gsi_ioapic(struct device *dev, u32 gsi, 657static int acpi_register_gsi_ioapic(struct device *dev, u32 gsi,
657 int trigger, int polarity) 658 int trigger, int polarity)
658{ 659{
@@ -675,6 +676,7 @@ static void acpi_unregister_gsi_ioapic(u32 gsi)
675 mutex_unlock(&acpi_ioapic_lock); 676 mutex_unlock(&acpi_ioapic_lock);
676#endif 677#endif
677} 678}
679#endif
678 680
679int (*__acpi_register_gsi)(struct device *dev, u32 gsi, 681int (*__acpi_register_gsi)(struct device *dev, u32 gsi,
680 int trigger, int polarity) = acpi_register_gsi_pic; 682 int trigger, int polarity) = acpi_register_gsi_pic;
@@ -843,13 +845,7 @@ int acpi_ioapic_registered(acpi_handle handle, u32 gsi_base)
843 845
844static int __init acpi_parse_sbf(struct acpi_table_header *table) 846static int __init acpi_parse_sbf(struct acpi_table_header *table)
845{ 847{
846 struct acpi_table_boot *sb; 848 struct acpi_table_boot *sb = (struct acpi_table_boot *)table;
847
848 sb = (struct acpi_table_boot *)table;
849 if (!sb) {
850 printk(KERN_WARNING PREFIX "Unable to map SBF\n");
851 return -ENODEV;
852 }
853 849
854 sbf_port = sb->cmos_index; /* Save CMOS port */ 850 sbf_port = sb->cmos_index; /* Save CMOS port */
855 851
@@ -863,13 +859,7 @@ static struct resource *hpet_res __initdata;
863 859
864static int __init acpi_parse_hpet(struct acpi_table_header *table) 860static int __init acpi_parse_hpet(struct acpi_table_header *table)
865{ 861{
866 struct acpi_table_hpet *hpet_tbl; 862 struct acpi_table_hpet *hpet_tbl = (struct acpi_table_hpet *)table;
867
868 hpet_tbl = (struct acpi_table_hpet *)table;
869 if (!hpet_tbl) {
870 printk(KERN_WARNING PREFIX "Unable to map HPET\n");
871 return -ENODEV;
872 }
873 863
874 if (hpet_tbl->address.space_id != ACPI_SPACE_MEM) { 864 if (hpet_tbl->address.space_id != ACPI_SPACE_MEM) {
875 printk(KERN_WARNING PREFIX "HPET timers must be located in " 865 printk(KERN_WARNING PREFIX "HPET timers must be located in "
diff --git a/arch/x86/kernel/apb_timer.c b/arch/x86/kernel/apb_timer.c
index b708738d016e..6a7c23ff21d3 100644
--- a/arch/x86/kernel/apb_timer.c
+++ b/arch/x86/kernel/apb_timer.c
@@ -135,14 +135,6 @@ static inline void apbt_clear_mapping(void)
135 apbt_virt_address = NULL; 135 apbt_virt_address = NULL;
136} 136}
137 137
138/*
139 * APBT timer interrupt enable / disable
140 */
141static inline int is_apbt_capable(void)
142{
143 return apbt_virt_address ? 1 : 0;
144}
145
146static int __init apbt_clockevent_register(void) 138static int __init apbt_clockevent_register(void)
147{ 139{
148 struct sfi_timer_table_entry *mtmr; 140 struct sfi_timer_table_entry *mtmr;
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 29b5b18afa27..b665d241efad 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -134,9 +134,6 @@ static inline void imcr_apic_to_pic(void)
134 */ 134 */
135static int force_enable_local_apic __initdata; 135static int force_enable_local_apic __initdata;
136 136
137/* Control whether x2APIC mode is enabled or not */
138static bool nox2apic __initdata;
139
140/* 137/*
141 * APIC command line parameters 138 * APIC command line parameters
142 */ 139 */
@@ -161,33 +158,6 @@ static __init int setup_apicpmtimer(char *s)
161__setup("apicpmtimer", setup_apicpmtimer); 158__setup("apicpmtimer", setup_apicpmtimer);
162#endif 159#endif
163 160
164int x2apic_mode;
165#ifdef CONFIG_X86_X2APIC
166/* x2apic enabled before OS handover */
167int x2apic_preenabled;
168static int x2apic_disabled;
169static int __init setup_nox2apic(char *str)
170{
171 if (x2apic_enabled()) {
172 int apicid = native_apic_msr_read(APIC_ID);
173
174 if (apicid >= 255) {
175 pr_warning("Apicid: %08x, cannot enforce nox2apic\n",
176 apicid);
177 return 0;
178 }
179
180 pr_warning("x2apic already enabled. will disable it\n");
181 } else
182 setup_clear_cpu_cap(X86_FEATURE_X2APIC);
183
184 nox2apic = true;
185
186 return 0;
187}
188early_param("nox2apic", setup_nox2apic);
189#endif
190
191unsigned long mp_lapic_addr; 161unsigned long mp_lapic_addr;
192int disable_apic; 162int disable_apic;
193/* Disable local APIC timer from the kernel commandline or via dmi quirk */ 163/* Disable local APIC timer from the kernel commandline or via dmi quirk */
@@ -1475,7 +1445,7 @@ void setup_local_APIC(void)
1475#endif 1445#endif
1476} 1446}
1477 1447
1478void end_local_APIC_setup(void) 1448static void end_local_APIC_setup(void)
1479{ 1449{
1480 lapic_setup_esr(); 1450 lapic_setup_esr();
1481 1451
@@ -1492,116 +1462,184 @@ void end_local_APIC_setup(void)
1492 apic_pm_activate(); 1462 apic_pm_activate();
1493} 1463}
1494 1464
1495void __init bsp_end_local_APIC_setup(void) 1465/*
1466 * APIC setup function for application processors. Called from smpboot.c
1467 */
1468void apic_ap_setup(void)
1496{ 1469{
1470 setup_local_APIC();
1497 end_local_APIC_setup(); 1471 end_local_APIC_setup();
1498
1499 /*
1500 * Now that local APIC setup is completed for BP, configure the fault
1501 * handling for interrupt remapping.
1502 */
1503 irq_remap_enable_fault_handling();
1504
1505} 1472}
1506 1473
1507#ifdef CONFIG_X86_X2APIC 1474#ifdef CONFIG_X86_X2APIC
1508/* 1475int x2apic_mode;
1509 * Need to disable xapic and x2apic at the same time and then enable xapic mode
1510 */
1511static inline void __disable_x2apic(u64 msr)
1512{
1513 wrmsrl(MSR_IA32_APICBASE,
1514 msr & ~(X2APIC_ENABLE | XAPIC_ENABLE));
1515 wrmsrl(MSR_IA32_APICBASE, msr & ~X2APIC_ENABLE);
1516}
1517 1476
1518static __init void disable_x2apic(void) 1477enum {
1478 X2APIC_OFF,
1479 X2APIC_ON,
1480 X2APIC_DISABLED,
1481};
1482static int x2apic_state;
1483
1484static inline void __x2apic_disable(void)
1519{ 1485{
1520 u64 msr; 1486 u64 msr;
1521 1487
1522 if (!cpu_has_x2apic) 1488 if (cpu_has_apic)
1523 return; 1489 return;
1524 1490
1525 rdmsrl(MSR_IA32_APICBASE, msr); 1491 rdmsrl(MSR_IA32_APICBASE, msr);
1526 if (msr & X2APIC_ENABLE) { 1492 if (!(msr & X2APIC_ENABLE))
1527 u32 x2apic_id = read_apic_id(); 1493 return;
1528 1494 /* Disable xapic and x2apic first and then reenable xapic mode */
1529 if (x2apic_id >= 255) 1495 wrmsrl(MSR_IA32_APICBASE, msr & ~(X2APIC_ENABLE | XAPIC_ENABLE));
1530 panic("Cannot disable x2apic, id: %08x\n", x2apic_id); 1496 wrmsrl(MSR_IA32_APICBASE, msr & ~X2APIC_ENABLE);
1497 printk_once(KERN_INFO "x2apic disabled\n");
1498}
1531 1499
1532 pr_info("Disabling x2apic\n"); 1500static inline void __x2apic_enable(void)
1533 __disable_x2apic(msr); 1501{
1502 u64 msr;
1534 1503
1535 if (nox2apic) { 1504 rdmsrl(MSR_IA32_APICBASE, msr);
1536 clear_cpu_cap(&cpu_data(0), X86_FEATURE_X2APIC); 1505 if (msr & X2APIC_ENABLE)
1537 setup_clear_cpu_cap(X86_FEATURE_X2APIC); 1506 return;
1538 } 1507 wrmsrl(MSR_IA32_APICBASE, msr | X2APIC_ENABLE);
1508 printk_once(KERN_INFO "x2apic enabled\n");
1509}
1539 1510
1540 x2apic_disabled = 1; 1511static int __init setup_nox2apic(char *str)
1541 x2apic_mode = 0; 1512{
1513 if (x2apic_enabled()) {
1514 int apicid = native_apic_msr_read(APIC_ID);
1542 1515
1543 register_lapic_address(mp_lapic_addr); 1516 if (apicid >= 255) {
1517 pr_warning("Apicid: %08x, cannot enforce nox2apic\n",
1518 apicid);
1519 return 0;
1520 }
1521 pr_warning("x2apic already enabled.\n");
1522 __x2apic_disable();
1544 } 1523 }
1524 setup_clear_cpu_cap(X86_FEATURE_X2APIC);
1525 x2apic_state = X2APIC_DISABLED;
1526 x2apic_mode = 0;
1527 return 0;
1545} 1528}
1529early_param("nox2apic", setup_nox2apic);
1546 1530
1547void check_x2apic(void) 1531/* Called from cpu_init() to enable x2apic on (secondary) cpus */
1532void x2apic_setup(void)
1548{ 1533{
1549 if (x2apic_enabled()) { 1534 /*
1550 pr_info("x2apic enabled by BIOS, switching to x2apic ops\n"); 1535 * If x2apic is not in ON state, disable it if already enabled
1551 x2apic_preenabled = x2apic_mode = 1; 1536 * from BIOS.
1537 */
1538 if (x2apic_state != X2APIC_ON) {
1539 __x2apic_disable();
1540 return;
1552 } 1541 }
1542 __x2apic_enable();
1553} 1543}
1554 1544
1555void enable_x2apic(void) 1545static __init void x2apic_disable(void)
1556{ 1546{
1557 u64 msr; 1547 u32 x2apic_id;
1558 1548
1559 rdmsrl(MSR_IA32_APICBASE, msr); 1549 if (x2apic_state != X2APIC_ON)
1560 if (x2apic_disabled) { 1550 goto out;
1561 __disable_x2apic(msr); 1551
1552 x2apic_id = read_apic_id();
1553 if (x2apic_id >= 255)
1554 panic("Cannot disable x2apic, id: %08x\n", x2apic_id);
1555
1556 __x2apic_disable();
1557 register_lapic_address(mp_lapic_addr);
1558out:
1559 x2apic_state = X2APIC_DISABLED;
1560 x2apic_mode = 0;
1561}
1562
1563static __init void x2apic_enable(void)
1564{
1565 if (x2apic_state != X2APIC_OFF)
1562 return; 1566 return;
1563 }
1564 1567
1565 if (!x2apic_mode) 1568 x2apic_mode = 1;
1569 x2apic_state = X2APIC_ON;
1570 __x2apic_enable();
1571}
1572
1573static __init void try_to_enable_x2apic(int remap_mode)
1574{
1575 if (x2apic_state == X2APIC_DISABLED)
1566 return; 1576 return;
1567 1577
1568 if (!(msr & X2APIC_ENABLE)) { 1578 if (remap_mode != IRQ_REMAP_X2APIC_MODE) {
1569 printk_once(KERN_INFO "Enabling x2apic\n"); 1579 /* IR is required if there is APIC ID > 255 even when running
1570 wrmsrl(MSR_IA32_APICBASE, msr | X2APIC_ENABLE); 1580 * under KVM
1581 */
1582 if (max_physical_apicid > 255 ||
1583 (IS_ENABLED(CONFIG_HYPERVISOR_GUEST) &&
1584 !hypervisor_x2apic_available())) {
1585 pr_info("x2apic: IRQ remapping doesn't support X2APIC mode\n");
1586 x2apic_disable();
1587 return;
1588 }
1589
1590 /*
1591 * without IR all CPUs can be addressed by IOAPIC/MSI
1592 * only in physical mode
1593 */
1594 x2apic_phys = 1;
1571 } 1595 }
1596 x2apic_enable();
1572} 1597}
1573#endif /* CONFIG_X86_X2APIC */
1574 1598
1575int __init enable_IR(void) 1599void __init check_x2apic(void)
1576{ 1600{
1577#ifdef CONFIG_IRQ_REMAP 1601 if (x2apic_enabled()) {
1578 if (!irq_remapping_supported()) { 1602 pr_info("x2apic: enabled by BIOS, switching to x2apic ops\n");
1579 pr_debug("intr-remapping not supported\n"); 1603 x2apic_mode = 1;
1580 return -1; 1604 x2apic_state = X2APIC_ON;
1605 } else if (!cpu_has_x2apic) {
1606 x2apic_state = X2APIC_DISABLED;
1581 } 1607 }
1608}
1609#else /* CONFIG_X86_X2APIC */
1610static int __init validate_x2apic(void)
1611{
1612 if (!apic_is_x2apic_enabled())
1613 return 0;
1614 /*
1615 * Checkme: Can we simply turn off x2apic here instead of panic?
1616 */
1617 panic("BIOS has enabled x2apic but kernel doesn't support x2apic, please disable x2apic in BIOS.\n");
1618}
1619early_initcall(validate_x2apic);
1582 1620
1583 if (!x2apic_preenabled && skip_ioapic_setup) { 1621static inline void try_to_enable_x2apic(int remap_mode) { }
1584 pr_info("Skipped enabling intr-remap because of skipping " 1622static inline void __x2apic_enable(void) { }
1585 "io-apic setup\n"); 1623#endif /* !CONFIG_X86_X2APIC */
1624
1625static int __init try_to_enable_IR(void)
1626{
1627#ifdef CONFIG_X86_IO_APIC
1628 if (!x2apic_enabled() && skip_ioapic_setup) {
1629 pr_info("Not enabling interrupt remapping due to skipped IO-APIC setup\n");
1586 return -1; 1630 return -1;
1587 } 1631 }
1588
1589 return irq_remapping_enable();
1590#endif 1632#endif
1591 return -1; 1633 return irq_remapping_enable();
1592} 1634}
1593 1635
1594void __init enable_IR_x2apic(void) 1636void __init enable_IR_x2apic(void)
1595{ 1637{
1596 unsigned long flags; 1638 unsigned long flags;
1597 int ret, x2apic_enabled = 0; 1639 int ret, ir_stat;
1598 int hardware_init_ret;
1599
1600 /* Make sure irq_remap_ops are initialized */
1601 setup_irq_remapping_ops();
1602 1640
1603 hardware_init_ret = irq_remapping_prepare(); 1641 ir_stat = irq_remapping_prepare();
1604 if (hardware_init_ret && !x2apic_supported()) 1642 if (ir_stat < 0 && !x2apic_supported())
1605 return; 1643 return;
1606 1644
1607 ret = save_ioapic_entries(); 1645 ret = save_ioapic_entries();
@@ -1614,49 +1652,13 @@ void __init enable_IR_x2apic(void)
1614 legacy_pic->mask_all(); 1652 legacy_pic->mask_all();
1615 mask_ioapic_entries(); 1653 mask_ioapic_entries();
1616 1654
1617 if (x2apic_preenabled && nox2apic) 1655 /* If irq_remapping_prepare() succeded, try to enable it */
1618 disable_x2apic(); 1656 if (ir_stat >= 0)
1619 1657 ir_stat = try_to_enable_IR();
1620 if (hardware_init_ret) 1658 /* ir_stat contains the remap mode or an error code */
1621 ret = -1; 1659 try_to_enable_x2apic(ir_stat);
1622 else
1623 ret = enable_IR();
1624
1625 if (!x2apic_supported())
1626 goto skip_x2apic;
1627 1660
1628 if (ret < 0) { 1661 if (ir_stat < 0)
1629 /* IR is required if there is APIC ID > 255 even when running
1630 * under KVM
1631 */
1632 if (max_physical_apicid > 255 ||
1633 !hypervisor_x2apic_available()) {
1634 if (x2apic_preenabled)
1635 disable_x2apic();
1636 goto skip_x2apic;
1637 }
1638 /*
1639 * without IR all CPUs can be addressed by IOAPIC/MSI
1640 * only in physical mode
1641 */
1642 x2apic_force_phys();
1643 }
1644
1645 if (ret == IRQ_REMAP_XAPIC_MODE) {
1646 pr_info("x2apic not enabled, IRQ remapping is in xapic mode\n");
1647 goto skip_x2apic;
1648 }
1649
1650 x2apic_enabled = 1;
1651
1652 if (x2apic_supported() && !x2apic_mode) {
1653 x2apic_mode = 1;
1654 enable_x2apic();
1655 pr_info("Enabled x2apic\n");
1656 }
1657
1658skip_x2apic:
1659 if (ret < 0) /* IR enabling failed */
1660 restore_ioapic_entries(); 1662 restore_ioapic_entries();
1661 legacy_pic->restore_mask(); 1663 legacy_pic->restore_mask();
1662 local_irq_restore(flags); 1664 local_irq_restore(flags);
@@ -1847,82 +1849,8 @@ void __init register_lapic_address(unsigned long address)
1847 } 1849 }
1848} 1850}
1849 1851
1850/*
1851 * This initializes the IO-APIC and APIC hardware if this is
1852 * a UP kernel.
1853 */
1854int apic_version[MAX_LOCAL_APIC]; 1852int apic_version[MAX_LOCAL_APIC];
1855 1853
1856int __init APIC_init_uniprocessor(void)
1857{
1858 if (disable_apic) {
1859 pr_info("Apic disabled\n");
1860 return -1;
1861 }
1862#ifdef CONFIG_X86_64
1863 if (!cpu_has_apic) {
1864 disable_apic = 1;
1865 pr_info("Apic disabled by BIOS\n");
1866 return -1;
1867 }
1868#else
1869 if (!smp_found_config && !cpu_has_apic)
1870 return -1;
1871
1872 /*
1873 * Complain if the BIOS pretends there is one.
1874 */
1875 if (!cpu_has_apic &&
1876 APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid])) {
1877 pr_err("BIOS bug, local APIC 0x%x not detected!...\n",
1878 boot_cpu_physical_apicid);
1879 return -1;
1880 }
1881#endif
1882
1883 default_setup_apic_routing();
1884
1885 verify_local_APIC();
1886 connect_bsp_APIC();
1887
1888#ifdef CONFIG_X86_64
1889 apic_write(APIC_ID, SET_APIC_ID(boot_cpu_physical_apicid));
1890#else
1891 /*
1892 * Hack: In case of kdump, after a crash, kernel might be booting
1893 * on a cpu with non-zero lapic id. But boot_cpu_physical_apicid
1894 * might be zero if read from MP tables. Get it from LAPIC.
1895 */
1896# ifdef CONFIG_CRASH_DUMP
1897 boot_cpu_physical_apicid = read_apic_id();
1898# endif
1899#endif
1900 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
1901 setup_local_APIC();
1902
1903#ifdef CONFIG_X86_IO_APIC
1904 /*
1905 * Now enable IO-APICs, actually call clear_IO_APIC
1906 * We need clear_IO_APIC before enabling error vector
1907 */
1908 if (!skip_ioapic_setup && nr_ioapics)
1909 enable_IO_APIC();
1910#endif
1911
1912 bsp_end_local_APIC_setup();
1913
1914#ifdef CONFIG_X86_IO_APIC
1915 if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1916 setup_IO_APIC();
1917 else {
1918 nr_ioapics = 0;
1919 }
1920#endif
1921
1922 x86_init.timers.setup_percpu_clockev();
1923 return 0;
1924}
1925
1926/* 1854/*
1927 * Local APIC interrupts 1855 * Local APIC interrupts
1928 */ 1856 */
@@ -2027,7 +1955,7 @@ __visible void smp_trace_error_interrupt(struct pt_regs *regs)
2027/** 1955/**
2028 * connect_bsp_APIC - attach the APIC to the interrupt system 1956 * connect_bsp_APIC - attach the APIC to the interrupt system
2029 */ 1957 */
2030void __init connect_bsp_APIC(void) 1958static void __init connect_bsp_APIC(void)
2031{ 1959{
2032#ifdef CONFIG_X86_32 1960#ifdef CONFIG_X86_32
2033 if (pic_mode) { 1961 if (pic_mode) {
@@ -2274,6 +2202,100 @@ void __init apic_set_eoi_write(void (*eoi_write)(u32 reg, u32 v))
2274 } 2202 }
2275} 2203}
2276 2204
2205static void __init apic_bsp_up_setup(void)
2206{
2207#ifdef CONFIG_X86_64
2208 apic_write(APIC_ID, SET_APIC_ID(boot_cpu_physical_apicid));
2209#else
2210 /*
2211 * Hack: In case of kdump, after a crash, kernel might be booting
2212 * on a cpu with non-zero lapic id. But boot_cpu_physical_apicid
2213 * might be zero if read from MP tables. Get it from LAPIC.
2214 */
2215# ifdef CONFIG_CRASH_DUMP
2216 boot_cpu_physical_apicid = read_apic_id();
2217# endif
2218#endif
2219 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
2220}
2221
2222/**
2223 * apic_bsp_setup - Setup function for local apic and io-apic
2224 * @upmode: Force UP mode (for APIC_init_uniprocessor)
2225 *
2226 * Returns:
2227 * apic_id of BSP APIC
2228 */
2229int __init apic_bsp_setup(bool upmode)
2230{
2231 int id;
2232
2233 connect_bsp_APIC();
2234 if (upmode)
2235 apic_bsp_up_setup();
2236 setup_local_APIC();
2237
2238 if (x2apic_mode)
2239 id = apic_read(APIC_LDR);
2240 else
2241 id = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
2242
2243 enable_IO_APIC();
2244 end_local_APIC_setup();
2245 irq_remap_enable_fault_handling();
2246 setup_IO_APIC();
2247 /* Setup local timer */
2248 x86_init.timers.setup_percpu_clockev();
2249 return id;
2250}
2251
2252/*
2253 * This initializes the IO-APIC and APIC hardware if this is
2254 * a UP kernel.
2255 */
2256int __init APIC_init_uniprocessor(void)
2257{
2258 if (disable_apic) {
2259 pr_info("Apic disabled\n");
2260 return -1;
2261 }
2262#ifdef CONFIG_X86_64
2263 if (!cpu_has_apic) {
2264 disable_apic = 1;
2265 pr_info("Apic disabled by BIOS\n");
2266 return -1;
2267 }
2268#else
2269 if (!smp_found_config && !cpu_has_apic)
2270 return -1;
2271
2272 /*
2273 * Complain if the BIOS pretends there is one.
2274 */
2275 if (!cpu_has_apic &&
2276 APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid])) {
2277 pr_err("BIOS bug, local APIC 0x%x not detected!...\n",
2278 boot_cpu_physical_apicid);
2279 return -1;
2280 }
2281#endif
2282
2283 if (!smp_found_config)
2284 disable_ioapic_support();
2285
2286 default_setup_apic_routing();
2287 verify_local_APIC();
2288 apic_bsp_setup(true);
2289 return 0;
2290}
2291
2292#ifdef CONFIG_UP_LATE_INIT
2293void __init up_late_init(void)
2294{
2295 APIC_init_uniprocessor();
2296}
2297#endif
2298
2277/* 2299/*
2278 * Power management 2300 * Power management
2279 */ 2301 */
@@ -2359,9 +2381,9 @@ static void lapic_resume(void)
2359 mask_ioapic_entries(); 2381 mask_ioapic_entries();
2360 legacy_pic->mask_all(); 2382 legacy_pic->mask_all();
2361 2383
2362 if (x2apic_mode) 2384 if (x2apic_mode) {
2363 enable_x2apic(); 2385 __x2apic_enable();
2364 else { 2386 } else {
2365 /* 2387 /*
2366 * Make sure the APICBASE points to the right address 2388 * Make sure the APICBASE points to the right address
2367 * 2389 *
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 3f5f60406ab1..f4dc2462a1ac 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1507,7 +1507,10 @@ void __init enable_IO_APIC(void)
1507 int i8259_apic, i8259_pin; 1507 int i8259_apic, i8259_pin;
1508 int apic, pin; 1508 int apic, pin;
1509 1509
1510 if (!nr_legacy_irqs()) 1510 if (skip_ioapic_setup)
1511 nr_ioapics = 0;
1512
1513 if (!nr_legacy_irqs() || !nr_ioapics)
1511 return; 1514 return;
1512 1515
1513 for_each_ioapic_pin(apic, pin) { 1516 for_each_ioapic_pin(apic, pin) {
@@ -2295,7 +2298,7 @@ static inline void __init check_timer(void)
2295 } 2298 }
2296 local_irq_disable(); 2299 local_irq_disable();
2297 apic_printk(APIC_QUIET, KERN_INFO "..... failed :(.\n"); 2300 apic_printk(APIC_QUIET, KERN_INFO "..... failed :(.\n");
2298 if (x2apic_preenabled) 2301 if (apic_is_x2apic_enabled())
2299 apic_printk(APIC_QUIET, KERN_INFO 2302 apic_printk(APIC_QUIET, KERN_INFO
2300 "Perhaps problem with the pre-enabled x2apic mode\n" 2303 "Perhaps problem with the pre-enabled x2apic mode\n"
2301 "Try booting with x2apic and interrupt-remapping disabled in the bios.\n"); 2304 "Try booting with x2apic and interrupt-remapping disabled in the bios.\n");
@@ -2373,9 +2376,9 @@ void __init setup_IO_APIC(void)
2373{ 2376{
2374 int ioapic; 2377 int ioapic;
2375 2378
2376 /* 2379 if (skip_ioapic_setup || !nr_ioapics)
2377 * calling enable_IO_APIC() is moved to setup_local_APIC for BP 2380 return;
2378 */ 2381
2379 io_apic_irqs = nr_legacy_irqs() ? ~PIC_IRQS : ~0UL; 2382 io_apic_irqs = nr_legacy_irqs() ? ~PIC_IRQS : ~0UL;
2380 2383
2381 apic_printk(APIC_VERBOSE, "ENABLING IO-APIC IRQs\n"); 2384 apic_printk(APIC_VERBOSE, "ENABLING IO-APIC IRQs\n");
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 15c5df92f74e..a220239cea65 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -869,3 +869,22 @@ static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
869 869
870 return false; 870 return false;
871} 871}
872
873void set_dr_addr_mask(unsigned long mask, int dr)
874{
875 if (!cpu_has_bpext)
876 return;
877
878 switch (dr) {
879 case 0:
880 wrmsr(MSR_F16H_DR0_ADDR_MASK, mask, 0);
881 break;
882 case 1:
883 case 2:
884 case 3:
885 wrmsr(MSR_F16H_DR1_ADDR_MASK - 1 + dr, mask, 0);
886 break;
887 default:
888 break;
889 }
890}
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index c6049650c093..b15bffcaba6d 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -491,17 +491,18 @@ u16 __read_mostly tlb_lld_2m[NR_INFO];
491u16 __read_mostly tlb_lld_4m[NR_INFO]; 491u16 __read_mostly tlb_lld_4m[NR_INFO];
492u16 __read_mostly tlb_lld_1g[NR_INFO]; 492u16 __read_mostly tlb_lld_1g[NR_INFO];
493 493
494void cpu_detect_tlb(struct cpuinfo_x86 *c) 494static void cpu_detect_tlb(struct cpuinfo_x86 *c)
495{ 495{
496 if (this_cpu->c_detect_tlb) 496 if (this_cpu->c_detect_tlb)
497 this_cpu->c_detect_tlb(c); 497 this_cpu->c_detect_tlb(c);
498 498
499 printk(KERN_INFO "Last level iTLB entries: 4KB %d, 2MB %d, 4MB %d\n" 499 pr_info("Last level iTLB entries: 4KB %d, 2MB %d, 4MB %d\n",
500 "Last level dTLB entries: 4KB %d, 2MB %d, 4MB %d, 1GB %d\n",
501 tlb_lli_4k[ENTRIES], tlb_lli_2m[ENTRIES], 500 tlb_lli_4k[ENTRIES], tlb_lli_2m[ENTRIES],
502 tlb_lli_4m[ENTRIES], tlb_lld_4k[ENTRIES], 501 tlb_lli_4m[ENTRIES]);
503 tlb_lld_2m[ENTRIES], tlb_lld_4m[ENTRIES], 502
504 tlb_lld_1g[ENTRIES]); 503 pr_info("Last level dTLB entries: 4KB %d, 2MB %d, 4MB %d, 1GB %d\n",
504 tlb_lld_4k[ENTRIES], tlb_lld_2m[ENTRIES],
505 tlb_lld_4m[ENTRIES], tlb_lld_1g[ENTRIES]);
505} 506}
506 507
507void detect_ht(struct cpuinfo_x86 *c) 508void detect_ht(struct cpuinfo_x86 *c)
@@ -1332,7 +1333,7 @@ void cpu_init(void)
1332 barrier(); 1333 barrier();
1333 1334
1334 x86_configure_nx(); 1335 x86_configure_nx();
1335 enable_x2apic(); 1336 x2apic_setup();
1336 1337
1337 /* 1338 /*
1338 * set up and load the per-CPU TSS 1339 * set up and load the per-CPU TSS
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 9cc6b6f25f42..94d7dcb12145 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -487,10 +487,8 @@ static void init_intel(struct cpuinfo_x86 *c)
487 487
488 rdmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); 488 rdmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb);
489 if ((epb & 0xF) == ENERGY_PERF_BIAS_PERFORMANCE) { 489 if ((epb & 0xF) == ENERGY_PERF_BIAS_PERFORMANCE) {
490 printk_once(KERN_WARNING "ENERGY_PERF_BIAS:" 490 pr_warn_once("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n");
491 " Set to 'normal', was 'performance'\n" 491 pr_warn_once("ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)\n");
492 "ENERGY_PERF_BIAS: View and update with"
493 " x86_energy_perf_policy(8)\n");
494 epb = (epb & ~0xF) | ENERGY_PERF_BIAS_NORMAL; 492 epb = (epb & ~0xF) | ENERGY_PERF_BIAS_NORMAL;
495 wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); 493 wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb);
496 } 494 }
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index d2c611699cd9..cdfed7953963 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -43,6 +43,7 @@
43#include <linux/export.h> 43#include <linux/export.h>
44 44
45#include <asm/processor.h> 45#include <asm/processor.h>
46#include <asm/traps.h>
46#include <asm/mce.h> 47#include <asm/mce.h>
47#include <asm/msr.h> 48#include <asm/msr.h>
48 49
@@ -115,7 +116,7 @@ static void (*quirk_no_way_out)(int bank, struct mce *m, struct pt_regs *regs);
115 * CPU/chipset specific EDAC code can register a notifier call here to print 116 * CPU/chipset specific EDAC code can register a notifier call here to print
116 * MCE errors in a human-readable form. 117 * MCE errors in a human-readable form.
117 */ 118 */
118ATOMIC_NOTIFIER_HEAD(x86_mce_decoder_chain); 119static ATOMIC_NOTIFIER_HEAD(x86_mce_decoder_chain);
119 120
120/* Do initial initialization of a struct mce */ 121/* Do initial initialization of a struct mce */
121void mce_setup(struct mce *m) 122void mce_setup(struct mce *m)
@@ -311,7 +312,7 @@ static void wait_for_panic(void)
311 panic("Panicing machine check CPU died"); 312 panic("Panicing machine check CPU died");
312} 313}
313 314
314static void mce_panic(char *msg, struct mce *final, char *exp) 315static void mce_panic(const char *msg, struct mce *final, char *exp)
315{ 316{
316 int i, apei_err = 0; 317 int i, apei_err = 0;
317 318
@@ -529,7 +530,7 @@ static void mce_schedule_work(void)
529 schedule_work(this_cpu_ptr(&mce_work)); 530 schedule_work(this_cpu_ptr(&mce_work));
530} 531}
531 532
532DEFINE_PER_CPU(struct irq_work, mce_irq_work); 533static DEFINE_PER_CPU(struct irq_work, mce_irq_work);
533 534
534static void mce_irq_work_cb(struct irq_work *entry) 535static void mce_irq_work_cb(struct irq_work *entry)
535{ 536{
@@ -735,7 +736,7 @@ static atomic_t mce_callin;
735/* 736/*
736 * Check if a timeout waiting for other CPUs happened. 737 * Check if a timeout waiting for other CPUs happened.
737 */ 738 */
738static int mce_timed_out(u64 *t) 739static int mce_timed_out(u64 *t, const char *msg)
739{ 740{
740 /* 741 /*
741 * The others already did panic for some reason. 742 * The others already did panic for some reason.
@@ -750,8 +751,7 @@ static int mce_timed_out(u64 *t)
750 goto out; 751 goto out;
751 if ((s64)*t < SPINUNIT) { 752 if ((s64)*t < SPINUNIT) {
752 if (mca_cfg.tolerant <= 1) 753 if (mca_cfg.tolerant <= 1)
753 mce_panic("Timeout synchronizing machine check over CPUs", 754 mce_panic(msg, NULL, NULL);
754 NULL, NULL);
755 cpu_missing = 1; 755 cpu_missing = 1;
756 return 1; 756 return 1;
757 } 757 }
@@ -867,7 +867,8 @@ static int mce_start(int *no_way_out)
867 * Wait for everyone. 867 * Wait for everyone.
868 */ 868 */
869 while (atomic_read(&mce_callin) != cpus) { 869 while (atomic_read(&mce_callin) != cpus) {
870 if (mce_timed_out(&timeout)) { 870 if (mce_timed_out(&timeout,
871 "Timeout: Not all CPUs entered broadcast exception handler")) {
871 atomic_set(&global_nwo, 0); 872 atomic_set(&global_nwo, 0);
872 return -1; 873 return -1;
873 } 874 }
@@ -892,7 +893,8 @@ static int mce_start(int *no_way_out)
892 * only seen by one CPU before cleared, avoiding duplicates. 893 * only seen by one CPU before cleared, avoiding duplicates.
893 */ 894 */
894 while (atomic_read(&mce_executing) < order) { 895 while (atomic_read(&mce_executing) < order) {
895 if (mce_timed_out(&timeout)) { 896 if (mce_timed_out(&timeout,
897 "Timeout: Subject CPUs unable to finish machine check processing")) {
896 atomic_set(&global_nwo, 0); 898 atomic_set(&global_nwo, 0);
897 return -1; 899 return -1;
898 } 900 }
@@ -936,7 +938,8 @@ static int mce_end(int order)
936 * loops. 938 * loops.
937 */ 939 */
938 while (atomic_read(&mce_executing) <= cpus) { 940 while (atomic_read(&mce_executing) <= cpus) {
939 if (mce_timed_out(&timeout)) 941 if (mce_timed_out(&timeout,
942 "Timeout: Monarch CPU unable to finish machine check processing"))
940 goto reset; 943 goto reset;
941 ndelay(SPINUNIT); 944 ndelay(SPINUNIT);
942 } 945 }
@@ -949,7 +952,8 @@ static int mce_end(int order)
949 * Subject: Wait for Monarch to finish. 952 * Subject: Wait for Monarch to finish.
950 */ 953 */
951 while (atomic_read(&mce_executing) != 0) { 954 while (atomic_read(&mce_executing) != 0) {
952 if (mce_timed_out(&timeout)) 955 if (mce_timed_out(&timeout,
956 "Timeout: Monarch CPU did not finish machine check processing"))
953 goto reset; 957 goto reset;
954 ndelay(SPINUNIT); 958 ndelay(SPINUNIT);
955 } 959 }
@@ -1003,51 +1007,6 @@ static void mce_clear_state(unsigned long *toclear)
1003} 1007}
1004 1008
1005/* 1009/*
1006 * Need to save faulting physical address associated with a process
1007 * in the machine check handler some place where we can grab it back
1008 * later in mce_notify_process()
1009 */
1010#define MCE_INFO_MAX 16
1011
1012struct mce_info {
1013 atomic_t inuse;
1014 struct task_struct *t;
1015 __u64 paddr;
1016 int restartable;
1017} mce_info[MCE_INFO_MAX];
1018
1019static void mce_save_info(__u64 addr, int c)
1020{
1021 struct mce_info *mi;
1022
1023 for (mi = mce_info; mi < &mce_info[MCE_INFO_MAX]; mi++) {
1024 if (atomic_cmpxchg(&mi->inuse, 0, 1) == 0) {
1025 mi->t = current;
1026 mi->paddr = addr;
1027 mi->restartable = c;
1028 return;
1029 }
1030 }
1031
1032 mce_panic("Too many concurrent recoverable errors", NULL, NULL);
1033}
1034
1035static struct mce_info *mce_find_info(void)
1036{
1037 struct mce_info *mi;
1038
1039 for (mi = mce_info; mi < &mce_info[MCE_INFO_MAX]; mi++)
1040 if (atomic_read(&mi->inuse) && mi->t == current)
1041 return mi;
1042 return NULL;
1043}
1044
1045static void mce_clear_info(struct mce_info *mi)
1046{
1047 atomic_set(&mi->inuse, 0);
1048}
1049
1050/*
1051 * The actual machine check handler. This only handles real 1010 * The actual machine check handler. This only handles real
1052 * exceptions when something got corrupted coming in through int 18. 1011 * exceptions when something got corrupted coming in through int 18.
1053 * 1012 *
@@ -1063,6 +1022,7 @@ void do_machine_check(struct pt_regs *regs, long error_code)
1063{ 1022{
1064 struct mca_config *cfg = &mca_cfg; 1023 struct mca_config *cfg = &mca_cfg;
1065 struct mce m, *final; 1024 struct mce m, *final;
1025 enum ctx_state prev_state;
1066 int i; 1026 int i;
1067 int worst = 0; 1027 int worst = 0;
1068 int severity; 1028 int severity;
@@ -1084,6 +1044,10 @@ void do_machine_check(struct pt_regs *regs, long error_code)
1084 DECLARE_BITMAP(toclear, MAX_NR_BANKS); 1044 DECLARE_BITMAP(toclear, MAX_NR_BANKS);
1085 DECLARE_BITMAP(valid_banks, MAX_NR_BANKS); 1045 DECLARE_BITMAP(valid_banks, MAX_NR_BANKS);
1086 char *msg = "Unknown"; 1046 char *msg = "Unknown";
1047 u64 recover_paddr = ~0ull;
1048 int flags = MF_ACTION_REQUIRED;
1049
1050 prev_state = ist_enter(regs);
1087 1051
1088 this_cpu_inc(mce_exception_count); 1052 this_cpu_inc(mce_exception_count);
1089 1053
@@ -1203,9 +1167,9 @@ void do_machine_check(struct pt_regs *regs, long error_code)
1203 if (no_way_out) 1167 if (no_way_out)
1204 mce_panic("Fatal machine check on current CPU", &m, msg); 1168 mce_panic("Fatal machine check on current CPU", &m, msg);
1205 if (worst == MCE_AR_SEVERITY) { 1169 if (worst == MCE_AR_SEVERITY) {
1206 /* schedule action before return to userland */ 1170 recover_paddr = m.addr;
1207 mce_save_info(m.addr, m.mcgstatus & MCG_STATUS_RIPV); 1171 if (!(m.mcgstatus & MCG_STATUS_RIPV))
1208 set_thread_flag(TIF_MCE_NOTIFY); 1172 flags |= MF_MUST_KILL;
1209 } else if (kill_it) { 1173 } else if (kill_it) {
1210 force_sig(SIGBUS, current); 1174 force_sig(SIGBUS, current);
1211 } 1175 }
@@ -1216,6 +1180,27 @@ void do_machine_check(struct pt_regs *regs, long error_code)
1216 mce_wrmsrl(MSR_IA32_MCG_STATUS, 0); 1180 mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
1217out: 1181out:
1218 sync_core(); 1182 sync_core();
1183
1184 if (recover_paddr == ~0ull)
1185 goto done;
1186
1187 pr_err("Uncorrected hardware memory error in user-access at %llx",
1188 recover_paddr);
1189 /*
1190 * We must call memory_failure() here even if the current process is
1191 * doomed. We still need to mark the page as poisoned and alert any
1192 * other users of the page.
1193 */
1194 ist_begin_non_atomic(regs);
1195 local_irq_enable();
1196 if (memory_failure(recover_paddr >> PAGE_SHIFT, MCE_VECTOR, flags) < 0) {
1197 pr_err("Memory error not recovered");
1198 force_sig(SIGBUS, current);
1199 }
1200 local_irq_disable();
1201 ist_end_non_atomic();
1202done:
1203 ist_exit(regs, prev_state);
1219} 1204}
1220EXPORT_SYMBOL_GPL(do_machine_check); 1205EXPORT_SYMBOL_GPL(do_machine_check);
1221 1206
@@ -1233,42 +1218,6 @@ int memory_failure(unsigned long pfn, int vector, int flags)
1233#endif 1218#endif
1234 1219
1235/* 1220/*
1236 * Called in process context that interrupted by MCE and marked with
1237 * TIF_MCE_NOTIFY, just before returning to erroneous userland.
1238 * This code is allowed to sleep.
1239 * Attempt possible recovery such as calling the high level VM handler to
1240 * process any corrupted pages, and kill/signal current process if required.
1241 * Action required errors are handled here.
1242 */
1243void mce_notify_process(void)
1244{
1245 unsigned long pfn;
1246 struct mce_info *mi = mce_find_info();
1247 int flags = MF_ACTION_REQUIRED;
1248
1249 if (!mi)
1250 mce_panic("Lost physical address for unconsumed uncorrectable error", NULL, NULL);
1251 pfn = mi->paddr >> PAGE_SHIFT;
1252
1253 clear_thread_flag(TIF_MCE_NOTIFY);
1254
1255 pr_err("Uncorrected hardware memory error in user-access at %llx",
1256 mi->paddr);
1257 /*
1258 * We must call memory_failure() here even if the current process is
1259 * doomed. We still need to mark the page as poisoned and alert any
1260 * other users of the page.
1261 */
1262 if (!mi->restartable)
1263 flags |= MF_MUST_KILL;
1264 if (memory_failure(pfn, MCE_VECTOR, flags) < 0) {
1265 pr_err("Memory error not recovered");
1266 force_sig(SIGBUS, current);
1267 }
1268 mce_clear_info(mi);
1269}
1270
1271/*
1272 * Action optional processing happens here (picking up 1221 * Action optional processing happens here (picking up
1273 * from the list of faulting pages that do_machine_check() 1222 * from the list of faulting pages that do_machine_check()
1274 * placed into the "ring"). 1223 * placed into the "ring").
diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
index a3042989398c..ec2663a708e4 100644
--- a/arch/x86/kernel/cpu/mcheck/p5.c
+++ b/arch/x86/kernel/cpu/mcheck/p5.c
@@ -8,6 +8,7 @@
8#include <linux/smp.h> 8#include <linux/smp.h>
9 9
10#include <asm/processor.h> 10#include <asm/processor.h>
11#include <asm/traps.h>
11#include <asm/mce.h> 12#include <asm/mce.h>
12#include <asm/msr.h> 13#include <asm/msr.h>
13 14
@@ -17,8 +18,11 @@ int mce_p5_enabled __read_mostly;
17/* Machine check handler for Pentium class Intel CPUs: */ 18/* Machine check handler for Pentium class Intel CPUs: */
18static void pentium_machine_check(struct pt_regs *regs, long error_code) 19static void pentium_machine_check(struct pt_regs *regs, long error_code)
19{ 20{
21 enum ctx_state prev_state;
20 u32 loaddr, hi, lotype; 22 u32 loaddr, hi, lotype;
21 23
24 prev_state = ist_enter(regs);
25
22 rdmsr(MSR_IA32_P5_MC_ADDR, loaddr, hi); 26 rdmsr(MSR_IA32_P5_MC_ADDR, loaddr, hi);
23 rdmsr(MSR_IA32_P5_MC_TYPE, lotype, hi); 27 rdmsr(MSR_IA32_P5_MC_TYPE, lotype, hi);
24 28
@@ -33,6 +37,8 @@ static void pentium_machine_check(struct pt_regs *regs, long error_code)
33 } 37 }
34 38
35 add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE); 39 add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE);
40
41 ist_exit(regs, prev_state);
36} 42}
37 43
38/* Set up machine check reporting for processors with Intel style MCE: */ 44/* Set up machine check reporting for processors with Intel style MCE: */
diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
index 7dc5564d0cdf..bd5d46a32210 100644
--- a/arch/x86/kernel/cpu/mcheck/winchip.c
+++ b/arch/x86/kernel/cpu/mcheck/winchip.c
@@ -7,14 +7,19 @@
7#include <linux/types.h> 7#include <linux/types.h>
8 8
9#include <asm/processor.h> 9#include <asm/processor.h>
10#include <asm/traps.h>
10#include <asm/mce.h> 11#include <asm/mce.h>
11#include <asm/msr.h> 12#include <asm/msr.h>
12 13
13/* Machine check handler for WinChip C6: */ 14/* Machine check handler for WinChip C6: */
14static void winchip_machine_check(struct pt_regs *regs, long error_code) 15static void winchip_machine_check(struct pt_regs *regs, long error_code)
15{ 16{
17 enum ctx_state prev_state = ist_enter(regs);
18
16 printk(KERN_EMERG "CPU0: Machine Check Exception.\n"); 19 printk(KERN_EMERG "CPU0: Machine Check Exception.\n");
17 add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE); 20 add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE);
21
22 ist_exit(regs, prev_state);
18} 23}
19 24
20/* Set up machine check reporting on the Winchip C6 series */ 25/* Set up machine check reporting on the Winchip C6 series */
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index dd2f07ae9d0c..46201deee923 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -184,9 +184,9 @@ void __init e820_print_map(char *who)
184 * overwritten in the same location, starting at biosmap. 184 * overwritten in the same location, starting at biosmap.
185 * 185 *
186 * The integer pointed to by pnr_map must be valid on entry (the 186 * The integer pointed to by pnr_map must be valid on entry (the
187 * current number of valid entries located at biosmap) and will 187 * current number of valid entries located at biosmap). If the
188 * be updated on return, with the new number of valid entries 188 * sanitizing succeeds the *pnr_map will be updated with the new
189 * (something no more than max_nr_map.) 189 * number of valid entries (something no more than max_nr_map).
190 * 190 *
191 * The return value from sanitize_e820_map() is zero if it 191 * The return value from sanitize_e820_map() is zero if it
192 * successfully 'sanitized' the map entries passed in, and is -1 192 * successfully 'sanitized' the map entries passed in, and is -1
@@ -561,23 +561,15 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type,
561 561
562void __init update_e820(void) 562void __init update_e820(void)
563{ 563{
564 u32 nr_map; 564 if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map))
565
566 nr_map = e820.nr_map;
567 if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map))
568 return; 565 return;
569 e820.nr_map = nr_map;
570 printk(KERN_INFO "e820: modified physical RAM map:\n"); 566 printk(KERN_INFO "e820: modified physical RAM map:\n");
571 e820_print_map("modified"); 567 e820_print_map("modified");
572} 568}
573static void __init update_e820_saved(void) 569static void __init update_e820_saved(void)
574{ 570{
575 u32 nr_map; 571 sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map),
576 572 &e820_saved.nr_map);
577 nr_map = e820_saved.nr_map;
578 if (sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map), &nr_map))
579 return;
580 e820_saved.nr_map = nr_map;
581} 573}
582#define MAX_GAP_END 0x100000000ull 574#define MAX_GAP_END 0x100000000ull
583/* 575/*
@@ -898,11 +890,9 @@ early_param("memmap", parse_memmap_opt);
898void __init finish_e820_parsing(void) 890void __init finish_e820_parsing(void)
899{ 891{
900 if (userdef) { 892 if (userdef) {
901 u32 nr = e820.nr_map; 893 if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map),
902 894 &e820.nr_map) < 0)
903 if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr) < 0)
904 early_panic("Invalid user supplied memory map"); 895 early_panic("Invalid user supplied memory map");
905 e820.nr_map = nr;
906 896
907 printk(KERN_INFO "e820: user-defined physical RAM map:\n"); 897 printk(KERN_INFO "e820: user-defined physical RAM map:\n");
908 e820_print_map("user"); 898 e820_print_map("user");
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 9ebaf63ba182..db13655c3a2a 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -143,7 +143,8 @@ ENDPROC(native_usergs_sysret64)
143 movq \tmp,RSP+\offset(%rsp) 143 movq \tmp,RSP+\offset(%rsp)
144 movq $__USER_DS,SS+\offset(%rsp) 144 movq $__USER_DS,SS+\offset(%rsp)
145 movq $__USER_CS,CS+\offset(%rsp) 145 movq $__USER_CS,CS+\offset(%rsp)
146 movq $-1,RCX+\offset(%rsp) 146 movq RIP+\offset(%rsp),\tmp /* get rip */
147 movq \tmp,RCX+\offset(%rsp) /* copy it to rcx as sysret would do */
147 movq R11+\offset(%rsp),\tmp /* get eflags */ 148 movq R11+\offset(%rsp),\tmp /* get eflags */
148 movq \tmp,EFLAGS+\offset(%rsp) 149 movq \tmp,EFLAGS+\offset(%rsp)
149 .endm 150 .endm
@@ -155,27 +156,6 @@ ENDPROC(native_usergs_sysret64)
155 movq \tmp,R11+\offset(%rsp) 156 movq \tmp,R11+\offset(%rsp)
156 .endm 157 .endm
157 158
158 .macro FAKE_STACK_FRAME child_rip
159 /* push in order ss, rsp, eflags, cs, rip */
160 xorl %eax, %eax
161 pushq_cfi $__KERNEL_DS /* ss */
162 /*CFI_REL_OFFSET ss,0*/
163 pushq_cfi %rax /* rsp */
164 CFI_REL_OFFSET rsp,0
165 pushq_cfi $(X86_EFLAGS_IF|X86_EFLAGS_FIXED) /* eflags - interrupts on */
166 /*CFI_REL_OFFSET rflags,0*/
167 pushq_cfi $__KERNEL_CS /* cs */
168 /*CFI_REL_OFFSET cs,0*/
169 pushq_cfi \child_rip /* rip */
170 CFI_REL_OFFSET rip,0
171 pushq_cfi %rax /* orig rax */
172 .endm
173
174 .macro UNFAKE_STACK_FRAME
175 addq $8*6, %rsp
176 CFI_ADJUST_CFA_OFFSET -(6*8)
177 .endm
178
179/* 159/*
180 * initial frame state for interrupts (and exceptions without error code) 160 * initial frame state for interrupts (and exceptions without error code)
181 */ 161 */
@@ -238,51 +218,6 @@ ENDPROC(native_usergs_sysret64)
238 CFI_REL_OFFSET r15, R15+\offset 218 CFI_REL_OFFSET r15, R15+\offset
239 .endm 219 .endm
240 220
241/* save partial stack frame */
242 .macro SAVE_ARGS_IRQ
243 cld
244 /* start from rbp in pt_regs and jump over */
245 movq_cfi rdi, (RDI-RBP)
246 movq_cfi rsi, (RSI-RBP)
247 movq_cfi rdx, (RDX-RBP)
248 movq_cfi rcx, (RCX-RBP)
249 movq_cfi rax, (RAX-RBP)
250 movq_cfi r8, (R8-RBP)
251 movq_cfi r9, (R9-RBP)
252 movq_cfi r10, (R10-RBP)
253 movq_cfi r11, (R11-RBP)
254
255 /* Save rbp so that we can unwind from get_irq_regs() */
256 movq_cfi rbp, 0
257
258 /* Save previous stack value */
259 movq %rsp, %rsi
260
261 leaq -RBP(%rsp),%rdi /* arg1 for handler */
262 testl $3, CS-RBP(%rsi)
263 je 1f
264 SWAPGS
265 /*
266 * irq_count is used to check if a CPU is already on an interrupt stack
267 * or not. While this is essentially redundant with preempt_count it is
268 * a little cheaper to use a separate counter in the PDA (short of
269 * moving irq_enter into assembly, which would be too much work)
270 */
2711: incl PER_CPU_VAR(irq_count)
272 cmovzq PER_CPU_VAR(irq_stack_ptr),%rsp
273 CFI_DEF_CFA_REGISTER rsi
274
275 /* Store previous stack value */
276 pushq %rsi
277 CFI_ESCAPE 0x0f /* DW_CFA_def_cfa_expression */, 6, \
278 0x77 /* DW_OP_breg7 */, 0, \
279 0x06 /* DW_OP_deref */, \
280 0x08 /* DW_OP_const1u */, SS+8-RBP, \
281 0x22 /* DW_OP_plus */
282 /* We entered an interrupt context - irqs are off: */
283 TRACE_IRQS_OFF
284 .endm
285
286ENTRY(save_paranoid) 221ENTRY(save_paranoid)
287 XCPT_FRAME 1 RDI+8 222 XCPT_FRAME 1 RDI+8
288 cld 223 cld
@@ -426,15 +361,12 @@ system_call_fastpath:
426 * Has incomplete stack frame and undefined top of stack. 361 * Has incomplete stack frame and undefined top of stack.
427 */ 362 */
428ret_from_sys_call: 363ret_from_sys_call:
429 movl $_TIF_ALLWORK_MASK,%edi 364 testl $_TIF_ALLWORK_MASK,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
430 /* edi: flagmask */ 365 jnz int_ret_from_sys_call_fixup /* Go the the slow path */
431sysret_check: 366
432 LOCKDEP_SYS_EXIT 367 LOCKDEP_SYS_EXIT
433 DISABLE_INTERRUPTS(CLBR_NONE) 368 DISABLE_INTERRUPTS(CLBR_NONE)
434 TRACE_IRQS_OFF 369 TRACE_IRQS_OFF
435 movl TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET),%edx
436 andl %edi,%edx
437 jnz sysret_careful
438 CFI_REMEMBER_STATE 370 CFI_REMEMBER_STATE
439 /* 371 /*
440 * sysretq will re-enable interrupts: 372 * sysretq will re-enable interrupts:
@@ -448,49 +380,10 @@ sysret_check:
448 USERGS_SYSRET64 380 USERGS_SYSRET64
449 381
450 CFI_RESTORE_STATE 382 CFI_RESTORE_STATE
451 /* Handle reschedules */
452 /* edx: work, edi: workmask */
453sysret_careful:
454 bt $TIF_NEED_RESCHED,%edx
455 jnc sysret_signal
456 TRACE_IRQS_ON
457 ENABLE_INTERRUPTS(CLBR_NONE)
458 pushq_cfi %rdi
459 SCHEDULE_USER
460 popq_cfi %rdi
461 jmp sysret_check
462 383
463 /* Handle a signal */ 384int_ret_from_sys_call_fixup:
464sysret_signal:
465 TRACE_IRQS_ON
466 ENABLE_INTERRUPTS(CLBR_NONE)
467#ifdef CONFIG_AUDITSYSCALL
468 bt $TIF_SYSCALL_AUDIT,%edx
469 jc sysret_audit
470#endif
471 /*
472 * We have a signal, or exit tracing or single-step.
473 * These all wind up with the iret return path anyway,
474 * so just join that path right now.
475 */
476 FIXUP_TOP_OF_STACK %r11, -ARGOFFSET 385 FIXUP_TOP_OF_STACK %r11, -ARGOFFSET
477 jmp int_check_syscall_exit_work 386 jmp int_ret_from_sys_call
478
479#ifdef CONFIG_AUDITSYSCALL
480 /*
481 * Return fast path for syscall audit. Call __audit_syscall_exit()
482 * directly and then jump back to the fast path with TIF_SYSCALL_AUDIT
483 * masked off.
484 */
485sysret_audit:
486 movq RAX-ARGOFFSET(%rsp),%rsi /* second arg, syscall return value */
487 cmpq $-MAX_ERRNO,%rsi /* is it < -MAX_ERRNO? */
488 setbe %al /* 1 if so, 0 if not */
489 movzbl %al,%edi /* zero-extend that into %edi */
490 call __audit_syscall_exit
491 movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi
492 jmp sysret_check
493#endif /* CONFIG_AUDITSYSCALL */
494 387
495 /* Do syscall tracing */ 388 /* Do syscall tracing */
496tracesys: 389tracesys:
@@ -626,19 +519,6 @@ END(\label)
626 FORK_LIKE vfork 519 FORK_LIKE vfork
627 FIXED_FRAME stub_iopl, sys_iopl 520 FIXED_FRAME stub_iopl, sys_iopl
628 521
629ENTRY(ptregscall_common)
630 DEFAULT_FRAME 1 8 /* offset 8: return address */
631 RESTORE_TOP_OF_STACK %r11, 8
632 movq_cfi_restore R15+8, r15
633 movq_cfi_restore R14+8, r14
634 movq_cfi_restore R13+8, r13
635 movq_cfi_restore R12+8, r12
636 movq_cfi_restore RBP+8, rbp
637 movq_cfi_restore RBX+8, rbx
638 ret $REST_SKIP /* pop extended registers */
639 CFI_ENDPROC
640END(ptregscall_common)
641
642ENTRY(stub_execve) 522ENTRY(stub_execve)
643 CFI_STARTPROC 523 CFI_STARTPROC
644 addq $8, %rsp 524 addq $8, %rsp
@@ -779,7 +659,48 @@ END(interrupt)
779 /* reserve pt_regs for scratch regs and rbp */ 659 /* reserve pt_regs for scratch regs and rbp */
780 subq $ORIG_RAX-RBP, %rsp 660 subq $ORIG_RAX-RBP, %rsp
781 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP 661 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
782 SAVE_ARGS_IRQ 662 cld
663 /* start from rbp in pt_regs and jump over */
664 movq_cfi rdi, (RDI-RBP)
665 movq_cfi rsi, (RSI-RBP)
666 movq_cfi rdx, (RDX-RBP)
667 movq_cfi rcx, (RCX-RBP)
668 movq_cfi rax, (RAX-RBP)
669 movq_cfi r8, (R8-RBP)
670 movq_cfi r9, (R9-RBP)
671 movq_cfi r10, (R10-RBP)
672 movq_cfi r11, (R11-RBP)
673
674 /* Save rbp so that we can unwind from get_irq_regs() */
675 movq_cfi rbp, 0
676
677 /* Save previous stack value */
678 movq %rsp, %rsi
679
680 leaq -RBP(%rsp),%rdi /* arg1 for handler */
681 testl $3, CS-RBP(%rsi)
682 je 1f
683 SWAPGS
684 /*
685 * irq_count is used to check if a CPU is already on an interrupt stack
686 * or not. While this is essentially redundant with preempt_count it is
687 * a little cheaper to use a separate counter in the PDA (short of
688 * moving irq_enter into assembly, which would be too much work)
689 */
6901: incl PER_CPU_VAR(irq_count)
691 cmovzq PER_CPU_VAR(irq_stack_ptr),%rsp
692 CFI_DEF_CFA_REGISTER rsi
693
694 /* Store previous stack value */
695 pushq %rsi
696 CFI_ESCAPE 0x0f /* DW_CFA_def_cfa_expression */, 6, \
697 0x77 /* DW_OP_breg7 */, 0, \
698 0x06 /* DW_OP_deref */, \
699 0x08 /* DW_OP_const1u */, SS+8-RBP, \
700 0x22 /* DW_OP_plus */
701 /* We entered an interrupt context - irqs are off: */
702 TRACE_IRQS_OFF
703
783 call \func 704 call \func
784 .endm 705 .endm
785 706
@@ -831,6 +752,60 @@ retint_swapgs: /* return to user-space */
831 */ 752 */
832 DISABLE_INTERRUPTS(CLBR_ANY) 753 DISABLE_INTERRUPTS(CLBR_ANY)
833 TRACE_IRQS_IRETQ 754 TRACE_IRQS_IRETQ
755
756 /*
757 * Try to use SYSRET instead of IRET if we're returning to
758 * a completely clean 64-bit userspace context.
759 */
760 movq (RCX-R11)(%rsp), %rcx
761 cmpq %rcx,(RIP-R11)(%rsp) /* RCX == RIP */
762 jne opportunistic_sysret_failed
763
764 /*
765 * On Intel CPUs, sysret with non-canonical RCX/RIP will #GP
766 * in kernel space. This essentially lets the user take over
767 * the kernel, since userspace controls RSP. It's not worth
768 * testing for canonicalness exactly -- this check detects any
769 * of the 17 high bits set, which is true for non-canonical
770 * or kernel addresses. (This will pessimize vsyscall=native.
771 * Big deal.)
772 *
773 * If virtual addresses ever become wider, this will need
774 * to be updated to remain correct on both old and new CPUs.
775 */
776 .ifne __VIRTUAL_MASK_SHIFT - 47
777 .error "virtual address width changed -- sysret checks need update"
778 .endif
779 shr $__VIRTUAL_MASK_SHIFT, %rcx
780 jnz opportunistic_sysret_failed
781
782 cmpq $__USER_CS,(CS-R11)(%rsp) /* CS must match SYSRET */
783 jne opportunistic_sysret_failed
784
785 movq (R11-ARGOFFSET)(%rsp), %r11
786 cmpq %r11,(EFLAGS-ARGOFFSET)(%rsp) /* R11 == RFLAGS */
787 jne opportunistic_sysret_failed
788
789 testq $X86_EFLAGS_RF,%r11 /* sysret can't restore RF */
790 jnz opportunistic_sysret_failed
791
792 /* nothing to check for RSP */
793
794 cmpq $__USER_DS,(SS-ARGOFFSET)(%rsp) /* SS must match SYSRET */
795 jne opportunistic_sysret_failed
796
797 /*
798 * We win! This label is here just for ease of understanding
799 * perf profiles. Nothing jumps here.
800 */
801irq_return_via_sysret:
802 CFI_REMEMBER_STATE
803 RESTORE_ARGS 1,8,1
804 movq (RSP-RIP)(%rsp),%rsp
805 USERGS_SYSRET64
806 CFI_RESTORE_STATE
807
808opportunistic_sysret_failed:
834 SWAPGS 809 SWAPGS
835 jmp restore_args 810 jmp restore_args
836 811
@@ -1048,6 +1023,11 @@ ENTRY(\sym)
1048 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 1023 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
1049 1024
1050 .if \paranoid 1025 .if \paranoid
1026 .if \paranoid == 1
1027 CFI_REMEMBER_STATE
1028 testl $3, CS(%rsp) /* If coming from userspace, switch */
1029 jnz 1f /* stacks. */
1030 .endif
1051 call save_paranoid 1031 call save_paranoid
1052 .else 1032 .else
1053 call error_entry 1033 call error_entry
@@ -1088,6 +1068,36 @@ ENTRY(\sym)
1088 jmp error_exit /* %ebx: no swapgs flag */ 1068 jmp error_exit /* %ebx: no swapgs flag */
1089 .endif 1069 .endif
1090 1070
1071 .if \paranoid == 1
1072 CFI_RESTORE_STATE
1073 /*
1074 * Paranoid entry from userspace. Switch stacks and treat it
1075 * as a normal entry. This means that paranoid handlers
1076 * run in real process context if user_mode(regs).
1077 */
10781:
1079 call error_entry
1080
1081 DEFAULT_FRAME 0
1082
1083 movq %rsp,%rdi /* pt_regs pointer */
1084 call sync_regs
1085 movq %rax,%rsp /* switch stack */
1086
1087 movq %rsp,%rdi /* pt_regs pointer */
1088
1089 .if \has_error_code
1090 movq ORIG_RAX(%rsp),%rsi /* get error code */
1091 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
1092 .else
1093 xorl %esi,%esi /* no error code */
1094 .endif
1095
1096 call \do_sym
1097
1098 jmp error_exit /* %ebx: no swapgs flag */
1099 .endif
1100
1091 CFI_ENDPROC 1101 CFI_ENDPROC
1092END(\sym) 1102END(\sym)
1093.endm 1103.endm
@@ -1108,7 +1118,7 @@ idtentry overflow do_overflow has_error_code=0
1108idtentry bounds do_bounds has_error_code=0 1118idtentry bounds do_bounds has_error_code=0
1109idtentry invalid_op do_invalid_op has_error_code=0 1119idtentry invalid_op do_invalid_op has_error_code=0
1110idtentry device_not_available do_device_not_available has_error_code=0 1120idtentry device_not_available do_device_not_available has_error_code=0
1111idtentry double_fault do_double_fault has_error_code=1 paranoid=1 1121idtentry double_fault do_double_fault has_error_code=1 paranoid=2
1112idtentry coprocessor_segment_overrun do_coprocessor_segment_overrun has_error_code=0 1122idtentry coprocessor_segment_overrun do_coprocessor_segment_overrun has_error_code=0
1113idtentry invalid_TSS do_invalid_TSS has_error_code=1 1123idtentry invalid_TSS do_invalid_TSS has_error_code=1
1114idtentry segment_not_present do_segment_not_present has_error_code=1 1124idtentry segment_not_present do_segment_not_present has_error_code=1
@@ -1289,16 +1299,14 @@ idtentry machine_check has_error_code=0 paranoid=1 do_sym=*machine_check_vector(
1289#endif 1299#endif
1290 1300
1291 /* 1301 /*
1292 * "Paranoid" exit path from exception stack. 1302 * "Paranoid" exit path from exception stack. This is invoked
1293 * Paranoid because this is used by NMIs and cannot take 1303 * only on return from non-NMI IST interrupts that came
1294 * any kernel state for granted. 1304 * from kernel space.
1295 * We don't do kernel preemption checks here, because only
1296 * NMI should be common and it does not enable IRQs and
1297 * cannot get reschedule ticks.
1298 * 1305 *
1299 * "trace" is 0 for the NMI handler only, because irq-tracing 1306 * We may be returning to very strange contexts (e.g. very early
1300 * is fundamentally NMI-unsafe. (we cannot change the soft and 1307 * in syscall entry), so checking for preemption here would
1301 * hard flags at once, atomically) 1308 * be complicated. Fortunately, we there's no good reason
1309 * to try to handle preemption here.
1302 */ 1310 */
1303 1311
1304 /* ebx: no swapgs flag */ 1312 /* ebx: no swapgs flag */
@@ -1308,43 +1316,14 @@ ENTRY(paranoid_exit)
1308 TRACE_IRQS_OFF_DEBUG 1316 TRACE_IRQS_OFF_DEBUG
1309 testl %ebx,%ebx /* swapgs needed? */ 1317 testl %ebx,%ebx /* swapgs needed? */
1310 jnz paranoid_restore 1318 jnz paranoid_restore
1311 testl $3,CS(%rsp)
1312 jnz paranoid_userspace
1313paranoid_swapgs:
1314 TRACE_IRQS_IRETQ 0 1319 TRACE_IRQS_IRETQ 0
1315 SWAPGS_UNSAFE_STACK 1320 SWAPGS_UNSAFE_STACK
1316 RESTORE_ALL 8 1321 RESTORE_ALL 8
1317 jmp irq_return 1322 INTERRUPT_RETURN
1318paranoid_restore: 1323paranoid_restore:
1319 TRACE_IRQS_IRETQ_DEBUG 0 1324 TRACE_IRQS_IRETQ_DEBUG 0
1320 RESTORE_ALL 8 1325 RESTORE_ALL 8
1321 jmp irq_return 1326 INTERRUPT_RETURN
1322paranoid_userspace:
1323 GET_THREAD_INFO(%rcx)
1324 movl TI_flags(%rcx),%ebx
1325 andl $_TIF_WORK_MASK,%ebx
1326 jz paranoid_swapgs
1327 movq %rsp,%rdi /* &pt_regs */
1328 call sync_regs
1329 movq %rax,%rsp /* switch stack for scheduling */
1330 testl $_TIF_NEED_RESCHED,%ebx
1331 jnz paranoid_schedule
1332 movl %ebx,%edx /* arg3: thread flags */
1333 TRACE_IRQS_ON
1334 ENABLE_INTERRUPTS(CLBR_NONE)
1335 xorl %esi,%esi /* arg2: oldset */
1336 movq %rsp,%rdi /* arg1: &pt_regs */
1337 call do_notify_resume
1338 DISABLE_INTERRUPTS(CLBR_NONE)
1339 TRACE_IRQS_OFF
1340 jmp paranoid_userspace
1341paranoid_schedule:
1342 TRACE_IRQS_ON
1343 ENABLE_INTERRUPTS(CLBR_ANY)
1344 SCHEDULE_USER
1345 DISABLE_INTERRUPTS(CLBR_ANY)
1346 TRACE_IRQS_OFF
1347 jmp paranoid_userspace
1348 CFI_ENDPROC 1327 CFI_ENDPROC
1349END(paranoid_exit) 1328END(paranoid_exit)
1350 1329
diff --git a/arch/x86/kernel/hw_breakpoint.c b/arch/x86/kernel/hw_breakpoint.c
index 3d5fb509bdeb..7114ba220fd4 100644
--- a/arch/x86/kernel/hw_breakpoint.c
+++ b/arch/x86/kernel/hw_breakpoint.c
@@ -126,6 +126,8 @@ int arch_install_hw_breakpoint(struct perf_event *bp)
126 *dr7 |= encode_dr7(i, info->len, info->type); 126 *dr7 |= encode_dr7(i, info->len, info->type);
127 127
128 set_debugreg(*dr7, 7); 128 set_debugreg(*dr7, 7);
129 if (info->mask)
130 set_dr_addr_mask(info->mask, i);
129 131
130 return 0; 132 return 0;
131} 133}
@@ -161,29 +163,8 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp)
161 *dr7 &= ~__encode_dr7(i, info->len, info->type); 163 *dr7 &= ~__encode_dr7(i, info->len, info->type);
162 164
163 set_debugreg(*dr7, 7); 165 set_debugreg(*dr7, 7);
164} 166 if (info->mask)
165 167 set_dr_addr_mask(0, i);
166static int get_hbp_len(u8 hbp_len)
167{
168 unsigned int len_in_bytes = 0;
169
170 switch (hbp_len) {
171 case X86_BREAKPOINT_LEN_1:
172 len_in_bytes = 1;
173 break;
174 case X86_BREAKPOINT_LEN_2:
175 len_in_bytes = 2;
176 break;
177 case X86_BREAKPOINT_LEN_4:
178 len_in_bytes = 4;
179 break;
180#ifdef CONFIG_X86_64
181 case X86_BREAKPOINT_LEN_8:
182 len_in_bytes = 8;
183 break;
184#endif
185 }
186 return len_in_bytes;
187} 168}
188 169
189/* 170/*
@@ -196,7 +177,7 @@ int arch_check_bp_in_kernelspace(struct perf_event *bp)
196 struct arch_hw_breakpoint *info = counter_arch_bp(bp); 177 struct arch_hw_breakpoint *info = counter_arch_bp(bp);
197 178
198 va = info->address; 179 va = info->address;
199 len = get_hbp_len(info->len); 180 len = bp->attr.bp_len;
200 181
201 return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE); 182 return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
202} 183}
@@ -277,6 +258,8 @@ static int arch_build_bp_info(struct perf_event *bp)
277 } 258 }
278 259
279 /* Len */ 260 /* Len */
261 info->mask = 0;
262
280 switch (bp->attr.bp_len) { 263 switch (bp->attr.bp_len) {
281 case HW_BREAKPOINT_LEN_1: 264 case HW_BREAKPOINT_LEN_1:
282 info->len = X86_BREAKPOINT_LEN_1; 265 info->len = X86_BREAKPOINT_LEN_1;
@@ -293,11 +276,17 @@ static int arch_build_bp_info(struct perf_event *bp)
293 break; 276 break;
294#endif 277#endif
295 default: 278 default:
296 return -EINVAL; 279 if (!is_power_of_2(bp->attr.bp_len))
280 return -EINVAL;
281 if (!cpu_has_bpext)
282 return -EOPNOTSUPP;
283 info->mask = bp->attr.bp_len - 1;
284 info->len = X86_BREAKPOINT_LEN_1;
297 } 285 }
298 286
299 return 0; 287 return 0;
300} 288}
289
301/* 290/*
302 * Validate the arch-specific HW Breakpoint register settings 291 * Validate the arch-specific HW Breakpoint register settings
303 */ 292 */
@@ -312,11 +301,11 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp)
312 if (ret) 301 if (ret)
313 return ret; 302 return ret;
314 303
315 ret = -EINVAL;
316
317 switch (info->len) { 304 switch (info->len) {
318 case X86_BREAKPOINT_LEN_1: 305 case X86_BREAKPOINT_LEN_1:
319 align = 0; 306 align = 0;
307 if (info->mask)
308 align = info->mask;
320 break; 309 break;
321 case X86_BREAKPOINT_LEN_2: 310 case X86_BREAKPOINT_LEN_2:
322 align = 1; 311 align = 1;
@@ -330,7 +319,7 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp)
330 break; 319 break;
331#endif 320#endif
332 default: 321 default:
333 return ret; 322 WARN_ON_ONCE(1);
334 } 323 }
335 324
336 /* 325 /*
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
index a9a4229f6161..81049ffab2d6 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -19,6 +19,19 @@
19#include <asm/fpu-internal.h> 19#include <asm/fpu-internal.h>
20#include <asm/user.h> 20#include <asm/user.h>
21 21
22static DEFINE_PER_CPU(bool, in_kernel_fpu);
23
24void kernel_fpu_disable(void)
25{
26 WARN_ON(this_cpu_read(in_kernel_fpu));
27 this_cpu_write(in_kernel_fpu, true);
28}
29
30void kernel_fpu_enable(void)
31{
32 this_cpu_write(in_kernel_fpu, false);
33}
34
22/* 35/*
23 * Were we in an interrupt that interrupted kernel mode? 36 * Were we in an interrupt that interrupted kernel mode?
24 * 37 *
@@ -33,6 +46,9 @@
33 */ 46 */
34static inline bool interrupted_kernel_fpu_idle(void) 47static inline bool interrupted_kernel_fpu_idle(void)
35{ 48{
49 if (this_cpu_read(in_kernel_fpu))
50 return false;
51
36 if (use_eager_fpu()) 52 if (use_eager_fpu())
37 return __thread_has_fpu(current); 53 return __thread_has_fpu(current);
38 54
@@ -73,10 +89,10 @@ void __kernel_fpu_begin(void)
73{ 89{
74 struct task_struct *me = current; 90 struct task_struct *me = current;
75 91
92 this_cpu_write(in_kernel_fpu, true);
93
76 if (__thread_has_fpu(me)) { 94 if (__thread_has_fpu(me)) {
77 __thread_clear_has_fpu(me);
78 __save_init_fpu(me); 95 __save_init_fpu(me);
79 /* We do 'stts()' in __kernel_fpu_end() */
80 } else if (!use_eager_fpu()) { 96 } else if (!use_eager_fpu()) {
81 this_cpu_write(fpu_owner_task, NULL); 97 this_cpu_write(fpu_owner_task, NULL);
82 clts(); 98 clts();
@@ -86,19 +102,16 @@ EXPORT_SYMBOL(__kernel_fpu_begin);
86 102
87void __kernel_fpu_end(void) 103void __kernel_fpu_end(void)
88{ 104{
89 if (use_eager_fpu()) { 105 struct task_struct *me = current;
90 /* 106
91 * For eager fpu, most the time, tsk_used_math() is true. 107 if (__thread_has_fpu(me)) {
92 * Restore the user math as we are done with the kernel usage. 108 if (WARN_ON(restore_fpu_checking(me)))
93 * At few instances during thread exit, signal handling etc, 109 drop_init_fpu(me);
94 * tsk_used_math() is false. Those few places will take proper 110 } else if (!use_eager_fpu()) {
95 * actions, so we don't need to restore the math here.
96 */
97 if (likely(tsk_used_math(current)))
98 math_state_restore();
99 } else {
100 stts(); 111 stts();
101 } 112 }
113
114 this_cpu_write(in_kernel_fpu, false);
102} 115}
103EXPORT_SYMBOL(__kernel_fpu_end); 116EXPORT_SYMBOL(__kernel_fpu_end);
104 117
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index 63ce838e5a54..28d28f5eb8f4 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -69,16 +69,9 @@ static void call_on_stack(void *func, void *stack)
69 : "memory", "cc", "edx", "ecx", "eax"); 69 : "memory", "cc", "edx", "ecx", "eax");
70} 70}
71 71
72/* how to get the current stack pointer from C */
73#define current_stack_pointer ({ \
74 unsigned long sp; \
75 asm("mov %%esp,%0" : "=g" (sp)); \
76 sp; \
77})
78
79static inline void *current_stack(void) 72static inline void *current_stack(void)
80{ 73{
81 return (void *)(current_stack_pointer & ~(THREAD_SIZE - 1)); 74 return (void *)(current_stack_pointer() & ~(THREAD_SIZE - 1));
82} 75}
83 76
84static inline int 77static inline int
@@ -103,7 +96,7 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
103 96
104 /* Save the next esp at the bottom of the stack */ 97 /* Save the next esp at the bottom of the stack */
105 prev_esp = (u32 *)irqstk; 98 prev_esp = (u32 *)irqstk;
106 *prev_esp = current_stack_pointer; 99 *prev_esp = current_stack_pointer();
107 100
108 if (unlikely(overflow)) 101 if (unlikely(overflow))
109 call_on_stack(print_stack_overflow, isp); 102 call_on_stack(print_stack_overflow, isp);
@@ -156,7 +149,7 @@ void do_softirq_own_stack(void)
156 149
157 /* Push the previous esp onto the stack */ 150 /* Push the previous esp onto the stack */
158 prev_esp = (u32 *)irqstk; 151 prev_esp = (u32 *)irqstk;
159 *prev_esp = current_stack_pointer; 152 *prev_esp = current_stack_pointer();
160 153
161 call_on_stack(__do_softirq, isp); 154 call_on_stack(__do_softirq, isp);
162} 155}
diff --git a/arch/x86/kernel/pmc_atom.c b/arch/x86/kernel/pmc_atom.c
index 0ee5025e0fa4..d66a4fe6caee 100644
--- a/arch/x86/kernel/pmc_atom.c
+++ b/arch/x86/kernel/pmc_atom.c
@@ -25,8 +25,6 @@
25 25
26#include <asm/pmc_atom.h> 26#include <asm/pmc_atom.h>
27 27
28#define DRIVER_NAME KBUILD_MODNAME
29
30struct pmc_dev { 28struct pmc_dev {
31 u32 base_addr; 29 u32 base_addr;
32 void __iomem *regmap; 30 void __iomem *regmap;
@@ -38,12 +36,12 @@ struct pmc_dev {
38static struct pmc_dev pmc_device; 36static struct pmc_dev pmc_device;
39static u32 acpi_base_addr; 37static u32 acpi_base_addr;
40 38
41struct pmc_dev_map { 39struct pmc_bit_map {
42 const char *name; 40 const char *name;
43 u32 bit_mask; 41 u32 bit_mask;
44}; 42};
45 43
46static const struct pmc_dev_map dev_map[] = { 44static const struct pmc_bit_map dev_map[] = {
47 {"0 - LPSS1_F0_DMA", BIT_LPSS1_F0_DMA}, 45 {"0 - LPSS1_F0_DMA", BIT_LPSS1_F0_DMA},
48 {"1 - LPSS1_F1_PWM1", BIT_LPSS1_F1_PWM1}, 46 {"1 - LPSS1_F1_PWM1", BIT_LPSS1_F1_PWM1},
49 {"2 - LPSS1_F2_PWM2", BIT_LPSS1_F2_PWM2}, 47 {"2 - LPSS1_F2_PWM2", BIT_LPSS1_F2_PWM2},
@@ -82,6 +80,27 @@ static const struct pmc_dev_map dev_map[] = {
82 {"35 - DFX", BIT_DFX}, 80 {"35 - DFX", BIT_DFX},
83}; 81};
84 82
83static const struct pmc_bit_map pss_map[] = {
84 {"0 - GBE", PMC_PSS_BIT_GBE},
85 {"1 - SATA", PMC_PSS_BIT_SATA},
86 {"2 - HDA", PMC_PSS_BIT_HDA},
87 {"3 - SEC", PMC_PSS_BIT_SEC},
88 {"4 - PCIE", PMC_PSS_BIT_PCIE},
89 {"5 - LPSS", PMC_PSS_BIT_LPSS},
90 {"6 - LPE", PMC_PSS_BIT_LPE},
91 {"7 - DFX", PMC_PSS_BIT_DFX},
92 {"8 - USH_CTRL", PMC_PSS_BIT_USH_CTRL},
93 {"9 - USH_SUS", PMC_PSS_BIT_USH_SUS},
94 {"10 - USH_VCCS", PMC_PSS_BIT_USH_VCCS},
95 {"11 - USH_VCCA", PMC_PSS_BIT_USH_VCCA},
96 {"12 - OTG_CTRL", PMC_PSS_BIT_OTG_CTRL},
97 {"13 - OTG_VCCS", PMC_PSS_BIT_OTG_VCCS},
98 {"14 - OTG_VCCA_CLK", PMC_PSS_BIT_OTG_VCCA_CLK},
99 {"15 - OTG_VCCA", PMC_PSS_BIT_OTG_VCCA},
100 {"16 - USB", PMC_PSS_BIT_USB},
101 {"17 - USB_SUS", PMC_PSS_BIT_USB_SUS},
102};
103
85static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset) 104static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset)
86{ 105{
87 return readl(pmc->regmap + reg_offset); 106 return readl(pmc->regmap + reg_offset);
@@ -169,6 +188,32 @@ static const struct file_operations pmc_dev_state_ops = {
169 .release = single_release, 188 .release = single_release,
170}; 189};
171 190
191static int pmc_pss_state_show(struct seq_file *s, void *unused)
192{
193 struct pmc_dev *pmc = s->private;
194 u32 pss = pmc_reg_read(pmc, PMC_PSS);
195 int pss_index;
196
197 for (pss_index = 0; pss_index < ARRAY_SIZE(pss_map); pss_index++) {
198 seq_printf(s, "Island: %-32s\tState: %s\n",
199 pss_map[pss_index].name,
200 pss_map[pss_index].bit_mask & pss ? "Off" : "On");
201 }
202 return 0;
203}
204
205static int pmc_pss_state_open(struct inode *inode, struct file *file)
206{
207 return single_open(file, pmc_pss_state_show, inode->i_private);
208}
209
210static const struct file_operations pmc_pss_state_ops = {
211 .open = pmc_pss_state_open,
212 .read = seq_read,
213 .llseek = seq_lseek,
214 .release = single_release,
215};
216
172static int pmc_sleep_tmr_show(struct seq_file *s, void *unused) 217static int pmc_sleep_tmr_show(struct seq_file *s, void *unused)
173{ 218{
174 struct pmc_dev *pmc = s->private; 219 struct pmc_dev *pmc = s->private;
@@ -202,11 +247,7 @@ static const struct file_operations pmc_sleep_tmr_ops = {
202 247
203static void pmc_dbgfs_unregister(struct pmc_dev *pmc) 248static void pmc_dbgfs_unregister(struct pmc_dev *pmc)
204{ 249{
205 if (!pmc->dbgfs_dir)
206 return;
207
208 debugfs_remove_recursive(pmc->dbgfs_dir); 250 debugfs_remove_recursive(pmc->dbgfs_dir);
209 pmc->dbgfs_dir = NULL;
210} 251}
211 252
212static int pmc_dbgfs_register(struct pmc_dev *pmc, struct pci_dev *pdev) 253static int pmc_dbgfs_register(struct pmc_dev *pmc, struct pci_dev *pdev)
@@ -217,19 +258,29 @@ static int pmc_dbgfs_register(struct pmc_dev *pmc, struct pci_dev *pdev)
217 if (!dir) 258 if (!dir)
218 return -ENOMEM; 259 return -ENOMEM;
219 260
261 pmc->dbgfs_dir = dir;
262
220 f = debugfs_create_file("dev_state", S_IFREG | S_IRUGO, 263 f = debugfs_create_file("dev_state", S_IFREG | S_IRUGO,
221 dir, pmc, &pmc_dev_state_ops); 264 dir, pmc, &pmc_dev_state_ops);
222 if (!f) { 265 if (!f) {
223 dev_err(&pdev->dev, "dev_states register failed\n"); 266 dev_err(&pdev->dev, "dev_state register failed\n");
224 goto err; 267 goto err;
225 } 268 }
269
270 f = debugfs_create_file("pss_state", S_IFREG | S_IRUGO,
271 dir, pmc, &pmc_pss_state_ops);
272 if (!f) {
273 dev_err(&pdev->dev, "pss_state register failed\n");
274 goto err;
275 }
276
226 f = debugfs_create_file("sleep_state", S_IFREG | S_IRUGO, 277 f = debugfs_create_file("sleep_state", S_IFREG | S_IRUGO,
227 dir, pmc, &pmc_sleep_tmr_ops); 278 dir, pmc, &pmc_sleep_tmr_ops);
228 if (!f) { 279 if (!f) {
229 dev_err(&pdev->dev, "sleep_state register failed\n"); 280 dev_err(&pdev->dev, "sleep_state register failed\n");
230 goto err; 281 goto err;
231 } 282 }
232 pmc->dbgfs_dir = dir; 283
233 return 0; 284 return 0;
234err: 285err:
235 pmc_dbgfs_unregister(pmc); 286 pmc_dbgfs_unregister(pmc);
@@ -292,7 +343,6 @@ MODULE_DEVICE_TABLE(pci, pmc_pci_ids);
292 343
293static int __init pmc_atom_init(void) 344static int __init pmc_atom_init(void)
294{ 345{
295 int err = -ENODEV;
296 struct pci_dev *pdev = NULL; 346 struct pci_dev *pdev = NULL;
297 const struct pci_device_id *ent; 347 const struct pci_device_id *ent;
298 348
@@ -306,14 +356,11 @@ static int __init pmc_atom_init(void)
306 */ 356 */
307 for_each_pci_dev(pdev) { 357 for_each_pci_dev(pdev) {
308 ent = pci_match_id(pmc_pci_ids, pdev); 358 ent = pci_match_id(pmc_pci_ids, pdev);
309 if (ent) { 359 if (ent)
310 err = pmc_setup_dev(pdev); 360 return pmc_setup_dev(pdev);
311 goto out;
312 }
313 } 361 }
314 /* Device not found. */ 362 /* Device not found. */
315out: 363 return -ENODEV;
316 return err;
317} 364}
318 365
319module_init(pmc_atom_init); 366module_init(pmc_atom_init);
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index ca9622a25e95..fe3dbfe0c4a5 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -170,7 +170,7 @@ static struct platform_device rtc_device = {
170static __init int add_rtc_cmos(void) 170static __init int add_rtc_cmos(void)
171{ 171{
172#ifdef CONFIG_PNP 172#ifdef CONFIG_PNP
173 static const char * const const ids[] __initconst = 173 static const char * const ids[] __initconst =
174 { "PNP0b00", "PNP0b01", "PNP0b02", }; 174 { "PNP0b00", "PNP0b01", "PNP0b02", };
175 struct pnp_dev *dev; 175 struct pnp_dev *dev;
176 struct pnp_id *id; 176 struct pnp_id *id;
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index ab4734e5411d..c4648adadd7d 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -431,15 +431,13 @@ static void __init parse_setup_data(void)
431 431
432 pa_data = boot_params.hdr.setup_data; 432 pa_data = boot_params.hdr.setup_data;
433 while (pa_data) { 433 while (pa_data) {
434 u32 data_len, map_len, data_type; 434 u32 data_len, data_type;
435 435
436 map_len = max(PAGE_SIZE - (pa_data & ~PAGE_MASK), 436 data = early_memremap(pa_data, sizeof(*data));
437 (u64)sizeof(struct setup_data));
438 data = early_memremap(pa_data, map_len);
439 data_len = data->len + sizeof(struct setup_data); 437 data_len = data->len + sizeof(struct setup_data);
440 data_type = data->type; 438 data_type = data->type;
441 pa_next = data->next; 439 pa_next = data->next;
442 early_iounmap(data, map_len); 440 early_iounmap(data, sizeof(*data));
443 441
444 switch (data_type) { 442 switch (data_type) {
445 case SETUP_E820_EXT: 443 case SETUP_E820_EXT:
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index ed37a768d0fc..2a33c8f68319 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -740,12 +740,6 @@ do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
740{ 740{
741 user_exit(); 741 user_exit();
742 742
743#ifdef CONFIG_X86_MCE
744 /* notify userspace of pending MCEs */
745 if (thread_info_flags & _TIF_MCE_NOTIFY)
746 mce_notify_process();
747#endif /* CONFIG_X86_64 && CONFIG_X86_MCE */
748
749 if (thread_info_flags & _TIF_UPROBE) 743 if (thread_info_flags & _TIF_UPROBE)
750 uprobe_notify_resume(regs); 744 uprobe_notify_resume(regs);
751 745
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 6d7022c683e3..febc6aabc72e 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -73,7 +73,6 @@
73#include <asm/setup.h> 73#include <asm/setup.h>
74#include <asm/uv/uv.h> 74#include <asm/uv/uv.h>
75#include <linux/mc146818rtc.h> 75#include <linux/mc146818rtc.h>
76#include <asm/smpboot_hooks.h>
77#include <asm/i8259.h> 76#include <asm/i8259.h>
78#include <asm/realmode.h> 77#include <asm/realmode.h>
79#include <asm/misc.h> 78#include <asm/misc.h>
@@ -104,6 +103,43 @@ EXPORT_PER_CPU_SYMBOL(cpu_info);
104 103
105atomic_t init_deasserted; 104atomic_t init_deasserted;
106 105
106static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
107{
108 unsigned long flags;
109
110 spin_lock_irqsave(&rtc_lock, flags);
111 CMOS_WRITE(0xa, 0xf);
112 spin_unlock_irqrestore(&rtc_lock, flags);
113 local_flush_tlb();
114 pr_debug("1.\n");
115 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
116 start_eip >> 4;
117 pr_debug("2.\n");
118 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
119 start_eip & 0xf;
120 pr_debug("3.\n");
121}
122
123static inline void smpboot_restore_warm_reset_vector(void)
124{
125 unsigned long flags;
126
127 /*
128 * Install writable page 0 entry to set BIOS data area.
129 */
130 local_flush_tlb();
131
132 /*
133 * Paranoid: Set warm reset code and vector here back
134 * to default values.
135 */
136 spin_lock_irqsave(&rtc_lock, flags);
137 CMOS_WRITE(0, 0xf);
138 spin_unlock_irqrestore(&rtc_lock, flags);
139
140 *((volatile u32 *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0;
141}
142
107/* 143/*
108 * Report back to the Boot Processor during boot time or to the caller processor 144 * Report back to the Boot Processor during boot time or to the caller processor
109 * during CPU online. 145 * during CPU online.
@@ -136,8 +172,7 @@ static void smp_callin(void)
136 * CPU, first the APIC. (this is probably redundant on most 172 * CPU, first the APIC. (this is probably redundant on most
137 * boards) 173 * boards)
138 */ 174 */
139 setup_local_APIC(); 175 apic_ap_setup();
140 end_local_APIC_setup();
141 176
142 /* 177 /*
143 * Need to setup vector mappings before we enable interrupts. 178 * Need to setup vector mappings before we enable interrupts.
@@ -955,9 +990,12 @@ void arch_disable_smp_support(void)
955 */ 990 */
956static __init void disable_smp(void) 991static __init void disable_smp(void)
957{ 992{
993 pr_info("SMP disabled\n");
994
995 disable_ioapic_support();
996
958 init_cpu_present(cpumask_of(0)); 997 init_cpu_present(cpumask_of(0));
959 init_cpu_possible(cpumask_of(0)); 998 init_cpu_possible(cpumask_of(0));
960 smpboot_clear_io_apic_irqs();
961 999
962 if (smp_found_config) 1000 if (smp_found_config)
963 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map); 1001 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
@@ -967,6 +1005,13 @@ static __init void disable_smp(void)
967 cpumask_set_cpu(0, cpu_core_mask(0)); 1005 cpumask_set_cpu(0, cpu_core_mask(0));
968} 1006}
969 1007
1008enum {
1009 SMP_OK,
1010 SMP_NO_CONFIG,
1011 SMP_NO_APIC,
1012 SMP_FORCE_UP,
1013};
1014
970/* 1015/*
971 * Various sanity checks. 1016 * Various sanity checks.
972 */ 1017 */
@@ -1014,10 +1059,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
1014 if (!smp_found_config && !acpi_lapic) { 1059 if (!smp_found_config && !acpi_lapic) {
1015 preempt_enable(); 1060 preempt_enable();
1016 pr_notice("SMP motherboard not detected\n"); 1061 pr_notice("SMP motherboard not detected\n");
1017 disable_smp(); 1062 return SMP_NO_CONFIG;
1018 if (APIC_init_uniprocessor())
1019 pr_notice("Local APIC not detected. Using dummy APIC emulation.\n");
1020 return -1;
1021 } 1063 }
1022 1064
1023 /* 1065 /*
@@ -1041,9 +1083,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
1041 boot_cpu_physical_apicid); 1083 boot_cpu_physical_apicid);
1042 pr_err("... forcing use of dummy APIC emulation (tell your hw vendor)\n"); 1084 pr_err("... forcing use of dummy APIC emulation (tell your hw vendor)\n");
1043 } 1085 }
1044 smpboot_clear_io_apic(); 1086 return SMP_NO_APIC;
1045 disable_ioapic_support();
1046 return -1;
1047 } 1087 }
1048 1088
1049 verify_local_APIC(); 1089 verify_local_APIC();
@@ -1053,15 +1093,10 @@ static int __init smp_sanity_check(unsigned max_cpus)
1053 */ 1093 */
1054 if (!max_cpus) { 1094 if (!max_cpus) {
1055 pr_info("SMP mode deactivated\n"); 1095 pr_info("SMP mode deactivated\n");
1056 smpboot_clear_io_apic(); 1096 return SMP_FORCE_UP;
1057
1058 connect_bsp_APIC();
1059 setup_local_APIC();
1060 bsp_end_local_APIC_setup();
1061 return -1;
1062 } 1097 }
1063 1098
1064 return 0; 1099 return SMP_OK;
1065} 1100}
1066 1101
1067static void __init smp_cpu_index_default(void) 1102static void __init smp_cpu_index_default(void)
@@ -1101,10 +1136,21 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1101 } 1136 }
1102 set_cpu_sibling_map(0); 1137 set_cpu_sibling_map(0);
1103 1138
1104 if (smp_sanity_check(max_cpus) < 0) { 1139 switch (smp_sanity_check(max_cpus)) {
1105 pr_info("SMP disabled\n"); 1140 case SMP_NO_CONFIG:
1106 disable_smp(); 1141 disable_smp();
1142 if (APIC_init_uniprocessor())
1143 pr_notice("Local APIC not detected. Using dummy APIC emulation.\n");
1107 return; 1144 return;
1145 case SMP_NO_APIC:
1146 disable_smp();
1147 return;
1148 case SMP_FORCE_UP:
1149 disable_smp();
1150 apic_bsp_setup(false);
1151 return;
1152 case SMP_OK:
1153 break;
1108 } 1154 }
1109 1155
1110 default_setup_apic_routing(); 1156 default_setup_apic_routing();
@@ -1115,33 +1161,10 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1115 /* Or can we switch back to PIC here? */ 1161 /* Or can we switch back to PIC here? */
1116 } 1162 }
1117 1163
1118 connect_bsp_APIC(); 1164 cpu0_logical_apicid = apic_bsp_setup(false);
1119
1120 /*
1121 * Switch from PIC to APIC mode.
1122 */
1123 setup_local_APIC();
1124
1125 if (x2apic_mode)
1126 cpu0_logical_apicid = apic_read(APIC_LDR);
1127 else
1128 cpu0_logical_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
1129
1130 /*
1131 * Enable IO APIC before setting up error vector
1132 */
1133 if (!skip_ioapic_setup && nr_ioapics)
1134 enable_IO_APIC();
1135
1136 bsp_end_local_APIC_setup();
1137 smpboot_setup_io_apic();
1138 /*
1139 * Set up local APIC timer on boot CPU.
1140 */
1141 1165
1142 pr_info("CPU%d: ", 0); 1166 pr_info("CPU%d: ", 0);
1143 print_cpu_info(&cpu_data(0)); 1167 print_cpu_info(&cpu_data(0));
1144 x86_init.timers.setup_percpu_clockev();
1145 1168
1146 if (is_uv_system()) 1169 if (is_uv_system())
1147 uv_system_init(); 1170 uv_system_init();
@@ -1177,9 +1200,7 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
1177 1200
1178 nmi_selftest(); 1201 nmi_selftest();
1179 impress_friends(); 1202 impress_friends();
1180#ifdef CONFIG_X86_IO_APIC
1181 setup_ioapic_dest(); 1203 setup_ioapic_dest();
1182#endif
1183 mtrr_aps_init(); 1204 mtrr_aps_init();
1184} 1205}
1185 1206
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 88900e288021..9d2073e2ecc9 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -108,6 +108,88 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
108 preempt_count_dec(); 108 preempt_count_dec();
109} 109}
110 110
111enum ctx_state ist_enter(struct pt_regs *regs)
112{
113 enum ctx_state prev_state;
114
115 if (user_mode_vm(regs)) {
116 /* Other than that, we're just an exception. */
117 prev_state = exception_enter();
118 } else {
119 /*
120 * We might have interrupted pretty much anything. In
121 * fact, if we're a machine check, we can even interrupt
122 * NMI processing. We don't want in_nmi() to return true,
123 * but we need to notify RCU.
124 */
125 rcu_nmi_enter();
126 prev_state = IN_KERNEL; /* the value is irrelevant. */
127 }
128
129 /*
130 * We are atomic because we're on the IST stack (or we're on x86_32,
131 * in which case we still shouldn't schedule).
132 *
133 * This must be after exception_enter(), because exception_enter()
134 * won't do anything if in_interrupt() returns true.
135 */
136 preempt_count_add(HARDIRQ_OFFSET);
137
138 /* This code is a bit fragile. Test it. */
139 rcu_lockdep_assert(rcu_is_watching(), "ist_enter didn't work");
140
141 return prev_state;
142}
143
144void ist_exit(struct pt_regs *regs, enum ctx_state prev_state)
145{
146 /* Must be before exception_exit. */
147 preempt_count_sub(HARDIRQ_OFFSET);
148
149 if (user_mode_vm(regs))
150 return exception_exit(prev_state);
151 else
152 rcu_nmi_exit();
153}
154
155/**
156 * ist_begin_non_atomic() - begin a non-atomic section in an IST exception
157 * @regs: regs passed to the IST exception handler
158 *
159 * IST exception handlers normally cannot schedule. As a special
160 * exception, if the exception interrupted userspace code (i.e.
161 * user_mode_vm(regs) would return true) and the exception was not
162 * a double fault, it can be safe to schedule. ist_begin_non_atomic()
163 * begins a non-atomic section within an ist_enter()/ist_exit() region.
164 * Callers are responsible for enabling interrupts themselves inside
165 * the non-atomic section, and callers must call is_end_non_atomic()
166 * before ist_exit().
167 */
168void ist_begin_non_atomic(struct pt_regs *regs)
169{
170 BUG_ON(!user_mode_vm(regs));
171
172 /*
173 * Sanity check: we need to be on the normal thread stack. This
174 * will catch asm bugs and any attempt to use ist_preempt_enable
175 * from double_fault.
176 */
177 BUG_ON(((current_stack_pointer() ^ this_cpu_read_stable(kernel_stack))
178 & ~(THREAD_SIZE - 1)) != 0);
179
180 preempt_count_sub(HARDIRQ_OFFSET);
181}
182
183/**
184 * ist_end_non_atomic() - begin a non-atomic section in an IST exception
185 *
186 * Ends a non-atomic section started with ist_begin_non_atomic().
187 */
188void ist_end_non_atomic(void)
189{
190 preempt_count_add(HARDIRQ_OFFSET);
191}
192
111static nokprobe_inline int 193static nokprobe_inline int
112do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str, 194do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
113 struct pt_regs *regs, long error_code) 195 struct pt_regs *regs, long error_code)
@@ -251,6 +333,8 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
251 * end up promoting it to a doublefault. In that case, modify 333 * end up promoting it to a doublefault. In that case, modify
252 * the stack to make it look like we just entered the #GP 334 * the stack to make it look like we just entered the #GP
253 * handler from user space, similar to bad_iret. 335 * handler from user space, similar to bad_iret.
336 *
337 * No need for ist_enter here because we don't use RCU.
254 */ 338 */
255 if (((long)regs->sp >> PGDIR_SHIFT) == ESPFIX_PGD_ENTRY && 339 if (((long)regs->sp >> PGDIR_SHIFT) == ESPFIX_PGD_ENTRY &&
256 regs->cs == __KERNEL_CS && 340 regs->cs == __KERNEL_CS &&
@@ -263,12 +347,12 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
263 normal_regs->orig_ax = 0; /* Missing (lost) #GP error code */ 347 normal_regs->orig_ax = 0; /* Missing (lost) #GP error code */
264 regs->ip = (unsigned long)general_protection; 348 regs->ip = (unsigned long)general_protection;
265 regs->sp = (unsigned long)&normal_regs->orig_ax; 349 regs->sp = (unsigned long)&normal_regs->orig_ax;
350
266 return; 351 return;
267 } 352 }
268#endif 353#endif
269 354
270 exception_enter(); 355 ist_enter(regs); /* Discard prev_state because we won't return. */
271 /* Return not checked because double check cannot be ignored */
272 notify_die(DIE_TRAP, str, regs, error_code, X86_TRAP_DF, SIGSEGV); 356 notify_die(DIE_TRAP, str, regs, error_code, X86_TRAP_DF, SIGSEGV);
273 357
274 tsk->thread.error_code = error_code; 358 tsk->thread.error_code = error_code;
@@ -434,7 +518,7 @@ dotraplinkage void notrace do_int3(struct pt_regs *regs, long error_code)
434 if (poke_int3_handler(regs)) 518 if (poke_int3_handler(regs))
435 return; 519 return;
436 520
437 prev_state = exception_enter(); 521 prev_state = ist_enter(regs);
438#ifdef CONFIG_KGDB_LOW_LEVEL_TRAP 522#ifdef CONFIG_KGDB_LOW_LEVEL_TRAP
439 if (kgdb_ll_trap(DIE_INT3, "int3", regs, error_code, X86_TRAP_BP, 523 if (kgdb_ll_trap(DIE_INT3, "int3", regs, error_code, X86_TRAP_BP,
440 SIGTRAP) == NOTIFY_STOP) 524 SIGTRAP) == NOTIFY_STOP)
@@ -460,33 +544,20 @@ dotraplinkage void notrace do_int3(struct pt_regs *regs, long error_code)
460 preempt_conditional_cli(regs); 544 preempt_conditional_cli(regs);
461 debug_stack_usage_dec(); 545 debug_stack_usage_dec();
462exit: 546exit:
463 exception_exit(prev_state); 547 ist_exit(regs, prev_state);
464} 548}
465NOKPROBE_SYMBOL(do_int3); 549NOKPROBE_SYMBOL(do_int3);
466 550
467#ifdef CONFIG_X86_64 551#ifdef CONFIG_X86_64
468/* 552/*
469 * Help handler running on IST stack to switch back to user stack 553 * Help handler running on IST stack to switch off the IST stack if the
470 * for scheduling or signal handling. The actual stack switch is done in 554 * interrupted code was in user mode. The actual stack switch is done in
471 * entry.S 555 * entry_64.S
472 */ 556 */
473asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs) 557asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs)
474{ 558{
475 struct pt_regs *regs = eregs; 559 struct pt_regs *regs = task_pt_regs(current);
476 /* Did already sync */ 560 *regs = *eregs;
477 if (eregs == (struct pt_regs *)eregs->sp)
478 ;
479 /* Exception from user space */
480 else if (user_mode(eregs))
481 regs = task_pt_regs(current);
482 /*
483 * Exception from kernel and interrupts are enabled. Move to
484 * kernel process stack.
485 */
486 else if (eregs->flags & X86_EFLAGS_IF)
487 regs = (struct pt_regs *)(eregs->sp -= sizeof(struct pt_regs));
488 if (eregs != regs)
489 *regs = *eregs;
490 return regs; 561 return regs;
491} 562}
492NOKPROBE_SYMBOL(sync_regs); 563NOKPROBE_SYMBOL(sync_regs);
@@ -554,7 +625,7 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)
554 unsigned long dr6; 625 unsigned long dr6;
555 int si_code; 626 int si_code;
556 627
557 prev_state = exception_enter(); 628 prev_state = ist_enter(regs);
558 629
559 get_debugreg(dr6, 6); 630 get_debugreg(dr6, 6);
560 631
@@ -629,7 +700,7 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)
629 debug_stack_usage_dec(); 700 debug_stack_usage_dec();
630 701
631exit: 702exit:
632 exception_exit(prev_state); 703 ist_exit(regs, prev_state);
633} 704}
634NOKPROBE_SYMBOL(do_debug); 705NOKPROBE_SYMBOL(do_debug);
635 706
@@ -788,18 +859,16 @@ void math_state_restore(void)
788 local_irq_disable(); 859 local_irq_disable();
789 } 860 }
790 861
862 /* Avoid __kernel_fpu_begin() right after __thread_fpu_begin() */
863 kernel_fpu_disable();
791 __thread_fpu_begin(tsk); 864 __thread_fpu_begin(tsk);
792
793 /*
794 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
795 */
796 if (unlikely(restore_fpu_checking(tsk))) { 865 if (unlikely(restore_fpu_checking(tsk))) {
797 drop_init_fpu(tsk); 866 drop_init_fpu(tsk);
798 force_sig_info(SIGSEGV, SEND_SIG_PRIV, tsk); 867 force_sig_info(SIGSEGV, SEND_SIG_PRIV, tsk);
799 return; 868 } else {
869 tsk->thread.fpu_counter++;
800 } 870 }
801 871 kernel_fpu_enable();
802 tsk->thread.fpu_counter++;
803} 872}
804EXPORT_SYMBOL_GPL(math_state_restore); 873EXPORT_SYMBOL_GPL(math_state_restore);
805 874
diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
index f9d16ff56c6b..7dc7ba577ecd 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -40,6 +40,7 @@ config KVM
40 select HAVE_KVM_MSI 40 select HAVE_KVM_MSI
41 select HAVE_KVM_CPU_RELAX_INTERCEPT 41 select HAVE_KVM_CPU_RELAX_INTERCEPT
42 select KVM_VFIO 42 select KVM_VFIO
43 select SRCU
43 ---help--- 44 ---help---
44 Support hosting fully virtualized guest machines using hardware 45 Support hosting fully virtualized guest machines using hardware
45 virtualization extensions. You will need a fairly recent 46 virtualization extensions. You will need a fairly recent
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index cfd1b132b8e3..6ac273832f28 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -10,9 +10,6 @@
10struct pci_root_info { 10struct pci_root_info {
11 struct acpi_device *bridge; 11 struct acpi_device *bridge;
12 char name[16]; 12 char name[16];
13 unsigned int res_num;
14 struct resource *res;
15 resource_size_t *res_offset;
16 struct pci_sysdata sd; 13 struct pci_sysdata sd;
17#ifdef CONFIG_PCI_MMCONFIG 14#ifdef CONFIG_PCI_MMCONFIG
18 bool mcfg_added; 15 bool mcfg_added;
@@ -218,130 +215,41 @@ static void teardown_mcfg_map(struct pci_root_info *info)
218} 215}
219#endif 216#endif
220 217
221static acpi_status resource_to_addr(struct acpi_resource *resource, 218static void validate_resources(struct device *dev, struct list_head *crs_res,
222 struct acpi_resource_address64 *addr) 219 unsigned long type)
223{
224 acpi_status status;
225 struct acpi_resource_memory24 *memory24;
226 struct acpi_resource_memory32 *memory32;
227 struct acpi_resource_fixed_memory32 *fixed_memory32;
228
229 memset(addr, 0, sizeof(*addr));
230 switch (resource->type) {
231 case ACPI_RESOURCE_TYPE_MEMORY24:
232 memory24 = &resource->data.memory24;
233 addr->resource_type = ACPI_MEMORY_RANGE;
234 addr->minimum = memory24->minimum;
235 addr->address_length = memory24->address_length;
236 addr->maximum = addr->minimum + addr->address_length - 1;
237 return AE_OK;
238 case ACPI_RESOURCE_TYPE_MEMORY32:
239 memory32 = &resource->data.memory32;
240 addr->resource_type = ACPI_MEMORY_RANGE;
241 addr->minimum = memory32->minimum;
242 addr->address_length = memory32->address_length;
243 addr->maximum = addr->minimum + addr->address_length - 1;
244 return AE_OK;
245 case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
246 fixed_memory32 = &resource->data.fixed_memory32;
247 addr->resource_type = ACPI_MEMORY_RANGE;
248 addr->minimum = fixed_memory32->address;
249 addr->address_length = fixed_memory32->address_length;
250 addr->maximum = addr->minimum + addr->address_length - 1;
251 return AE_OK;
252 case ACPI_RESOURCE_TYPE_ADDRESS16:
253 case ACPI_RESOURCE_TYPE_ADDRESS32:
254 case ACPI_RESOURCE_TYPE_ADDRESS64:
255 status = acpi_resource_to_address64(resource, addr);
256 if (ACPI_SUCCESS(status) &&
257 (addr->resource_type == ACPI_MEMORY_RANGE ||
258 addr->resource_type == ACPI_IO_RANGE) &&
259 addr->address_length > 0) {
260 return AE_OK;
261 }
262 break;
263 }
264 return AE_ERROR;
265}
266
267static acpi_status count_resource(struct acpi_resource *acpi_res, void *data)
268{ 220{
269 struct pci_root_info *info = data; 221 LIST_HEAD(list);
270 struct acpi_resource_address64 addr; 222 struct resource *res1, *res2, *root = NULL;
271 acpi_status status; 223 struct resource_entry *tmp, *entry, *entry2;
272
273 status = resource_to_addr(acpi_res, &addr);
274 if (ACPI_SUCCESS(status))
275 info->res_num++;
276 return AE_OK;
277}
278
279static acpi_status setup_resource(struct acpi_resource *acpi_res, void *data)
280{
281 struct pci_root_info *info = data;
282 struct resource *res;
283 struct acpi_resource_address64 addr;
284 acpi_status status;
285 unsigned long flags;
286 u64 start, orig_end, end;
287
288 status = resource_to_addr(acpi_res, &addr);
289 if (!ACPI_SUCCESS(status))
290 return AE_OK;
291
292 if (addr.resource_type == ACPI_MEMORY_RANGE) {
293 flags = IORESOURCE_MEM;
294 if (addr.info.mem.caching == ACPI_PREFETCHABLE_MEMORY)
295 flags |= IORESOURCE_PREFETCH;
296 } else if (addr.resource_type == ACPI_IO_RANGE) {
297 flags = IORESOURCE_IO;
298 } else
299 return AE_OK;
300
301 start = addr.minimum + addr.translation_offset;
302 orig_end = end = addr.maximum + addr.translation_offset;
303
304 /* Exclude non-addressable range or non-addressable portion of range */
305 end = min(end, (u64)iomem_resource.end);
306 if (end <= start) {
307 dev_info(&info->bridge->dev,
308 "host bridge window [%#llx-%#llx] "
309 "(ignored, not CPU addressable)\n", start, orig_end);
310 return AE_OK;
311 } else if (orig_end != end) {
312 dev_info(&info->bridge->dev,
313 "host bridge window [%#llx-%#llx] "
314 "([%#llx-%#llx] ignored, not CPU addressable)\n",
315 start, orig_end, end + 1, orig_end);
316 }
317 224
318 res = &info->res[info->res_num]; 225 BUG_ON((type & (IORESOURCE_MEM | IORESOURCE_IO)) == 0);
319 res->name = info->name; 226 root = (type & IORESOURCE_MEM) ? &iomem_resource : &ioport_resource;
320 res->flags = flags;
321 res->start = start;
322 res->end = end;
323 info->res_offset[info->res_num] = addr.translation_offset;
324 info->res_num++;
325 227
326 if (!pci_use_crs) 228 list_splice_init(crs_res, &list);
327 dev_printk(KERN_DEBUG, &info->bridge->dev, 229 resource_list_for_each_entry_safe(entry, tmp, &list) {
328 "host bridge window %pR (ignored)\n", res); 230 bool free = false;
231 resource_size_t end;
329 232
330 return AE_OK; 233 res1 = entry->res;
331}
332
333static void coalesce_windows(struct pci_root_info *info, unsigned long type)
334{
335 int i, j;
336 struct resource *res1, *res2;
337
338 for (i = 0; i < info->res_num; i++) {
339 res1 = &info->res[i];
340 if (!(res1->flags & type)) 234 if (!(res1->flags & type))
341 continue; 235 goto next;
236
237 /* Exclude non-addressable range or non-addressable portion */
238 end = min(res1->end, root->end);
239 if (end <= res1->start) {
240 dev_info(dev, "host bridge window %pR (ignored, not CPU addressable)\n",
241 res1);
242 free = true;
243 goto next;
244 } else if (res1->end != end) {
245 dev_info(dev, "host bridge window %pR ([%#llx-%#llx] ignored, not CPU addressable)\n",
246 res1, (unsigned long long)end + 1,
247 (unsigned long long)res1->end);
248 res1->end = end;
249 }
342 250
343 for (j = i + 1; j < info->res_num; j++) { 251 resource_list_for_each_entry(entry2, crs_res) {
344 res2 = &info->res[j]; 252 res2 = entry2->res;
345 if (!(res2->flags & type)) 253 if (!(res2->flags & type))
346 continue; 254 continue;
347 255
@@ -353,118 +261,92 @@ static void coalesce_windows(struct pci_root_info *info, unsigned long type)
353 if (resource_overlaps(res1, res2)) { 261 if (resource_overlaps(res1, res2)) {
354 res2->start = min(res1->start, res2->start); 262 res2->start = min(res1->start, res2->start);
355 res2->end = max(res1->end, res2->end); 263 res2->end = max(res1->end, res2->end);
356 dev_info(&info->bridge->dev, 264 dev_info(dev, "host bridge window expanded to %pR; %pR ignored\n",
357 "host bridge window expanded to %pR; %pR ignored\n",
358 res2, res1); 265 res2, res1);
359 res1->flags = 0; 266 free = true;
267 goto next;
360 } 268 }
361 } 269 }
270
271next:
272 resource_list_del(entry);
273 if (free)
274 resource_list_free_entry(entry);
275 else
276 resource_list_add_tail(entry, crs_res);
362 } 277 }
363} 278}
364 279
365static void add_resources(struct pci_root_info *info, 280static void add_resources(struct pci_root_info *info,
366 struct list_head *resources) 281 struct list_head *resources,
282 struct list_head *crs_res)
367{ 283{
368 int i; 284 struct resource_entry *entry, *tmp;
369 struct resource *res, *root, *conflict; 285 struct resource *res, *conflict, *root = NULL;
370
371 coalesce_windows(info, IORESOURCE_MEM);
372 coalesce_windows(info, IORESOURCE_IO);
373 286
374 for (i = 0; i < info->res_num; i++) { 287 validate_resources(&info->bridge->dev, crs_res, IORESOURCE_MEM);
375 res = &info->res[i]; 288 validate_resources(&info->bridge->dev, crs_res, IORESOURCE_IO);
376 289
290 resource_list_for_each_entry_safe(entry, tmp, crs_res) {
291 res = entry->res;
377 if (res->flags & IORESOURCE_MEM) 292 if (res->flags & IORESOURCE_MEM)
378 root = &iomem_resource; 293 root = &iomem_resource;
379 else if (res->flags & IORESOURCE_IO) 294 else if (res->flags & IORESOURCE_IO)
380 root = &ioport_resource; 295 root = &ioport_resource;
381 else 296 else
382 continue; 297 BUG_ON(res);
383 298
384 conflict = insert_resource_conflict(root, res); 299 conflict = insert_resource_conflict(root, res);
385 if (conflict) 300 if (conflict) {
386 dev_info(&info->bridge->dev, 301 dev_info(&info->bridge->dev,
387 "ignoring host bridge window %pR (conflicts with %s %pR)\n", 302 "ignoring host bridge window %pR (conflicts with %s %pR)\n",
388 res, conflict->name, conflict); 303 res, conflict->name, conflict);
389 else 304 resource_list_destroy_entry(entry);
390 pci_add_resource_offset(resources, res, 305 }
391 info->res_offset[i]);
392 } 306 }
393}
394 307
395static void free_pci_root_info_res(struct pci_root_info *info) 308 list_splice_tail(crs_res, resources);
396{
397 kfree(info->res);
398 info->res = NULL;
399 kfree(info->res_offset);
400 info->res_offset = NULL;
401 info->res_num = 0;
402} 309}
403 310
404static void __release_pci_root_info(struct pci_root_info *info) 311static void release_pci_root_info(struct pci_host_bridge *bridge)
405{ 312{
406 int i;
407 struct resource *res; 313 struct resource *res;
314 struct resource_entry *entry;
315 struct pci_root_info *info = bridge->release_data;
408 316
409 for (i = 0; i < info->res_num; i++) { 317 resource_list_for_each_entry(entry, &bridge->windows) {
410 res = &info->res[i]; 318 res = entry->res;
411 319 if (res->parent &&
412 if (!res->parent) 320 (res->flags & (IORESOURCE_MEM | IORESOURCE_IO)))
413 continue; 321 release_resource(res);
414
415 if (!(res->flags & (IORESOURCE_MEM | IORESOURCE_IO)))
416 continue;
417
418 release_resource(res);
419 } 322 }
420 323
421 free_pci_root_info_res(info);
422
423 teardown_mcfg_map(info); 324 teardown_mcfg_map(info);
424
425 kfree(info); 325 kfree(info);
426} 326}
427 327
428static void release_pci_root_info(struct pci_host_bridge *bridge)
429{
430 struct pci_root_info *info = bridge->release_data;
431
432 __release_pci_root_info(info);
433}
434
435static void probe_pci_root_info(struct pci_root_info *info, 328static void probe_pci_root_info(struct pci_root_info *info,
436 struct acpi_device *device, 329 struct acpi_device *device,
437 int busnum, int domain) 330 int busnum, int domain,
331 struct list_head *list)
438{ 332{
439 size_t size; 333 int ret;
334 struct resource_entry *entry;
440 335
441 sprintf(info->name, "PCI Bus %04x:%02x", domain, busnum); 336 sprintf(info->name, "PCI Bus %04x:%02x", domain, busnum);
442 info->bridge = device; 337 info->bridge = device;
443 338 ret = acpi_dev_get_resources(device, list,
444 info->res_num = 0; 339 acpi_dev_filter_resource_type_cb,
445 acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_resource, 340 (void *)(IORESOURCE_IO | IORESOURCE_MEM));
446 info); 341 if (ret < 0)
447 if (!info->res_num) 342 dev_warn(&device->dev,
448 return; 343 "failed to parse _CRS method, error code %d\n", ret);
449 344 else if (ret == 0)
450 size = sizeof(*info->res) * info->res_num; 345 dev_dbg(&device->dev,
451 info->res = kzalloc_node(size, GFP_KERNEL, info->sd.node); 346 "no IO and memory resources present in _CRS\n");
452 if (!info->res) { 347 else
453 info->res_num = 0; 348 resource_list_for_each_entry(entry, list)
454 return; 349 entry->res->name = info->name;
455 }
456
457 size = sizeof(*info->res_offset) * info->res_num;
458 info->res_num = 0;
459 info->res_offset = kzalloc_node(size, GFP_KERNEL, info->sd.node);
460 if (!info->res_offset) {
461 kfree(info->res);
462 info->res = NULL;
463 return;
464 }
465
466 acpi_walk_resources(device->handle, METHOD_NAME__CRS, setup_resource,
467 info);
468} 350}
469 351
470struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) 352struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
@@ -473,6 +355,8 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
473 struct pci_root_info *info; 355 struct pci_root_info *info;
474 int domain = root->segment; 356 int domain = root->segment;
475 int busnum = root->secondary.start; 357 int busnum = root->secondary.start;
358 struct resource_entry *res_entry;
359 LIST_HEAD(crs_res);
476 LIST_HEAD(resources); 360 LIST_HEAD(resources);
477 struct pci_bus *bus; 361 struct pci_bus *bus;
478 struct pci_sysdata *sd; 362 struct pci_sysdata *sd;
@@ -520,18 +404,22 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
520 memcpy(bus->sysdata, sd, sizeof(*sd)); 404 memcpy(bus->sysdata, sd, sizeof(*sd));
521 kfree(info); 405 kfree(info);
522 } else { 406 } else {
523 probe_pci_root_info(info, device, busnum, domain);
524
525 /* insert busn res at first */ 407 /* insert busn res at first */
526 pci_add_resource(&resources, &root->secondary); 408 pci_add_resource(&resources, &root->secondary);
409
527 /* 410 /*
528 * _CRS with no apertures is normal, so only fall back to 411 * _CRS with no apertures is normal, so only fall back to
529 * defaults or native bridge info if we're ignoring _CRS. 412 * defaults or native bridge info if we're ignoring _CRS.
530 */ 413 */
531 if (pci_use_crs) 414 probe_pci_root_info(info, device, busnum, domain, &crs_res);
532 add_resources(info, &resources); 415 if (pci_use_crs) {
533 else { 416 add_resources(info, &resources, &crs_res);
534 free_pci_root_info_res(info); 417 } else {
418 resource_list_for_each_entry(res_entry, &crs_res)
419 dev_printk(KERN_DEBUG, &device->dev,
420 "host bridge window %pR (ignored)\n",
421 res_entry->res);
422 resource_list_free(&crs_res);
535 x86_pci_root_bus_resources(busnum, &resources); 423 x86_pci_root_bus_resources(busnum, &resources);
536 } 424 }
537 425
@@ -546,8 +434,9 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
546 to_pci_host_bridge(bus->bridge), 434 to_pci_host_bridge(bus->bridge),
547 release_pci_root_info, info); 435 release_pci_root_info, info);
548 } else { 436 } else {
549 pci_free_resource_list(&resources); 437 resource_list_free(&resources);
550 __release_pci_root_info(info); 438 teardown_mcfg_map(info);
439 kfree(info);
551 } 440 }
552 } 441 }
553 442
diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index f3a2cfc14125..7bcf06a7cd12 100644
--- a/arch/x86/pci/bus_numa.c
+++ b/arch/x86/pci/bus_numa.c
@@ -31,7 +31,7 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
31{ 31{
32 struct pci_root_info *info = x86_find_pci_root_info(bus); 32 struct pci_root_info *info = x86_find_pci_root_info(bus);
33 struct pci_root_res *root_res; 33 struct pci_root_res *root_res;
34 struct pci_host_bridge_window *window; 34 struct resource_entry *window;
35 bool found = false; 35 bool found = false;
36 36
37 if (!info) 37 if (!info)
@@ -41,7 +41,7 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
41 bus); 41 bus);
42 42
43 /* already added by acpi ? */ 43 /* already added by acpi ? */
44 list_for_each_entry(window, resources, list) 44 resource_list_for_each_entry(window, resources)
45 if (window->res->flags & IORESOURCE_BUS) { 45 if (window->res->flags & IORESOURCE_BUS) {
46 found = true; 46 found = true;
47 break; 47 break;
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 2fb384724ebb..3d2612b68694 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -513,6 +513,31 @@ void __init pcibios_set_cache_line_size(void)
513 } 513 }
514} 514}
515 515
516/*
517 * Some device drivers assume dev->irq won't change after calling
518 * pci_disable_device(). So delay releasing of IRQ resource to driver
519 * unbinding time. Otherwise it will break PM subsystem and drivers
520 * like xen-pciback etc.
521 */
522static int pci_irq_notifier(struct notifier_block *nb, unsigned long action,
523 void *data)
524{
525 struct pci_dev *dev = to_pci_dev(data);
526
527 if (action != BUS_NOTIFY_UNBOUND_DRIVER)
528 return NOTIFY_DONE;
529
530 if (pcibios_disable_irq)
531 pcibios_disable_irq(dev);
532
533 return NOTIFY_OK;
534}
535
536static struct notifier_block pci_irq_nb = {
537 .notifier_call = pci_irq_notifier,
538 .priority = INT_MIN,
539};
540
516int __init pcibios_init(void) 541int __init pcibios_init(void)
517{ 542{
518 if (!raw_pci_ops) { 543 if (!raw_pci_ops) {
@@ -525,6 +550,9 @@ int __init pcibios_init(void)
525 550
526 if (pci_bf_sort >= pci_force_bf) 551 if (pci_bf_sort >= pci_force_bf)
527 pci_sort_breadthfirst(); 552 pci_sort_breadthfirst();
553
554 bus_register_notifier(&pci_bus_type, &pci_irq_nb);
555
528 return 0; 556 return 0;
529} 557}
530 558
@@ -683,12 +711,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
683 return 0; 711 return 0;
684} 712}
685 713
686void pcibios_disable_device (struct pci_dev *dev)
687{
688 if (!pci_dev_msi_enabled(dev) && pcibios_disable_irq)
689 pcibios_disable_irq(dev);
690}
691
692int pci_ext_cfg_avail(void) 714int pci_ext_cfg_avail(void)
693{ 715{
694 if (raw_pci_ext_ops) 716 if (raw_pci_ext_ops)
diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c
index 44b9271580b5..efb849323c74 100644
--- a/arch/x86/pci/intel_mid_pci.c
+++ b/arch/x86/pci/intel_mid_pci.c
@@ -234,10 +234,10 @@ static int intel_mid_pci_irq_enable(struct pci_dev *dev)
234 234
235static void intel_mid_pci_irq_disable(struct pci_dev *dev) 235static void intel_mid_pci_irq_disable(struct pci_dev *dev)
236{ 236{
237 if (!mp_should_keep_irq(&dev->dev) && dev->irq_managed && 237 if (dev->irq_managed && dev->irq > 0) {
238 dev->irq > 0) {
239 mp_unmap_irq(dev->irq); 238 mp_unmap_irq(dev->irq);
240 dev->irq_managed = 0; 239 dev->irq_managed = 0;
240 dev->irq = 0;
241 } 241 }
242} 242}
243 243
@@ -293,7 +293,6 @@ static void mrst_power_off_unused_dev(struct pci_dev *dev)
293DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0801, mrst_power_off_unused_dev); 293DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0801, mrst_power_off_unused_dev);
294DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0809, mrst_power_off_unused_dev); 294DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0809, mrst_power_off_unused_dev);
295DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x080C, mrst_power_off_unused_dev); 295DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x080C, mrst_power_off_unused_dev);
296DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0812, mrst_power_off_unused_dev);
297DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0815, mrst_power_off_unused_dev); 296DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0815, mrst_power_off_unused_dev);
298 297
299/* 298/*
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
index 5dc6ca5e1741..e71b3dbd87b8 100644
--- a/arch/x86/pci/irq.c
+++ b/arch/x86/pci/irq.c
@@ -1256,22 +1256,9 @@ static int pirq_enable_irq(struct pci_dev *dev)
1256 return 0; 1256 return 0;
1257} 1257}
1258 1258
1259bool mp_should_keep_irq(struct device *dev)
1260{
1261 if (dev->power.is_prepared)
1262 return true;
1263#ifdef CONFIG_PM
1264 if (dev->power.runtime_status == RPM_SUSPENDING)
1265 return true;
1266#endif
1267
1268 return false;
1269}
1270
1271static void pirq_disable_irq(struct pci_dev *dev) 1259static void pirq_disable_irq(struct pci_dev *dev)
1272{ 1260{
1273 if (io_apic_assign_pci_irqs && !mp_should_keep_irq(&dev->dev) && 1261 if (io_apic_assign_pci_irqs && dev->irq_managed && dev->irq) {
1274 dev->irq_managed && dev->irq) {
1275 mp_unmap_irq(dev->irq); 1262 mp_unmap_irq(dev->irq);
1276 dev->irq = 0; 1263 dev->irq = 0;
1277 dev->irq_managed = 0; 1264 dev->irq_managed = 0;
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 326198a4434e..dd30b7e08bc2 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -397,12 +397,12 @@ static acpi_status check_mcfg_resource(struct acpi_resource *res, void *data)
397 397
398 status = acpi_resource_to_address64(res, &address); 398 status = acpi_resource_to_address64(res, &address);
399 if (ACPI_FAILURE(status) || 399 if (ACPI_FAILURE(status) ||
400 (address.address_length <= 0) || 400 (address.address.address_length <= 0) ||
401 (address.resource_type != ACPI_MEMORY_RANGE)) 401 (address.resource_type != ACPI_MEMORY_RANGE))
402 return AE_OK; 402 return AE_OK;
403 403
404 if ((mcfg_res->start >= address.minimum) && 404 if ((mcfg_res->start >= address.address.minimum) &&
405 (mcfg_res->end < (address.minimum + address.address_length))) { 405 (mcfg_res->end < (address.address.minimum + address.address.address_length))) {
406 mcfg_res->flags = 1; 406 mcfg_res->flags = 1;
407 return AE_CTRL_TERMINATE; 407 return AE_CTRL_TERMINATE;
408 } 408 }
@@ -610,6 +610,32 @@ static int __init pci_parse_mcfg(struct acpi_table_header *header)
610 return 0; 610 return 0;
611} 611}
612 612
613#ifdef CONFIG_ACPI_APEI
614extern int (*arch_apei_filter_addr)(int (*func)(__u64 start, __u64 size,
615 void *data), void *data);
616
617static int pci_mmcfg_for_each_region(int (*func)(__u64 start, __u64 size,
618 void *data), void *data)
619{
620 struct pci_mmcfg_region *cfg;
621 int rc;
622
623 if (list_empty(&pci_mmcfg_list))
624 return 0;
625
626 list_for_each_entry(cfg, &pci_mmcfg_list, list) {
627 rc = func(cfg->res.start, resource_size(&cfg->res), data);
628 if (rc)
629 return rc;
630 }
631
632 return 0;
633}
634#define set_apei_filter() (arch_apei_filter_addr = pci_mmcfg_for_each_region)
635#else
636#define set_apei_filter()
637#endif
638
613static void __init __pci_mmcfg_init(int early) 639static void __init __pci_mmcfg_init(int early)
614{ 640{
615 pci_mmcfg_reject_broken(early); 641 pci_mmcfg_reject_broken(early);
@@ -644,6 +670,8 @@ void __init pci_mmcfg_early_init(void)
644 else 670 else
645 acpi_sfi_table_parse(ACPI_SIG_MCFG, pci_parse_mcfg); 671 acpi_sfi_table_parse(ACPI_SIG_MCFG, pci_parse_mcfg);
646 __pci_mmcfg_init(1); 672 __pci_mmcfg_init(1);
673
674 set_apei_filter();
647 } 675 }
648} 676}
649 677
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index 9098d880c476..d22f4b5bbc04 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -298,12 +298,16 @@ static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
298 map_irq.entry_nr = nvec; 298 map_irq.entry_nr = nvec;
299 } else if (type == PCI_CAP_ID_MSIX) { 299 } else if (type == PCI_CAP_ID_MSIX) {
300 int pos; 300 int pos;
301 unsigned long flags;
301 u32 table_offset, bir; 302 u32 table_offset, bir;
302 303
303 pos = dev->msix_cap; 304 pos = dev->msix_cap;
304 pci_read_config_dword(dev, pos + PCI_MSIX_TABLE, 305 pci_read_config_dword(dev, pos + PCI_MSIX_TABLE,
305 &table_offset); 306 &table_offset);
306 bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR); 307 bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR);
308 flags = pci_resource_flags(dev, bir);
309 if (!flags || (flags & IORESOURCE_UNSET))
310 return -EINVAL;
307 311
308 map_irq.table_base = pci_resource_start(dev, bir); 312 map_irq.table_base = pci_resource_start(dev, bir);
309 map_irq.entry_nr = msidesc->msi_attrib.entry_nr; 313 map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index 5a4affe025e8..09297c8e1fcd 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -205,4 +205,4 @@ $(vdso_img_insttargets): install_%: $(obj)/%.dbg $(MODLIB)/vdso FORCE
205PHONY += vdso_install $(vdso_img_insttargets) 205PHONY += vdso_install $(vdso_img_insttargets)
206vdso_install: $(vdso_img_insttargets) FORCE 206vdso_install: $(vdso_img_insttargets) FORCE
207 207
208clean-files := vdso32-syscall* vdso32-sysenter* vdso32-int80* 208clean-files := vdso32-syscall* vdso32-sysenter* vdso32-int80* vdso64*
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 5c1f9ace7ae7..adca9e2b6553 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -1489,7 +1489,7 @@ static void __init xen_set_pte_init(pte_t *ptep, pte_t pte)
1489 native_set_pte(ptep, pte); 1489 native_set_pte(ptep, pte);
1490} 1490}
1491 1491
1492static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn) 1492static void __init pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
1493{ 1493{
1494 struct mmuext_op op; 1494 struct mmuext_op op;
1495 op.cmd = cmd; 1495 op.cmd = cmd;
@@ -1657,7 +1657,7 @@ void __init xen_reserve_top(void)
1657 * Like __va(), but returns address in the kernel mapping (which is 1657 * Like __va(), but returns address in the kernel mapping (which is
1658 * all we have until the physical memory mapping has been set up. 1658 * all we have until the physical memory mapping has been set up.
1659 */ 1659 */
1660static void *__ka(phys_addr_t paddr) 1660static void * __init __ka(phys_addr_t paddr)
1661{ 1661{
1662#ifdef CONFIG_X86_64 1662#ifdef CONFIG_X86_64
1663 return (void *)(paddr + __START_KERNEL_map); 1663 return (void *)(paddr + __START_KERNEL_map);
@@ -1667,7 +1667,7 @@ static void *__ka(phys_addr_t paddr)
1667} 1667}
1668 1668
1669/* Convert a machine address to physical address */ 1669/* Convert a machine address to physical address */
1670static unsigned long m2p(phys_addr_t maddr) 1670static unsigned long __init m2p(phys_addr_t maddr)
1671{ 1671{
1672 phys_addr_t paddr; 1672 phys_addr_t paddr;
1673 1673
@@ -1678,13 +1678,14 @@ static unsigned long m2p(phys_addr_t maddr)
1678} 1678}
1679 1679
1680/* Convert a machine address to kernel virtual */ 1680/* Convert a machine address to kernel virtual */
1681static void *m2v(phys_addr_t maddr) 1681static void * __init m2v(phys_addr_t maddr)
1682{ 1682{
1683 return __ka(m2p(maddr)); 1683 return __ka(m2p(maddr));
1684} 1684}
1685 1685
1686/* Set the page permissions on an identity-mapped pages */ 1686/* Set the page permissions on an identity-mapped pages */
1687static void set_page_prot_flags(void *addr, pgprot_t prot, unsigned long flags) 1687static void __init set_page_prot_flags(void *addr, pgprot_t prot,
1688 unsigned long flags)
1688{ 1689{
1689 unsigned long pfn = __pa(addr) >> PAGE_SHIFT; 1690 unsigned long pfn = __pa(addr) >> PAGE_SHIFT;
1690 pte_t pte = pfn_pte(pfn, prot); 1691 pte_t pte = pfn_pte(pfn, prot);
@@ -1696,7 +1697,7 @@ static void set_page_prot_flags(void *addr, pgprot_t prot, unsigned long flags)
1696 if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, flags)) 1697 if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, flags))
1697 BUG(); 1698 BUG();
1698} 1699}
1699static void set_page_prot(void *addr, pgprot_t prot) 1700static void __init set_page_prot(void *addr, pgprot_t prot)
1700{ 1701{
1701 return set_page_prot_flags(addr, prot, UVMF_NONE); 1702 return set_page_prot_flags(addr, prot, UVMF_NONE);
1702} 1703}
@@ -1733,10 +1734,8 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
1733 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) { 1734 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) {
1734 pte_t pte; 1735 pte_t pte;
1735 1736
1736#ifdef CONFIG_X86_32
1737 if (pfn > max_pfn_mapped) 1737 if (pfn > max_pfn_mapped)
1738 max_pfn_mapped = pfn; 1738 max_pfn_mapped = pfn;
1739#endif
1740 1739
1741 if (!pte_none(pte_page[pteidx])) 1740 if (!pte_none(pte_page[pteidx]))
1742 continue; 1741 continue;
@@ -1769,7 +1768,7 @@ void __init xen_setup_machphys_mapping(void)
1769} 1768}
1770 1769
1771#ifdef CONFIG_X86_64 1770#ifdef CONFIG_X86_64
1772static void convert_pfn_mfn(void *v) 1771static void __init convert_pfn_mfn(void *v)
1773{ 1772{
1774 pte_t *pte = v; 1773 pte_t *pte = v;
1775 int i; 1774 int i;
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 70fb5075c901..f18fd1d411f6 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -84,8 +84,6 @@
84 84
85#define PMDS_PER_MID_PAGE (P2M_MID_PER_PAGE / PTRS_PER_PTE) 85#define PMDS_PER_MID_PAGE (P2M_MID_PER_PAGE / PTRS_PER_PTE)
86 86
87static void __init m2p_override_init(void);
88
89unsigned long *xen_p2m_addr __read_mostly; 87unsigned long *xen_p2m_addr __read_mostly;
90EXPORT_SYMBOL_GPL(xen_p2m_addr); 88EXPORT_SYMBOL_GPL(xen_p2m_addr);
91unsigned long xen_p2m_size __read_mostly; 89unsigned long xen_p2m_size __read_mostly;
@@ -402,8 +400,6 @@ void __init xen_vmalloc_p2m_tree(void)
402 xen_p2m_size = xen_max_p2m_pfn; 400 xen_p2m_size = xen_max_p2m_pfn;
403 401
404 xen_inv_extra_mem(); 402 xen_inv_extra_mem();
405
406 m2p_override_init();
407} 403}
408 404
409unsigned long get_phys_to_machine(unsigned long pfn) 405unsigned long get_phys_to_machine(unsigned long pfn)
@@ -652,100 +648,21 @@ bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
652 return true; 648 return true;
653} 649}
654 650
655#define M2P_OVERRIDE_HASH_SHIFT 10
656#define M2P_OVERRIDE_HASH (1 << M2P_OVERRIDE_HASH_SHIFT)
657
658static struct list_head *m2p_overrides;
659static DEFINE_SPINLOCK(m2p_override_lock);
660
661static void __init m2p_override_init(void)
662{
663 unsigned i;
664
665 m2p_overrides = alloc_bootmem_align(
666 sizeof(*m2p_overrides) * M2P_OVERRIDE_HASH,
667 sizeof(unsigned long));
668
669 for (i = 0; i < M2P_OVERRIDE_HASH; i++)
670 INIT_LIST_HEAD(&m2p_overrides[i]);
671}
672
673static unsigned long mfn_hash(unsigned long mfn)
674{
675 return hash_long(mfn, M2P_OVERRIDE_HASH_SHIFT);
676}
677
678/* Add an MFN override for a particular page */
679static int m2p_add_override(unsigned long mfn, struct page *page,
680 struct gnttab_map_grant_ref *kmap_op)
681{
682 unsigned long flags;
683 unsigned long pfn;
684 unsigned long uninitialized_var(address);
685 unsigned level;
686 pte_t *ptep = NULL;
687
688 pfn = page_to_pfn(page);
689 if (!PageHighMem(page)) {
690 address = (unsigned long)__va(pfn << PAGE_SHIFT);
691 ptep = lookup_address(address, &level);
692 if (WARN(ptep == NULL || level != PG_LEVEL_4K,
693 "m2p_add_override: pfn %lx not mapped", pfn))
694 return -EINVAL;
695 }
696
697 if (kmap_op != NULL) {
698 if (!PageHighMem(page)) {
699 struct multicall_space mcs =
700 xen_mc_entry(sizeof(*kmap_op));
701
702 MULTI_grant_table_op(mcs.mc,
703 GNTTABOP_map_grant_ref, kmap_op, 1);
704
705 xen_mc_issue(PARAVIRT_LAZY_MMU);
706 }
707 }
708 spin_lock_irqsave(&m2p_override_lock, flags);
709 list_add(&page->lru, &m2p_overrides[mfn_hash(mfn)]);
710 spin_unlock_irqrestore(&m2p_override_lock, flags);
711
712 /* p2m(m2p(mfn)) == mfn: the mfn is already present somewhere in
713 * this domain. Set the FOREIGN_FRAME_BIT in the p2m for the other
714 * pfn so that the following mfn_to_pfn(mfn) calls will return the
715 * pfn from the m2p_override (the backend pfn) instead.
716 * We need to do this because the pages shared by the frontend
717 * (xen-blkfront) can be already locked (lock_page, called by
718 * do_read_cache_page); when the userspace backend tries to use them
719 * with direct_IO, mfn_to_pfn returns the pfn of the frontend, so
720 * do_blockdev_direct_IO is going to try to lock the same pages
721 * again resulting in a deadlock.
722 * As a side effect get_user_pages_fast might not be safe on the
723 * frontend pages while they are being shared with the backend,
724 * because mfn_to_pfn (that ends up being called by GUPF) will
725 * return the backend pfn rather than the frontend pfn. */
726 pfn = mfn_to_pfn_no_overrides(mfn);
727 if (__pfn_to_mfn(pfn) == mfn)
728 set_phys_to_machine(pfn, FOREIGN_FRAME(mfn));
729
730 return 0;
731}
732
733int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops, 651int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
734 struct gnttab_map_grant_ref *kmap_ops, 652 struct gnttab_map_grant_ref *kmap_ops,
735 struct page **pages, unsigned int count) 653 struct page **pages, unsigned int count)
736{ 654{
737 int i, ret = 0; 655 int i, ret = 0;
738 bool lazy = false;
739 pte_t *pte; 656 pte_t *pte;
740 657
741 if (xen_feature(XENFEAT_auto_translated_physmap)) 658 if (xen_feature(XENFEAT_auto_translated_physmap))
742 return 0; 659 return 0;
743 660
744 if (kmap_ops && 661 if (kmap_ops) {
745 !in_interrupt() && 662 ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
746 paravirt_get_lazy_mode() == PARAVIRT_LAZY_NONE) { 663 kmap_ops, count);
747 arch_enter_lazy_mmu_mode(); 664 if (ret)
748 lazy = true; 665 goto out;
749 } 666 }
750 667
751 for (i = 0; i < count; i++) { 668 for (i = 0; i < count; i++) {
@@ -764,170 +681,28 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
764 } 681 }
765 pfn = page_to_pfn(pages[i]); 682 pfn = page_to_pfn(pages[i]);
766 683
767 WARN_ON(PagePrivate(pages[i])); 684 WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, "page must be ballooned");
768 SetPagePrivate(pages[i]);
769 set_page_private(pages[i], mfn);
770 pages[i]->index = pfn_to_mfn(pfn);
771 685
772 if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) { 686 if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) {
773 ret = -ENOMEM; 687 ret = -ENOMEM;
774 goto out; 688 goto out;
775 } 689 }
776
777 if (kmap_ops) {
778 ret = m2p_add_override(mfn, pages[i], &kmap_ops[i]);
779 if (ret)
780 goto out;
781 }
782 } 690 }
783 691
784out: 692out:
785 if (lazy)
786 arch_leave_lazy_mmu_mode();
787
788 return ret; 693 return ret;
789} 694}
790EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping); 695EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping);
791 696
792static struct page *m2p_find_override(unsigned long mfn)
793{
794 unsigned long flags;
795 struct list_head *bucket;
796 struct page *p, *ret;
797
798 if (unlikely(!m2p_overrides))
799 return NULL;
800
801 ret = NULL;
802 bucket = &m2p_overrides[mfn_hash(mfn)];
803
804 spin_lock_irqsave(&m2p_override_lock, flags);
805
806 list_for_each_entry(p, bucket, lru) {
807 if (page_private(p) == mfn) {
808 ret = p;
809 break;
810 }
811 }
812
813 spin_unlock_irqrestore(&m2p_override_lock, flags);
814
815 return ret;
816}
817
818static int m2p_remove_override(struct page *page,
819 struct gnttab_map_grant_ref *kmap_op,
820 unsigned long mfn)
821{
822 unsigned long flags;
823 unsigned long pfn;
824 unsigned long uninitialized_var(address);
825 unsigned level;
826 pte_t *ptep = NULL;
827
828 pfn = page_to_pfn(page);
829
830 if (!PageHighMem(page)) {
831 address = (unsigned long)__va(pfn << PAGE_SHIFT);
832 ptep = lookup_address(address, &level);
833
834 if (WARN(ptep == NULL || level != PG_LEVEL_4K,
835 "m2p_remove_override: pfn %lx not mapped", pfn))
836 return -EINVAL;
837 }
838
839 spin_lock_irqsave(&m2p_override_lock, flags);
840 list_del(&page->lru);
841 spin_unlock_irqrestore(&m2p_override_lock, flags);
842
843 if (kmap_op != NULL) {
844 if (!PageHighMem(page)) {
845 struct multicall_space mcs;
846 struct gnttab_unmap_and_replace *unmap_op;
847 struct page *scratch_page = get_balloon_scratch_page();
848 unsigned long scratch_page_address = (unsigned long)
849 __va(page_to_pfn(scratch_page) << PAGE_SHIFT);
850
851 /*
852 * It might be that we queued all the m2p grant table
853 * hypercalls in a multicall, then m2p_remove_override
854 * get called before the multicall has actually been
855 * issued. In this case handle is going to -1 because
856 * it hasn't been modified yet.
857 */
858 if (kmap_op->handle == -1)
859 xen_mc_flush();
860 /*
861 * Now if kmap_op->handle is negative it means that the
862 * hypercall actually returned an error.
863 */
864 if (kmap_op->handle == GNTST_general_error) {
865 pr_warn("m2p_remove_override: pfn %lx mfn %lx, failed to modify kernel mappings",
866 pfn, mfn);
867 put_balloon_scratch_page();
868 return -1;
869 }
870
871 xen_mc_batch();
872
873 mcs = __xen_mc_entry(
874 sizeof(struct gnttab_unmap_and_replace));
875 unmap_op = mcs.args;
876 unmap_op->host_addr = kmap_op->host_addr;
877 unmap_op->new_addr = scratch_page_address;
878 unmap_op->handle = kmap_op->handle;
879
880 MULTI_grant_table_op(mcs.mc,
881 GNTTABOP_unmap_and_replace, unmap_op, 1);
882
883 mcs = __xen_mc_entry(0);
884 MULTI_update_va_mapping(mcs.mc, scratch_page_address,
885 pfn_pte(page_to_pfn(scratch_page),
886 PAGE_KERNEL_RO), 0);
887
888 xen_mc_issue(PARAVIRT_LAZY_MMU);
889
890 kmap_op->host_addr = 0;
891 put_balloon_scratch_page();
892 }
893 }
894
895 /* p2m(m2p(mfn)) == FOREIGN_FRAME(mfn): the mfn is already present
896 * somewhere in this domain, even before being added to the
897 * m2p_override (see comment above in m2p_add_override).
898 * If there are no other entries in the m2p_override corresponding
899 * to this mfn, then remove the FOREIGN_FRAME_BIT from the p2m for
900 * the original pfn (the one shared by the frontend): the backend
901 * cannot do any IO on this page anymore because it has been
902 * unshared. Removing the FOREIGN_FRAME_BIT from the p2m entry of
903 * the original pfn causes mfn_to_pfn(mfn) to return the frontend
904 * pfn again. */
905 mfn &= ~FOREIGN_FRAME_BIT;
906 pfn = mfn_to_pfn_no_overrides(mfn);
907 if (__pfn_to_mfn(pfn) == FOREIGN_FRAME(mfn) &&
908 m2p_find_override(mfn) == NULL)
909 set_phys_to_machine(pfn, mfn);
910
911 return 0;
912}
913
914int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, 697int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
915 struct gnttab_map_grant_ref *kmap_ops, 698 struct gnttab_unmap_grant_ref *kunmap_ops,
916 struct page **pages, unsigned int count) 699 struct page **pages, unsigned int count)
917{ 700{
918 int i, ret = 0; 701 int i, ret = 0;
919 bool lazy = false;
920 702
921 if (xen_feature(XENFEAT_auto_translated_physmap)) 703 if (xen_feature(XENFEAT_auto_translated_physmap))
922 return 0; 704 return 0;
923 705
924 if (kmap_ops &&
925 !in_interrupt() &&
926 paravirt_get_lazy_mode() == PARAVIRT_LAZY_NONE) {
927 arch_enter_lazy_mmu_mode();
928 lazy = true;
929 }
930
931 for (i = 0; i < count; i++) { 706 for (i = 0; i < count; i++) {
932 unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i])); 707 unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i]));
933 unsigned long pfn = page_to_pfn(pages[i]); 708 unsigned long pfn = page_to_pfn(pages[i]);
@@ -937,36 +712,16 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
937 goto out; 712 goto out;
938 } 713 }
939 714
940 set_page_private(pages[i], INVALID_P2M_ENTRY); 715 set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
941 WARN_ON(!PagePrivate(pages[i]));
942 ClearPagePrivate(pages[i]);
943 set_phys_to_machine(pfn, pages[i]->index);
944
945 if (kmap_ops)
946 ret = m2p_remove_override(pages[i], &kmap_ops[i], mfn);
947 if (ret)
948 goto out;
949 } 716 }
950 717 if (kunmap_ops)
718 ret = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
719 kunmap_ops, count);
951out: 720out:
952 if (lazy)
953 arch_leave_lazy_mmu_mode();
954 return ret; 721 return ret;
955} 722}
956EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping); 723EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
957 724
958unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn)
959{
960 struct page *p = m2p_find_override(mfn);
961 unsigned long ret = pfn;
962
963 if (p)
964 ret = page_to_pfn(p);
965
966 return ret;
967}
968EXPORT_SYMBOL_GPL(m2p_find_override_pfn);
969
970#ifdef CONFIG_XEN_DEBUG_FS 725#ifdef CONFIG_XEN_DEBUG_FS
971#include <linux/debugfs.h> 726#include <linux/debugfs.h>
972#include "debugfs.h" 727#include "debugfs.h"
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 865e56cea7a0..55f388ef481a 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -32,16 +32,6 @@
32#include "p2m.h" 32#include "p2m.h"
33#include "mmu.h" 33#include "mmu.h"
34 34
35/* These are code, but not functions. Defined in entry.S */
36extern const char xen_hypervisor_callback[];
37extern const char xen_failsafe_callback[];
38#ifdef CONFIG_X86_64
39extern asmlinkage void nmi(void);
40#endif
41extern void xen_sysenter_target(void);
42extern void xen_syscall_target(void);
43extern void xen_syscall32_target(void);
44
45/* Amount of extra memory space we add to the e820 ranges */ 35/* Amount of extra memory space we add to the e820 ranges */
46struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata; 36struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
47 37
@@ -74,7 +64,7 @@ static unsigned long xen_remap_mfn __initdata = INVALID_P2M_ENTRY;
74 */ 64 */
75#define EXTRA_MEM_RATIO (10) 65#define EXTRA_MEM_RATIO (10)
76 66
77static void __init xen_add_extra_mem(u64 start, u64 size) 67static void __init xen_add_extra_mem(phys_addr_t start, phys_addr_t size)
78{ 68{
79 int i; 69 int i;
80 70
@@ -97,10 +87,10 @@ static void __init xen_add_extra_mem(u64 start, u64 size)
97 memblock_reserve(start, size); 87 memblock_reserve(start, size);
98} 88}
99 89
100static void __init xen_del_extra_mem(u64 start, u64 size) 90static void __init xen_del_extra_mem(phys_addr_t start, phys_addr_t size)
101{ 91{
102 int i; 92 int i;
103 u64 start_r, size_r; 93 phys_addr_t start_r, size_r;
104 94
105 for (i = 0; i < XEN_EXTRA_MEM_MAX_REGIONS; i++) { 95 for (i = 0; i < XEN_EXTRA_MEM_MAX_REGIONS; i++) {
106 start_r = xen_extra_mem[i].start; 96 start_r = xen_extra_mem[i].start;
@@ -267,7 +257,7 @@ static void __init xen_set_identity_and_release_chunk(unsigned long start_pfn,
267static void __init xen_update_mem_tables(unsigned long pfn, unsigned long mfn) 257static void __init xen_update_mem_tables(unsigned long pfn, unsigned long mfn)
268{ 258{
269 struct mmu_update update = { 259 struct mmu_update update = {
270 .ptr = ((unsigned long long)mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE, 260 .ptr = ((uint64_t)mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE,
271 .val = pfn 261 .val = pfn
272 }; 262 };
273 263
@@ -545,20 +535,21 @@ static unsigned long __init xen_get_max_pages(void)
545 return min(max_pages, MAX_DOMAIN_PAGES); 535 return min(max_pages, MAX_DOMAIN_PAGES);
546} 536}
547 537
548static void xen_align_and_add_e820_region(u64 start, u64 size, int type) 538static void __init xen_align_and_add_e820_region(phys_addr_t start,
539 phys_addr_t size, int type)
549{ 540{
550 u64 end = start + size; 541 phys_addr_t end = start + size;
551 542
552 /* Align RAM regions to page boundaries. */ 543 /* Align RAM regions to page boundaries. */
553 if (type == E820_RAM) { 544 if (type == E820_RAM) {
554 start = PAGE_ALIGN(start); 545 start = PAGE_ALIGN(start);
555 end &= ~((u64)PAGE_SIZE - 1); 546 end &= ~((phys_addr_t)PAGE_SIZE - 1);
556 } 547 }
557 548
558 e820_add_region(start, end - start, type); 549 e820_add_region(start, end - start, type);
559} 550}
560 551
561void xen_ignore_unusable(struct e820entry *list, size_t map_size) 552static void __init xen_ignore_unusable(struct e820entry *list, size_t map_size)
562{ 553{
563 struct e820entry *entry; 554 struct e820entry *entry;
564 unsigned int i; 555 unsigned int i;
@@ -577,7 +568,7 @@ char * __init xen_memory_setup(void)
577 static struct e820entry map[E820MAX] __initdata; 568 static struct e820entry map[E820MAX] __initdata;
578 569
579 unsigned long max_pfn = xen_start_info->nr_pages; 570 unsigned long max_pfn = xen_start_info->nr_pages;
580 unsigned long long mem_end; 571 phys_addr_t mem_end;
581 int rc; 572 int rc;
582 struct xen_memory_map memmap; 573 struct xen_memory_map memmap;
583 unsigned long max_pages; 574 unsigned long max_pages;
@@ -652,16 +643,16 @@ char * __init xen_memory_setup(void)
652 extra_pages); 643 extra_pages);
653 i = 0; 644 i = 0;
654 while (i < memmap.nr_entries) { 645 while (i < memmap.nr_entries) {
655 u64 addr = map[i].addr; 646 phys_addr_t addr = map[i].addr;
656 u64 size = map[i].size; 647 phys_addr_t size = map[i].size;
657 u32 type = map[i].type; 648 u32 type = map[i].type;
658 649
659 if (type == E820_RAM) { 650 if (type == E820_RAM) {
660 if (addr < mem_end) { 651 if (addr < mem_end) {
661 size = min(size, mem_end - addr); 652 size = min(size, mem_end - addr);
662 } else if (extra_pages) { 653 } else if (extra_pages) {
663 size = min(size, (u64)extra_pages * PAGE_SIZE); 654 size = min(size, PFN_PHYS(extra_pages));
664 extra_pages -= size / PAGE_SIZE; 655 extra_pages -= PFN_DOWN(size);
665 xen_add_extra_mem(addr, size); 656 xen_add_extra_mem(addr, size);
666 xen_max_p2m_pfn = PFN_DOWN(addr + size); 657 xen_max_p2m_pfn = PFN_DOWN(addr + size);
667 } else 658 } else
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index 4c071aeb8417..08e8489c47f1 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -507,7 +507,7 @@ static int xen_cpu_disable(void)
507static void xen_cpu_die(unsigned int cpu) 507static void xen_cpu_die(unsigned int cpu)
508{ 508{
509 while (xen_pv_domain() && HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL)) { 509 while (xen_pv_domain() && HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL)) {
510 current->state = TASK_UNINTERRUPTIBLE; 510 __set_current_state(TASK_UNINTERRUPTIBLE);
511 schedule_timeout(HZ/10); 511 schedule_timeout(HZ/10);
512 } 512 }
513 513
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 69087341d9ae..55da33b1d51c 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -479,6 +479,10 @@ static void __init xen_time_init(void)
479 int cpu = smp_processor_id(); 479 int cpu = smp_processor_id();
480 struct timespec tp; 480 struct timespec tp;
481 481
482 /* As Dom0 is never moved, no penalty on using TSC there */
483 if (xen_initial_domain())
484 xen_clocksource.rating = 275;
485
482 clocksource_register_hz(&xen_clocksource, NSEC_PER_SEC); 486 clocksource_register_hz(&xen_clocksource, NSEC_PER_SEC);
483 487
484 if (HYPERVISOR_vcpu_op(VCPUOP_stop_periodic_timer, cpu, NULL) == 0) { 488 if (HYPERVISOR_vcpu_op(VCPUOP_stop_periodic_timer, cpu, NULL) == 0) {
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 5686bd9d58cc..9e195c683549 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -10,6 +10,12 @@
10extern const char xen_hypervisor_callback[]; 10extern const char xen_hypervisor_callback[];
11extern const char xen_failsafe_callback[]; 11extern const char xen_failsafe_callback[];
12 12
13void xen_sysenter_target(void);
14#ifdef CONFIG_X86_64
15void xen_syscall_target(void);
16void xen_syscall32_target(void);
17#endif
18
13extern void *xen_initial_gdt; 19extern void *xen_initial_gdt;
14 20
15struct trap_info; 21struct trap_info;