diff options
Diffstat (limited to 'arch')
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 | ||
| 1282 | config PCI_DOMAINS_GENERIC | ||
| 1283 | def_bool PCI_DOMAINS | ||
| 1284 | |||
| 1282 | config PCI_NANOENGINE | 1285 | config 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; | |||
| 19 | struct device; | 19 | struct device; |
| 20 | 20 | ||
| 21 | struct hw_pci { | 21 | struct 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 | */ |
| 47 | struct pci_sys_data { | 44 | struct 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 |
| 21 | static 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 | |||
| 28 | static inline int pci_proc_domain(struct pci_bus *bus) | 21 | static 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 | ||
| 94 | extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, | 94 | extern 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 | ||
| 98 | bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn); | 98 | bool __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) | |||
| 422 | static int pcibios_init_resources(int busnr, struct pci_sys_data *sys) | 422 | static 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 | ||
| 38 | static struct cns3xxx_pcie cns3xxx_pcie[]; /* forward decl. */ | ||
| 39 | |||
| 40 | static struct cns3xxx_pcie *sysdata_to_cnspci(void *sysdata) | 37 | static 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 | ||
| 47 | static struct cns3xxx_pcie *pdev_to_cnspci(const struct pci_dev *dev) | 44 | static 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 | ||
| 57 | static void __iomem *cns3xxx_pci_cfg_base(struct pci_bus *bus, | 54 | static 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, | |||
| 91 | static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, | 88 | static 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 | |||
| 123 | static 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 | ||
| 145 | static int cns3xxx_pci_setup(int nr, struct pci_sys_data *sys) | 109 | static 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 | ||
| 160 | static struct pci_ops cns3xxx_pcie_ops = { | 124 | static 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 | ||
| 165 | static int cns3xxx_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 130 | static 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 | ||
| 230 | static void __init cns3xxx_pcie_check_link(struct cns3xxx_pcie *cnspci) | 183 | static 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 | ||
| 261 | static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci) | 214 | static 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, | |||
| 323 | void __init cns3xxx_pcie_init_late(void) | 276 | void __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 | */ |
| 359 | static 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) | |||
| 457 | static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where, | 456 | static 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 | ||
| 488 | static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where, | 464 | static 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 | ||
| 520 | static struct pci_ops pci_v3_ops = { | 472 | static 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 | */ |
| 659 | static void __init pci_v3_preinit(void) | 612 | static 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 | ||
| 743 | static void __init pci_v3_postinit(void) | 691 | static 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 | ||
| 40 | static int pci_dbg; | 40 | static int pci_dbg; |
| 41 | static int pci_cfg_dbg; | ||
| 42 | |||
| 43 | 41 | ||
| 44 | static void ks8695_pci_setupconfig(unsigned int bus_nr, unsigned int devfn, unsigned int where) | 42 | static 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 | 60 | static 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 | |||
| 69 | static 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 | |||
| 98 | static 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 | ||
| 133 | static void ks8695_local_writeconfig(int where, u32 value) | 67 | static 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 | ||
| 139 | static struct pci_ops ks8695_pci_ops = { | 73 | static 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 | ||
| 144 | static struct resource pci_mem = { | 79 | static 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 | ||
| 33 | static DEFINE_SPINLOCK(nano_lock); | 32 | static void __iomem *nanoengine_pci_map_bus(struct pci_bus *bus, |
| 34 | 33 | unsigned int devfn, int where) | |
| 35 | static 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 | |||
| 50 | static 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 | |||
| 79 | exit_function: | ||
| 80 | *val = v; | ||
| 81 | return PCIBIOS_SUCCESSFUL; | ||
| 82 | } | ||
| 83 | |||
| 84 | static 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 | ||
| 121 | static struct pci_ops pci_nano_ops = { | 42 | static 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 | ||
| 126 | static int __init pci_nanoengine_map_irq(const struct pci_dev *dev, u8 slot, | 48 | static 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 | ||
| 30 | struct start_info _xen_start_info; | 30 | struct start_info _xen_start_info; |
| 31 | struct start_info *xen_start_info = &_xen_start_info; | 31 | struct start_info *xen_start_info = &_xen_start_info; |
| 32 | EXPORT_SYMBOL_GPL(xen_start_info); | 32 | EXPORT_SYMBOL(xen_start_info); |
| 33 | 33 | ||
| 34 | enum xen_domain_type xen_domain_type = XEN_NATIVE; | 34 | enum xen_domain_type xen_domain_type = XEN_NATIVE; |
| 35 | EXPORT_SYMBOL_GPL(xen_domain_type); | 35 | EXPORT_SYMBOL(xen_domain_type); |
| 36 | 36 | ||
| 37 | struct shared_info xen_dummy_shared_info; | 37 | struct shared_info xen_dummy_shared_info; |
| 38 | struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info; | 38 | struct 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) | |||
| 149 | EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region); | 149 | EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region); |
| 150 | 150 | ||
| 151 | struct dma_map_ops *xen_dma_ops; | 151 | struct dma_map_ops *xen_dma_ops; |
| 152 | EXPORT_SYMBOL_GPL(xen_dma_ops); | 152 | EXPORT_SYMBOL(xen_dma_ops); |
| 153 | 153 | ||
| 154 | static struct dma_map_ops xen_swiotlb_dma_ops = { | 154 | static 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, | |||
| 102 | EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping); | 102 | EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping); |
| 103 | 103 | ||
| 104 | int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, | 104 | int 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 | ||
| 16 | efi_status_t handle_kernel_image(efi_system_table_t *sys_table, | 16 | efi_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 | ||
| 52 | static bool dt_domain_found = false; | ||
| 53 | |||
| 54 | void 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 | ||
| 170 | static struct pci_ops pci_direct_frv = { | 170 | static 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 | ||
| 381 | static int __init acpi_parse_madt(struct acpi_table_header *table) | 381 | static 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 | } |
| 431 | EXPORT_SYMBOL(ikbd_mouse_y0_top); | 430 | EXPORT_SYMBOL(ikbd_mouse_y0_top); |
| 432 | 431 | ||
| 433 | /* Resume */ | ||
| 434 | void 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 */ |
| 442 | void ikbd_mouse_disable(void) | 433 | void ikbd_mouse_disable(void) |
| 443 | { | 434 | { |
| @@ -447,14 +438,6 @@ void ikbd_mouse_disable(void) | |||
| 447 | } | 438 | } |
| 448 | EXPORT_SYMBOL(ikbd_mouse_disable); | 439 | EXPORT_SYMBOL(ikbd_mouse_disable); |
| 449 | 440 | ||
| 450 | /* Pause output */ | ||
| 451 | void 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 */ |
| 459 | void ikbd_joystick_event_on(void) | 442 | void 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 */ | ||
| 506 | void 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 */ | ||
| 514 | void 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 */ | ||
| 522 | void ikbd_mem_write(int address, int size, char *data) | ||
| 523 | { | ||
| 524 | panic("Attempt to write data into keyboard memory"); | ||
| 525 | } | ||
| 526 | |||
| 527 | /* Memory read */ | ||
| 528 | void 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 */ | ||
| 538 | void 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. */ | ||
| 548 | void 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); | |||
| 198 | void __init stdma_init(void) | 198 | void __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 | |||
| 36 | CONFIG_ZORRO_NAMES=y | 36 | CONFIG_ZORRO_NAMES=y |
| 37 | # CONFIG_COMPACTION is not set | 37 | # CONFIG_COMPACTION is not set |
| 38 | CONFIG_CLEANCACHE=y | 38 | CONFIG_CLEANCACHE=y |
| 39 | CONFIG_ZPOOL=m | ||
| 39 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 40 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 40 | CONFIG_BINFMT_AOUT=m | 41 | CONFIG_BINFMT_AOUT=m |
| 41 | CONFIG_BINFMT_MISC=m | 42 | CONFIG_BINFMT_MISC=m |
| @@ -55,6 +56,8 @@ CONFIG_NET_IPIP=m | |||
| 55 | CONFIG_NET_IPGRE_DEMUX=m | 56 | CONFIG_NET_IPGRE_DEMUX=m |
| 56 | CONFIG_NET_IPGRE=m | 57 | CONFIG_NET_IPGRE=m |
| 57 | CONFIG_NET_IPVTI=m | 58 | CONFIG_NET_IPVTI=m |
| 59 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 60 | CONFIG_GENEVE=m | ||
| 58 | CONFIG_INET_AH=m | 61 | CONFIG_INET_AH=m |
| 59 | CONFIG_INET_ESP=m | 62 | CONFIG_INET_ESP=m |
| 60 | CONFIG_INET_IPCOMP=m | 63 | CONFIG_INET_IPCOMP=m |
| @@ -96,6 +99,8 @@ CONFIG_NFT_HASH=m | |||
| 96 | CONFIG_NFT_COUNTER=m | 99 | CONFIG_NFT_COUNTER=m |
| 97 | CONFIG_NFT_LOG=m | 100 | CONFIG_NFT_LOG=m |
| 98 | CONFIG_NFT_LIMIT=m | 101 | CONFIG_NFT_LIMIT=m |
| 102 | CONFIG_NFT_MASQ=m | ||
| 103 | CONFIG_NFT_REDIR=m | ||
| 99 | CONFIG_NFT_NAT=m | 104 | CONFIG_NFT_NAT=m |
| 100 | CONFIG_NFT_QUEUE=m | 105 | CONFIG_NFT_QUEUE=m |
| 101 | CONFIG_NFT_REJECT=m | 106 | CONFIG_NFT_REJECT=m |
| @@ -142,6 +147,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 142 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 147 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 148 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 144 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 149 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 150 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 145 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 151 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 146 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 152 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 147 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 153 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -163,6 +169,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 163 | CONFIG_IP_SET_HASH_IPPORT=m | 169 | CONFIG_IP_SET_HASH_IPPORT=m |
| 164 | CONFIG_IP_SET_HASH_IPPORTIP=m | 170 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 165 | CONFIG_IP_SET_HASH_IPPORTNET=m | 171 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 172 | CONFIG_IP_SET_HASH_MAC=m | ||
| 166 | CONFIG_IP_SET_HASH_NETPORTNET=m | 173 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 167 | CONFIG_IP_SET_HASH_NET=m | 174 | CONFIG_IP_SET_HASH_NET=m |
| 168 | CONFIG_IP_SET_HASH_NETNET=m | 175 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -170,9 +177,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 170 | CONFIG_IP_SET_HASH_NETIFACE=m | 177 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 171 | CONFIG_IP_SET_LIST_SET=m | 178 | CONFIG_IP_SET_LIST_SET=m |
| 172 | CONFIG_NF_CONNTRACK_IPV4=m | 179 | CONFIG_NF_CONNTRACK_IPV4=m |
| 180 | CONFIG_NF_LOG_ARP=m | ||
| 173 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 181 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 174 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 175 | CONFIG_NF_TABLES_ARP=m | 182 | CONFIG_NF_TABLES_ARP=m |
| 183 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 184 | CONFIG_NFT_MASQ_IPV4=m | ||
| 185 | CONFIG_NFT_REDIR_IPV4=m | ||
| 176 | CONFIG_IP_NF_IPTABLES=m | 186 | CONFIG_IP_NF_IPTABLES=m |
| 177 | CONFIG_IP_NF_MATCH_AH=m | 187 | CONFIG_IP_NF_MATCH_AH=m |
| 178 | CONFIG_IP_NF_MATCH_ECN=m | 188 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -181,8 +191,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 181 | CONFIG_IP_NF_FILTER=m | 191 | CONFIG_IP_NF_FILTER=m |
| 182 | CONFIG_IP_NF_TARGET_REJECT=m | 192 | CONFIG_IP_NF_TARGET_REJECT=m |
| 183 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 193 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 184 | CONFIG_IP_NF_TARGET_ULOG=m | 194 | CONFIG_IP_NF_NAT=m |
| 185 | CONFIG_NF_NAT_IPV4=m | ||
| 186 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 195 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 187 | CONFIG_IP_NF_TARGET_NETMAP=m | 196 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 188 | CONFIG_IP_NF_TARGET_REDIRECT=m | 197 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -197,6 +206,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 197 | CONFIG_NF_CONNTRACK_IPV6=m | 206 | CONFIG_NF_CONNTRACK_IPV6=m |
| 198 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 207 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 199 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 208 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 209 | CONFIG_NFT_MASQ_IPV6=m | ||
| 210 | CONFIG_NFT_REDIR_IPV6=m | ||
| 200 | CONFIG_IP6_NF_IPTABLES=m | 211 | CONFIG_IP6_NF_IPTABLES=m |
| 201 | CONFIG_IP6_NF_MATCH_AH=m | 212 | CONFIG_IP6_NF_MATCH_AH=m |
| 202 | CONFIG_IP6_NF_MATCH_EUI64=m | 213 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -213,17 +224,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 213 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 224 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 214 | CONFIG_IP6_NF_MANGLE=m | 225 | CONFIG_IP6_NF_MANGLE=m |
| 215 | CONFIG_IP6_NF_RAW=m | 226 | CONFIG_IP6_NF_RAW=m |
| 216 | CONFIG_NF_NAT_IPV6=m | 227 | CONFIG_IP6_NF_NAT=m |
| 217 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 228 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 218 | CONFIG_IP6_NF_TARGET_NPT=m | 229 | CONFIG_IP6_NF_TARGET_NPT=m |
| 219 | CONFIG_NF_TABLES_BRIDGE=m | 230 | CONFIG_NF_TABLES_BRIDGE=m |
| 231 | CONFIG_NFT_BRIDGE_META=m | ||
| 232 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 233 | CONFIG_NF_LOG_BRIDGE=m | ||
| 234 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 235 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 236 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 237 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 238 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 239 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 240 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 241 | CONFIG_BRIDGE_EBT_IP=m | ||
| 242 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 243 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 244 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 245 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 246 | CONFIG_BRIDGE_EBT_STP=m | ||
| 247 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 248 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 249 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 250 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 251 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 252 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 253 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 254 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 220 | CONFIG_IP_DCCP=m | 255 | CONFIG_IP_DCCP=m |
| 221 | # CONFIG_IP_DCCP_CCID3 is not set | 256 | # CONFIG_IP_DCCP_CCID3 is not set |
| 222 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 257 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 223 | CONFIG_RDS=m | 258 | CONFIG_RDS=m |
| 224 | CONFIG_RDS_TCP=m | 259 | CONFIG_RDS_TCP=m |
| 225 | CONFIG_L2TP=m | 260 | CONFIG_L2TP=m |
| 261 | CONFIG_BRIDGE=m | ||
| 226 | CONFIG_ATALK=m | 262 | CONFIG_ATALK=m |
| 263 | CONFIG_6LOWPAN=m | ||
| 227 | CONFIG_DNS_RESOLVER=y | 264 | CONFIG_DNS_RESOLVER=y |
| 228 | CONFIG_BATMAN_ADV=m | 265 | CONFIG_BATMAN_ADV=m |
| 229 | CONFIG_BATMAN_ADV_DAT=y | 266 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -232,9 +269,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 232 | CONFIG_NETLINK_DIAG=m | 269 | CONFIG_NETLINK_DIAG=m |
| 233 | CONFIG_NET_MPLS_GSO=m | 270 | CONFIG_NET_MPLS_GSO=m |
| 234 | # CONFIG_WIRELESS is not set | 271 | # CONFIG_WIRELESS is not set |
| 272 | # CONFIG_UEVENT_HELPER is not set | ||
| 235 | CONFIG_DEVTMPFS=y | 273 | CONFIG_DEVTMPFS=y |
| 274 | CONFIG_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 | ||
| 238 | CONFIG_CONNECTOR=m | 276 | CONFIG_CONNECTOR=m |
| 239 | CONFIG_PARPORT=m | 277 | CONFIG_PARPORT=m |
| 240 | CONFIG_PARPORT_AMIGA=m | 278 | CONFIG_PARPORT_AMIGA=m |
| @@ -299,6 +337,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 299 | CONFIG_NET_TEAM_MODE_RANDOM=m | 337 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 300 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 338 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 301 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 339 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 340 | CONFIG_MACVLAN=m | ||
| 341 | CONFIG_MACVTAP=m | ||
| 342 | CONFIG_IPVLAN=m | ||
| 302 | CONFIG_VXLAN=m | 343 | CONFIG_VXLAN=m |
| 303 | CONFIG_NETCONSOLE=m | 344 | CONFIG_NETCONSOLE=m |
| 304 | CONFIG_NETCONSOLE_DYNAMIC=y | 345 | CONFIG_NETCONSOLE_DYNAMIC=y |
| @@ -316,6 +357,8 @@ CONFIG_ARIADNE=y | |||
| 316 | CONFIG_HYDRA=y | 357 | CONFIG_HYDRA=y |
| 317 | CONFIG_APNE=y | 358 | CONFIG_APNE=y |
| 318 | CONFIG_ZORRO8390=y | 359 | CONFIG_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 | |||
| 371 | CONFIG_HIDRAW=y | 414 | CONFIG_HIDRAW=y |
| 372 | CONFIG_UHID=m | 415 | CONFIG_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 |
| 375 | CONFIG_RTC_CLASS=y | 419 | CONFIG_RTC_CLASS=y |
| 376 | CONFIG_RTC_DRV_MSM6242=m | 420 | CONFIG_RTC_DRV_MSM6242=m |
| @@ -392,6 +436,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 392 | CONFIG_AUTOFS4_FS=m | 436 | CONFIG_AUTOFS4_FS=m |
| 393 | CONFIG_FUSE_FS=m | 437 | CONFIG_FUSE_FS=m |
| 394 | CONFIG_CUSE=m | 438 | CONFIG_CUSE=m |
| 439 | CONFIG_OVERLAY_FS=m | ||
| 395 | CONFIG_ISO9660_FS=y | 440 | CONFIG_ISO9660_FS=y |
| 396 | CONFIG_JOLIET=y | 441 | CONFIG_JOLIET=y |
| 397 | CONFIG_ZISOFS=y | 442 | CONFIG_ZISOFS=y |
| @@ -407,6 +452,7 @@ CONFIG_HFS_FS=m | |||
| 407 | CONFIG_HFSPLUS_FS=m | 452 | CONFIG_HFSPLUS_FS=m |
| 408 | CONFIG_CRAMFS=m | 453 | CONFIG_CRAMFS=m |
| 409 | CONFIG_SQUASHFS=m | 454 | CONFIG_SQUASHFS=m |
| 455 | CONFIG_SQUASHFS_LZ4=y | ||
| 410 | CONFIG_SQUASHFS_LZO=y | 456 | CONFIG_SQUASHFS_LZO=y |
| 411 | CONFIG_MINIX_FS=m | 457 | CONFIG_MINIX_FS=m |
| 412 | CONFIG_OMFS_FS=m | 458 | CONFIG_OMFS_FS=m |
| @@ -476,10 +522,18 @@ CONFIG_DLM=m | |||
| 476 | CONFIG_MAGIC_SYSRQ=y | 522 | CONFIG_MAGIC_SYSRQ=y |
| 477 | CONFIG_ASYNC_RAID6_TEST=m | 523 | CONFIG_ASYNC_RAID6_TEST=m |
| 478 | CONFIG_TEST_STRING_HELPERS=m | 524 | CONFIG_TEST_STRING_HELPERS=m |
| 525 | CONFIG_TEST_KSTRTOX=m | ||
| 526 | CONFIG_TEST_LKM=m | ||
| 527 | CONFIG_TEST_USER_COPY=m | ||
| 528 | CONFIG_TEST_BPF=m | ||
| 529 | CONFIG_TEST_FIRMWARE=m | ||
| 530 | CONFIG_TEST_UDELAY=m | ||
| 531 | CONFIG_EARLY_PRINTK=y | ||
| 479 | CONFIG_ENCRYPTED_KEYS=m | 532 | CONFIG_ENCRYPTED_KEYS=m |
| 480 | CONFIG_CRYPTO_MANAGER=y | 533 | CONFIG_CRYPTO_MANAGER=y |
| 481 | CONFIG_CRYPTO_USER=m | 534 | CONFIG_CRYPTO_USER=m |
| 482 | CONFIG_CRYPTO_CRYPTD=m | 535 | CONFIG_CRYPTO_CRYPTD=m |
| 536 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 483 | CONFIG_CRYPTO_TEST=m | 537 | CONFIG_CRYPTO_TEST=m |
| 484 | CONFIG_CRYPTO_CCM=m | 538 | CONFIG_CRYPTO_CCM=m |
| 485 | CONFIG_CRYPTO_GCM=m | 539 | CONFIG_CRYPTO_GCM=m |
| @@ -514,13 +568,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 514 | CONFIG_CRYPTO_LZ4=m | 568 | CONFIG_CRYPTO_LZ4=m |
| 515 | CONFIG_CRYPTO_LZ4HC=m | 569 | CONFIG_CRYPTO_LZ4HC=m |
| 516 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 570 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 571 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 572 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 573 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 517 | CONFIG_CRYPTO_USER_API_HASH=m | 574 | CONFIG_CRYPTO_USER_API_HASH=m |
| 518 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 575 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 519 | # CONFIG_CRYPTO_HW is not set | 576 | # CONFIG_CRYPTO_HW is not set |
| 520 | CONFIG_XZ_DEC_X86=y | ||
| 521 | CONFIG_XZ_DEC_POWERPC=y | ||
| 522 | CONFIG_XZ_DEC_IA64=y | ||
| 523 | CONFIG_XZ_DEC_ARM=y | ||
| 524 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 525 | CONFIG_XZ_DEC_SPARC=y | ||
| 526 | CONFIG_XZ_DEC_TEST=m | 577 | CONFIG_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 | |||
| 34 | CONFIG_APOLLO=y | 34 | CONFIG_APOLLO=y |
| 35 | # CONFIG_COMPACTION is not set | 35 | # CONFIG_COMPACTION is not set |
| 36 | CONFIG_CLEANCACHE=y | 36 | CONFIG_CLEANCACHE=y |
| 37 | CONFIG_ZPOOL=m | ||
| 37 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 38 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 38 | CONFIG_BINFMT_AOUT=m | 39 | CONFIG_BINFMT_AOUT=m |
| 39 | CONFIG_BINFMT_MISC=m | 40 | CONFIG_BINFMT_MISC=m |
| @@ -53,6 +54,8 @@ CONFIG_NET_IPIP=m | |||
| 53 | CONFIG_NET_IPGRE_DEMUX=m | 54 | CONFIG_NET_IPGRE_DEMUX=m |
| 54 | CONFIG_NET_IPGRE=m | 55 | CONFIG_NET_IPGRE=m |
| 55 | CONFIG_NET_IPVTI=m | 56 | CONFIG_NET_IPVTI=m |
| 57 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 58 | CONFIG_GENEVE=m | ||
| 56 | CONFIG_INET_AH=m | 59 | CONFIG_INET_AH=m |
| 57 | CONFIG_INET_ESP=m | 60 | CONFIG_INET_ESP=m |
| 58 | CONFIG_INET_IPCOMP=m | 61 | CONFIG_INET_IPCOMP=m |
| @@ -94,6 +97,8 @@ CONFIG_NFT_HASH=m | |||
| 94 | CONFIG_NFT_COUNTER=m | 97 | CONFIG_NFT_COUNTER=m |
| 95 | CONFIG_NFT_LOG=m | 98 | CONFIG_NFT_LOG=m |
| 96 | CONFIG_NFT_LIMIT=m | 99 | CONFIG_NFT_LIMIT=m |
| 100 | CONFIG_NFT_MASQ=m | ||
| 101 | CONFIG_NFT_REDIR=m | ||
| 97 | CONFIG_NFT_NAT=m | 102 | CONFIG_NFT_NAT=m |
| 98 | CONFIG_NFT_QUEUE=m | 103 | CONFIG_NFT_QUEUE=m |
| 99 | CONFIG_NFT_REJECT=m | 104 | CONFIG_NFT_REJECT=m |
| @@ -140,6 +145,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 140 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 145 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 141 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 146 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 142 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 147 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 148 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 143 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 149 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 144 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 150 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 145 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 151 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -161,6 +167,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 161 | CONFIG_IP_SET_HASH_IPPORT=m | 167 | CONFIG_IP_SET_HASH_IPPORT=m |
| 162 | CONFIG_IP_SET_HASH_IPPORTIP=m | 168 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 163 | CONFIG_IP_SET_HASH_IPPORTNET=m | 169 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 170 | CONFIG_IP_SET_HASH_MAC=m | ||
| 164 | CONFIG_IP_SET_HASH_NETPORTNET=m | 171 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 165 | CONFIG_IP_SET_HASH_NET=m | 172 | CONFIG_IP_SET_HASH_NET=m |
| 166 | CONFIG_IP_SET_HASH_NETNET=m | 173 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -168,9 +175,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 168 | CONFIG_IP_SET_HASH_NETIFACE=m | 175 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 169 | CONFIG_IP_SET_LIST_SET=m | 176 | CONFIG_IP_SET_LIST_SET=m |
| 170 | CONFIG_NF_CONNTRACK_IPV4=m | 177 | CONFIG_NF_CONNTRACK_IPV4=m |
| 178 | CONFIG_NF_LOG_ARP=m | ||
| 171 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 179 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 172 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 173 | CONFIG_NF_TABLES_ARP=m | 180 | CONFIG_NF_TABLES_ARP=m |
| 181 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 182 | CONFIG_NFT_MASQ_IPV4=m | ||
| 183 | CONFIG_NFT_REDIR_IPV4=m | ||
| 174 | CONFIG_IP_NF_IPTABLES=m | 184 | CONFIG_IP_NF_IPTABLES=m |
| 175 | CONFIG_IP_NF_MATCH_AH=m | 185 | CONFIG_IP_NF_MATCH_AH=m |
| 176 | CONFIG_IP_NF_MATCH_ECN=m | 186 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -179,8 +189,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 179 | CONFIG_IP_NF_FILTER=m | 189 | CONFIG_IP_NF_FILTER=m |
| 180 | CONFIG_IP_NF_TARGET_REJECT=m | 190 | CONFIG_IP_NF_TARGET_REJECT=m |
| 181 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 191 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 182 | CONFIG_IP_NF_TARGET_ULOG=m | 192 | CONFIG_IP_NF_NAT=m |
| 183 | CONFIG_NF_NAT_IPV4=m | ||
| 184 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 193 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 185 | CONFIG_IP_NF_TARGET_NETMAP=m | 194 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 186 | CONFIG_IP_NF_TARGET_REDIRECT=m | 195 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -195,6 +204,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 195 | CONFIG_NF_CONNTRACK_IPV6=m | 204 | CONFIG_NF_CONNTRACK_IPV6=m |
| 196 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 205 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 197 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 206 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 207 | CONFIG_NFT_MASQ_IPV6=m | ||
| 208 | CONFIG_NFT_REDIR_IPV6=m | ||
| 198 | CONFIG_IP6_NF_IPTABLES=m | 209 | CONFIG_IP6_NF_IPTABLES=m |
| 199 | CONFIG_IP6_NF_MATCH_AH=m | 210 | CONFIG_IP6_NF_MATCH_AH=m |
| 200 | CONFIG_IP6_NF_MATCH_EUI64=m | 211 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -211,17 +222,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 211 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 222 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 212 | CONFIG_IP6_NF_MANGLE=m | 223 | CONFIG_IP6_NF_MANGLE=m |
| 213 | CONFIG_IP6_NF_RAW=m | 224 | CONFIG_IP6_NF_RAW=m |
| 214 | CONFIG_NF_NAT_IPV6=m | 225 | CONFIG_IP6_NF_NAT=m |
| 215 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 226 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 216 | CONFIG_IP6_NF_TARGET_NPT=m | 227 | CONFIG_IP6_NF_TARGET_NPT=m |
| 217 | CONFIG_NF_TABLES_BRIDGE=m | 228 | CONFIG_NF_TABLES_BRIDGE=m |
| 229 | CONFIG_NFT_BRIDGE_META=m | ||
| 230 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 231 | CONFIG_NF_LOG_BRIDGE=m | ||
| 232 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 233 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 234 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 235 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 236 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 237 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 238 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 239 | CONFIG_BRIDGE_EBT_IP=m | ||
| 240 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 241 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 242 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 243 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 244 | CONFIG_BRIDGE_EBT_STP=m | ||
| 245 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 246 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 247 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 248 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 249 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 250 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 251 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 252 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 218 | CONFIG_IP_DCCP=m | 253 | CONFIG_IP_DCCP=m |
| 219 | # CONFIG_IP_DCCP_CCID3 is not set | 254 | # CONFIG_IP_DCCP_CCID3 is not set |
| 220 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 255 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 221 | CONFIG_RDS=m | 256 | CONFIG_RDS=m |
| 222 | CONFIG_RDS_TCP=m | 257 | CONFIG_RDS_TCP=m |
| 223 | CONFIG_L2TP=m | 258 | CONFIG_L2TP=m |
| 259 | CONFIG_BRIDGE=m | ||
| 224 | CONFIG_ATALK=m | 260 | CONFIG_ATALK=m |
| 261 | CONFIG_6LOWPAN=m | ||
| 225 | CONFIG_DNS_RESOLVER=y | 262 | CONFIG_DNS_RESOLVER=y |
| 226 | CONFIG_BATMAN_ADV=m | 263 | CONFIG_BATMAN_ADV=m |
| 227 | CONFIG_BATMAN_ADV_DAT=y | 264 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -230,9 +267,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 230 | CONFIG_NETLINK_DIAG=m | 267 | CONFIG_NETLINK_DIAG=m |
| 231 | CONFIG_NET_MPLS_GSO=m | 268 | CONFIG_NET_MPLS_GSO=m |
| 232 | # CONFIG_WIRELESS is not set | 269 | # CONFIG_WIRELESS is not set |
| 270 | # CONFIG_UEVENT_HELPER is not set | ||
| 233 | CONFIG_DEVTMPFS=y | 271 | CONFIG_DEVTMPFS=y |
| 272 | CONFIG_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 | ||
| 236 | CONFIG_CONNECTOR=m | 274 | CONFIG_CONNECTOR=m |
| 237 | CONFIG_BLK_DEV_LOOP=y | 275 | CONFIG_BLK_DEV_LOOP=y |
| 238 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 276 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -281,6 +319,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 281 | CONFIG_NET_TEAM_MODE_RANDOM=m | 319 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 282 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 320 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 283 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 321 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 322 | CONFIG_MACVLAN=m | ||
| 323 | CONFIG_MACVTAP=m | ||
| 324 | CONFIG_IPVLAN=m | ||
| 284 | CONFIG_VXLAN=m | 325 | CONFIG_VXLAN=m |
| 285 | CONFIG_NETCONSOLE=m | 326 | CONFIG_NETCONSOLE=m |
| 286 | CONFIG_NETCONSOLE_DYNAMIC=y | 327 | CONFIG_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 | |||
| 332 | CONFIG_HIDRAW=y | 375 | CONFIG_HIDRAW=y |
| 333 | CONFIG_UHID=m | 376 | CONFIG_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 |
| 336 | CONFIG_RTC_CLASS=y | 380 | CONFIG_RTC_CLASS=y |
| 337 | CONFIG_RTC_DRV_GENERIC=m | 381 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -350,6 +394,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 350 | CONFIG_AUTOFS4_FS=m | 394 | CONFIG_AUTOFS4_FS=m |
| 351 | CONFIG_FUSE_FS=m | 395 | CONFIG_FUSE_FS=m |
| 352 | CONFIG_CUSE=m | 396 | CONFIG_CUSE=m |
| 397 | CONFIG_OVERLAY_FS=m | ||
| 353 | CONFIG_ISO9660_FS=y | 398 | CONFIG_ISO9660_FS=y |
| 354 | CONFIG_JOLIET=y | 399 | CONFIG_JOLIET=y |
| 355 | CONFIG_ZISOFS=y | 400 | CONFIG_ZISOFS=y |
| @@ -365,6 +410,7 @@ CONFIG_HFS_FS=m | |||
| 365 | CONFIG_HFSPLUS_FS=m | 410 | CONFIG_HFSPLUS_FS=m |
| 366 | CONFIG_CRAMFS=m | 411 | CONFIG_CRAMFS=m |
| 367 | CONFIG_SQUASHFS=m | 412 | CONFIG_SQUASHFS=m |
| 413 | CONFIG_SQUASHFS_LZ4=y | ||
| 368 | CONFIG_SQUASHFS_LZO=y | 414 | CONFIG_SQUASHFS_LZO=y |
| 369 | CONFIG_MINIX_FS=m | 415 | CONFIG_MINIX_FS=m |
| 370 | CONFIG_OMFS_FS=m | 416 | CONFIG_OMFS_FS=m |
| @@ -434,10 +480,18 @@ CONFIG_DLM=m | |||
| 434 | CONFIG_MAGIC_SYSRQ=y | 480 | CONFIG_MAGIC_SYSRQ=y |
| 435 | CONFIG_ASYNC_RAID6_TEST=m | 481 | CONFIG_ASYNC_RAID6_TEST=m |
| 436 | CONFIG_TEST_STRING_HELPERS=m | 482 | CONFIG_TEST_STRING_HELPERS=m |
| 483 | CONFIG_TEST_KSTRTOX=m | ||
| 484 | CONFIG_TEST_LKM=m | ||
| 485 | CONFIG_TEST_USER_COPY=m | ||
| 486 | CONFIG_TEST_BPF=m | ||
| 487 | CONFIG_TEST_FIRMWARE=m | ||
| 488 | CONFIG_TEST_UDELAY=m | ||
| 489 | CONFIG_EARLY_PRINTK=y | ||
| 437 | CONFIG_ENCRYPTED_KEYS=m | 490 | CONFIG_ENCRYPTED_KEYS=m |
| 438 | CONFIG_CRYPTO_MANAGER=y | 491 | CONFIG_CRYPTO_MANAGER=y |
| 439 | CONFIG_CRYPTO_USER=m | 492 | CONFIG_CRYPTO_USER=m |
| 440 | CONFIG_CRYPTO_CRYPTD=m | 493 | CONFIG_CRYPTO_CRYPTD=m |
| 494 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 441 | CONFIG_CRYPTO_TEST=m | 495 | CONFIG_CRYPTO_TEST=m |
| 442 | CONFIG_CRYPTO_CCM=m | 496 | CONFIG_CRYPTO_CCM=m |
| 443 | CONFIG_CRYPTO_GCM=m | 497 | CONFIG_CRYPTO_GCM=m |
| @@ -472,13 +526,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 472 | CONFIG_CRYPTO_LZ4=m | 526 | CONFIG_CRYPTO_LZ4=m |
| 473 | CONFIG_CRYPTO_LZ4HC=m | 527 | CONFIG_CRYPTO_LZ4HC=m |
| 474 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 528 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 529 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 530 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 531 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 475 | CONFIG_CRYPTO_USER_API_HASH=m | 532 | CONFIG_CRYPTO_USER_API_HASH=m |
| 476 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 533 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 477 | # CONFIG_CRYPTO_HW is not set | 534 | # CONFIG_CRYPTO_HW is not set |
| 478 | CONFIG_XZ_DEC_X86=y | ||
| 479 | CONFIG_XZ_DEC_POWERPC=y | ||
| 480 | CONFIG_XZ_DEC_IA64=y | ||
| 481 | CONFIG_XZ_DEC_ARM=y | ||
| 482 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 483 | CONFIG_XZ_DEC_SPARC=y | ||
| 484 | CONFIG_XZ_DEC_TEST=m | 535 | CONFIG_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 | |||
| 31 | CONFIG_M68040=y | 31 | CONFIG_M68040=y |
| 32 | CONFIG_M68060=y | 32 | CONFIG_M68060=y |
| 33 | CONFIG_ATARI=y | 33 | CONFIG_ATARI=y |
| 34 | CONFIG_ATARI_ROM_ISA=y | ||
| 34 | # CONFIG_COMPACTION is not set | 35 | # CONFIG_COMPACTION is not set |
| 35 | CONFIG_CLEANCACHE=y | 36 | CONFIG_CLEANCACHE=y |
| 37 | CONFIG_ZPOOL=m | ||
| 36 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 38 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 37 | CONFIG_BINFMT_AOUT=m | 39 | CONFIG_BINFMT_AOUT=m |
| 38 | CONFIG_BINFMT_MISC=m | 40 | CONFIG_BINFMT_MISC=m |
| @@ -52,6 +54,8 @@ CONFIG_NET_IPIP=m | |||
| 52 | CONFIG_NET_IPGRE_DEMUX=m | 54 | CONFIG_NET_IPGRE_DEMUX=m |
| 53 | CONFIG_NET_IPGRE=m | 55 | CONFIG_NET_IPGRE=m |
| 54 | CONFIG_NET_IPVTI=m | 56 | CONFIG_NET_IPVTI=m |
| 57 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 58 | CONFIG_GENEVE=m | ||
| 55 | CONFIG_INET_AH=m | 59 | CONFIG_INET_AH=m |
| 56 | CONFIG_INET_ESP=m | 60 | CONFIG_INET_ESP=m |
| 57 | CONFIG_INET_IPCOMP=m | 61 | CONFIG_INET_IPCOMP=m |
| @@ -93,6 +97,8 @@ CONFIG_NFT_HASH=m | |||
| 93 | CONFIG_NFT_COUNTER=m | 97 | CONFIG_NFT_COUNTER=m |
| 94 | CONFIG_NFT_LOG=m | 98 | CONFIG_NFT_LOG=m |
| 95 | CONFIG_NFT_LIMIT=m | 99 | CONFIG_NFT_LIMIT=m |
| 100 | CONFIG_NFT_MASQ=m | ||
| 101 | CONFIG_NFT_REDIR=m | ||
| 96 | CONFIG_NFT_NAT=m | 102 | CONFIG_NFT_NAT=m |
| 97 | CONFIG_NFT_QUEUE=m | 103 | CONFIG_NFT_QUEUE=m |
| 98 | CONFIG_NFT_REJECT=m | 104 | CONFIG_NFT_REJECT=m |
| @@ -139,6 +145,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 139 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 145 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 146 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 141 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 147 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 148 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 142 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 149 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 150 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 144 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 151 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -160,6 +167,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 160 | CONFIG_IP_SET_HASH_IPPORT=m | 167 | CONFIG_IP_SET_HASH_IPPORT=m |
| 161 | CONFIG_IP_SET_HASH_IPPORTIP=m | 168 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 162 | CONFIG_IP_SET_HASH_IPPORTNET=m | 169 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 170 | CONFIG_IP_SET_HASH_MAC=m | ||
| 163 | CONFIG_IP_SET_HASH_NETPORTNET=m | 171 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 164 | CONFIG_IP_SET_HASH_NET=m | 172 | CONFIG_IP_SET_HASH_NET=m |
| 165 | CONFIG_IP_SET_HASH_NETNET=m | 173 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -167,9 +175,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 167 | CONFIG_IP_SET_HASH_NETIFACE=m | 175 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 168 | CONFIG_IP_SET_LIST_SET=m | 176 | CONFIG_IP_SET_LIST_SET=m |
| 169 | CONFIG_NF_CONNTRACK_IPV4=m | 177 | CONFIG_NF_CONNTRACK_IPV4=m |
| 178 | CONFIG_NF_LOG_ARP=m | ||
| 170 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 179 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 171 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 172 | CONFIG_NF_TABLES_ARP=m | 180 | CONFIG_NF_TABLES_ARP=m |
| 181 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 182 | CONFIG_NFT_MASQ_IPV4=m | ||
| 183 | CONFIG_NFT_REDIR_IPV4=m | ||
| 173 | CONFIG_IP_NF_IPTABLES=m | 184 | CONFIG_IP_NF_IPTABLES=m |
| 174 | CONFIG_IP_NF_MATCH_AH=m | 185 | CONFIG_IP_NF_MATCH_AH=m |
| 175 | CONFIG_IP_NF_MATCH_ECN=m | 186 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -178,8 +189,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 178 | CONFIG_IP_NF_FILTER=m | 189 | CONFIG_IP_NF_FILTER=m |
| 179 | CONFIG_IP_NF_TARGET_REJECT=m | 190 | CONFIG_IP_NF_TARGET_REJECT=m |
| 180 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 191 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 181 | CONFIG_IP_NF_TARGET_ULOG=m | 192 | CONFIG_IP_NF_NAT=m |
| 182 | CONFIG_NF_NAT_IPV4=m | ||
| 183 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 193 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 184 | CONFIG_IP_NF_TARGET_NETMAP=m | 194 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 185 | CONFIG_IP_NF_TARGET_REDIRECT=m | 195 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -194,6 +204,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 194 | CONFIG_NF_CONNTRACK_IPV6=m | 204 | CONFIG_NF_CONNTRACK_IPV6=m |
| 195 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 205 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 196 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 206 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 207 | CONFIG_NFT_MASQ_IPV6=m | ||
| 208 | CONFIG_NFT_REDIR_IPV6=m | ||
| 197 | CONFIG_IP6_NF_IPTABLES=m | 209 | CONFIG_IP6_NF_IPTABLES=m |
| 198 | CONFIG_IP6_NF_MATCH_AH=m | 210 | CONFIG_IP6_NF_MATCH_AH=m |
| 199 | CONFIG_IP6_NF_MATCH_EUI64=m | 211 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -210,17 +222,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 210 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 222 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 211 | CONFIG_IP6_NF_MANGLE=m | 223 | CONFIG_IP6_NF_MANGLE=m |
| 212 | CONFIG_IP6_NF_RAW=m | 224 | CONFIG_IP6_NF_RAW=m |
| 213 | CONFIG_NF_NAT_IPV6=m | 225 | CONFIG_IP6_NF_NAT=m |
| 214 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 226 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 215 | CONFIG_IP6_NF_TARGET_NPT=m | 227 | CONFIG_IP6_NF_TARGET_NPT=m |
| 216 | CONFIG_NF_TABLES_BRIDGE=m | 228 | CONFIG_NF_TABLES_BRIDGE=m |
| 229 | CONFIG_NFT_BRIDGE_META=m | ||
| 230 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 231 | CONFIG_NF_LOG_BRIDGE=m | ||
| 232 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 233 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 234 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 235 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 236 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 237 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 238 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 239 | CONFIG_BRIDGE_EBT_IP=m | ||
| 240 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 241 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 242 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 243 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 244 | CONFIG_BRIDGE_EBT_STP=m | ||
| 245 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 246 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 247 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 248 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 249 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 250 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 251 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 252 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 217 | CONFIG_IP_DCCP=m | 253 | CONFIG_IP_DCCP=m |
| 218 | # CONFIG_IP_DCCP_CCID3 is not set | 254 | # CONFIG_IP_DCCP_CCID3 is not set |
| 219 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 255 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 220 | CONFIG_RDS=m | 256 | CONFIG_RDS=m |
| 221 | CONFIG_RDS_TCP=m | 257 | CONFIG_RDS_TCP=m |
| 222 | CONFIG_L2TP=m | 258 | CONFIG_L2TP=m |
| 259 | CONFIG_BRIDGE=m | ||
| 223 | CONFIG_ATALK=m | 260 | CONFIG_ATALK=m |
| 261 | CONFIG_6LOWPAN=m | ||
| 224 | CONFIG_DNS_RESOLVER=y | 262 | CONFIG_DNS_RESOLVER=y |
| 225 | CONFIG_BATMAN_ADV=m | 263 | CONFIG_BATMAN_ADV=m |
| 226 | CONFIG_BATMAN_ADV_DAT=y | 264 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -229,9 +267,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 229 | CONFIG_NETLINK_DIAG=m | 267 | CONFIG_NETLINK_DIAG=m |
| 230 | CONFIG_NET_MPLS_GSO=m | 268 | CONFIG_NET_MPLS_GSO=m |
| 231 | # CONFIG_WIRELESS is not set | 269 | # CONFIG_WIRELESS is not set |
| 270 | # CONFIG_UEVENT_HELPER is not set | ||
| 232 | CONFIG_DEVTMPFS=y | 271 | CONFIG_DEVTMPFS=y |
| 272 | CONFIG_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 | ||
| 235 | CONFIG_CONNECTOR=m | 274 | CONFIG_CONNECTOR=m |
| 236 | CONFIG_PARPORT=m | 275 | CONFIG_PARPORT=m |
| 237 | CONFIG_PARPORT_ATARI=m | 276 | CONFIG_PARPORT_ATARI=m |
| @@ -289,6 +328,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 289 | CONFIG_NET_TEAM_MODE_RANDOM=m | 328 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 290 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 329 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 291 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 330 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 331 | CONFIG_MACVLAN=m | ||
| 332 | CONFIG_MACVTAP=m | ||
| 333 | CONFIG_IPVLAN=m | ||
| 292 | CONFIG_VXLAN=m | 334 | CONFIG_VXLAN=m |
| 293 | CONFIG_NETCONSOLE=m | 335 | CONFIG_NETCONSOLE=m |
| 294 | CONFIG_NETCONSOLE_DYNAMIC=y | 336 | CONFIG_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 |
| 344 | CONFIG_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 |
| 349 | CONFIG_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 | |||
| 345 | CONFIG_HID=m | 391 | CONFIG_HID=m |
| 346 | CONFIG_HIDRAW=y | 392 | CONFIG_HIDRAW=y |
| 347 | CONFIG_UHID=m | 393 | CONFIG_UHID=m |
| 394 | # CONFIG_HID_PLANTRONICS is not set | ||
| 348 | CONFIG_RTC_CLASS=y | 395 | CONFIG_RTC_CLASS=y |
| 349 | CONFIG_RTC_DRV_GENERIC=m | 396 | CONFIG_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 | |||
| 354 | CONFIG_NFBLOCK=y | 401 | CONFIG_NFBLOCK=y |
| 355 | CONFIG_NFCON=y | 402 | CONFIG_NFCON=y |
| 356 | CONFIG_NFETH=y | 403 | CONFIG_NFETH=y |
| 404 | CONFIG_ATARI_ETHERNAT=y | ||
| 405 | CONFIG_ATARI_ETHERNEC=y | ||
| 357 | CONFIG_ATARI_DSP56K=m | 406 | CONFIG_ATARI_DSP56K=m |
| 358 | CONFIG_EXT4_FS=y | 407 | CONFIG_EXT4_FS=y |
| 359 | CONFIG_REISERFS_FS=m | 408 | CONFIG_REISERFS_FS=m |
| @@ -367,6 +416,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 367 | CONFIG_AUTOFS4_FS=m | 416 | CONFIG_AUTOFS4_FS=m |
| 368 | CONFIG_FUSE_FS=m | 417 | CONFIG_FUSE_FS=m |
| 369 | CONFIG_CUSE=m | 418 | CONFIG_CUSE=m |
| 419 | CONFIG_OVERLAY_FS=m | ||
| 370 | CONFIG_ISO9660_FS=y | 420 | CONFIG_ISO9660_FS=y |
| 371 | CONFIG_JOLIET=y | 421 | CONFIG_JOLIET=y |
| 372 | CONFIG_ZISOFS=y | 422 | CONFIG_ZISOFS=y |
| @@ -382,6 +432,7 @@ CONFIG_HFS_FS=m | |||
| 382 | CONFIG_HFSPLUS_FS=m | 432 | CONFIG_HFSPLUS_FS=m |
| 383 | CONFIG_CRAMFS=m | 433 | CONFIG_CRAMFS=m |
| 384 | CONFIG_SQUASHFS=m | 434 | CONFIG_SQUASHFS=m |
| 435 | CONFIG_SQUASHFS_LZ4=y | ||
| 385 | CONFIG_SQUASHFS_LZO=y | 436 | CONFIG_SQUASHFS_LZO=y |
| 386 | CONFIG_MINIX_FS=m | 437 | CONFIG_MINIX_FS=m |
| 387 | CONFIG_OMFS_FS=m | 438 | CONFIG_OMFS_FS=m |
| @@ -451,10 +502,18 @@ CONFIG_DLM=m | |||
| 451 | CONFIG_MAGIC_SYSRQ=y | 502 | CONFIG_MAGIC_SYSRQ=y |
| 452 | CONFIG_ASYNC_RAID6_TEST=m | 503 | CONFIG_ASYNC_RAID6_TEST=m |
| 453 | CONFIG_TEST_STRING_HELPERS=m | 504 | CONFIG_TEST_STRING_HELPERS=m |
| 505 | CONFIG_TEST_KSTRTOX=m | ||
| 506 | CONFIG_TEST_LKM=m | ||
| 507 | CONFIG_TEST_USER_COPY=m | ||
| 508 | CONFIG_TEST_BPF=m | ||
| 509 | CONFIG_TEST_FIRMWARE=m | ||
| 510 | CONFIG_TEST_UDELAY=m | ||
| 511 | CONFIG_EARLY_PRINTK=y | ||
| 454 | CONFIG_ENCRYPTED_KEYS=m | 512 | CONFIG_ENCRYPTED_KEYS=m |
| 455 | CONFIG_CRYPTO_MANAGER=y | 513 | CONFIG_CRYPTO_MANAGER=y |
| 456 | CONFIG_CRYPTO_USER=m | 514 | CONFIG_CRYPTO_USER=m |
| 457 | CONFIG_CRYPTO_CRYPTD=m | 515 | CONFIG_CRYPTO_CRYPTD=m |
| 516 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 458 | CONFIG_CRYPTO_TEST=m | 517 | CONFIG_CRYPTO_TEST=m |
| 459 | CONFIG_CRYPTO_CCM=m | 518 | CONFIG_CRYPTO_CCM=m |
| 460 | CONFIG_CRYPTO_GCM=m | 519 | CONFIG_CRYPTO_GCM=m |
| @@ -489,13 +548,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 489 | CONFIG_CRYPTO_LZ4=m | 548 | CONFIG_CRYPTO_LZ4=m |
| 490 | CONFIG_CRYPTO_LZ4HC=m | 549 | CONFIG_CRYPTO_LZ4HC=m |
| 491 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 550 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 551 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 552 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 553 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 492 | CONFIG_CRYPTO_USER_API_HASH=m | 554 | CONFIG_CRYPTO_USER_API_HASH=m |
| 493 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 555 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 494 | # CONFIG_CRYPTO_HW is not set | 556 | # CONFIG_CRYPTO_HW is not set |
| 495 | CONFIG_XZ_DEC_X86=y | ||
| 496 | CONFIG_XZ_DEC_POWERPC=y | ||
| 497 | CONFIG_XZ_DEC_IA64=y | ||
| 498 | CONFIG_XZ_DEC_ARM=y | ||
| 499 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 500 | CONFIG_XZ_DEC_SPARC=y | ||
| 501 | CONFIG_XZ_DEC_TEST=m | 557 | CONFIG_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 | |||
| 32 | CONFIG_BVME6000=y | 32 | CONFIG_BVME6000=y |
| 33 | # CONFIG_COMPACTION is not set | 33 | # CONFIG_COMPACTION is not set |
| 34 | CONFIG_CLEANCACHE=y | 34 | CONFIG_CLEANCACHE=y |
| 35 | CONFIG_ZPOOL=m | ||
| 35 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 36 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 36 | CONFIG_BINFMT_AOUT=m | 37 | CONFIG_BINFMT_AOUT=m |
| 37 | CONFIG_BINFMT_MISC=m | 38 | CONFIG_BINFMT_MISC=m |
| @@ -51,6 +52,8 @@ CONFIG_NET_IPIP=m | |||
| 51 | CONFIG_NET_IPGRE_DEMUX=m | 52 | CONFIG_NET_IPGRE_DEMUX=m |
| 52 | CONFIG_NET_IPGRE=m | 53 | CONFIG_NET_IPGRE=m |
| 53 | CONFIG_NET_IPVTI=m | 54 | CONFIG_NET_IPVTI=m |
| 55 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 56 | CONFIG_GENEVE=m | ||
| 54 | CONFIG_INET_AH=m | 57 | CONFIG_INET_AH=m |
| 55 | CONFIG_INET_ESP=m | 58 | CONFIG_INET_ESP=m |
| 56 | CONFIG_INET_IPCOMP=m | 59 | CONFIG_INET_IPCOMP=m |
| @@ -92,6 +95,8 @@ CONFIG_NFT_HASH=m | |||
| 92 | CONFIG_NFT_COUNTER=m | 95 | CONFIG_NFT_COUNTER=m |
| 93 | CONFIG_NFT_LOG=m | 96 | CONFIG_NFT_LOG=m |
| 94 | CONFIG_NFT_LIMIT=m | 97 | CONFIG_NFT_LIMIT=m |
| 98 | CONFIG_NFT_MASQ=m | ||
| 99 | CONFIG_NFT_REDIR=m | ||
| 95 | CONFIG_NFT_NAT=m | 100 | CONFIG_NFT_NAT=m |
| 96 | CONFIG_NFT_QUEUE=m | 101 | CONFIG_NFT_QUEUE=m |
| 97 | CONFIG_NFT_REJECT=m | 102 | CONFIG_NFT_REJECT=m |
| @@ -138,6 +143,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 138 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 143 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 139 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 144 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 145 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 146 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 141 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 147 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 142 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 148 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 149 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -159,6 +165,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 159 | CONFIG_IP_SET_HASH_IPPORT=m | 165 | CONFIG_IP_SET_HASH_IPPORT=m |
| 160 | CONFIG_IP_SET_HASH_IPPORTIP=m | 166 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 161 | CONFIG_IP_SET_HASH_IPPORTNET=m | 167 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 168 | CONFIG_IP_SET_HASH_MAC=m | ||
| 162 | CONFIG_IP_SET_HASH_NETPORTNET=m | 169 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 163 | CONFIG_IP_SET_HASH_NET=m | 170 | CONFIG_IP_SET_HASH_NET=m |
| 164 | CONFIG_IP_SET_HASH_NETNET=m | 171 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -166,9 +173,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 166 | CONFIG_IP_SET_HASH_NETIFACE=m | 173 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 167 | CONFIG_IP_SET_LIST_SET=m | 174 | CONFIG_IP_SET_LIST_SET=m |
| 168 | CONFIG_NF_CONNTRACK_IPV4=m | 175 | CONFIG_NF_CONNTRACK_IPV4=m |
| 176 | CONFIG_NF_LOG_ARP=m | ||
| 169 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 177 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 170 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 171 | CONFIG_NF_TABLES_ARP=m | 178 | CONFIG_NF_TABLES_ARP=m |
| 179 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 180 | CONFIG_NFT_MASQ_IPV4=m | ||
| 181 | CONFIG_NFT_REDIR_IPV4=m | ||
| 172 | CONFIG_IP_NF_IPTABLES=m | 182 | CONFIG_IP_NF_IPTABLES=m |
| 173 | CONFIG_IP_NF_MATCH_AH=m | 183 | CONFIG_IP_NF_MATCH_AH=m |
| 174 | CONFIG_IP_NF_MATCH_ECN=m | 184 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -177,8 +187,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 177 | CONFIG_IP_NF_FILTER=m | 187 | CONFIG_IP_NF_FILTER=m |
| 178 | CONFIG_IP_NF_TARGET_REJECT=m | 188 | CONFIG_IP_NF_TARGET_REJECT=m |
| 179 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 189 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 180 | CONFIG_IP_NF_TARGET_ULOG=m | 190 | CONFIG_IP_NF_NAT=m |
| 181 | CONFIG_NF_NAT_IPV4=m | ||
| 182 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 191 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 183 | CONFIG_IP_NF_TARGET_NETMAP=m | 192 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 184 | CONFIG_IP_NF_TARGET_REDIRECT=m | 193 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -193,6 +202,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 193 | CONFIG_NF_CONNTRACK_IPV6=m | 202 | CONFIG_NF_CONNTRACK_IPV6=m |
| 194 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 203 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 195 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 204 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 205 | CONFIG_NFT_MASQ_IPV6=m | ||
| 206 | CONFIG_NFT_REDIR_IPV6=m | ||
| 196 | CONFIG_IP6_NF_IPTABLES=m | 207 | CONFIG_IP6_NF_IPTABLES=m |
| 197 | CONFIG_IP6_NF_MATCH_AH=m | 208 | CONFIG_IP6_NF_MATCH_AH=m |
| 198 | CONFIG_IP6_NF_MATCH_EUI64=m | 209 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -209,17 +220,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 209 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 220 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 210 | CONFIG_IP6_NF_MANGLE=m | 221 | CONFIG_IP6_NF_MANGLE=m |
| 211 | CONFIG_IP6_NF_RAW=m | 222 | CONFIG_IP6_NF_RAW=m |
| 212 | CONFIG_NF_NAT_IPV6=m | 223 | CONFIG_IP6_NF_NAT=m |
| 213 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 224 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 214 | CONFIG_IP6_NF_TARGET_NPT=m | 225 | CONFIG_IP6_NF_TARGET_NPT=m |
| 215 | CONFIG_NF_TABLES_BRIDGE=m | 226 | CONFIG_NF_TABLES_BRIDGE=m |
| 227 | CONFIG_NFT_BRIDGE_META=m | ||
| 228 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 229 | CONFIG_NF_LOG_BRIDGE=m | ||
| 230 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 231 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 232 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 233 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 234 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 235 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 236 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 237 | CONFIG_BRIDGE_EBT_IP=m | ||
| 238 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 239 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 240 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 241 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 242 | CONFIG_BRIDGE_EBT_STP=m | ||
| 243 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 244 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 245 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 246 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 247 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 248 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 249 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 250 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 216 | CONFIG_IP_DCCP=m | 251 | CONFIG_IP_DCCP=m |
| 217 | # CONFIG_IP_DCCP_CCID3 is not set | 252 | # CONFIG_IP_DCCP_CCID3 is not set |
| 218 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 253 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 219 | CONFIG_RDS=m | 254 | CONFIG_RDS=m |
| 220 | CONFIG_RDS_TCP=m | 255 | CONFIG_RDS_TCP=m |
| 221 | CONFIG_L2TP=m | 256 | CONFIG_L2TP=m |
| 257 | CONFIG_BRIDGE=m | ||
| 222 | CONFIG_ATALK=m | 258 | CONFIG_ATALK=m |
| 259 | CONFIG_6LOWPAN=m | ||
| 223 | CONFIG_DNS_RESOLVER=y | 260 | CONFIG_DNS_RESOLVER=y |
| 224 | CONFIG_BATMAN_ADV=m | 261 | CONFIG_BATMAN_ADV=m |
| 225 | CONFIG_BATMAN_ADV_DAT=y | 262 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -228,9 +265,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 228 | CONFIG_NETLINK_DIAG=m | 265 | CONFIG_NETLINK_DIAG=m |
| 229 | CONFIG_NET_MPLS_GSO=m | 266 | CONFIG_NET_MPLS_GSO=m |
| 230 | # CONFIG_WIRELESS is not set | 267 | # CONFIG_WIRELESS is not set |
| 268 | # CONFIG_UEVENT_HELPER is not set | ||
| 231 | CONFIG_DEVTMPFS=y | 269 | CONFIG_DEVTMPFS=y |
| 270 | CONFIG_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 | ||
| 234 | CONFIG_CONNECTOR=m | 272 | CONFIG_CONNECTOR=m |
| 235 | CONFIG_BLK_DEV_LOOP=y | 273 | CONFIG_BLK_DEV_LOOP=y |
| 236 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 274 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -280,6 +318,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 280 | CONFIG_NET_TEAM_MODE_RANDOM=m | 318 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 281 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 319 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 282 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 320 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 321 | CONFIG_MACVLAN=m | ||
| 322 | CONFIG_MACVTAP=m | ||
| 323 | CONFIG_IPVLAN=m | ||
| 283 | CONFIG_VXLAN=m | 324 | CONFIG_VXLAN=m |
| 284 | CONFIG_NETCONSOLE=m | 325 | CONFIG_NETCONSOLE=m |
| 285 | CONFIG_NETCONSOLE_DYNAMIC=y | 326 | CONFIG_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 | |||
| 326 | CONFIG_HIDRAW=y | 369 | CONFIG_HIDRAW=y |
| 327 | CONFIG_UHID=m | 370 | CONFIG_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 |
| 330 | CONFIG_RTC_CLASS=y | 374 | CONFIG_RTC_CLASS=y |
| 331 | CONFIG_RTC_DRV_GENERIC=m | 375 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -343,6 +387,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 343 | CONFIG_AUTOFS4_FS=m | 387 | CONFIG_AUTOFS4_FS=m |
| 344 | CONFIG_FUSE_FS=m | 388 | CONFIG_FUSE_FS=m |
| 345 | CONFIG_CUSE=m | 389 | CONFIG_CUSE=m |
| 390 | CONFIG_OVERLAY_FS=m | ||
| 346 | CONFIG_ISO9660_FS=y | 391 | CONFIG_ISO9660_FS=y |
| 347 | CONFIG_JOLIET=y | 392 | CONFIG_JOLIET=y |
| 348 | CONFIG_ZISOFS=y | 393 | CONFIG_ZISOFS=y |
| @@ -358,6 +403,7 @@ CONFIG_HFS_FS=m | |||
| 358 | CONFIG_HFSPLUS_FS=m | 403 | CONFIG_HFSPLUS_FS=m |
| 359 | CONFIG_CRAMFS=m | 404 | CONFIG_CRAMFS=m |
| 360 | CONFIG_SQUASHFS=m | 405 | CONFIG_SQUASHFS=m |
| 406 | CONFIG_SQUASHFS_LZ4=y | ||
| 361 | CONFIG_SQUASHFS_LZO=y | 407 | CONFIG_SQUASHFS_LZO=y |
| 362 | CONFIG_MINIX_FS=m | 408 | CONFIG_MINIX_FS=m |
| 363 | CONFIG_OMFS_FS=m | 409 | CONFIG_OMFS_FS=m |
| @@ -427,10 +473,18 @@ CONFIG_DLM=m | |||
| 427 | CONFIG_MAGIC_SYSRQ=y | 473 | CONFIG_MAGIC_SYSRQ=y |
| 428 | CONFIG_ASYNC_RAID6_TEST=m | 474 | CONFIG_ASYNC_RAID6_TEST=m |
| 429 | CONFIG_TEST_STRING_HELPERS=m | 475 | CONFIG_TEST_STRING_HELPERS=m |
| 476 | CONFIG_TEST_KSTRTOX=m | ||
| 477 | CONFIG_TEST_LKM=m | ||
| 478 | CONFIG_TEST_USER_COPY=m | ||
| 479 | CONFIG_TEST_BPF=m | ||
| 480 | CONFIG_TEST_FIRMWARE=m | ||
| 481 | CONFIG_TEST_UDELAY=m | ||
| 482 | CONFIG_EARLY_PRINTK=y | ||
| 430 | CONFIG_ENCRYPTED_KEYS=m | 483 | CONFIG_ENCRYPTED_KEYS=m |
| 431 | CONFIG_CRYPTO_MANAGER=y | 484 | CONFIG_CRYPTO_MANAGER=y |
| 432 | CONFIG_CRYPTO_USER=m | 485 | CONFIG_CRYPTO_USER=m |
| 433 | CONFIG_CRYPTO_CRYPTD=m | 486 | CONFIG_CRYPTO_CRYPTD=m |
| 487 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 434 | CONFIG_CRYPTO_TEST=m | 488 | CONFIG_CRYPTO_TEST=m |
| 435 | CONFIG_CRYPTO_CCM=m | 489 | CONFIG_CRYPTO_CCM=m |
| 436 | CONFIG_CRYPTO_GCM=m | 490 | CONFIG_CRYPTO_GCM=m |
| @@ -465,13 +519,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 465 | CONFIG_CRYPTO_LZ4=m | 519 | CONFIG_CRYPTO_LZ4=m |
| 466 | CONFIG_CRYPTO_LZ4HC=m | 520 | CONFIG_CRYPTO_LZ4HC=m |
| 467 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 521 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 522 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 523 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 524 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 468 | CONFIG_CRYPTO_USER_API_HASH=m | 525 | CONFIG_CRYPTO_USER_API_HASH=m |
| 469 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 526 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 470 | # CONFIG_CRYPTO_HW is not set | 527 | # CONFIG_CRYPTO_HW is not set |
| 471 | CONFIG_XZ_DEC_X86=y | ||
| 472 | CONFIG_XZ_DEC_POWERPC=y | ||
| 473 | CONFIG_XZ_DEC_IA64=y | ||
| 474 | CONFIG_XZ_DEC_ARM=y | ||
| 475 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 476 | CONFIG_XZ_DEC_SPARC=y | ||
| 477 | CONFIG_XZ_DEC_TEST=m | 528 | CONFIG_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 | |||
| 34 | CONFIG_HP300=y | 34 | CONFIG_HP300=y |
| 35 | # CONFIG_COMPACTION is not set | 35 | # CONFIG_COMPACTION is not set |
| 36 | CONFIG_CLEANCACHE=y | 36 | CONFIG_CLEANCACHE=y |
| 37 | CONFIG_ZPOOL=m | ||
| 37 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 38 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 38 | CONFIG_BINFMT_AOUT=m | 39 | CONFIG_BINFMT_AOUT=m |
| 39 | CONFIG_BINFMT_MISC=m | 40 | CONFIG_BINFMT_MISC=m |
| @@ -53,6 +54,8 @@ CONFIG_NET_IPIP=m | |||
| 53 | CONFIG_NET_IPGRE_DEMUX=m | 54 | CONFIG_NET_IPGRE_DEMUX=m |
| 54 | CONFIG_NET_IPGRE=m | 55 | CONFIG_NET_IPGRE=m |
| 55 | CONFIG_NET_IPVTI=m | 56 | CONFIG_NET_IPVTI=m |
| 57 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 58 | CONFIG_GENEVE=m | ||
| 56 | CONFIG_INET_AH=m | 59 | CONFIG_INET_AH=m |
| 57 | CONFIG_INET_ESP=m | 60 | CONFIG_INET_ESP=m |
| 58 | CONFIG_INET_IPCOMP=m | 61 | CONFIG_INET_IPCOMP=m |
| @@ -94,6 +97,8 @@ CONFIG_NFT_HASH=m | |||
| 94 | CONFIG_NFT_COUNTER=m | 97 | CONFIG_NFT_COUNTER=m |
| 95 | CONFIG_NFT_LOG=m | 98 | CONFIG_NFT_LOG=m |
| 96 | CONFIG_NFT_LIMIT=m | 99 | CONFIG_NFT_LIMIT=m |
| 100 | CONFIG_NFT_MASQ=m | ||
| 101 | CONFIG_NFT_REDIR=m | ||
| 97 | CONFIG_NFT_NAT=m | 102 | CONFIG_NFT_NAT=m |
| 98 | CONFIG_NFT_QUEUE=m | 103 | CONFIG_NFT_QUEUE=m |
| 99 | CONFIG_NFT_REJECT=m | 104 | CONFIG_NFT_REJECT=m |
| @@ -140,6 +145,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 140 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 145 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 141 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 146 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 142 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 147 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 148 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 143 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 149 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 144 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 150 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 145 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 151 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -161,6 +167,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 161 | CONFIG_IP_SET_HASH_IPPORT=m | 167 | CONFIG_IP_SET_HASH_IPPORT=m |
| 162 | CONFIG_IP_SET_HASH_IPPORTIP=m | 168 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 163 | CONFIG_IP_SET_HASH_IPPORTNET=m | 169 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 170 | CONFIG_IP_SET_HASH_MAC=m | ||
| 164 | CONFIG_IP_SET_HASH_NETPORTNET=m | 171 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 165 | CONFIG_IP_SET_HASH_NET=m | 172 | CONFIG_IP_SET_HASH_NET=m |
| 166 | CONFIG_IP_SET_HASH_NETNET=m | 173 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -168,9 +175,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 168 | CONFIG_IP_SET_HASH_NETIFACE=m | 175 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 169 | CONFIG_IP_SET_LIST_SET=m | 176 | CONFIG_IP_SET_LIST_SET=m |
| 170 | CONFIG_NF_CONNTRACK_IPV4=m | 177 | CONFIG_NF_CONNTRACK_IPV4=m |
| 178 | CONFIG_NF_LOG_ARP=m | ||
| 171 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 179 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 172 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 173 | CONFIG_NF_TABLES_ARP=m | 180 | CONFIG_NF_TABLES_ARP=m |
| 181 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 182 | CONFIG_NFT_MASQ_IPV4=m | ||
| 183 | CONFIG_NFT_REDIR_IPV4=m | ||
| 174 | CONFIG_IP_NF_IPTABLES=m | 184 | CONFIG_IP_NF_IPTABLES=m |
| 175 | CONFIG_IP_NF_MATCH_AH=m | 185 | CONFIG_IP_NF_MATCH_AH=m |
| 176 | CONFIG_IP_NF_MATCH_ECN=m | 186 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -179,8 +189,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 179 | CONFIG_IP_NF_FILTER=m | 189 | CONFIG_IP_NF_FILTER=m |
| 180 | CONFIG_IP_NF_TARGET_REJECT=m | 190 | CONFIG_IP_NF_TARGET_REJECT=m |
| 181 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 191 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 182 | CONFIG_IP_NF_TARGET_ULOG=m | 192 | CONFIG_IP_NF_NAT=m |
| 183 | CONFIG_NF_NAT_IPV4=m | ||
| 184 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 193 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 185 | CONFIG_IP_NF_TARGET_NETMAP=m | 194 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 186 | CONFIG_IP_NF_TARGET_REDIRECT=m | 195 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -195,6 +204,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 195 | CONFIG_NF_CONNTRACK_IPV6=m | 204 | CONFIG_NF_CONNTRACK_IPV6=m |
| 196 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 205 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 197 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 206 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 207 | CONFIG_NFT_MASQ_IPV6=m | ||
| 208 | CONFIG_NFT_REDIR_IPV6=m | ||
| 198 | CONFIG_IP6_NF_IPTABLES=m | 209 | CONFIG_IP6_NF_IPTABLES=m |
| 199 | CONFIG_IP6_NF_MATCH_AH=m | 210 | CONFIG_IP6_NF_MATCH_AH=m |
| 200 | CONFIG_IP6_NF_MATCH_EUI64=m | 211 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -211,17 +222,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 211 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 222 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 212 | CONFIG_IP6_NF_MANGLE=m | 223 | CONFIG_IP6_NF_MANGLE=m |
| 213 | CONFIG_IP6_NF_RAW=m | 224 | CONFIG_IP6_NF_RAW=m |
| 214 | CONFIG_NF_NAT_IPV6=m | 225 | CONFIG_IP6_NF_NAT=m |
| 215 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 226 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 216 | CONFIG_IP6_NF_TARGET_NPT=m | 227 | CONFIG_IP6_NF_TARGET_NPT=m |
| 217 | CONFIG_NF_TABLES_BRIDGE=m | 228 | CONFIG_NF_TABLES_BRIDGE=m |
| 229 | CONFIG_NFT_BRIDGE_META=m | ||
| 230 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 231 | CONFIG_NF_LOG_BRIDGE=m | ||
| 232 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 233 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 234 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 235 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 236 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 237 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 238 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 239 | CONFIG_BRIDGE_EBT_IP=m | ||
| 240 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 241 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 242 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 243 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 244 | CONFIG_BRIDGE_EBT_STP=m | ||
| 245 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 246 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 247 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 248 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 249 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 250 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 251 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 252 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 218 | CONFIG_IP_DCCP=m | 253 | CONFIG_IP_DCCP=m |
| 219 | # CONFIG_IP_DCCP_CCID3 is not set | 254 | # CONFIG_IP_DCCP_CCID3 is not set |
| 220 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 255 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 221 | CONFIG_RDS=m | 256 | CONFIG_RDS=m |
| 222 | CONFIG_RDS_TCP=m | 257 | CONFIG_RDS_TCP=m |
| 223 | CONFIG_L2TP=m | 258 | CONFIG_L2TP=m |
| 259 | CONFIG_BRIDGE=m | ||
| 224 | CONFIG_ATALK=m | 260 | CONFIG_ATALK=m |
| 261 | CONFIG_6LOWPAN=m | ||
| 225 | CONFIG_DNS_RESOLVER=y | 262 | CONFIG_DNS_RESOLVER=y |
| 226 | CONFIG_BATMAN_ADV=m | 263 | CONFIG_BATMAN_ADV=m |
| 227 | CONFIG_BATMAN_ADV_DAT=y | 264 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -230,9 +267,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 230 | CONFIG_NETLINK_DIAG=m | 267 | CONFIG_NETLINK_DIAG=m |
| 231 | CONFIG_NET_MPLS_GSO=m | 268 | CONFIG_NET_MPLS_GSO=m |
| 232 | # CONFIG_WIRELESS is not set | 269 | # CONFIG_WIRELESS is not set |
| 270 | # CONFIG_UEVENT_HELPER is not set | ||
| 233 | CONFIG_DEVTMPFS=y | 271 | CONFIG_DEVTMPFS=y |
| 272 | CONFIG_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 | ||
| 236 | CONFIG_CONNECTOR=m | 274 | CONFIG_CONNECTOR=m |
| 237 | CONFIG_BLK_DEV_LOOP=y | 275 | CONFIG_BLK_DEV_LOOP=y |
| 238 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 276 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -281,6 +319,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 281 | CONFIG_NET_TEAM_MODE_RANDOM=m | 319 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 282 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 320 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 283 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 321 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 322 | CONFIG_MACVLAN=m | ||
| 323 | CONFIG_MACVTAP=m | ||
| 324 | CONFIG_IPVLAN=m | ||
| 284 | CONFIG_VXLAN=m | 325 | CONFIG_VXLAN=m |
| 285 | CONFIG_NETCONSOLE=m | 326 | CONFIG_NETCONSOLE=m |
| 286 | CONFIG_NETCONSOLE_DYNAMIC=y | 327 | CONFIG_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 | |||
| 335 | CONFIG_HIDRAW=y | 378 | CONFIG_HIDRAW=y |
| 336 | CONFIG_UHID=m | 379 | CONFIG_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 |
| 339 | CONFIG_RTC_CLASS=y | 383 | CONFIG_RTC_CLASS=y |
| 340 | CONFIG_RTC_DRV_GENERIC=m | 384 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -352,6 +396,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 352 | CONFIG_AUTOFS4_FS=m | 396 | CONFIG_AUTOFS4_FS=m |
| 353 | CONFIG_FUSE_FS=m | 397 | CONFIG_FUSE_FS=m |
| 354 | CONFIG_CUSE=m | 398 | CONFIG_CUSE=m |
| 399 | CONFIG_OVERLAY_FS=m | ||
| 355 | CONFIG_ISO9660_FS=y | 400 | CONFIG_ISO9660_FS=y |
| 356 | CONFIG_JOLIET=y | 401 | CONFIG_JOLIET=y |
| 357 | CONFIG_ZISOFS=y | 402 | CONFIG_ZISOFS=y |
| @@ -367,6 +412,7 @@ CONFIG_HFS_FS=m | |||
| 367 | CONFIG_HFSPLUS_FS=m | 412 | CONFIG_HFSPLUS_FS=m |
| 368 | CONFIG_CRAMFS=m | 413 | CONFIG_CRAMFS=m |
| 369 | CONFIG_SQUASHFS=m | 414 | CONFIG_SQUASHFS=m |
| 415 | CONFIG_SQUASHFS_LZ4=y | ||
| 370 | CONFIG_SQUASHFS_LZO=y | 416 | CONFIG_SQUASHFS_LZO=y |
| 371 | CONFIG_MINIX_FS=m | 417 | CONFIG_MINIX_FS=m |
| 372 | CONFIG_OMFS_FS=m | 418 | CONFIG_OMFS_FS=m |
| @@ -436,10 +482,18 @@ CONFIG_DLM=m | |||
| 436 | CONFIG_MAGIC_SYSRQ=y | 482 | CONFIG_MAGIC_SYSRQ=y |
| 437 | CONFIG_ASYNC_RAID6_TEST=m | 483 | CONFIG_ASYNC_RAID6_TEST=m |
| 438 | CONFIG_TEST_STRING_HELPERS=m | 484 | CONFIG_TEST_STRING_HELPERS=m |
| 485 | CONFIG_TEST_KSTRTOX=m | ||
| 486 | CONFIG_TEST_LKM=m | ||
| 487 | CONFIG_TEST_USER_COPY=m | ||
| 488 | CONFIG_TEST_BPF=m | ||
| 489 | CONFIG_TEST_FIRMWARE=m | ||
| 490 | CONFIG_TEST_UDELAY=m | ||
| 491 | CONFIG_EARLY_PRINTK=y | ||
| 439 | CONFIG_ENCRYPTED_KEYS=m | 492 | CONFIG_ENCRYPTED_KEYS=m |
| 440 | CONFIG_CRYPTO_MANAGER=y | 493 | CONFIG_CRYPTO_MANAGER=y |
| 441 | CONFIG_CRYPTO_USER=m | 494 | CONFIG_CRYPTO_USER=m |
| 442 | CONFIG_CRYPTO_CRYPTD=m | 495 | CONFIG_CRYPTO_CRYPTD=m |
| 496 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 443 | CONFIG_CRYPTO_TEST=m | 497 | CONFIG_CRYPTO_TEST=m |
| 444 | CONFIG_CRYPTO_CCM=m | 498 | CONFIG_CRYPTO_CCM=m |
| 445 | CONFIG_CRYPTO_GCM=m | 499 | CONFIG_CRYPTO_GCM=m |
| @@ -474,13 +528,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 474 | CONFIG_CRYPTO_LZ4=m | 528 | CONFIG_CRYPTO_LZ4=m |
| 475 | CONFIG_CRYPTO_LZ4HC=m | 529 | CONFIG_CRYPTO_LZ4HC=m |
| 476 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 530 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 531 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 532 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 533 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 477 | CONFIG_CRYPTO_USER_API_HASH=m | 534 | CONFIG_CRYPTO_USER_API_HASH=m |
| 478 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 535 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 479 | # CONFIG_CRYPTO_HW is not set | 536 | # CONFIG_CRYPTO_HW is not set |
| 480 | CONFIG_XZ_DEC_X86=y | ||
| 481 | CONFIG_XZ_DEC_POWERPC=y | ||
| 482 | CONFIG_XZ_DEC_IA64=y | ||
| 483 | CONFIG_XZ_DEC_ARM=y | ||
| 484 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 485 | CONFIG_XZ_DEC_SPARC=y | ||
| 486 | CONFIG_XZ_DEC_TEST=m | 537 | CONFIG_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 | |||
| 33 | CONFIG_MAC=y | 33 | CONFIG_MAC=y |
| 34 | # CONFIG_COMPACTION is not set | 34 | # CONFIG_COMPACTION is not set |
| 35 | CONFIG_CLEANCACHE=y | 35 | CONFIG_CLEANCACHE=y |
| 36 | CONFIG_ZPOOL=m | ||
| 36 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 37 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 37 | CONFIG_BINFMT_AOUT=m | 38 | CONFIG_BINFMT_AOUT=m |
| 38 | CONFIG_BINFMT_MISC=m | 39 | CONFIG_BINFMT_MISC=m |
| @@ -52,6 +53,8 @@ CONFIG_NET_IPIP=m | |||
| 52 | CONFIG_NET_IPGRE_DEMUX=m | 53 | CONFIG_NET_IPGRE_DEMUX=m |
| 53 | CONFIG_NET_IPGRE=m | 54 | CONFIG_NET_IPGRE=m |
| 54 | CONFIG_NET_IPVTI=m | 55 | CONFIG_NET_IPVTI=m |
| 56 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 57 | CONFIG_GENEVE=m | ||
| 55 | CONFIG_INET_AH=m | 58 | CONFIG_INET_AH=m |
| 56 | CONFIG_INET_ESP=m | 59 | CONFIG_INET_ESP=m |
| 57 | CONFIG_INET_IPCOMP=m | 60 | CONFIG_INET_IPCOMP=m |
| @@ -93,6 +96,8 @@ CONFIG_NFT_HASH=m | |||
| 93 | CONFIG_NFT_COUNTER=m | 96 | CONFIG_NFT_COUNTER=m |
| 94 | CONFIG_NFT_LOG=m | 97 | CONFIG_NFT_LOG=m |
| 95 | CONFIG_NFT_LIMIT=m | 98 | CONFIG_NFT_LIMIT=m |
| 99 | CONFIG_NFT_MASQ=m | ||
| 100 | CONFIG_NFT_REDIR=m | ||
| 96 | CONFIG_NFT_NAT=m | 101 | CONFIG_NFT_NAT=m |
| 97 | CONFIG_NFT_QUEUE=m | 102 | CONFIG_NFT_QUEUE=m |
| 98 | CONFIG_NFT_REJECT=m | 103 | CONFIG_NFT_REJECT=m |
| @@ -139,6 +144,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 139 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 144 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 145 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 141 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 146 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 147 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 142 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 148 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 149 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 144 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 150 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -160,6 +166,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 160 | CONFIG_IP_SET_HASH_IPPORT=m | 166 | CONFIG_IP_SET_HASH_IPPORT=m |
| 161 | CONFIG_IP_SET_HASH_IPPORTIP=m | 167 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 162 | CONFIG_IP_SET_HASH_IPPORTNET=m | 168 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 169 | CONFIG_IP_SET_HASH_MAC=m | ||
| 163 | CONFIG_IP_SET_HASH_NETPORTNET=m | 170 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 164 | CONFIG_IP_SET_HASH_NET=m | 171 | CONFIG_IP_SET_HASH_NET=m |
| 165 | CONFIG_IP_SET_HASH_NETNET=m | 172 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -167,9 +174,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 167 | CONFIG_IP_SET_HASH_NETIFACE=m | 174 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 168 | CONFIG_IP_SET_LIST_SET=m | 175 | CONFIG_IP_SET_LIST_SET=m |
| 169 | CONFIG_NF_CONNTRACK_IPV4=m | 176 | CONFIG_NF_CONNTRACK_IPV4=m |
| 177 | CONFIG_NF_LOG_ARP=m | ||
| 170 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 178 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 171 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 172 | CONFIG_NF_TABLES_ARP=m | 179 | CONFIG_NF_TABLES_ARP=m |
| 180 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 181 | CONFIG_NFT_MASQ_IPV4=m | ||
| 182 | CONFIG_NFT_REDIR_IPV4=m | ||
| 173 | CONFIG_IP_NF_IPTABLES=m | 183 | CONFIG_IP_NF_IPTABLES=m |
| 174 | CONFIG_IP_NF_MATCH_AH=m | 184 | CONFIG_IP_NF_MATCH_AH=m |
| 175 | CONFIG_IP_NF_MATCH_ECN=m | 185 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -178,8 +188,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 178 | CONFIG_IP_NF_FILTER=m | 188 | CONFIG_IP_NF_FILTER=m |
| 179 | CONFIG_IP_NF_TARGET_REJECT=m | 189 | CONFIG_IP_NF_TARGET_REJECT=m |
| 180 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 190 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 181 | CONFIG_IP_NF_TARGET_ULOG=m | 191 | CONFIG_IP_NF_NAT=m |
| 182 | CONFIG_NF_NAT_IPV4=m | ||
| 183 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 192 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 184 | CONFIG_IP_NF_TARGET_NETMAP=m | 193 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 185 | CONFIG_IP_NF_TARGET_REDIRECT=m | 194 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -194,6 +203,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 194 | CONFIG_NF_CONNTRACK_IPV6=m | 203 | CONFIG_NF_CONNTRACK_IPV6=m |
| 195 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 204 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 196 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 205 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 206 | CONFIG_NFT_MASQ_IPV6=m | ||
| 207 | CONFIG_NFT_REDIR_IPV6=m | ||
| 197 | CONFIG_IP6_NF_IPTABLES=m | 208 | CONFIG_IP6_NF_IPTABLES=m |
| 198 | CONFIG_IP6_NF_MATCH_AH=m | 209 | CONFIG_IP6_NF_MATCH_AH=m |
| 199 | CONFIG_IP6_NF_MATCH_EUI64=m | 210 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -210,20 +221,46 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 210 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 221 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 211 | CONFIG_IP6_NF_MANGLE=m | 222 | CONFIG_IP6_NF_MANGLE=m |
| 212 | CONFIG_IP6_NF_RAW=m | 223 | CONFIG_IP6_NF_RAW=m |
| 213 | CONFIG_NF_NAT_IPV6=m | 224 | CONFIG_IP6_NF_NAT=m |
| 214 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 225 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 215 | CONFIG_IP6_NF_TARGET_NPT=m | 226 | CONFIG_IP6_NF_TARGET_NPT=m |
| 216 | CONFIG_NF_TABLES_BRIDGE=m | 227 | CONFIG_NF_TABLES_BRIDGE=m |
| 228 | CONFIG_NFT_BRIDGE_META=m | ||
| 229 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 230 | CONFIG_NF_LOG_BRIDGE=m | ||
| 231 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 232 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 233 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 234 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 235 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 236 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 237 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 238 | CONFIG_BRIDGE_EBT_IP=m | ||
| 239 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 240 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 241 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 242 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 243 | CONFIG_BRIDGE_EBT_STP=m | ||
| 244 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 245 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 246 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 247 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 248 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 249 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 250 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 251 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 217 | CONFIG_IP_DCCP=m | 252 | CONFIG_IP_DCCP=m |
| 218 | # CONFIG_IP_DCCP_CCID3 is not set | 253 | # CONFIG_IP_DCCP_CCID3 is not set |
| 219 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 254 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 220 | CONFIG_RDS=m | 255 | CONFIG_RDS=m |
| 221 | CONFIG_RDS_TCP=m | 256 | CONFIG_RDS_TCP=m |
| 222 | CONFIG_L2TP=m | 257 | CONFIG_L2TP=m |
| 258 | CONFIG_BRIDGE=m | ||
| 223 | CONFIG_ATALK=m | 259 | CONFIG_ATALK=m |
| 224 | CONFIG_DEV_APPLETALK=m | 260 | CONFIG_DEV_APPLETALK=m |
| 225 | CONFIG_IPDDP=m | 261 | CONFIG_IPDDP=m |
| 226 | CONFIG_IPDDP_ENCAP=y | 262 | CONFIG_IPDDP_ENCAP=y |
| 263 | CONFIG_6LOWPAN=m | ||
| 227 | CONFIG_DNS_RESOLVER=y | 264 | CONFIG_DNS_RESOLVER=y |
| 228 | CONFIG_BATMAN_ADV=m | 265 | CONFIG_BATMAN_ADV=m |
| 229 | CONFIG_BATMAN_ADV_DAT=y | 266 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -232,9 +269,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 232 | CONFIG_NETLINK_DIAG=m | 269 | CONFIG_NETLINK_DIAG=m |
| 233 | CONFIG_NET_MPLS_GSO=m | 270 | CONFIG_NET_MPLS_GSO=m |
| 234 | # CONFIG_WIRELESS is not set | 271 | # CONFIG_WIRELESS is not set |
| 272 | # CONFIG_UEVENT_HELPER is not set | ||
| 235 | CONFIG_DEVTMPFS=y | 273 | CONFIG_DEVTMPFS=y |
| 274 | CONFIG_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 | ||
| 238 | CONFIG_CONNECTOR=m | 276 | CONFIG_CONNECTOR=m |
| 239 | CONFIG_BLK_DEV_SWIM=m | 277 | CONFIG_BLK_DEV_SWIM=m |
| 240 | CONFIG_BLK_DEV_LOOP=y | 278 | CONFIG_BLK_DEV_LOOP=y |
| @@ -297,6 +335,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 297 | CONFIG_NET_TEAM_MODE_RANDOM=m | 335 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 298 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 336 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 299 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 337 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 338 | CONFIG_MACVLAN=m | ||
| 339 | CONFIG_MACVTAP=m | ||
| 340 | CONFIG_IPVLAN=m | ||
| 300 | CONFIG_VXLAN=m | 341 | CONFIG_VXLAN=m |
| 301 | CONFIG_NETCONSOLE=m | 342 | CONFIG_NETCONSOLE=m |
| 302 | CONFIG_NETCONSOLE_DYNAMIC=y | 343 | CONFIG_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 |
| 311 | CONFIG_MACSONIC=y | 352 | CONFIG_MACSONIC=y |
| 312 | CONFIG_MAC8390=y | 353 | CONFIG_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 | |||
| 357 | CONFIG_HIDRAW=y | 400 | CONFIG_HIDRAW=y |
| 358 | CONFIG_UHID=m | 401 | CONFIG_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 |
| 361 | CONFIG_RTC_CLASS=y | 405 | CONFIG_RTC_CLASS=y |
| 362 | CONFIG_RTC_DRV_GENERIC=m | 406 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -374,6 +418,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 374 | CONFIG_AUTOFS4_FS=m | 418 | CONFIG_AUTOFS4_FS=m |
| 375 | CONFIG_FUSE_FS=m | 419 | CONFIG_FUSE_FS=m |
| 376 | CONFIG_CUSE=m | 420 | CONFIG_CUSE=m |
| 421 | CONFIG_OVERLAY_FS=m | ||
| 377 | CONFIG_ISO9660_FS=y | 422 | CONFIG_ISO9660_FS=y |
| 378 | CONFIG_JOLIET=y | 423 | CONFIG_JOLIET=y |
| 379 | CONFIG_ZISOFS=y | 424 | CONFIG_ZISOFS=y |
| @@ -389,6 +434,7 @@ CONFIG_HFS_FS=m | |||
| 389 | CONFIG_HFSPLUS_FS=m | 434 | CONFIG_HFSPLUS_FS=m |
| 390 | CONFIG_CRAMFS=m | 435 | CONFIG_CRAMFS=m |
| 391 | CONFIG_SQUASHFS=m | 436 | CONFIG_SQUASHFS=m |
| 437 | CONFIG_SQUASHFS_LZ4=y | ||
| 392 | CONFIG_SQUASHFS_LZO=y | 438 | CONFIG_SQUASHFS_LZO=y |
| 393 | CONFIG_MINIX_FS=m | 439 | CONFIG_MINIX_FS=m |
| 394 | CONFIG_OMFS_FS=m | 440 | CONFIG_OMFS_FS=m |
| @@ -458,11 +504,18 @@ CONFIG_DLM=m | |||
| 458 | CONFIG_MAGIC_SYSRQ=y | 504 | CONFIG_MAGIC_SYSRQ=y |
| 459 | CONFIG_ASYNC_RAID6_TEST=m | 505 | CONFIG_ASYNC_RAID6_TEST=m |
| 460 | CONFIG_TEST_STRING_HELPERS=m | 506 | CONFIG_TEST_STRING_HELPERS=m |
| 507 | CONFIG_TEST_KSTRTOX=m | ||
| 508 | CONFIG_TEST_LKM=m | ||
| 509 | CONFIG_TEST_USER_COPY=m | ||
| 510 | CONFIG_TEST_BPF=m | ||
| 511 | CONFIG_TEST_FIRMWARE=m | ||
| 512 | CONFIG_TEST_UDELAY=m | ||
| 461 | CONFIG_EARLY_PRINTK=y | 513 | CONFIG_EARLY_PRINTK=y |
| 462 | CONFIG_ENCRYPTED_KEYS=m | 514 | CONFIG_ENCRYPTED_KEYS=m |
| 463 | CONFIG_CRYPTO_MANAGER=y | 515 | CONFIG_CRYPTO_MANAGER=y |
| 464 | CONFIG_CRYPTO_USER=m | 516 | CONFIG_CRYPTO_USER=m |
| 465 | CONFIG_CRYPTO_CRYPTD=m | 517 | CONFIG_CRYPTO_CRYPTD=m |
| 518 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 466 | CONFIG_CRYPTO_TEST=m | 519 | CONFIG_CRYPTO_TEST=m |
| 467 | CONFIG_CRYPTO_CCM=m | 520 | CONFIG_CRYPTO_CCM=m |
| 468 | CONFIG_CRYPTO_GCM=m | 521 | CONFIG_CRYPTO_GCM=m |
| @@ -497,13 +550,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 497 | CONFIG_CRYPTO_LZ4=m | 550 | CONFIG_CRYPTO_LZ4=m |
| 498 | CONFIG_CRYPTO_LZ4HC=m | 551 | CONFIG_CRYPTO_LZ4HC=m |
| 499 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 552 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 553 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 554 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 555 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 500 | CONFIG_CRYPTO_USER_API_HASH=m | 556 | CONFIG_CRYPTO_USER_API_HASH=m |
| 501 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 557 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 502 | # CONFIG_CRYPTO_HW is not set | 558 | # CONFIG_CRYPTO_HW is not set |
| 503 | CONFIG_XZ_DEC_X86=y | ||
| 504 | CONFIG_XZ_DEC_POWERPC=y | ||
| 505 | CONFIG_XZ_DEC_IA64=y | ||
| 506 | CONFIG_XZ_DEC_ARM=y | ||
| 507 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 508 | CONFIG_XZ_DEC_SPARC=y | ||
| 509 | CONFIG_XZ_DEC_TEST=m | 559 | CONFIG_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 | |||
| 39 | CONFIG_Q40=y | 39 | CONFIG_Q40=y |
| 40 | CONFIG_ZORRO=y | 40 | CONFIG_ZORRO=y |
| 41 | CONFIG_AMIGA_PCMCIA=y | 41 | CONFIG_AMIGA_PCMCIA=y |
| 42 | CONFIG_ATARI_ROM_ISA=y | ||
| 42 | CONFIG_ZORRO_NAMES=y | 43 | CONFIG_ZORRO_NAMES=y |
| 43 | # CONFIG_COMPACTION is not set | 44 | # CONFIG_COMPACTION is not set |
| 44 | CONFIG_CLEANCACHE=y | 45 | CONFIG_CLEANCACHE=y |
| 46 | CONFIG_ZPOOL=m | ||
| 45 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 47 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 46 | CONFIG_BINFMT_AOUT=m | 48 | CONFIG_BINFMT_AOUT=m |
| 47 | CONFIG_BINFMT_MISC=m | 49 | CONFIG_BINFMT_MISC=m |
| @@ -61,6 +63,8 @@ CONFIG_NET_IPIP=m | |||
| 61 | CONFIG_NET_IPGRE_DEMUX=m | 63 | CONFIG_NET_IPGRE_DEMUX=m |
| 62 | CONFIG_NET_IPGRE=m | 64 | CONFIG_NET_IPGRE=m |
| 63 | CONFIG_NET_IPVTI=m | 65 | CONFIG_NET_IPVTI=m |
| 66 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 67 | CONFIG_GENEVE=m | ||
| 64 | CONFIG_INET_AH=m | 68 | CONFIG_INET_AH=m |
| 65 | CONFIG_INET_ESP=m | 69 | CONFIG_INET_ESP=m |
| 66 | CONFIG_INET_IPCOMP=m | 70 | CONFIG_INET_IPCOMP=m |
| @@ -102,6 +106,8 @@ CONFIG_NFT_HASH=m | |||
| 102 | CONFIG_NFT_COUNTER=m | 106 | CONFIG_NFT_COUNTER=m |
| 103 | CONFIG_NFT_LOG=m | 107 | CONFIG_NFT_LOG=m |
| 104 | CONFIG_NFT_LIMIT=m | 108 | CONFIG_NFT_LIMIT=m |
| 109 | CONFIG_NFT_MASQ=m | ||
| 110 | CONFIG_NFT_REDIR=m | ||
| 105 | CONFIG_NFT_NAT=m | 111 | CONFIG_NFT_NAT=m |
| 106 | CONFIG_NFT_QUEUE=m | 112 | CONFIG_NFT_QUEUE=m |
| 107 | CONFIG_NFT_REJECT=m | 113 | CONFIG_NFT_REJECT=m |
| @@ -148,6 +154,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 148 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 154 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 149 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 155 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 150 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 156 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 157 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 151 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 158 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 152 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 159 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 153 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 160 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -169,6 +176,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 169 | CONFIG_IP_SET_HASH_IPPORT=m | 176 | CONFIG_IP_SET_HASH_IPPORT=m |
| 170 | CONFIG_IP_SET_HASH_IPPORTIP=m | 177 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 171 | CONFIG_IP_SET_HASH_IPPORTNET=m | 178 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 179 | CONFIG_IP_SET_HASH_MAC=m | ||
| 172 | CONFIG_IP_SET_HASH_NETPORTNET=m | 180 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 173 | CONFIG_IP_SET_HASH_NET=m | 181 | CONFIG_IP_SET_HASH_NET=m |
| 174 | CONFIG_IP_SET_HASH_NETNET=m | 182 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -176,9 +184,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 176 | CONFIG_IP_SET_HASH_NETIFACE=m | 184 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 177 | CONFIG_IP_SET_LIST_SET=m | 185 | CONFIG_IP_SET_LIST_SET=m |
| 178 | CONFIG_NF_CONNTRACK_IPV4=m | 186 | CONFIG_NF_CONNTRACK_IPV4=m |
| 187 | CONFIG_NF_LOG_ARP=m | ||
| 179 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 188 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 180 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 181 | CONFIG_NF_TABLES_ARP=m | 189 | CONFIG_NF_TABLES_ARP=m |
| 190 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 191 | CONFIG_NFT_MASQ_IPV4=m | ||
| 192 | CONFIG_NFT_REDIR_IPV4=m | ||
| 182 | CONFIG_IP_NF_IPTABLES=m | 193 | CONFIG_IP_NF_IPTABLES=m |
| 183 | CONFIG_IP_NF_MATCH_AH=m | 194 | CONFIG_IP_NF_MATCH_AH=m |
| 184 | CONFIG_IP_NF_MATCH_ECN=m | 195 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -187,8 +198,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 187 | CONFIG_IP_NF_FILTER=m | 198 | CONFIG_IP_NF_FILTER=m |
| 188 | CONFIG_IP_NF_TARGET_REJECT=m | 199 | CONFIG_IP_NF_TARGET_REJECT=m |
| 189 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 200 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 190 | CONFIG_IP_NF_TARGET_ULOG=m | 201 | CONFIG_IP_NF_NAT=m |
| 191 | CONFIG_NF_NAT_IPV4=m | ||
| 192 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 202 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 193 | CONFIG_IP_NF_TARGET_NETMAP=m | 203 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 194 | CONFIG_IP_NF_TARGET_REDIRECT=m | 204 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -203,6 +213,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 203 | CONFIG_NF_CONNTRACK_IPV6=m | 213 | CONFIG_NF_CONNTRACK_IPV6=m |
| 204 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 214 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 205 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 215 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 216 | CONFIG_NFT_MASQ_IPV6=m | ||
| 217 | CONFIG_NFT_REDIR_IPV6=m | ||
| 206 | CONFIG_IP6_NF_IPTABLES=m | 218 | CONFIG_IP6_NF_IPTABLES=m |
| 207 | CONFIG_IP6_NF_MATCH_AH=m | 219 | CONFIG_IP6_NF_MATCH_AH=m |
| 208 | CONFIG_IP6_NF_MATCH_EUI64=m | 220 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -219,20 +231,46 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 219 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 231 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 220 | CONFIG_IP6_NF_MANGLE=m | 232 | CONFIG_IP6_NF_MANGLE=m |
| 221 | CONFIG_IP6_NF_RAW=m | 233 | CONFIG_IP6_NF_RAW=m |
| 222 | CONFIG_NF_NAT_IPV6=m | 234 | CONFIG_IP6_NF_NAT=m |
| 223 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 235 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 224 | CONFIG_IP6_NF_TARGET_NPT=m | 236 | CONFIG_IP6_NF_TARGET_NPT=m |
| 225 | CONFIG_NF_TABLES_BRIDGE=m | 237 | CONFIG_NF_TABLES_BRIDGE=m |
| 238 | CONFIG_NFT_BRIDGE_META=m | ||
| 239 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 240 | CONFIG_NF_LOG_BRIDGE=m | ||
| 241 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 242 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 243 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 244 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 245 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 246 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 247 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 248 | CONFIG_BRIDGE_EBT_IP=m | ||
| 249 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 250 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 251 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 252 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 253 | CONFIG_BRIDGE_EBT_STP=m | ||
| 254 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 255 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 256 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 257 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 258 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 259 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 260 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 261 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 226 | CONFIG_IP_DCCP=m | 262 | CONFIG_IP_DCCP=m |
| 227 | # CONFIG_IP_DCCP_CCID3 is not set | 263 | # CONFIG_IP_DCCP_CCID3 is not set |
| 228 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 264 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 229 | CONFIG_RDS=m | 265 | CONFIG_RDS=m |
| 230 | CONFIG_RDS_TCP=m | 266 | CONFIG_RDS_TCP=m |
| 231 | CONFIG_L2TP=m | 267 | CONFIG_L2TP=m |
| 268 | CONFIG_BRIDGE=m | ||
| 232 | CONFIG_ATALK=m | 269 | CONFIG_ATALK=m |
| 233 | CONFIG_DEV_APPLETALK=m | 270 | CONFIG_DEV_APPLETALK=m |
| 234 | CONFIG_IPDDP=m | 271 | CONFIG_IPDDP=m |
| 235 | CONFIG_IPDDP_ENCAP=y | 272 | CONFIG_IPDDP_ENCAP=y |
| 273 | CONFIG_6LOWPAN=m | ||
| 236 | CONFIG_DNS_RESOLVER=y | 274 | CONFIG_DNS_RESOLVER=y |
| 237 | CONFIG_BATMAN_ADV=m | 275 | CONFIG_BATMAN_ADV=m |
| 238 | CONFIG_BATMAN_ADV_DAT=y | 276 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -241,9 +279,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 241 | CONFIG_NETLINK_DIAG=m | 279 | CONFIG_NETLINK_DIAG=m |
| 242 | CONFIG_NET_MPLS_GSO=m | 280 | CONFIG_NET_MPLS_GSO=m |
| 243 | # CONFIG_WIRELESS is not set | 281 | # CONFIG_WIRELESS is not set |
| 282 | # CONFIG_UEVENT_HELPER is not set | ||
| 244 | CONFIG_DEVTMPFS=y | 283 | CONFIG_DEVTMPFS=y |
| 284 | CONFIG_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 | ||
| 247 | CONFIG_CONNECTOR=m | 286 | CONFIG_CONNECTOR=m |
| 248 | CONFIG_PARPORT=m | 287 | CONFIG_PARPORT=m |
| 249 | CONFIG_PARPORT_PC=m | 288 | CONFIG_PARPORT_PC=m |
| @@ -329,6 +368,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 329 | CONFIG_NET_TEAM_MODE_RANDOM=m | 368 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 330 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 369 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 331 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 370 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 371 | CONFIG_MACVLAN=m | ||
| 372 | CONFIG_MACVTAP=m | ||
| 373 | CONFIG_IPVLAN=m | ||
| 332 | CONFIG_VXLAN=m | 374 | CONFIG_VXLAN=m |
| 333 | CONFIG_NETCONSOLE=m | 375 | CONFIG_NETCONSOLE=m |
| 334 | CONFIG_NETCONSOLE_DYNAMIC=y | 376 | CONFIG_NETCONSOLE_DYNAMIC=y |
| @@ -352,11 +394,14 @@ CONFIG_MVME16x_NET=y | |||
| 352 | CONFIG_MACSONIC=y | 394 | CONFIG_MACSONIC=y |
| 353 | CONFIG_HYDRA=y | 395 | CONFIG_HYDRA=y |
| 354 | CONFIG_MAC8390=y | 396 | CONFIG_MAC8390=y |
| 355 | CONFIG_NE2000=m | 397 | CONFIG_NE2000=y |
| 356 | CONFIG_APNE=y | 398 | CONFIG_APNE=y |
| 357 | CONFIG_ZORRO8390=y | 399 | CONFIG_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 |
| 404 | CONFIG_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 | |||
| 423 | CONFIG_HIDRAW=y | 468 | CONFIG_HIDRAW=y |
| 424 | CONFIG_UHID=m | 469 | CONFIG_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 |
| 427 | CONFIG_RTC_CLASS=y | 473 | CONFIG_RTC_CLASS=y |
| 428 | CONFIG_RTC_DRV_MSM6242=m | 474 | CONFIG_RTC_DRV_MSM6242=m |
| @@ -435,6 +481,8 @@ CONFIG_NATFEAT=y | |||
| 435 | CONFIG_NFBLOCK=y | 481 | CONFIG_NFBLOCK=y |
| 436 | CONFIG_NFCON=y | 482 | CONFIG_NFCON=y |
| 437 | CONFIG_NFETH=y | 483 | CONFIG_NFETH=y |
| 484 | CONFIG_ATARI_ETHERNAT=y | ||
| 485 | CONFIG_ATARI_ETHERNEC=y | ||
| 438 | CONFIG_ATARI_DSP56K=m | 486 | CONFIG_ATARI_DSP56K=m |
| 439 | CONFIG_AMIGA_BUILTIN_SERIAL=y | 487 | CONFIG_AMIGA_BUILTIN_SERIAL=y |
| 440 | CONFIG_SERIAL_CONSOLE=y | 488 | CONFIG_SERIAL_CONSOLE=y |
| @@ -450,6 +498,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 450 | CONFIG_AUTOFS4_FS=m | 498 | CONFIG_AUTOFS4_FS=m |
| 451 | CONFIG_FUSE_FS=m | 499 | CONFIG_FUSE_FS=m |
| 452 | CONFIG_CUSE=m | 500 | CONFIG_CUSE=m |
| 501 | CONFIG_OVERLAY_FS=m | ||
| 453 | CONFIG_ISO9660_FS=y | 502 | CONFIG_ISO9660_FS=y |
| 454 | CONFIG_JOLIET=y | 503 | CONFIG_JOLIET=y |
| 455 | CONFIG_ZISOFS=y | 504 | CONFIG_ZISOFS=y |
| @@ -465,6 +514,7 @@ CONFIG_HFS_FS=m | |||
| 465 | CONFIG_HFSPLUS_FS=m | 514 | CONFIG_HFSPLUS_FS=m |
| 466 | CONFIG_CRAMFS=m | 515 | CONFIG_CRAMFS=m |
| 467 | CONFIG_SQUASHFS=m | 516 | CONFIG_SQUASHFS=m |
| 517 | CONFIG_SQUASHFS_LZ4=y | ||
| 468 | CONFIG_SQUASHFS_LZO=y | 518 | CONFIG_SQUASHFS_LZO=y |
| 469 | CONFIG_MINIX_FS=m | 519 | CONFIG_MINIX_FS=m |
| 470 | CONFIG_OMFS_FS=m | 520 | CONFIG_OMFS_FS=m |
| @@ -534,11 +584,18 @@ CONFIG_DLM=m | |||
| 534 | CONFIG_MAGIC_SYSRQ=y | 584 | CONFIG_MAGIC_SYSRQ=y |
| 535 | CONFIG_ASYNC_RAID6_TEST=m | 585 | CONFIG_ASYNC_RAID6_TEST=m |
| 536 | CONFIG_TEST_STRING_HELPERS=m | 586 | CONFIG_TEST_STRING_HELPERS=m |
| 587 | CONFIG_TEST_KSTRTOX=m | ||
| 588 | CONFIG_TEST_LKM=m | ||
| 589 | CONFIG_TEST_USER_COPY=m | ||
| 590 | CONFIG_TEST_BPF=m | ||
| 591 | CONFIG_TEST_FIRMWARE=m | ||
| 592 | CONFIG_TEST_UDELAY=m | ||
| 537 | CONFIG_EARLY_PRINTK=y | 593 | CONFIG_EARLY_PRINTK=y |
| 538 | CONFIG_ENCRYPTED_KEYS=m | 594 | CONFIG_ENCRYPTED_KEYS=m |
| 539 | CONFIG_CRYPTO_MANAGER=y | 595 | CONFIG_CRYPTO_MANAGER=y |
| 540 | CONFIG_CRYPTO_USER=m | 596 | CONFIG_CRYPTO_USER=m |
| 541 | CONFIG_CRYPTO_CRYPTD=m | 597 | CONFIG_CRYPTO_CRYPTD=m |
| 598 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 542 | CONFIG_CRYPTO_TEST=m | 599 | CONFIG_CRYPTO_TEST=m |
| 543 | CONFIG_CRYPTO_CCM=m | 600 | CONFIG_CRYPTO_CCM=m |
| 544 | CONFIG_CRYPTO_GCM=m | 601 | CONFIG_CRYPTO_GCM=m |
| @@ -573,13 +630,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 573 | CONFIG_CRYPTO_LZ4=m | 630 | CONFIG_CRYPTO_LZ4=m |
| 574 | CONFIG_CRYPTO_LZ4HC=m | 631 | CONFIG_CRYPTO_LZ4HC=m |
| 575 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 632 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 633 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 634 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 635 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 576 | CONFIG_CRYPTO_USER_API_HASH=m | 636 | CONFIG_CRYPTO_USER_API_HASH=m |
| 577 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 637 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 578 | # CONFIG_CRYPTO_HW is not set | 638 | # CONFIG_CRYPTO_HW is not set |
| 579 | CONFIG_XZ_DEC_X86=y | ||
| 580 | CONFIG_XZ_DEC_POWERPC=y | ||
| 581 | CONFIG_XZ_DEC_IA64=y | ||
| 582 | CONFIG_XZ_DEC_ARM=y | ||
| 583 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 584 | CONFIG_XZ_DEC_SPARC=y | ||
| 585 | CONFIG_XZ_DEC_TEST=m | 639 | CONFIG_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 | |||
| 31 | CONFIG_MVME147=y | 31 | CONFIG_MVME147=y |
| 32 | # CONFIG_COMPACTION is not set | 32 | # CONFIG_COMPACTION is not set |
| 33 | CONFIG_CLEANCACHE=y | 33 | CONFIG_CLEANCACHE=y |
| 34 | CONFIG_ZPOOL=m | ||
| 34 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 35 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 35 | CONFIG_BINFMT_AOUT=m | 36 | CONFIG_BINFMT_AOUT=m |
| 36 | CONFIG_BINFMT_MISC=m | 37 | CONFIG_BINFMT_MISC=m |
| @@ -50,6 +51,8 @@ CONFIG_NET_IPIP=m | |||
| 50 | CONFIG_NET_IPGRE_DEMUX=m | 51 | CONFIG_NET_IPGRE_DEMUX=m |
| 51 | CONFIG_NET_IPGRE=m | 52 | CONFIG_NET_IPGRE=m |
| 52 | CONFIG_NET_IPVTI=m | 53 | CONFIG_NET_IPVTI=m |
| 54 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 55 | CONFIG_GENEVE=m | ||
| 53 | CONFIG_INET_AH=m | 56 | CONFIG_INET_AH=m |
| 54 | CONFIG_INET_ESP=m | 57 | CONFIG_INET_ESP=m |
| 55 | CONFIG_INET_IPCOMP=m | 58 | CONFIG_INET_IPCOMP=m |
| @@ -91,6 +94,8 @@ CONFIG_NFT_HASH=m | |||
| 91 | CONFIG_NFT_COUNTER=m | 94 | CONFIG_NFT_COUNTER=m |
| 92 | CONFIG_NFT_LOG=m | 95 | CONFIG_NFT_LOG=m |
| 93 | CONFIG_NFT_LIMIT=m | 96 | CONFIG_NFT_LIMIT=m |
| 97 | CONFIG_NFT_MASQ=m | ||
| 98 | CONFIG_NFT_REDIR=m | ||
| 94 | CONFIG_NFT_NAT=m | 99 | CONFIG_NFT_NAT=m |
| 95 | CONFIG_NFT_QUEUE=m | 100 | CONFIG_NFT_QUEUE=m |
| 96 | CONFIG_NFT_REJECT=m | 101 | CONFIG_NFT_REJECT=m |
| @@ -137,6 +142,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 137 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 142 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 138 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 143 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 139 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 144 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 145 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 140 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 146 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 141 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 147 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 142 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 148 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -158,6 +164,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 158 | CONFIG_IP_SET_HASH_IPPORT=m | 164 | CONFIG_IP_SET_HASH_IPPORT=m |
| 159 | CONFIG_IP_SET_HASH_IPPORTIP=m | 165 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 160 | CONFIG_IP_SET_HASH_IPPORTNET=m | 166 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 167 | CONFIG_IP_SET_HASH_MAC=m | ||
| 161 | CONFIG_IP_SET_HASH_NETPORTNET=m | 168 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 162 | CONFIG_IP_SET_HASH_NET=m | 169 | CONFIG_IP_SET_HASH_NET=m |
| 163 | CONFIG_IP_SET_HASH_NETNET=m | 170 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -165,9 +172,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 165 | CONFIG_IP_SET_HASH_NETIFACE=m | 172 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 166 | CONFIG_IP_SET_LIST_SET=m | 173 | CONFIG_IP_SET_LIST_SET=m |
| 167 | CONFIG_NF_CONNTRACK_IPV4=m | 174 | CONFIG_NF_CONNTRACK_IPV4=m |
| 175 | CONFIG_NF_LOG_ARP=m | ||
| 168 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 176 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 169 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 170 | CONFIG_NF_TABLES_ARP=m | 177 | CONFIG_NF_TABLES_ARP=m |
| 178 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 179 | CONFIG_NFT_MASQ_IPV4=m | ||
| 180 | CONFIG_NFT_REDIR_IPV4=m | ||
| 171 | CONFIG_IP_NF_IPTABLES=m | 181 | CONFIG_IP_NF_IPTABLES=m |
| 172 | CONFIG_IP_NF_MATCH_AH=m | 182 | CONFIG_IP_NF_MATCH_AH=m |
| 173 | CONFIG_IP_NF_MATCH_ECN=m | 183 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -176,8 +186,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 176 | CONFIG_IP_NF_FILTER=m | 186 | CONFIG_IP_NF_FILTER=m |
| 177 | CONFIG_IP_NF_TARGET_REJECT=m | 187 | CONFIG_IP_NF_TARGET_REJECT=m |
| 178 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 188 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 179 | CONFIG_IP_NF_TARGET_ULOG=m | 189 | CONFIG_IP_NF_NAT=m |
| 180 | CONFIG_NF_NAT_IPV4=m | ||
| 181 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 190 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 182 | CONFIG_IP_NF_TARGET_NETMAP=m | 191 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 183 | CONFIG_IP_NF_TARGET_REDIRECT=m | 192 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -192,6 +201,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 192 | CONFIG_NF_CONNTRACK_IPV6=m | 201 | CONFIG_NF_CONNTRACK_IPV6=m |
| 193 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 202 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 194 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 203 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 204 | CONFIG_NFT_MASQ_IPV6=m | ||
| 205 | CONFIG_NFT_REDIR_IPV6=m | ||
| 195 | CONFIG_IP6_NF_IPTABLES=m | 206 | CONFIG_IP6_NF_IPTABLES=m |
| 196 | CONFIG_IP6_NF_MATCH_AH=m | 207 | CONFIG_IP6_NF_MATCH_AH=m |
| 197 | CONFIG_IP6_NF_MATCH_EUI64=m | 208 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -208,17 +219,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 208 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 219 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 209 | CONFIG_IP6_NF_MANGLE=m | 220 | CONFIG_IP6_NF_MANGLE=m |
| 210 | CONFIG_IP6_NF_RAW=m | 221 | CONFIG_IP6_NF_RAW=m |
| 211 | CONFIG_NF_NAT_IPV6=m | 222 | CONFIG_IP6_NF_NAT=m |
| 212 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 223 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 213 | CONFIG_IP6_NF_TARGET_NPT=m | 224 | CONFIG_IP6_NF_TARGET_NPT=m |
| 214 | CONFIG_NF_TABLES_BRIDGE=m | 225 | CONFIG_NF_TABLES_BRIDGE=m |
| 226 | CONFIG_NFT_BRIDGE_META=m | ||
| 227 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 228 | CONFIG_NF_LOG_BRIDGE=m | ||
| 229 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 230 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 231 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 232 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 233 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 234 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 235 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 236 | CONFIG_BRIDGE_EBT_IP=m | ||
| 237 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 238 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 239 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 240 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 241 | CONFIG_BRIDGE_EBT_STP=m | ||
| 242 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 243 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 244 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 245 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 246 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 247 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 248 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 249 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 215 | CONFIG_IP_DCCP=m | 250 | CONFIG_IP_DCCP=m |
| 216 | # CONFIG_IP_DCCP_CCID3 is not set | 251 | # CONFIG_IP_DCCP_CCID3 is not set |
| 217 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 252 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 218 | CONFIG_RDS=m | 253 | CONFIG_RDS=m |
| 219 | CONFIG_RDS_TCP=m | 254 | CONFIG_RDS_TCP=m |
| 220 | CONFIG_L2TP=m | 255 | CONFIG_L2TP=m |
| 256 | CONFIG_BRIDGE=m | ||
| 221 | CONFIG_ATALK=m | 257 | CONFIG_ATALK=m |
| 258 | CONFIG_6LOWPAN=m | ||
| 222 | CONFIG_DNS_RESOLVER=y | 259 | CONFIG_DNS_RESOLVER=y |
| 223 | CONFIG_BATMAN_ADV=m | 260 | CONFIG_BATMAN_ADV=m |
| 224 | CONFIG_BATMAN_ADV_DAT=y | 261 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -227,9 +264,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 227 | CONFIG_NETLINK_DIAG=m | 264 | CONFIG_NETLINK_DIAG=m |
| 228 | CONFIG_NET_MPLS_GSO=m | 265 | CONFIG_NET_MPLS_GSO=m |
| 229 | # CONFIG_WIRELESS is not set | 266 | # CONFIG_WIRELESS is not set |
| 267 | # CONFIG_UEVENT_HELPER is not set | ||
| 230 | CONFIG_DEVTMPFS=y | 268 | CONFIG_DEVTMPFS=y |
| 269 | CONFIG_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 | ||
| 233 | CONFIG_CONNECTOR=m | 271 | CONFIG_CONNECTOR=m |
| 234 | CONFIG_BLK_DEV_LOOP=y | 272 | CONFIG_BLK_DEV_LOOP=y |
| 235 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 273 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -279,6 +317,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 279 | CONFIG_NET_TEAM_MODE_RANDOM=m | 317 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 280 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 318 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 281 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 319 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 320 | CONFIG_MACVLAN=m | ||
| 321 | CONFIG_MACVTAP=m | ||
| 322 | CONFIG_IPVLAN=m | ||
| 282 | CONFIG_VXLAN=m | 323 | CONFIG_VXLAN=m |
| 283 | CONFIG_NETCONSOLE=m | 324 | CONFIG_NETCONSOLE=m |
| 284 | CONFIG_NETCONSOLE_DYNAMIC=y | 325 | CONFIG_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 | |||
| 326 | CONFIG_HIDRAW=y | 369 | CONFIG_HIDRAW=y |
| 327 | CONFIG_UHID=m | 370 | CONFIG_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 |
| 330 | CONFIG_RTC_CLASS=y | 374 | CONFIG_RTC_CLASS=y |
| 331 | CONFIG_RTC_DRV_GENERIC=m | 375 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -343,6 +387,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 343 | CONFIG_AUTOFS4_FS=m | 387 | CONFIG_AUTOFS4_FS=m |
| 344 | CONFIG_FUSE_FS=m | 388 | CONFIG_FUSE_FS=m |
| 345 | CONFIG_CUSE=m | 389 | CONFIG_CUSE=m |
| 390 | CONFIG_OVERLAY_FS=m | ||
| 346 | CONFIG_ISO9660_FS=y | 391 | CONFIG_ISO9660_FS=y |
| 347 | CONFIG_JOLIET=y | 392 | CONFIG_JOLIET=y |
| 348 | CONFIG_ZISOFS=y | 393 | CONFIG_ZISOFS=y |
| @@ -358,6 +403,7 @@ CONFIG_HFS_FS=m | |||
| 358 | CONFIG_HFSPLUS_FS=m | 403 | CONFIG_HFSPLUS_FS=m |
| 359 | CONFIG_CRAMFS=m | 404 | CONFIG_CRAMFS=m |
| 360 | CONFIG_SQUASHFS=m | 405 | CONFIG_SQUASHFS=m |
| 406 | CONFIG_SQUASHFS_LZ4=y | ||
| 361 | CONFIG_SQUASHFS_LZO=y | 407 | CONFIG_SQUASHFS_LZO=y |
| 362 | CONFIG_MINIX_FS=m | 408 | CONFIG_MINIX_FS=m |
| 363 | CONFIG_OMFS_FS=m | 409 | CONFIG_OMFS_FS=m |
| @@ -427,10 +473,18 @@ CONFIG_DLM=m | |||
| 427 | CONFIG_MAGIC_SYSRQ=y | 473 | CONFIG_MAGIC_SYSRQ=y |
| 428 | CONFIG_ASYNC_RAID6_TEST=m | 474 | CONFIG_ASYNC_RAID6_TEST=m |
| 429 | CONFIG_TEST_STRING_HELPERS=m | 475 | CONFIG_TEST_STRING_HELPERS=m |
| 476 | CONFIG_TEST_KSTRTOX=m | ||
| 477 | CONFIG_TEST_LKM=m | ||
| 478 | CONFIG_TEST_USER_COPY=m | ||
| 479 | CONFIG_TEST_BPF=m | ||
| 480 | CONFIG_TEST_FIRMWARE=m | ||
| 481 | CONFIG_TEST_UDELAY=m | ||
| 482 | CONFIG_EARLY_PRINTK=y | ||
| 430 | CONFIG_ENCRYPTED_KEYS=m | 483 | CONFIG_ENCRYPTED_KEYS=m |
| 431 | CONFIG_CRYPTO_MANAGER=y | 484 | CONFIG_CRYPTO_MANAGER=y |
| 432 | CONFIG_CRYPTO_USER=m | 485 | CONFIG_CRYPTO_USER=m |
| 433 | CONFIG_CRYPTO_CRYPTD=m | 486 | CONFIG_CRYPTO_CRYPTD=m |
| 487 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 434 | CONFIG_CRYPTO_TEST=m | 488 | CONFIG_CRYPTO_TEST=m |
| 435 | CONFIG_CRYPTO_CCM=m | 489 | CONFIG_CRYPTO_CCM=m |
| 436 | CONFIG_CRYPTO_GCM=m | 490 | CONFIG_CRYPTO_GCM=m |
| @@ -465,13 +519,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 465 | CONFIG_CRYPTO_LZ4=m | 519 | CONFIG_CRYPTO_LZ4=m |
| 466 | CONFIG_CRYPTO_LZ4HC=m | 520 | CONFIG_CRYPTO_LZ4HC=m |
| 467 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 521 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 522 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 523 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 524 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 468 | CONFIG_CRYPTO_USER_API_HASH=m | 525 | CONFIG_CRYPTO_USER_API_HASH=m |
| 469 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 526 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 470 | # CONFIG_CRYPTO_HW is not set | 527 | # CONFIG_CRYPTO_HW is not set |
| 471 | CONFIG_XZ_DEC_X86=y | ||
| 472 | CONFIG_XZ_DEC_POWERPC=y | ||
| 473 | CONFIG_XZ_DEC_IA64=y | ||
| 474 | CONFIG_XZ_DEC_ARM=y | ||
| 475 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 476 | CONFIG_XZ_DEC_SPARC=y | ||
| 477 | CONFIG_XZ_DEC_TEST=m | 528 | CONFIG_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 | |||
| 32 | CONFIG_MVME16x=y | 32 | CONFIG_MVME16x=y |
| 33 | # CONFIG_COMPACTION is not set | 33 | # CONFIG_COMPACTION is not set |
| 34 | CONFIG_CLEANCACHE=y | 34 | CONFIG_CLEANCACHE=y |
| 35 | CONFIG_ZPOOL=m | ||
| 35 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 36 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 36 | CONFIG_BINFMT_AOUT=m | 37 | CONFIG_BINFMT_AOUT=m |
| 37 | CONFIG_BINFMT_MISC=m | 38 | CONFIG_BINFMT_MISC=m |
| @@ -51,6 +52,8 @@ CONFIG_NET_IPIP=m | |||
| 51 | CONFIG_NET_IPGRE_DEMUX=m | 52 | CONFIG_NET_IPGRE_DEMUX=m |
| 52 | CONFIG_NET_IPGRE=m | 53 | CONFIG_NET_IPGRE=m |
| 53 | CONFIG_NET_IPVTI=m | 54 | CONFIG_NET_IPVTI=m |
| 55 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 56 | CONFIG_GENEVE=m | ||
| 54 | CONFIG_INET_AH=m | 57 | CONFIG_INET_AH=m |
| 55 | CONFIG_INET_ESP=m | 58 | CONFIG_INET_ESP=m |
| 56 | CONFIG_INET_IPCOMP=m | 59 | CONFIG_INET_IPCOMP=m |
| @@ -92,6 +95,8 @@ CONFIG_NFT_HASH=m | |||
| 92 | CONFIG_NFT_COUNTER=m | 95 | CONFIG_NFT_COUNTER=m |
| 93 | CONFIG_NFT_LOG=m | 96 | CONFIG_NFT_LOG=m |
| 94 | CONFIG_NFT_LIMIT=m | 97 | CONFIG_NFT_LIMIT=m |
| 98 | CONFIG_NFT_MASQ=m | ||
| 99 | CONFIG_NFT_REDIR=m | ||
| 95 | CONFIG_NFT_NAT=m | 100 | CONFIG_NFT_NAT=m |
| 96 | CONFIG_NFT_QUEUE=m | 101 | CONFIG_NFT_QUEUE=m |
| 97 | CONFIG_NFT_REJECT=m | 102 | CONFIG_NFT_REJECT=m |
| @@ -138,6 +143,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 138 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 143 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 139 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 144 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 145 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 146 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 141 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 147 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 142 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 148 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 149 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -159,6 +165,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 159 | CONFIG_IP_SET_HASH_IPPORT=m | 165 | CONFIG_IP_SET_HASH_IPPORT=m |
| 160 | CONFIG_IP_SET_HASH_IPPORTIP=m | 166 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 161 | CONFIG_IP_SET_HASH_IPPORTNET=m | 167 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 168 | CONFIG_IP_SET_HASH_MAC=m | ||
| 162 | CONFIG_IP_SET_HASH_NETPORTNET=m | 169 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 163 | CONFIG_IP_SET_HASH_NET=m | 170 | CONFIG_IP_SET_HASH_NET=m |
| 164 | CONFIG_IP_SET_HASH_NETNET=m | 171 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -166,9 +173,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 166 | CONFIG_IP_SET_HASH_NETIFACE=m | 173 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 167 | CONFIG_IP_SET_LIST_SET=m | 174 | CONFIG_IP_SET_LIST_SET=m |
| 168 | CONFIG_NF_CONNTRACK_IPV4=m | 175 | CONFIG_NF_CONNTRACK_IPV4=m |
| 176 | CONFIG_NF_LOG_ARP=m | ||
| 169 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 177 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 170 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 171 | CONFIG_NF_TABLES_ARP=m | 178 | CONFIG_NF_TABLES_ARP=m |
| 179 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 180 | CONFIG_NFT_MASQ_IPV4=m | ||
| 181 | CONFIG_NFT_REDIR_IPV4=m | ||
| 172 | CONFIG_IP_NF_IPTABLES=m | 182 | CONFIG_IP_NF_IPTABLES=m |
| 173 | CONFIG_IP_NF_MATCH_AH=m | 183 | CONFIG_IP_NF_MATCH_AH=m |
| 174 | CONFIG_IP_NF_MATCH_ECN=m | 184 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -177,8 +187,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 177 | CONFIG_IP_NF_FILTER=m | 187 | CONFIG_IP_NF_FILTER=m |
| 178 | CONFIG_IP_NF_TARGET_REJECT=m | 188 | CONFIG_IP_NF_TARGET_REJECT=m |
| 179 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 189 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 180 | CONFIG_IP_NF_TARGET_ULOG=m | 190 | CONFIG_IP_NF_NAT=m |
| 181 | CONFIG_NF_NAT_IPV4=m | ||
| 182 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 191 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 183 | CONFIG_IP_NF_TARGET_NETMAP=m | 192 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 184 | CONFIG_IP_NF_TARGET_REDIRECT=m | 193 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -193,6 +202,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 193 | CONFIG_NF_CONNTRACK_IPV6=m | 202 | CONFIG_NF_CONNTRACK_IPV6=m |
| 194 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 203 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 195 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 204 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 205 | CONFIG_NFT_MASQ_IPV6=m | ||
| 206 | CONFIG_NFT_REDIR_IPV6=m | ||
| 196 | CONFIG_IP6_NF_IPTABLES=m | 207 | CONFIG_IP6_NF_IPTABLES=m |
| 197 | CONFIG_IP6_NF_MATCH_AH=m | 208 | CONFIG_IP6_NF_MATCH_AH=m |
| 198 | CONFIG_IP6_NF_MATCH_EUI64=m | 209 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -209,17 +220,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 209 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 220 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 210 | CONFIG_IP6_NF_MANGLE=m | 221 | CONFIG_IP6_NF_MANGLE=m |
| 211 | CONFIG_IP6_NF_RAW=m | 222 | CONFIG_IP6_NF_RAW=m |
| 212 | CONFIG_NF_NAT_IPV6=m | 223 | CONFIG_IP6_NF_NAT=m |
| 213 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 224 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 214 | CONFIG_IP6_NF_TARGET_NPT=m | 225 | CONFIG_IP6_NF_TARGET_NPT=m |
| 215 | CONFIG_NF_TABLES_BRIDGE=m | 226 | CONFIG_NF_TABLES_BRIDGE=m |
| 227 | CONFIG_NFT_BRIDGE_META=m | ||
| 228 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 229 | CONFIG_NF_LOG_BRIDGE=m | ||
| 230 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 231 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 232 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 233 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 234 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 235 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 236 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 237 | CONFIG_BRIDGE_EBT_IP=m | ||
| 238 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 239 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 240 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 241 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 242 | CONFIG_BRIDGE_EBT_STP=m | ||
| 243 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 244 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 245 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 246 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 247 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 248 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 249 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 250 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 216 | CONFIG_IP_DCCP=m | 251 | CONFIG_IP_DCCP=m |
| 217 | # CONFIG_IP_DCCP_CCID3 is not set | 252 | # CONFIG_IP_DCCP_CCID3 is not set |
| 218 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 253 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 219 | CONFIG_RDS=m | 254 | CONFIG_RDS=m |
| 220 | CONFIG_RDS_TCP=m | 255 | CONFIG_RDS_TCP=m |
| 221 | CONFIG_L2TP=m | 256 | CONFIG_L2TP=m |
| 257 | CONFIG_BRIDGE=m | ||
| 222 | CONFIG_ATALK=m | 258 | CONFIG_ATALK=m |
| 259 | CONFIG_6LOWPAN=m | ||
| 223 | CONFIG_DNS_RESOLVER=y | 260 | CONFIG_DNS_RESOLVER=y |
| 224 | CONFIG_BATMAN_ADV=m | 261 | CONFIG_BATMAN_ADV=m |
| 225 | CONFIG_BATMAN_ADV_DAT=y | 262 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -228,9 +265,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 228 | CONFIG_NETLINK_DIAG=m | 265 | CONFIG_NETLINK_DIAG=m |
| 229 | CONFIG_NET_MPLS_GSO=m | 266 | CONFIG_NET_MPLS_GSO=m |
| 230 | # CONFIG_WIRELESS is not set | 267 | # CONFIG_WIRELESS is not set |
| 268 | # CONFIG_UEVENT_HELPER is not set | ||
| 231 | CONFIG_DEVTMPFS=y | 269 | CONFIG_DEVTMPFS=y |
| 270 | CONFIG_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 | ||
| 234 | CONFIG_CONNECTOR=m | 272 | CONFIG_CONNECTOR=m |
| 235 | CONFIG_BLK_DEV_LOOP=y | 273 | CONFIG_BLK_DEV_LOOP=y |
| 236 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 274 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -280,6 +318,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 280 | CONFIG_NET_TEAM_MODE_RANDOM=m | 318 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 281 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 319 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 282 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 320 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 321 | CONFIG_MACVLAN=m | ||
| 322 | CONFIG_MACVTAP=m | ||
| 323 | CONFIG_IPVLAN=m | ||
| 283 | CONFIG_VXLAN=m | 324 | CONFIG_VXLAN=m |
| 284 | CONFIG_NETCONSOLE=m | 325 | CONFIG_NETCONSOLE=m |
| 285 | CONFIG_NETCONSOLE_DYNAMIC=y | 326 | CONFIG_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 | |||
| 326 | CONFIG_HIDRAW=y | 369 | CONFIG_HIDRAW=y |
| 327 | CONFIG_UHID=m | 370 | CONFIG_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 |
| 330 | CONFIG_RTC_CLASS=y | 374 | CONFIG_RTC_CLASS=y |
| 331 | CONFIG_RTC_DRV_GENERIC=m | 375 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -343,6 +387,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 343 | CONFIG_AUTOFS4_FS=m | 387 | CONFIG_AUTOFS4_FS=m |
| 344 | CONFIG_FUSE_FS=m | 388 | CONFIG_FUSE_FS=m |
| 345 | CONFIG_CUSE=m | 389 | CONFIG_CUSE=m |
| 390 | CONFIG_OVERLAY_FS=m | ||
| 346 | CONFIG_ISO9660_FS=y | 391 | CONFIG_ISO9660_FS=y |
| 347 | CONFIG_JOLIET=y | 392 | CONFIG_JOLIET=y |
| 348 | CONFIG_ZISOFS=y | 393 | CONFIG_ZISOFS=y |
| @@ -358,6 +403,7 @@ CONFIG_HFS_FS=m | |||
| 358 | CONFIG_HFSPLUS_FS=m | 403 | CONFIG_HFSPLUS_FS=m |
| 359 | CONFIG_CRAMFS=m | 404 | CONFIG_CRAMFS=m |
| 360 | CONFIG_SQUASHFS=m | 405 | CONFIG_SQUASHFS=m |
| 406 | CONFIG_SQUASHFS_LZ4=y | ||
| 361 | CONFIG_SQUASHFS_LZO=y | 407 | CONFIG_SQUASHFS_LZO=y |
| 362 | CONFIG_MINIX_FS=m | 408 | CONFIG_MINIX_FS=m |
| 363 | CONFIG_OMFS_FS=m | 409 | CONFIG_OMFS_FS=m |
| @@ -427,11 +473,18 @@ CONFIG_DLM=m | |||
| 427 | CONFIG_MAGIC_SYSRQ=y | 473 | CONFIG_MAGIC_SYSRQ=y |
| 428 | CONFIG_ASYNC_RAID6_TEST=m | 474 | CONFIG_ASYNC_RAID6_TEST=m |
| 429 | CONFIG_TEST_STRING_HELPERS=m | 475 | CONFIG_TEST_STRING_HELPERS=m |
| 476 | CONFIG_TEST_KSTRTOX=m | ||
| 477 | CONFIG_TEST_LKM=m | ||
| 478 | CONFIG_TEST_USER_COPY=m | ||
| 479 | CONFIG_TEST_BPF=m | ||
| 480 | CONFIG_TEST_FIRMWARE=m | ||
| 481 | CONFIG_TEST_UDELAY=m | ||
| 430 | CONFIG_EARLY_PRINTK=y | 482 | CONFIG_EARLY_PRINTK=y |
| 431 | CONFIG_ENCRYPTED_KEYS=m | 483 | CONFIG_ENCRYPTED_KEYS=m |
| 432 | CONFIG_CRYPTO_MANAGER=y | 484 | CONFIG_CRYPTO_MANAGER=y |
| 433 | CONFIG_CRYPTO_USER=m | 485 | CONFIG_CRYPTO_USER=m |
| 434 | CONFIG_CRYPTO_CRYPTD=m | 486 | CONFIG_CRYPTO_CRYPTD=m |
| 487 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 435 | CONFIG_CRYPTO_TEST=m | 488 | CONFIG_CRYPTO_TEST=m |
| 436 | CONFIG_CRYPTO_CCM=m | 489 | CONFIG_CRYPTO_CCM=m |
| 437 | CONFIG_CRYPTO_GCM=m | 490 | CONFIG_CRYPTO_GCM=m |
| @@ -466,13 +519,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 466 | CONFIG_CRYPTO_LZ4=m | 519 | CONFIG_CRYPTO_LZ4=m |
| 467 | CONFIG_CRYPTO_LZ4HC=m | 520 | CONFIG_CRYPTO_LZ4HC=m |
| 468 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 521 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 522 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 523 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 524 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 469 | CONFIG_CRYPTO_USER_API_HASH=m | 525 | CONFIG_CRYPTO_USER_API_HASH=m |
| 470 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 526 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 471 | # CONFIG_CRYPTO_HW is not set | 527 | # CONFIG_CRYPTO_HW is not set |
| 472 | CONFIG_XZ_DEC_X86=y | ||
| 473 | CONFIG_XZ_DEC_POWERPC=y | ||
| 474 | CONFIG_XZ_DEC_IA64=y | ||
| 475 | CONFIG_XZ_DEC_ARM=y | ||
| 476 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 477 | CONFIG_XZ_DEC_SPARC=y | ||
| 478 | CONFIG_XZ_DEC_TEST=m | 528 | CONFIG_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 | |||
| 32 | CONFIG_Q40=y | 32 | CONFIG_Q40=y |
| 33 | # CONFIG_COMPACTION is not set | 33 | # CONFIG_COMPACTION is not set |
| 34 | CONFIG_CLEANCACHE=y | 34 | CONFIG_CLEANCACHE=y |
| 35 | CONFIG_ZPOOL=m | ||
| 35 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 36 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 36 | CONFIG_BINFMT_AOUT=m | 37 | CONFIG_BINFMT_AOUT=m |
| 37 | CONFIG_BINFMT_MISC=m | 38 | CONFIG_BINFMT_MISC=m |
| @@ -51,6 +52,8 @@ CONFIG_NET_IPIP=m | |||
| 51 | CONFIG_NET_IPGRE_DEMUX=m | 52 | CONFIG_NET_IPGRE_DEMUX=m |
| 52 | CONFIG_NET_IPGRE=m | 53 | CONFIG_NET_IPGRE=m |
| 53 | CONFIG_NET_IPVTI=m | 54 | CONFIG_NET_IPVTI=m |
| 55 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 56 | CONFIG_GENEVE=m | ||
| 54 | CONFIG_INET_AH=m | 57 | CONFIG_INET_AH=m |
| 55 | CONFIG_INET_ESP=m | 58 | CONFIG_INET_ESP=m |
| 56 | CONFIG_INET_IPCOMP=m | 59 | CONFIG_INET_IPCOMP=m |
| @@ -92,6 +95,8 @@ CONFIG_NFT_HASH=m | |||
| 92 | CONFIG_NFT_COUNTER=m | 95 | CONFIG_NFT_COUNTER=m |
| 93 | CONFIG_NFT_LOG=m | 96 | CONFIG_NFT_LOG=m |
| 94 | CONFIG_NFT_LIMIT=m | 97 | CONFIG_NFT_LIMIT=m |
| 98 | CONFIG_NFT_MASQ=m | ||
| 99 | CONFIG_NFT_REDIR=m | ||
| 95 | CONFIG_NFT_NAT=m | 100 | CONFIG_NFT_NAT=m |
| 96 | CONFIG_NFT_QUEUE=m | 101 | CONFIG_NFT_QUEUE=m |
| 97 | CONFIG_NFT_REJECT=m | 102 | CONFIG_NFT_REJECT=m |
| @@ -138,6 +143,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 138 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 143 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 139 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 144 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 145 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 146 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 141 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 147 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 142 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 148 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 149 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -159,6 +165,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 159 | CONFIG_IP_SET_HASH_IPPORT=m | 165 | CONFIG_IP_SET_HASH_IPPORT=m |
| 160 | CONFIG_IP_SET_HASH_IPPORTIP=m | 166 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 161 | CONFIG_IP_SET_HASH_IPPORTNET=m | 167 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 168 | CONFIG_IP_SET_HASH_MAC=m | ||
| 162 | CONFIG_IP_SET_HASH_NETPORTNET=m | 169 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 163 | CONFIG_IP_SET_HASH_NET=m | 170 | CONFIG_IP_SET_HASH_NET=m |
| 164 | CONFIG_IP_SET_HASH_NETNET=m | 171 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -166,9 +173,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 166 | CONFIG_IP_SET_HASH_NETIFACE=m | 173 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 167 | CONFIG_IP_SET_LIST_SET=m | 174 | CONFIG_IP_SET_LIST_SET=m |
| 168 | CONFIG_NF_CONNTRACK_IPV4=m | 175 | CONFIG_NF_CONNTRACK_IPV4=m |
| 176 | CONFIG_NF_LOG_ARP=m | ||
| 169 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 177 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 170 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 171 | CONFIG_NF_TABLES_ARP=m | 178 | CONFIG_NF_TABLES_ARP=m |
| 179 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 180 | CONFIG_NFT_MASQ_IPV4=m | ||
| 181 | CONFIG_NFT_REDIR_IPV4=m | ||
| 172 | CONFIG_IP_NF_IPTABLES=m | 182 | CONFIG_IP_NF_IPTABLES=m |
| 173 | CONFIG_IP_NF_MATCH_AH=m | 183 | CONFIG_IP_NF_MATCH_AH=m |
| 174 | CONFIG_IP_NF_MATCH_ECN=m | 184 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -177,8 +187,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 177 | CONFIG_IP_NF_FILTER=m | 187 | CONFIG_IP_NF_FILTER=m |
| 178 | CONFIG_IP_NF_TARGET_REJECT=m | 188 | CONFIG_IP_NF_TARGET_REJECT=m |
| 179 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 189 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 180 | CONFIG_IP_NF_TARGET_ULOG=m | 190 | CONFIG_IP_NF_NAT=m |
| 181 | CONFIG_NF_NAT_IPV4=m | ||
| 182 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 191 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 183 | CONFIG_IP_NF_TARGET_NETMAP=m | 192 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 184 | CONFIG_IP_NF_TARGET_REDIRECT=m | 193 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -193,6 +202,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 193 | CONFIG_NF_CONNTRACK_IPV6=m | 202 | CONFIG_NF_CONNTRACK_IPV6=m |
| 194 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 203 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 195 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 204 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 205 | CONFIG_NFT_MASQ_IPV6=m | ||
| 206 | CONFIG_NFT_REDIR_IPV6=m | ||
| 196 | CONFIG_IP6_NF_IPTABLES=m | 207 | CONFIG_IP6_NF_IPTABLES=m |
| 197 | CONFIG_IP6_NF_MATCH_AH=m | 208 | CONFIG_IP6_NF_MATCH_AH=m |
| 198 | CONFIG_IP6_NF_MATCH_EUI64=m | 209 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -209,17 +220,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 209 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 220 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 210 | CONFIG_IP6_NF_MANGLE=m | 221 | CONFIG_IP6_NF_MANGLE=m |
| 211 | CONFIG_IP6_NF_RAW=m | 222 | CONFIG_IP6_NF_RAW=m |
| 212 | CONFIG_NF_NAT_IPV6=m | 223 | CONFIG_IP6_NF_NAT=m |
| 213 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 224 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 214 | CONFIG_IP6_NF_TARGET_NPT=m | 225 | CONFIG_IP6_NF_TARGET_NPT=m |
| 215 | CONFIG_NF_TABLES_BRIDGE=m | 226 | CONFIG_NF_TABLES_BRIDGE=m |
| 227 | CONFIG_NFT_BRIDGE_META=m | ||
| 228 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 229 | CONFIG_NF_LOG_BRIDGE=m | ||
| 230 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 231 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 232 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 233 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 234 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 235 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 236 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 237 | CONFIG_BRIDGE_EBT_IP=m | ||
| 238 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 239 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 240 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 241 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 242 | CONFIG_BRIDGE_EBT_STP=m | ||
| 243 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 244 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 245 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 246 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 247 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 248 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 249 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 250 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 216 | CONFIG_IP_DCCP=m | 251 | CONFIG_IP_DCCP=m |
| 217 | # CONFIG_IP_DCCP_CCID3 is not set | 252 | # CONFIG_IP_DCCP_CCID3 is not set |
| 218 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 253 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 219 | CONFIG_RDS=m | 254 | CONFIG_RDS=m |
| 220 | CONFIG_RDS_TCP=m | 255 | CONFIG_RDS_TCP=m |
| 221 | CONFIG_L2TP=m | 256 | CONFIG_L2TP=m |
| 257 | CONFIG_BRIDGE=m | ||
| 222 | CONFIG_ATALK=m | 258 | CONFIG_ATALK=m |
| 259 | CONFIG_6LOWPAN=m | ||
| 223 | CONFIG_DNS_RESOLVER=y | 260 | CONFIG_DNS_RESOLVER=y |
| 224 | CONFIG_BATMAN_ADV=m | 261 | CONFIG_BATMAN_ADV=m |
| 225 | CONFIG_BATMAN_ADV_DAT=y | 262 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -228,9 +265,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 228 | CONFIG_NETLINK_DIAG=m | 265 | CONFIG_NETLINK_DIAG=m |
| 229 | CONFIG_NET_MPLS_GSO=m | 266 | CONFIG_NET_MPLS_GSO=m |
| 230 | # CONFIG_WIRELESS is not set | 267 | # CONFIG_WIRELESS is not set |
| 268 | # CONFIG_UEVENT_HELPER is not set | ||
| 231 | CONFIG_DEVTMPFS=y | 269 | CONFIG_DEVTMPFS=y |
| 270 | CONFIG_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 | ||
| 234 | CONFIG_CONNECTOR=m | 272 | CONFIG_CONNECTOR=m |
| 235 | CONFIG_PARPORT=m | 273 | CONFIG_PARPORT=m |
| 236 | CONFIG_PARPORT_PC=m | 274 | CONFIG_PARPORT_PC=m |
| @@ -286,6 +324,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 286 | CONFIG_NET_TEAM_MODE_RANDOM=m | 324 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 287 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 325 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 288 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 326 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 327 | CONFIG_MACVLAN=m | ||
| 328 | CONFIG_MACVTAP=m | ||
| 329 | CONFIG_IPVLAN=m | ||
| 289 | CONFIG_VXLAN=m | 330 | CONFIG_VXLAN=m |
| 290 | CONFIG_NETCONSOLE=m | 331 | CONFIG_NETCONSOLE=m |
| 291 | CONFIG_NETCONSOLE_DYNAMIC=y | 332 | CONFIG_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 |
| 302 | CONFIG_NE2000=m | 343 | CONFIG_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 | |||
| 347 | CONFIG_HIDRAW=y | 390 | CONFIG_HIDRAW=y |
| 348 | CONFIG_UHID=m | 391 | CONFIG_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 |
| 351 | CONFIG_RTC_CLASS=y | 395 | CONFIG_RTC_CLASS=y |
| 352 | CONFIG_RTC_DRV_GENERIC=m | 396 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -365,6 +409,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 365 | CONFIG_AUTOFS4_FS=m | 409 | CONFIG_AUTOFS4_FS=m |
| 366 | CONFIG_FUSE_FS=m | 410 | CONFIG_FUSE_FS=m |
| 367 | CONFIG_CUSE=m | 411 | CONFIG_CUSE=m |
| 412 | CONFIG_OVERLAY_FS=m | ||
| 368 | CONFIG_ISO9660_FS=y | 413 | CONFIG_ISO9660_FS=y |
| 369 | CONFIG_JOLIET=y | 414 | CONFIG_JOLIET=y |
| 370 | CONFIG_ZISOFS=y | 415 | CONFIG_ZISOFS=y |
| @@ -380,6 +425,7 @@ CONFIG_HFS_FS=m | |||
| 380 | CONFIG_HFSPLUS_FS=m | 425 | CONFIG_HFSPLUS_FS=m |
| 381 | CONFIG_CRAMFS=m | 426 | CONFIG_CRAMFS=m |
| 382 | CONFIG_SQUASHFS=m | 427 | CONFIG_SQUASHFS=m |
| 428 | CONFIG_SQUASHFS_LZ4=y | ||
| 383 | CONFIG_SQUASHFS_LZO=y | 429 | CONFIG_SQUASHFS_LZO=y |
| 384 | CONFIG_MINIX_FS=m | 430 | CONFIG_MINIX_FS=m |
| 385 | CONFIG_OMFS_FS=m | 431 | CONFIG_OMFS_FS=m |
| @@ -449,10 +495,18 @@ CONFIG_DLM=m | |||
| 449 | CONFIG_MAGIC_SYSRQ=y | 495 | CONFIG_MAGIC_SYSRQ=y |
| 450 | CONFIG_ASYNC_RAID6_TEST=m | 496 | CONFIG_ASYNC_RAID6_TEST=m |
| 451 | CONFIG_TEST_STRING_HELPERS=m | 497 | CONFIG_TEST_STRING_HELPERS=m |
| 498 | CONFIG_TEST_KSTRTOX=m | ||
| 499 | CONFIG_TEST_LKM=m | ||
| 500 | CONFIG_TEST_USER_COPY=m | ||
| 501 | CONFIG_TEST_BPF=m | ||
| 502 | CONFIG_TEST_FIRMWARE=m | ||
| 503 | CONFIG_TEST_UDELAY=m | ||
| 504 | CONFIG_EARLY_PRINTK=y | ||
| 452 | CONFIG_ENCRYPTED_KEYS=m | 505 | CONFIG_ENCRYPTED_KEYS=m |
| 453 | CONFIG_CRYPTO_MANAGER=y | 506 | CONFIG_CRYPTO_MANAGER=y |
| 454 | CONFIG_CRYPTO_USER=m | 507 | CONFIG_CRYPTO_USER=m |
| 455 | CONFIG_CRYPTO_CRYPTD=m | 508 | CONFIG_CRYPTO_CRYPTD=m |
| 509 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 456 | CONFIG_CRYPTO_TEST=m | 510 | CONFIG_CRYPTO_TEST=m |
| 457 | CONFIG_CRYPTO_CCM=m | 511 | CONFIG_CRYPTO_CCM=m |
| 458 | CONFIG_CRYPTO_GCM=m | 512 | CONFIG_CRYPTO_GCM=m |
| @@ -487,13 +541,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 487 | CONFIG_CRYPTO_LZ4=m | 541 | CONFIG_CRYPTO_LZ4=m |
| 488 | CONFIG_CRYPTO_LZ4HC=m | 542 | CONFIG_CRYPTO_LZ4HC=m |
| 489 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 543 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 544 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 545 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 546 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 490 | CONFIG_CRYPTO_USER_API_HASH=m | 547 | CONFIG_CRYPTO_USER_API_HASH=m |
| 491 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 548 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 492 | # CONFIG_CRYPTO_HW is not set | 549 | # CONFIG_CRYPTO_HW is not set |
| 493 | CONFIG_XZ_DEC_X86=y | ||
| 494 | CONFIG_XZ_DEC_POWERPC=y | ||
| 495 | CONFIG_XZ_DEC_IA64=y | ||
| 496 | CONFIG_XZ_DEC_ARM=y | ||
| 497 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 498 | CONFIG_XZ_DEC_SPARC=y | ||
| 499 | CONFIG_XZ_DEC_TEST=m | 550 | CONFIG_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 | |||
| 29 | CONFIG_SUN3=y | 29 | CONFIG_SUN3=y |
| 30 | # CONFIG_COMPACTION is not set | 30 | # CONFIG_COMPACTION is not set |
| 31 | CONFIG_CLEANCACHE=y | 31 | CONFIG_CLEANCACHE=y |
| 32 | CONFIG_ZPOOL=m | ||
| 32 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 33 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 33 | CONFIG_BINFMT_AOUT=m | 34 | CONFIG_BINFMT_AOUT=m |
| 34 | CONFIG_BINFMT_MISC=m | 35 | CONFIG_BINFMT_MISC=m |
| @@ -48,6 +49,8 @@ CONFIG_NET_IPIP=m | |||
| 48 | CONFIG_NET_IPGRE_DEMUX=m | 49 | CONFIG_NET_IPGRE_DEMUX=m |
| 49 | CONFIG_NET_IPGRE=m | 50 | CONFIG_NET_IPGRE=m |
| 50 | CONFIG_NET_IPVTI=m | 51 | CONFIG_NET_IPVTI=m |
| 52 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 53 | CONFIG_GENEVE=m | ||
| 51 | CONFIG_INET_AH=m | 54 | CONFIG_INET_AH=m |
| 52 | CONFIG_INET_ESP=m | 55 | CONFIG_INET_ESP=m |
| 53 | CONFIG_INET_IPCOMP=m | 56 | CONFIG_INET_IPCOMP=m |
| @@ -89,6 +92,8 @@ CONFIG_NFT_HASH=m | |||
| 89 | CONFIG_NFT_COUNTER=m | 92 | CONFIG_NFT_COUNTER=m |
| 90 | CONFIG_NFT_LOG=m | 93 | CONFIG_NFT_LOG=m |
| 91 | CONFIG_NFT_LIMIT=m | 94 | CONFIG_NFT_LIMIT=m |
| 95 | CONFIG_NFT_MASQ=m | ||
| 96 | CONFIG_NFT_REDIR=m | ||
| 92 | CONFIG_NFT_NAT=m | 97 | CONFIG_NFT_NAT=m |
| 93 | CONFIG_NFT_QUEUE=m | 98 | CONFIG_NFT_QUEUE=m |
| 94 | CONFIG_NFT_REJECT=m | 99 | CONFIG_NFT_REJECT=m |
| @@ -135,6 +140,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 135 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 140 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 136 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 141 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 137 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 142 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 138 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 144 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 139 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 145 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 146 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -156,6 +162,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 156 | CONFIG_IP_SET_HASH_IPPORT=m | 162 | CONFIG_IP_SET_HASH_IPPORT=m |
| 157 | CONFIG_IP_SET_HASH_IPPORTIP=m | 163 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 158 | CONFIG_IP_SET_HASH_IPPORTNET=m | 164 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 165 | CONFIG_IP_SET_HASH_MAC=m | ||
| 159 | CONFIG_IP_SET_HASH_NETPORTNET=m | 166 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 160 | CONFIG_IP_SET_HASH_NET=m | 167 | CONFIG_IP_SET_HASH_NET=m |
| 161 | CONFIG_IP_SET_HASH_NETNET=m | 168 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -163,9 +170,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 163 | CONFIG_IP_SET_HASH_NETIFACE=m | 170 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 164 | CONFIG_IP_SET_LIST_SET=m | 171 | CONFIG_IP_SET_LIST_SET=m |
| 165 | CONFIG_NF_CONNTRACK_IPV4=m | 172 | CONFIG_NF_CONNTRACK_IPV4=m |
| 173 | CONFIG_NF_LOG_ARP=m | ||
| 166 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 174 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 167 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 168 | CONFIG_NF_TABLES_ARP=m | 175 | CONFIG_NF_TABLES_ARP=m |
| 176 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 177 | CONFIG_NFT_MASQ_IPV4=m | ||
| 178 | CONFIG_NFT_REDIR_IPV4=m | ||
| 169 | CONFIG_IP_NF_IPTABLES=m | 179 | CONFIG_IP_NF_IPTABLES=m |
| 170 | CONFIG_IP_NF_MATCH_AH=m | 180 | CONFIG_IP_NF_MATCH_AH=m |
| 171 | CONFIG_IP_NF_MATCH_ECN=m | 181 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -174,8 +184,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 174 | CONFIG_IP_NF_FILTER=m | 184 | CONFIG_IP_NF_FILTER=m |
| 175 | CONFIG_IP_NF_TARGET_REJECT=m | 185 | CONFIG_IP_NF_TARGET_REJECT=m |
| 176 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 186 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 177 | CONFIG_IP_NF_TARGET_ULOG=m | 187 | CONFIG_IP_NF_NAT=m |
| 178 | CONFIG_NF_NAT_IPV4=m | ||
| 179 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 188 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 180 | CONFIG_IP_NF_TARGET_NETMAP=m | 189 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 181 | CONFIG_IP_NF_TARGET_REDIRECT=m | 190 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -190,6 +199,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 190 | CONFIG_NF_CONNTRACK_IPV6=m | 199 | CONFIG_NF_CONNTRACK_IPV6=m |
| 191 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 200 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 192 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 201 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 202 | CONFIG_NFT_MASQ_IPV6=m | ||
| 203 | CONFIG_NFT_REDIR_IPV6=m | ||
| 193 | CONFIG_IP6_NF_IPTABLES=m | 204 | CONFIG_IP6_NF_IPTABLES=m |
| 194 | CONFIG_IP6_NF_MATCH_AH=m | 205 | CONFIG_IP6_NF_MATCH_AH=m |
| 195 | CONFIG_IP6_NF_MATCH_EUI64=m | 206 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -206,17 +217,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 206 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 217 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 207 | CONFIG_IP6_NF_MANGLE=m | 218 | CONFIG_IP6_NF_MANGLE=m |
| 208 | CONFIG_IP6_NF_RAW=m | 219 | CONFIG_IP6_NF_RAW=m |
| 209 | CONFIG_NF_NAT_IPV6=m | 220 | CONFIG_IP6_NF_NAT=m |
| 210 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 221 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 211 | CONFIG_IP6_NF_TARGET_NPT=m | 222 | CONFIG_IP6_NF_TARGET_NPT=m |
| 212 | CONFIG_NF_TABLES_BRIDGE=m | 223 | CONFIG_NF_TABLES_BRIDGE=m |
| 224 | CONFIG_NFT_BRIDGE_META=m | ||
| 225 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 226 | CONFIG_NF_LOG_BRIDGE=m | ||
| 227 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 228 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 229 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 230 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 231 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 232 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 233 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 234 | CONFIG_BRIDGE_EBT_IP=m | ||
| 235 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 236 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 237 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 238 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 239 | CONFIG_BRIDGE_EBT_STP=m | ||
| 240 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 241 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 242 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 243 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 244 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 245 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 246 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 247 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 213 | CONFIG_IP_DCCP=m | 248 | CONFIG_IP_DCCP=m |
| 214 | # CONFIG_IP_DCCP_CCID3 is not set | 249 | # CONFIG_IP_DCCP_CCID3 is not set |
| 215 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 250 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 216 | CONFIG_RDS=m | 251 | CONFIG_RDS=m |
| 217 | CONFIG_RDS_TCP=m | 252 | CONFIG_RDS_TCP=m |
| 218 | CONFIG_L2TP=m | 253 | CONFIG_L2TP=m |
| 254 | CONFIG_BRIDGE=m | ||
| 219 | CONFIG_ATALK=m | 255 | CONFIG_ATALK=m |
| 256 | CONFIG_6LOWPAN=m | ||
| 220 | CONFIG_DNS_RESOLVER=y | 257 | CONFIG_DNS_RESOLVER=y |
| 221 | CONFIG_BATMAN_ADV=m | 258 | CONFIG_BATMAN_ADV=m |
| 222 | CONFIG_BATMAN_ADV_DAT=y | 259 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -225,9 +262,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 225 | CONFIG_NETLINK_DIAG=m | 262 | CONFIG_NETLINK_DIAG=m |
| 226 | CONFIG_NET_MPLS_GSO=m | 263 | CONFIG_NET_MPLS_GSO=m |
| 227 | # CONFIG_WIRELESS is not set | 264 | # CONFIG_WIRELESS is not set |
| 265 | # CONFIG_UEVENT_HELPER is not set | ||
| 228 | CONFIG_DEVTMPFS=y | 266 | CONFIG_DEVTMPFS=y |
| 267 | CONFIG_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 | ||
| 231 | CONFIG_CONNECTOR=m | 269 | CONFIG_CONNECTOR=m |
| 232 | CONFIG_BLK_DEV_LOOP=y | 270 | CONFIG_BLK_DEV_LOOP=y |
| 233 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 271 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -277,6 +315,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 277 | CONFIG_NET_TEAM_MODE_RANDOM=m | 315 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 278 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 316 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 279 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 317 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 318 | CONFIG_MACVLAN=m | ||
| 319 | CONFIG_MACVTAP=m | ||
| 320 | CONFIG_IPVLAN=m | ||
| 280 | CONFIG_VXLAN=m | 321 | CONFIG_VXLAN=m |
| 281 | CONFIG_NETCONSOLE=m | 322 | CONFIG_NETCONSOLE=m |
| 282 | CONFIG_NETCONSOLE_DYNAMIC=y | 323 | CONFIG_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 | |||
| 327 | CONFIG_HIDRAW=y | 370 | CONFIG_HIDRAW=y |
| 328 | CONFIG_UHID=m | 371 | CONFIG_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 |
| 331 | CONFIG_RTC_CLASS=y | 375 | CONFIG_RTC_CLASS=y |
| 332 | CONFIG_RTC_DRV_GENERIC=m | 376 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -344,6 +388,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 344 | CONFIG_AUTOFS4_FS=m | 388 | CONFIG_AUTOFS4_FS=m |
| 345 | CONFIG_FUSE_FS=m | 389 | CONFIG_FUSE_FS=m |
| 346 | CONFIG_CUSE=m | 390 | CONFIG_CUSE=m |
| 391 | CONFIG_OVERLAY_FS=m | ||
| 347 | CONFIG_ISO9660_FS=y | 392 | CONFIG_ISO9660_FS=y |
| 348 | CONFIG_JOLIET=y | 393 | CONFIG_JOLIET=y |
| 349 | CONFIG_ZISOFS=y | 394 | CONFIG_ZISOFS=y |
| @@ -359,6 +404,7 @@ CONFIG_HFS_FS=m | |||
| 359 | CONFIG_HFSPLUS_FS=m | 404 | CONFIG_HFSPLUS_FS=m |
| 360 | CONFIG_CRAMFS=m | 405 | CONFIG_CRAMFS=m |
| 361 | CONFIG_SQUASHFS=m | 406 | CONFIG_SQUASHFS=m |
| 407 | CONFIG_SQUASHFS_LZ4=y | ||
| 362 | CONFIG_SQUASHFS_LZO=y | 408 | CONFIG_SQUASHFS_LZO=y |
| 363 | CONFIG_MINIX_FS=m | 409 | CONFIG_MINIX_FS=m |
| 364 | CONFIG_OMFS_FS=m | 410 | CONFIG_OMFS_FS=m |
| @@ -428,10 +474,17 @@ CONFIG_DLM=m | |||
| 428 | CONFIG_MAGIC_SYSRQ=y | 474 | CONFIG_MAGIC_SYSRQ=y |
| 429 | CONFIG_ASYNC_RAID6_TEST=m | 475 | CONFIG_ASYNC_RAID6_TEST=m |
| 430 | CONFIG_TEST_STRING_HELPERS=m | 476 | CONFIG_TEST_STRING_HELPERS=m |
| 477 | CONFIG_TEST_KSTRTOX=m | ||
| 478 | CONFIG_TEST_LKM=m | ||
| 479 | CONFIG_TEST_USER_COPY=m | ||
| 480 | CONFIG_TEST_BPF=m | ||
| 481 | CONFIG_TEST_FIRMWARE=m | ||
| 482 | CONFIG_TEST_UDELAY=m | ||
| 431 | CONFIG_ENCRYPTED_KEYS=m | 483 | CONFIG_ENCRYPTED_KEYS=m |
| 432 | CONFIG_CRYPTO_MANAGER=y | 484 | CONFIG_CRYPTO_MANAGER=y |
| 433 | CONFIG_CRYPTO_USER=m | 485 | CONFIG_CRYPTO_USER=m |
| 434 | CONFIG_CRYPTO_CRYPTD=m | 486 | CONFIG_CRYPTO_CRYPTD=m |
| 487 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 435 | CONFIG_CRYPTO_TEST=m | 488 | CONFIG_CRYPTO_TEST=m |
| 436 | CONFIG_CRYPTO_CCM=m | 489 | CONFIG_CRYPTO_CCM=m |
| 437 | CONFIG_CRYPTO_GCM=m | 490 | CONFIG_CRYPTO_GCM=m |
| @@ -466,13 +519,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 466 | CONFIG_CRYPTO_LZ4=m | 519 | CONFIG_CRYPTO_LZ4=m |
| 467 | CONFIG_CRYPTO_LZ4HC=m | 520 | CONFIG_CRYPTO_LZ4HC=m |
| 468 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 521 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 522 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 523 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 524 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 469 | CONFIG_CRYPTO_USER_API_HASH=m | 525 | CONFIG_CRYPTO_USER_API_HASH=m |
| 470 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 526 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 471 | # CONFIG_CRYPTO_HW is not set | 527 | # CONFIG_CRYPTO_HW is not set |
| 472 | CONFIG_XZ_DEC_X86=y | ||
| 473 | CONFIG_XZ_DEC_POWERPC=y | ||
| 474 | CONFIG_XZ_DEC_IA64=y | ||
| 475 | CONFIG_XZ_DEC_ARM=y | ||
| 476 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 477 | CONFIG_XZ_DEC_SPARC=y | ||
| 478 | CONFIG_XZ_DEC_TEST=m | 528 | CONFIG_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 | |||
| 29 | CONFIG_SUN3X=y | 29 | CONFIG_SUN3X=y |
| 30 | # CONFIG_COMPACTION is not set | 30 | # CONFIG_COMPACTION is not set |
| 31 | CONFIG_CLEANCACHE=y | 31 | CONFIG_CLEANCACHE=y |
| 32 | CONFIG_ZPOOL=m | ||
| 32 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 33 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 33 | CONFIG_BINFMT_AOUT=m | 34 | CONFIG_BINFMT_AOUT=m |
| 34 | CONFIG_BINFMT_MISC=m | 35 | CONFIG_BINFMT_MISC=m |
| @@ -48,6 +49,8 @@ CONFIG_NET_IPIP=m | |||
| 48 | CONFIG_NET_IPGRE_DEMUX=m | 49 | CONFIG_NET_IPGRE_DEMUX=m |
| 49 | CONFIG_NET_IPGRE=m | 50 | CONFIG_NET_IPGRE=m |
| 50 | CONFIG_NET_IPVTI=m | 51 | CONFIG_NET_IPVTI=m |
| 52 | CONFIG_NET_FOU_IP_TUNNELS=y | ||
| 53 | CONFIG_GENEVE=m | ||
| 51 | CONFIG_INET_AH=m | 54 | CONFIG_INET_AH=m |
| 52 | CONFIG_INET_ESP=m | 55 | CONFIG_INET_ESP=m |
| 53 | CONFIG_INET_IPCOMP=m | 56 | CONFIG_INET_IPCOMP=m |
| @@ -89,6 +92,8 @@ CONFIG_NFT_HASH=m | |||
| 89 | CONFIG_NFT_COUNTER=m | 92 | CONFIG_NFT_COUNTER=m |
| 90 | CONFIG_NFT_LOG=m | 93 | CONFIG_NFT_LOG=m |
| 91 | CONFIG_NFT_LIMIT=m | 94 | CONFIG_NFT_LIMIT=m |
| 95 | CONFIG_NFT_MASQ=m | ||
| 96 | CONFIG_NFT_REDIR=m | ||
| 92 | CONFIG_NFT_NAT=m | 97 | CONFIG_NFT_NAT=m |
| 93 | CONFIG_NFT_QUEUE=m | 98 | CONFIG_NFT_QUEUE=m |
| 94 | CONFIG_NFT_REJECT=m | 99 | CONFIG_NFT_REJECT=m |
| @@ -135,6 +140,7 @@ CONFIG_NETFILTER_XT_MATCH_NFACCT=m | |||
| 135 | CONFIG_NETFILTER_XT_MATCH_OSF=m | 140 | CONFIG_NETFILTER_XT_MATCH_OSF=m |
| 136 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | 141 | CONFIG_NETFILTER_XT_MATCH_OWNER=m |
| 137 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 142 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
| 143 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | ||
| 138 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 144 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
| 139 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 145 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
| 140 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | 146 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
| @@ -156,6 +162,7 @@ CONFIG_IP_SET_HASH_IPMARK=m | |||
| 156 | CONFIG_IP_SET_HASH_IPPORT=m | 162 | CONFIG_IP_SET_HASH_IPPORT=m |
| 157 | CONFIG_IP_SET_HASH_IPPORTIP=m | 163 | CONFIG_IP_SET_HASH_IPPORTIP=m |
| 158 | CONFIG_IP_SET_HASH_IPPORTNET=m | 164 | CONFIG_IP_SET_HASH_IPPORTNET=m |
| 165 | CONFIG_IP_SET_HASH_MAC=m | ||
| 159 | CONFIG_IP_SET_HASH_NETPORTNET=m | 166 | CONFIG_IP_SET_HASH_NETPORTNET=m |
| 160 | CONFIG_IP_SET_HASH_NET=m | 167 | CONFIG_IP_SET_HASH_NET=m |
| 161 | CONFIG_IP_SET_HASH_NETNET=m | 168 | CONFIG_IP_SET_HASH_NETNET=m |
| @@ -163,9 +170,12 @@ CONFIG_IP_SET_HASH_NETPORT=m | |||
| 163 | CONFIG_IP_SET_HASH_NETIFACE=m | 170 | CONFIG_IP_SET_HASH_NETIFACE=m |
| 164 | CONFIG_IP_SET_LIST_SET=m | 171 | CONFIG_IP_SET_LIST_SET=m |
| 165 | CONFIG_NF_CONNTRACK_IPV4=m | 172 | CONFIG_NF_CONNTRACK_IPV4=m |
| 173 | CONFIG_NF_LOG_ARP=m | ||
| 166 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m | 174 | CONFIG_NFT_CHAIN_ROUTE_IPV4=m |
| 167 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 168 | CONFIG_NF_TABLES_ARP=m | 175 | CONFIG_NF_TABLES_ARP=m |
| 176 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
| 177 | CONFIG_NFT_MASQ_IPV4=m | ||
| 178 | CONFIG_NFT_REDIR_IPV4=m | ||
| 169 | CONFIG_IP_NF_IPTABLES=m | 179 | CONFIG_IP_NF_IPTABLES=m |
| 170 | CONFIG_IP_NF_MATCH_AH=m | 180 | CONFIG_IP_NF_MATCH_AH=m |
| 171 | CONFIG_IP_NF_MATCH_ECN=m | 181 | CONFIG_IP_NF_MATCH_ECN=m |
| @@ -174,8 +184,7 @@ CONFIG_IP_NF_MATCH_TTL=m | |||
| 174 | CONFIG_IP_NF_FILTER=m | 184 | CONFIG_IP_NF_FILTER=m |
| 175 | CONFIG_IP_NF_TARGET_REJECT=m | 185 | CONFIG_IP_NF_TARGET_REJECT=m |
| 176 | CONFIG_IP_NF_TARGET_SYNPROXY=m | 186 | CONFIG_IP_NF_TARGET_SYNPROXY=m |
| 177 | CONFIG_IP_NF_TARGET_ULOG=m | 187 | CONFIG_IP_NF_NAT=m |
| 178 | CONFIG_NF_NAT_IPV4=m | ||
| 179 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 188 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 180 | CONFIG_IP_NF_TARGET_NETMAP=m | 189 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 181 | CONFIG_IP_NF_TARGET_REDIRECT=m | 190 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| @@ -190,6 +199,8 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
| 190 | CONFIG_NF_CONNTRACK_IPV6=m | 199 | CONFIG_NF_CONNTRACK_IPV6=m |
| 191 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 200 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
| 192 | CONFIG_NFT_CHAIN_NAT_IPV6=m | 201 | CONFIG_NFT_CHAIN_NAT_IPV6=m |
| 202 | CONFIG_NFT_MASQ_IPV6=m | ||
| 203 | CONFIG_NFT_REDIR_IPV6=m | ||
| 193 | CONFIG_IP6_NF_IPTABLES=m | 204 | CONFIG_IP6_NF_IPTABLES=m |
| 194 | CONFIG_IP6_NF_MATCH_AH=m | 205 | CONFIG_IP6_NF_MATCH_AH=m |
| 195 | CONFIG_IP6_NF_MATCH_EUI64=m | 206 | CONFIG_IP6_NF_MATCH_EUI64=m |
| @@ -206,17 +217,43 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
| 206 | CONFIG_IP6_NF_TARGET_SYNPROXY=m | 217 | CONFIG_IP6_NF_TARGET_SYNPROXY=m |
| 207 | CONFIG_IP6_NF_MANGLE=m | 218 | CONFIG_IP6_NF_MANGLE=m |
| 208 | CONFIG_IP6_NF_RAW=m | 219 | CONFIG_IP6_NF_RAW=m |
| 209 | CONFIG_NF_NAT_IPV6=m | 220 | CONFIG_IP6_NF_NAT=m |
| 210 | CONFIG_IP6_NF_TARGET_MASQUERADE=m | 221 | CONFIG_IP6_NF_TARGET_MASQUERADE=m |
| 211 | CONFIG_IP6_NF_TARGET_NPT=m | 222 | CONFIG_IP6_NF_TARGET_NPT=m |
| 212 | CONFIG_NF_TABLES_BRIDGE=m | 223 | CONFIG_NF_TABLES_BRIDGE=m |
| 224 | CONFIG_NFT_BRIDGE_META=m | ||
| 225 | CONFIG_NFT_BRIDGE_REJECT=m | ||
| 226 | CONFIG_NF_LOG_BRIDGE=m | ||
| 227 | CONFIG_BRIDGE_NF_EBTABLES=m | ||
| 228 | CONFIG_BRIDGE_EBT_BROUTE=m | ||
| 229 | CONFIG_BRIDGE_EBT_T_FILTER=m | ||
| 230 | CONFIG_BRIDGE_EBT_T_NAT=m | ||
| 231 | CONFIG_BRIDGE_EBT_802_3=m | ||
| 232 | CONFIG_BRIDGE_EBT_AMONG=m | ||
| 233 | CONFIG_BRIDGE_EBT_ARP=m | ||
| 234 | CONFIG_BRIDGE_EBT_IP=m | ||
| 235 | CONFIG_BRIDGE_EBT_IP6=m | ||
| 236 | CONFIG_BRIDGE_EBT_LIMIT=m | ||
| 237 | CONFIG_BRIDGE_EBT_MARK=m | ||
| 238 | CONFIG_BRIDGE_EBT_PKTTYPE=m | ||
| 239 | CONFIG_BRIDGE_EBT_STP=m | ||
| 240 | CONFIG_BRIDGE_EBT_VLAN=m | ||
| 241 | CONFIG_BRIDGE_EBT_ARPREPLY=m | ||
| 242 | CONFIG_BRIDGE_EBT_DNAT=m | ||
| 243 | CONFIG_BRIDGE_EBT_MARK_T=m | ||
| 244 | CONFIG_BRIDGE_EBT_REDIRECT=m | ||
| 245 | CONFIG_BRIDGE_EBT_SNAT=m | ||
| 246 | CONFIG_BRIDGE_EBT_LOG=m | ||
| 247 | CONFIG_BRIDGE_EBT_NFLOG=m | ||
| 213 | CONFIG_IP_DCCP=m | 248 | CONFIG_IP_DCCP=m |
| 214 | # CONFIG_IP_DCCP_CCID3 is not set | 249 | # CONFIG_IP_DCCP_CCID3 is not set |
| 215 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y | 250 | CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
| 216 | CONFIG_RDS=m | 251 | CONFIG_RDS=m |
| 217 | CONFIG_RDS_TCP=m | 252 | CONFIG_RDS_TCP=m |
| 218 | CONFIG_L2TP=m | 253 | CONFIG_L2TP=m |
| 254 | CONFIG_BRIDGE=m | ||
| 219 | CONFIG_ATALK=m | 255 | CONFIG_ATALK=m |
| 256 | CONFIG_6LOWPAN=m | ||
| 220 | CONFIG_DNS_RESOLVER=y | 257 | CONFIG_DNS_RESOLVER=y |
| 221 | CONFIG_BATMAN_ADV=m | 258 | CONFIG_BATMAN_ADV=m |
| 222 | CONFIG_BATMAN_ADV_DAT=y | 259 | CONFIG_BATMAN_ADV_DAT=y |
| @@ -225,9 +262,10 @@ CONFIG_BATMAN_ADV_MCAST=y | |||
| 225 | CONFIG_NETLINK_DIAG=m | 262 | CONFIG_NETLINK_DIAG=m |
| 226 | CONFIG_NET_MPLS_GSO=m | 263 | CONFIG_NET_MPLS_GSO=m |
| 227 | # CONFIG_WIRELESS is not set | 264 | # CONFIG_WIRELESS is not set |
| 265 | # CONFIG_UEVENT_HELPER is not set | ||
| 228 | CONFIG_DEVTMPFS=y | 266 | CONFIG_DEVTMPFS=y |
| 267 | CONFIG_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 | ||
| 231 | CONFIG_CONNECTOR=m | 269 | CONFIG_CONNECTOR=m |
| 232 | CONFIG_BLK_DEV_LOOP=y | 270 | CONFIG_BLK_DEV_LOOP=y |
| 233 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 271 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| @@ -277,6 +315,9 @@ CONFIG_NET_TEAM_MODE_ROUNDROBIN=m | |||
| 277 | CONFIG_NET_TEAM_MODE_RANDOM=m | 315 | CONFIG_NET_TEAM_MODE_RANDOM=m |
| 278 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m | 316 | CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m |
| 279 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m | 317 | CONFIG_NET_TEAM_MODE_LOADBALANCE=m |
| 318 | CONFIG_MACVLAN=m | ||
| 319 | CONFIG_MACVTAP=m | ||
| 320 | CONFIG_IPVLAN=m | ||
| 280 | CONFIG_VXLAN=m | 321 | CONFIG_VXLAN=m |
| 281 | CONFIG_NETCONSOLE=m | 322 | CONFIG_NETCONSOLE=m |
| 282 | CONFIG_NETCONSOLE_DYNAMIC=y | 323 | CONFIG_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 | |||
| 327 | CONFIG_HIDRAW=y | 370 | CONFIG_HIDRAW=y |
| 328 | CONFIG_UHID=m | 371 | CONFIG_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 |
| 331 | CONFIG_RTC_CLASS=y | 375 | CONFIG_RTC_CLASS=y |
| 332 | CONFIG_RTC_DRV_GENERIC=m | 376 | CONFIG_RTC_DRV_GENERIC=m |
| @@ -344,6 +388,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y | |||
| 344 | CONFIG_AUTOFS4_FS=m | 388 | CONFIG_AUTOFS4_FS=m |
| 345 | CONFIG_FUSE_FS=m | 389 | CONFIG_FUSE_FS=m |
| 346 | CONFIG_CUSE=m | 390 | CONFIG_CUSE=m |
| 391 | CONFIG_OVERLAY_FS=m | ||
| 347 | CONFIG_ISO9660_FS=y | 392 | CONFIG_ISO9660_FS=y |
| 348 | CONFIG_JOLIET=y | 393 | CONFIG_JOLIET=y |
| 349 | CONFIG_ZISOFS=y | 394 | CONFIG_ZISOFS=y |
| @@ -359,6 +404,7 @@ CONFIG_HFS_FS=m | |||
| 359 | CONFIG_HFSPLUS_FS=m | 404 | CONFIG_HFSPLUS_FS=m |
| 360 | CONFIG_CRAMFS=m | 405 | CONFIG_CRAMFS=m |
| 361 | CONFIG_SQUASHFS=m | 406 | CONFIG_SQUASHFS=m |
| 407 | CONFIG_SQUASHFS_LZ4=y | ||
| 362 | CONFIG_SQUASHFS_LZO=y | 408 | CONFIG_SQUASHFS_LZO=y |
| 363 | CONFIG_MINIX_FS=m | 409 | CONFIG_MINIX_FS=m |
| 364 | CONFIG_OMFS_FS=m | 410 | CONFIG_OMFS_FS=m |
| @@ -428,10 +474,18 @@ CONFIG_DLM=m | |||
| 428 | CONFIG_MAGIC_SYSRQ=y | 474 | CONFIG_MAGIC_SYSRQ=y |
| 429 | CONFIG_ASYNC_RAID6_TEST=m | 475 | CONFIG_ASYNC_RAID6_TEST=m |
| 430 | CONFIG_TEST_STRING_HELPERS=m | 476 | CONFIG_TEST_STRING_HELPERS=m |
| 477 | CONFIG_TEST_KSTRTOX=m | ||
| 478 | CONFIG_TEST_LKM=m | ||
| 479 | CONFIG_TEST_USER_COPY=m | ||
| 480 | CONFIG_TEST_BPF=m | ||
| 481 | CONFIG_TEST_FIRMWARE=m | ||
| 482 | CONFIG_TEST_UDELAY=m | ||
| 483 | CONFIG_EARLY_PRINTK=y | ||
| 431 | CONFIG_ENCRYPTED_KEYS=m | 484 | CONFIG_ENCRYPTED_KEYS=m |
| 432 | CONFIG_CRYPTO_MANAGER=y | 485 | CONFIG_CRYPTO_MANAGER=y |
| 433 | CONFIG_CRYPTO_USER=m | 486 | CONFIG_CRYPTO_USER=m |
| 434 | CONFIG_CRYPTO_CRYPTD=m | 487 | CONFIG_CRYPTO_CRYPTD=m |
| 488 | CONFIG_CRYPTO_MCRYPTD=m | ||
| 435 | CONFIG_CRYPTO_TEST=m | 489 | CONFIG_CRYPTO_TEST=m |
| 436 | CONFIG_CRYPTO_CCM=m | 490 | CONFIG_CRYPTO_CCM=m |
| 437 | CONFIG_CRYPTO_GCM=m | 491 | CONFIG_CRYPTO_GCM=m |
| @@ -466,13 +520,10 @@ CONFIG_CRYPTO_LZO=m | |||
| 466 | CONFIG_CRYPTO_LZ4=m | 520 | CONFIG_CRYPTO_LZ4=m |
| 467 | CONFIG_CRYPTO_LZ4HC=m | 521 | CONFIG_CRYPTO_LZ4HC=m |
| 468 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 522 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 523 | CONFIG_CRYPTO_DRBG_MENU=m | ||
| 524 | CONFIG_CRYPTO_DRBG_HASH=y | ||
| 525 | CONFIG_CRYPTO_DRBG_CTR=y | ||
| 469 | CONFIG_CRYPTO_USER_API_HASH=m | 526 | CONFIG_CRYPTO_USER_API_HASH=m |
| 470 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | 527 | CONFIG_CRYPTO_USER_API_SKCIPHER=m |
| 471 | # CONFIG_CRYPTO_HW is not set | 528 | # CONFIG_CRYPTO_HW is not set |
| 472 | CONFIG_XZ_DEC_X86=y | ||
| 473 | CONFIG_XZ_DEC_POWERPC=y | ||
| 474 | CONFIG_XZ_DEC_IA64=y | ||
| 475 | CONFIG_XZ_DEC_ARM=y | ||
| 476 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
| 477 | CONFIG_XZ_DEC_SPARC=y | ||
| 478 | CONFIG_XZ_DEC_TEST=m | 529 | CONFIG_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 | |||
| 6 | generic-y += emergency-restart.h | 6 | generic-y += emergency-restart.h |
| 7 | generic-y += errno.h | 7 | generic-y += errno.h |
| 8 | generic-y += exec.h | 8 | generic-y += exec.h |
| 9 | generic-y += futex.h | ||
| 9 | generic-y += hw_irq.h | 10 | generic-y += hw_irq.h |
| 10 | generic-y += ioctl.h | 11 | generic-y += ioctl.h |
| 11 | generic-y += ipcbuf.h | 12 | generic-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 | |||
| 13 | static inline int | ||
| 14 | futex_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 | |||
| 30 | static inline int | ||
| 31 | futex_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 | |||
| 75 | out_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 | |||
| 174 | static 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 | |||
| 183 | static 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 | |||
| 198 | void 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 | |||
| 213 | void 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 | } |
| 164 | module_init(rtc_MK48T08_init); | 164 | device_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 | 37 | clean-files += simpleImage.*.unstrip linux.bin.ub dts/*.dtb | |
| 38 | clean-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 |
| 18 | DTC_FLAGS := -p 1024 | 18 | DTC_FLAGS := -p 1024 |
| 19 | |||
| 20 | clean-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 | ||
| 18 | extern inline void __delay(unsigned long loops) | 18 | static 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 | ||
| 44 | extern unsigned long loops_per_jiffy; | 44 | extern unsigned long loops_per_jiffy; |
| 45 | 45 | ||
| 46 | extern inline void __udelay(unsigned int x) | 46 | static 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 | ||
| 26 | struct pt_regs; | ||
| 27 | asmlinkage 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 | ||
| 61 | extern void __bad_pte(pmd_t *pmd); | 61 | extern void __bad_pte(pmd_t *pmd); |
| 62 | 62 | ||
| 63 | extern inline pgd_t *get_pgd_slow(void) | 63 | static 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 | ||
| 73 | extern inline pgd_t *get_pgd_fast(void) | 73 | static 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 | ||
| 87 | extern inline void free_pgd_fast(pgd_t *pgd) | 87 | static 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 | ||
| 94 | extern inline void free_pgd_slow(pgd_t *pgd) | 94 | static 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 | ||
| 149 | extern inline void pte_free_fast(pte_t *pte) | 149 | static 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 | ||
| 156 | extern inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) | 156 | static 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 | ||
| 161 | extern inline void pte_free_slow(struct page *ptepage) | 161 | static 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 | ||
| 100 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); | 100 | asmlinkage unsigned long do_syscall_trace_enter(struct pt_regs *regs); |
| 101 | asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); | 101 | asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); |
| 102 | 102 | ||
| 103 | static inline int syscall_get_arch(void) | 103 | static 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 | ||
| 17 | obj-y += dma.o exceptions.o \ | 17 | obj-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 | ||
| 22 | obj-y += cpu/ | 22 | obj-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) \ |
| 142 | do { \ | 142 | do { \ |
| 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 @@ | |||
| 33 | void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) | 33 | void 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 | ||
| 23 | void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu) | 23 | void __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 | ||
| 36 | void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) | 37 | void 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 | ||
| 68 | void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) | 70 | void 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 | ||
| 80 | void microblaze_kgdb_break(struct pt_regs *regs) | 82 | asmlinkage 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 */ |
| 92 | void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p) | 94 | void 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 | |||
| 11 | void 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 | ||
| 135 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | 135 | asmlinkage 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 | */ |
| 62 | inline long get_frame_size(unsigned long instr) | 62 | static 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 | ||
| 175 | struct pci_ops bcm1480_pci_ops = { | 175 | struct 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 | ||
| 180 | static struct resource bcm1480_mem_resource = { | 180 | static 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 | ||
| 329 | static struct pci_ops octeon_pci_ops = { | 329 | static 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 | ||
| 334 | static struct resource octeon_pci_mem_resource = { | 334 | static 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 | ||
| 1794 | static struct pci_ops octeon_pcie0_ops = { | 1794 | static 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 | ||
| 1799 | static struct resource octeon_pcie0_mem_resource = { | 1799 | static struct resource octeon_pcie0_mem_resource = { |
| @@ -1813,8 +1813,8 @@ static struct pci_controller octeon_pcie0_controller = { | |||
| 1813 | }; | 1813 | }; |
| 1814 | 1814 | ||
| 1815 | static struct pci_ops octeon_pcie1_ops = { | 1815 | static 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 | ||
| 1820 | static struct resource octeon_pcie1_mem_resource = { | 1820 | static struct resource octeon_pcie1_mem_resource = { |
| @@ -1834,8 +1834,8 @@ static struct pci_controller octeon_pcie1_controller = { | |||
| 1834 | }; | 1834 | }; |
| 1835 | 1835 | ||
| 1836 | static struct pci_ops octeon_dummy_ops = { | 1836 | static 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 | ||
| 1841 | static struct resource octeon_dummy_mem_resource = { | 1841 | static 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 | ||
| 230 | static struct pci_ops pci_direct_ampci = { | 230 | static 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 | ||
| 25 | config KVM_BOOK3S_HANDLER | 26 | config 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 | ||
| 401 | static struct pci_ops scc_pciex_pci_ops = { | 401 | static 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 | ||
| 406 | static void pciex_clear_intr_all(unsigned int __iomem *base) | 406 | static 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 | ||
| 136 | static volatile void __iomem *macrisc_cfg_access(struct pci_controller* hose, | 136 | static 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 | ||
| 157 | static 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 | |||
| 189 | static 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 | |||
| 221 | static struct pci_ops macrisc_pci_ops = | 163 | static 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 | */ |
| 231 | static int chaos_validate_dev(struct pci_bus *bus, int devfn, int offset) | 174 | static 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 | ||
| 254 | static int | 195 | return macrisc_cfg_map_bus(bus, devfn, offset); |
| 255 | chaos_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 | |||
| 266 | static int | ||
| 267 | chaos_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 | ||
| 276 | static struct pci_ops chaos_pci_ops = | 198 | static 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 | ||
| 282 | static void __init setup_chaos(struct pci_controller *hose, | 205 | static 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 | ||
| 474 | static volatile void __iomem *u4_pcie_cfg_access(struct pci_controller* hose, | 397 | static 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 | ||
| 493 | static 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 | |||
| 525 | static 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 | |||
| 557 | static struct pci_ops u4_pcie_pci_ops = | 425 | static 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 | ||
| 563 | static void pmac_pci_fixup_u4_of_node(struct pci_dev *dev) | 432 | static 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 | ||
| 648 | static 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 | |||
| 672 | static int mpc83xx_pcie_write_config(struct pci_bus *bus, unsigned int devfn, | 648 | static 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 | ||
| 701 | static struct pci_ops mpc83xx_pcie_ops = { | 660 | static 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 | ||
| 142 | config INSTRUCTION_DECODER | 143 | config 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 | ||
| 500 | config 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 | |||
| 499 | config IOSF_MBI | 511 | config 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 | ||
| 856 | source "kernel/Kconfig.preempt" | 868 | source "kernel/Kconfig.preempt" |
| 857 | 869 | ||
| 870 | config UP_LATE_INIT | ||
| 871 | def_bool y | ||
| 872 | depends on !SMP && X86_LOCAL_APIC | ||
| 873 | |||
| 858 | config X86_UP_APIC | 874 | config 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 | ||
| 5 | static inline int isdigit(int ch) | 4 | static 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: | |||
| 179 | sysexit_from_sys_call: | 179 | sysexit_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); | |||
| 106 | extern void native_apic_icr_write(u32 low, u32 id); | 106 | extern void native_apic_icr_write(u32 low, u32 id); |
| 107 | extern u64 native_apic_icr_read(void); | 107 | extern u64 native_apic_icr_read(void); |
| 108 | 108 | ||
| 109 | extern int x2apic_mode; | 109 | static 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 | ||
| 179 | extern int x2apic_mode; | ||
| 172 | extern int x2apic_phys; | 180 | extern int x2apic_phys; |
| 173 | extern int x2apic_preenabled; | 181 | extern void __init check_x2apic(void); |
| 174 | extern void check_x2apic(void); | 182 | extern void x2apic_setup(void); |
| 175 | extern void enable_x2apic(void); | ||
| 176 | static inline int x2apic_enabled(void) | 183 | static 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) |
| 190 | static inline void x2apic_force_phys(void) | ||
| 191 | { | ||
| 192 | x2apic_phys = 1; | ||
| 193 | } | ||
| 194 | #else | 189 | #else |
| 195 | static inline void disable_x2apic(void) | 190 | static inline void check_x2apic(void) { } |
| 196 | { | 191 | static inline void x2apic_setup(void) { } |
| 197 | } | 192 | static inline int x2apic_enabled(void) { return 0; } |
| 198 | static inline void check_x2apic(void) | ||
| 199 | { | ||
| 200 | } | ||
| 201 | static inline void enable_x2apic(void) | ||
| 202 | { | ||
| 203 | } | ||
| 204 | static inline int x2apic_enabled(void) | ||
| 205 | { | ||
| 206 | return 0; | ||
| 207 | } | ||
| 208 | static 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 | ||
| 216 | extern void enable_IR_x2apic(void); | 198 | extern void enable_IR_x2apic(void); |
| @@ -219,7 +201,6 @@ extern int get_physical_broadcast(void); | |||
| 219 | 201 | ||
| 220 | extern int lapic_get_maxlvt(void); | 202 | extern int lapic_get_maxlvt(void); |
| 221 | extern void clear_local_APIC(void); | 203 | extern void clear_local_APIC(void); |
| 222 | extern void connect_bsp_APIC(void); | ||
| 223 | extern void disconnect_bsp_APIC(int virt_wire_setup); | 204 | extern void disconnect_bsp_APIC(int virt_wire_setup); |
| 224 | extern void disable_local_APIC(void); | 205 | extern void disable_local_APIC(void); |
| 225 | extern void lapic_shutdown(void); | 206 | extern void lapic_shutdown(void); |
| @@ -227,8 +208,6 @@ extern int verify_local_APIC(void); | |||
| 227 | extern void sync_Arb_IDs(void); | 208 | extern void sync_Arb_IDs(void); |
| 228 | extern void init_bsp_APIC(void); | 209 | extern void init_bsp_APIC(void); |
| 229 | extern void setup_local_APIC(void); | 210 | extern void setup_local_APIC(void); |
| 230 | extern void end_local_APIC_setup(void); | ||
| 231 | extern void bsp_end_local_APIC_setup(void); | ||
| 232 | extern void init_apic_mappings(void); | 211 | extern void init_apic_mappings(void); |
| 233 | void register_lapic_address(unsigned long address); | 212 | void register_lapic_address(unsigned long address); |
| 234 | extern void setup_boot_APIC_clock(void); | 213 | extern void setup_boot_APIC_clock(void); |
| @@ -236,6 +215,9 @@ extern void setup_secondary_APIC_clock(void); | |||
| 236 | extern int APIC_init_uniprocessor(void); | 215 | extern int APIC_init_uniprocessor(void); |
| 237 | extern int apic_force_enable(unsigned long addr); | 216 | extern int apic_force_enable(unsigned long addr); |
| 238 | 217 | ||
| 218 | extern int apic_bsp_setup(bool upmode); | ||
| 219 | extern 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 |
| 393 | extern void warn_pre_alternatives(void); | 395 | extern 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) { } | |||
| 114 | static inline void debug_stack_usage_dec(void) { } | 114 | static inline void debug_stack_usage_dec(void) { } |
| 115 | #endif /* X86_64 */ | 115 | #endif /* X86_64 */ |
| 116 | 116 | ||
| 117 | #ifdef CONFIG_CPU_SUP_AMD | ||
| 118 | extern void set_dr_addr_mask(unsigned long mask, int dr); | ||
| 119 | #else | ||
| 120 | static 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 | ||
| 291 | static inline int restore_fpu_checking(struct task_struct *tsk) | 291 | static 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 | */ |
| 13 | struct arch_hw_breakpoint { | 13 | struct 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 | ||
| 41 | static inline void kernel_fpu_begin(void) | 41 | static 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 */ | ||
| 55 | extern void kernel_fpu_disable(void); | ||
| 56 | extern 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 | |||
| 283 | static inline void setup_IO_APIC(void) { } | ||
| 284 | static inline void enable_IO_APIC(void) { } | ||
| 285 | static 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 | ||
| 36 | extern void setup_irq_remapping_ops(void); | ||
| 37 | extern int irq_remapping_supported(void); | ||
| 38 | extern void set_irq_remapping_broken(void); | 36 | extern void set_irq_remapping_broken(void); |
| 39 | extern int irq_remapping_prepare(void); | 37 | extern int irq_remapping_prepare(void); |
| 40 | extern int irq_remapping_enable(void); | 38 | extern 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 | ||
| 63 | static inline void setup_irq_remapping_ops(void) { } | ||
| 64 | static inline int irq_remapping_supported(void) { return 0; } | ||
| 65 | static inline void set_irq_remapping_broken(void) { } | 61 | static inline void set_irq_remapping_broken(void) { } |
| 66 | static inline int irq_remapping_prepare(void) { return -ENODEV; } | 62 | static inline int irq_remapping_prepare(void) { return -ENODEV; } |
| 67 | static inline int irq_remapping_enable(void) { return -ENODEV; } | 63 | static 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 { | |||
| 190 | void machine_check_poll(enum mcp_flags flags, mce_banks_t *b); | 190 | void machine_check_poll(enum mcp_flags flags, mce_banks_t *b); |
| 191 | 191 | ||
| 192 | int mce_notify_irq(void); | 192 | int mce_notify_irq(void); |
| 193 | void mce_notify_process(void); | ||
| 194 | 193 | ||
| 195 | DECLARE_PER_CPU(struct mce, injectm); | 194 | DECLARE_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; | |||
| 93 | extern int (*pcibios_enable_irq)(struct pci_dev *dev); | 93 | extern int (*pcibios_enable_irq)(struct pci_dev *dev); |
| 94 | extern void (*pcibios_disable_irq)(struct pci_dev *dev); | 94 | extern void (*pcibios_disable_irq)(struct pci_dev *dev); |
| 95 | 95 | ||
| 96 | extern bool mp_should_keep_irq(struct device *dev); | ||
| 97 | |||
| 98 | struct pci_raw_ops { | 96 | struct 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 | |||
| 4 | static inline void smpboot_clear_io_apic_irqs(void) | ||
| 5 | { | ||
| 6 | #ifdef CONFIG_X86_IO_APIC | ||
| 7 | io_apic_irqs = 0; | ||
| 8 | #endif | ||
| 9 | } | ||
| 10 | |||
| 11 | static 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 | |||
| 28 | static 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 | |||
| 48 | static 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 | |||
| 63 | static 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 | ||
| 171 | static 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); | |||
| 110 | asmlinkage void mce_threshold_interrupt(void); | 111 | asmlinkage void mce_threshold_interrupt(void); |
| 111 | #endif | 112 | #endif |
| 112 | 113 | ||
| 114 | extern enum ctx_state ist_enter(struct pt_regs *regs); | ||
| 115 | extern void ist_exit(struct pt_regs *regs, enum ctx_state prev_state); | ||
| 116 | extern void ist_begin_non_atomic(struct pt_regs *regs); | ||
| 117 | extern void ist_end_non_atomic(void); | ||
| 118 | |||
| 113 | /* Interrupts/Exceptions */ | 119 | /* Interrupts/Exceptions */ |
| 114 | enum { | 120 | enum { |
| 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); |
| 57 | extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, | 57 | extern 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); |
| 60 | extern 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 | ||
| 656 | static int acpi_register_gsi_ioapic(struct device *dev, u32 gsi, | 657 | static 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 | ||
| 679 | int (*__acpi_register_gsi)(struct device *dev, u32 gsi, | 681 | int (*__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 | ||
| 844 | static int __init acpi_parse_sbf(struct acpi_table_header *table) | 846 | static 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 | ||
| 864 | static int __init acpi_parse_hpet(struct acpi_table_header *table) | 860 | static 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 | */ | ||
| 141 | static inline int is_apbt_capable(void) | ||
| 142 | { | ||
| 143 | return apbt_virt_address ? 1 : 0; | ||
| 144 | } | ||
| 145 | |||
| 146 | static int __init apbt_clockevent_register(void) | 138 | static 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 | */ |
| 135 | static int force_enable_local_apic __initdata; | 135 | static int force_enable_local_apic __initdata; |
| 136 | 136 | ||
| 137 | /* Control whether x2APIC mode is enabled or not */ | ||
| 138 | static 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 | ||
| 164 | int x2apic_mode; | ||
| 165 | #ifdef CONFIG_X86_X2APIC | ||
| 166 | /* x2apic enabled before OS handover */ | ||
| 167 | int x2apic_preenabled; | ||
| 168 | static int x2apic_disabled; | ||
| 169 | static 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 | } | ||
| 188 | early_param("nox2apic", setup_nox2apic); | ||
| 189 | #endif | ||
| 190 | |||
| 191 | unsigned long mp_lapic_addr; | 161 | unsigned long mp_lapic_addr; |
| 192 | int disable_apic; | 162 | int 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 | ||
| 1478 | void end_local_APIC_setup(void) | 1448 | static 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 | ||
| 1495 | void __init bsp_end_local_APIC_setup(void) | 1465 | /* |
| 1466 | * APIC setup function for application processors. Called from smpboot.c | ||
| 1467 | */ | ||
| 1468 | void 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 | /* | 1475 | int x2apic_mode; |
| 1509 | * Need to disable xapic and x2apic at the same time and then enable xapic mode | ||
| 1510 | */ | ||
| 1511 | static 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 | ||
| 1518 | static __init void disable_x2apic(void) | 1477 | enum { |
| 1478 | X2APIC_OFF, | ||
| 1479 | X2APIC_ON, | ||
| 1480 | X2APIC_DISABLED, | ||
| 1481 | }; | ||
| 1482 | static int x2apic_state; | ||
| 1483 | |||
| 1484 | static 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"); | 1500 | static 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; | 1511 | static 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 | } |
| 1529 | early_param("nox2apic", setup_nox2apic); | ||
| 1546 | 1530 | ||
| 1547 | void check_x2apic(void) | 1531 | /* Called from cpu_init() to enable x2apic on (secondary) cpus */ |
| 1532 | void 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 | ||
| 1555 | void enable_x2apic(void) | 1545 | static __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); | ||
| 1558 | out: | ||
| 1559 | x2apic_state = X2APIC_DISABLED; | ||
| 1560 | x2apic_mode = 0; | ||
| 1561 | } | ||
| 1562 | |||
| 1563 | static __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 | |||
| 1573 | static __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 | ||
| 1575 | int __init enable_IR(void) | 1599 | void __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 */ | ||
| 1610 | static 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 | } | ||
| 1619 | early_initcall(validate_x2apic); | ||
| 1582 | 1620 | ||
| 1583 | if (!x2apic_preenabled && skip_ioapic_setup) { | 1621 | static inline void try_to_enable_x2apic(int remap_mode) { } |
| 1584 | pr_info("Skipped enabling intr-remap because of skipping " | 1622 | static inline void __x2apic_enable(void) { } |
| 1585 | "io-apic setup\n"); | 1623 | #endif /* !CONFIG_X86_X2APIC */ |
| 1624 | |||
| 1625 | static 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 | ||
| 1594 | void __init enable_IR_x2apic(void) | 1636 | void __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 | |||
| 1658 | skip_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 | */ | ||
| 1854 | int apic_version[MAX_LOCAL_APIC]; | 1852 | int apic_version[MAX_LOCAL_APIC]; |
| 1855 | 1853 | ||
| 1856 | int __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 | */ |
| 2030 | void __init connect_bsp_APIC(void) | 1958 | static 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 | ||
| 2205 | static 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 | */ | ||
| 2229 | int __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 | */ | ||
| 2256 | int __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 | ||
| 2293 | void __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 | |||
| 873 | void 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]; | |||
| 491 | u16 __read_mostly tlb_lld_4m[NR_INFO]; | 491 | u16 __read_mostly tlb_lld_4m[NR_INFO]; |
| 492 | u16 __read_mostly tlb_lld_1g[NR_INFO]; | 492 | u16 __read_mostly tlb_lld_1g[NR_INFO]; |
| 493 | 493 | ||
| 494 | void cpu_detect_tlb(struct cpuinfo_x86 *c) | 494 | static 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 | ||
| 507 | void detect_ht(struct cpuinfo_x86 *c) | 508 | void 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 | */ |
| 118 | ATOMIC_NOTIFIER_HEAD(x86_mce_decoder_chain); | 119 | static 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 */ |
| 121 | void mce_setup(struct mce *m) | 122 | void 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 | ||
| 314 | static void mce_panic(char *msg, struct mce *final, char *exp) | 315 | static 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 | ||
| 532 | DEFINE_PER_CPU(struct irq_work, mce_irq_work); | 533 | static DEFINE_PER_CPU(struct irq_work, mce_irq_work); |
| 533 | 534 | ||
| 534 | static void mce_irq_work_cb(struct irq_work *entry) | 535 | static 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 | */ |
| 738 | static int mce_timed_out(u64 *t) | 739 | static 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 | |||
| 1012 | struct mce_info { | ||
| 1013 | atomic_t inuse; | ||
| 1014 | struct task_struct *t; | ||
| 1015 | __u64 paddr; | ||
| 1016 | int restartable; | ||
| 1017 | } mce_info[MCE_INFO_MAX]; | ||
| 1018 | |||
| 1019 | static 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 | |||
| 1035 | static 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 | |||
| 1045 | static 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); |
| 1217 | out: | 1181 | out: |
| 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(); | ||
| 1202 | done: | ||
| 1203 | ist_exit(regs, prev_state); | ||
| 1219 | } | 1204 | } |
| 1220 | EXPORT_SYMBOL_GPL(do_machine_check); | 1205 | EXPORT_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 | */ | ||
| 1243 | void 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: */ |
| 18 | static void pentium_machine_check(struct pt_regs *regs, long error_code) | 19 | static 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: */ |
| 14 | static void winchip_machine_check(struct pt_regs *regs, long error_code) | 15 | static 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 | ||
| 562 | void __init update_e820(void) | 562 | void __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 | } |
| 573 | static void __init update_e820_saved(void) | 569 | static 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); | |||
| 898 | void __init finish_e820_parsing(void) | 890 | void __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 | */ | ||
| 271 | 1: 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 | |||
| 286 | ENTRY(save_paranoid) | 221 | ENTRY(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 | */ |
| 428 | ret_from_sys_call: | 363 | ret_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 */ |
| 431 | sysret_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 */ | ||
| 453 | sysret_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 */ | 384 | int_ret_from_sys_call_fixup: |
| 464 | sysret_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 | */ | ||
| 485 | sysret_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 */ |
| 496 | tracesys: | 389 | tracesys: |
| @@ -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 | ||
| 629 | ENTRY(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 | ||
| 640 | END(ptregscall_common) | ||
| 641 | |||
| 642 | ENTRY(stub_execve) | 522 | ENTRY(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 | */ | ||
| 690 | 1: 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 | */ | ||
| 801 | irq_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 | |||
| 808 | opportunistic_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 | */ | ||
| 1078 | 1: | ||
| 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 |
| 1092 | END(\sym) | 1102 | END(\sym) |
| 1093 | .endm | 1103 | .endm |
| @@ -1108,7 +1118,7 @@ idtentry overflow do_overflow has_error_code=0 | |||
| 1108 | idtentry bounds do_bounds has_error_code=0 | 1118 | idtentry bounds do_bounds has_error_code=0 |
| 1109 | idtentry invalid_op do_invalid_op has_error_code=0 | 1119 | idtentry invalid_op do_invalid_op has_error_code=0 |
| 1110 | idtentry device_not_available do_device_not_available has_error_code=0 | 1120 | idtentry device_not_available do_device_not_available has_error_code=0 |
| 1111 | idtentry double_fault do_double_fault has_error_code=1 paranoid=1 | 1121 | idtentry double_fault do_double_fault has_error_code=1 paranoid=2 |
| 1112 | idtentry coprocessor_segment_overrun do_coprocessor_segment_overrun has_error_code=0 | 1122 | idtentry coprocessor_segment_overrun do_coprocessor_segment_overrun has_error_code=0 |
| 1113 | idtentry invalid_TSS do_invalid_TSS has_error_code=1 | 1123 | idtentry invalid_TSS do_invalid_TSS has_error_code=1 |
| 1114 | idtentry segment_not_present do_segment_not_present has_error_code=1 | 1124 | idtentry 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 | ||
| 1313 | paranoid_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 |
| 1318 | paranoid_restore: | 1323 | paranoid_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 |
| 1322 | paranoid_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 | ||
| 1341 | paranoid_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 |
| 1349 | END(paranoid_exit) | 1328 | END(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); | |
| 166 | static 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 | ||
| 22 | static DEFINE_PER_CPU(bool, in_kernel_fpu); | ||
| 23 | |||
| 24 | void kernel_fpu_disable(void) | ||
| 25 | { | ||
| 26 | WARN_ON(this_cpu_read(in_kernel_fpu)); | ||
| 27 | this_cpu_write(in_kernel_fpu, true); | ||
| 28 | } | ||
| 29 | |||
| 30 | void 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 | */ |
| 34 | static inline bool interrupted_kernel_fpu_idle(void) | 47 | static 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 | ||
| 87 | void __kernel_fpu_end(void) | 103 | void __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 | } |
| 103 | EXPORT_SYMBOL(__kernel_fpu_end); | 116 | EXPORT_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 | |||
| 79 | static inline void *current_stack(void) | 72 | static 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 | ||
| 84 | static inline int | 77 | static 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 | |||
| 30 | struct pmc_dev { | 28 | struct 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 { | |||
| 38 | static struct pmc_dev pmc_device; | 36 | static struct pmc_dev pmc_device; |
| 39 | static u32 acpi_base_addr; | 37 | static u32 acpi_base_addr; |
| 40 | 38 | ||
| 41 | struct pmc_dev_map { | 39 | struct pmc_bit_map { |
| 42 | const char *name; | 40 | const char *name; |
| 43 | u32 bit_mask; | 41 | u32 bit_mask; |
| 44 | }; | 42 | }; |
| 45 | 43 | ||
| 46 | static const struct pmc_dev_map dev_map[] = { | 44 | static 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 | ||
| 83 | static 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 | |||
| 85 | static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset) | 104 | static 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 | ||
| 191 | static 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 | |||
| 205 | static 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 | |||
| 210 | static 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 | |||
| 172 | static int pmc_sleep_tmr_show(struct seq_file *s, void *unused) | 217 | static 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 | ||
| 203 | static void pmc_dbgfs_unregister(struct pmc_dev *pmc) | 248 | static 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 | ||
| 212 | static int pmc_dbgfs_register(struct pmc_dev *pmc, struct pci_dev *pdev) | 253 | static 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; |
| 234 | err: | 285 | err: |
| 235 | pmc_dbgfs_unregister(pmc); | 286 | pmc_dbgfs_unregister(pmc); |
| @@ -292,7 +343,6 @@ MODULE_DEVICE_TABLE(pci, pmc_pci_ids); | |||
| 292 | 343 | ||
| 293 | static int __init pmc_atom_init(void) | 344 | static 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. */ |
| 315 | out: | 363 | return -ENODEV; |
| 316 | return err; | ||
| 317 | } | 364 | } |
| 318 | 365 | ||
| 319 | module_init(pmc_atom_init); | 366 | module_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 = { | |||
| 170 | static __init int add_rtc_cmos(void) | 170 | static __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 | ||
| 105 | atomic_t init_deasserted; | 104 | atomic_t init_deasserted; |
| 106 | 105 | ||
| 106 | static 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 | |||
| 123 | static 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 | */ |
| 956 | static __init void disable_smp(void) | 991 | static __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 | ||
| 1008 | enum { | ||
| 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 | ||
| 1067 | static void __init smp_cpu_index_default(void) | 1102 | static 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 | ||
| 111 | enum 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 | |||
| 144 | void 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 | */ | ||
| 168 | void 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 | */ | ||
| 188 | void ist_end_non_atomic(void) | ||
| 189 | { | ||
| 190 | preempt_count_add(HARDIRQ_OFFSET); | ||
| 191 | } | ||
| 192 | |||
| 111 | static nokprobe_inline int | 193 | static nokprobe_inline int |
| 112 | do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str, | 194 | do_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(); |
| 462 | exit: | 546 | exit: |
| 463 | exception_exit(prev_state); | 547 | ist_exit(regs, prev_state); |
| 464 | } | 548 | } |
| 465 | NOKPROBE_SYMBOL(do_int3); | 549 | NOKPROBE_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 | */ |
| 473 | asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs) | 557 | asmlinkage __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 | } |
| 492 | NOKPROBE_SYMBOL(sync_regs); | 563 | NOKPROBE_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 | ||
| 631 | exit: | 702 | exit: |
| 632 | exception_exit(prev_state); | 703 | ist_exit(regs, prev_state); |
| 633 | } | 704 | } |
| 634 | NOKPROBE_SYMBOL(do_debug); | 705 | NOKPROBE_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 | } |
| 804 | EXPORT_SYMBOL_GPL(math_state_restore); | 873 | EXPORT_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 @@ | |||
| 10 | struct pci_root_info { | 10 | struct 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 | ||
| 221 | static acpi_status resource_to_addr(struct acpi_resource *resource, | 218 | static 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 | |||
| 267 | static 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 | |||
| 279 | static 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 | |||
| 333 | static 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 | |||
| 271 | next: | ||
| 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 | ||
| 365 | static void add_resources(struct pci_root_info *info, | 280 | static 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 | ||
| 395 | static 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 | ||
| 404 | static void __release_pci_root_info(struct pci_root_info *info) | 311 | static 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 | ||
| 428 | static 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 | |||
| 435 | static void probe_pci_root_info(struct pci_root_info *info, | 328 | static 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 | ||
| 470 | struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) | 352 | struct 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 | */ | ||
| 522 | static 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 | |||
| 536 | static struct notifier_block pci_irq_nb = { | ||
| 537 | .notifier_call = pci_irq_notifier, | ||
| 538 | .priority = INT_MIN, | ||
| 539 | }; | ||
| 540 | |||
| 516 | int __init pcibios_init(void) | 541 | int __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 | ||
| 686 | void 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 | |||
| 692 | int pci_ext_cfg_avail(void) | 714 | int 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 | ||
| 235 | static void intel_mid_pci_irq_disable(struct pci_dev *dev) | 235 | static 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) | |||
| 293 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0801, mrst_power_off_unused_dev); | 293 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0801, mrst_power_off_unused_dev); |
| 294 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0809, mrst_power_off_unused_dev); | 294 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0809, mrst_power_off_unused_dev); |
| 295 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x080C, mrst_power_off_unused_dev); | 295 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x080C, mrst_power_off_unused_dev); |
| 296 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0812, mrst_power_off_unused_dev); | ||
| 297 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0815, mrst_power_off_unused_dev); | 296 | DECLARE_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 | ||
| 1259 | bool 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 | |||
| 1271 | static void pirq_disable_irq(struct pci_dev *dev) | 1259 | static 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 | ||
| 614 | extern int (*arch_apei_filter_addr)(int (*func)(__u64 start, __u64 size, | ||
| 615 | void *data), void *data); | ||
| 616 | |||
| 617 | static 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 | |||
| 613 | static void __init __pci_mmcfg_init(int early) | 639 | static 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 | |||
| 205 | PHONY += vdso_install $(vdso_img_insttargets) | 205 | PHONY += vdso_install $(vdso_img_insttargets) |
| 206 | vdso_install: $(vdso_img_insttargets) FORCE | 206 | vdso_install: $(vdso_img_insttargets) FORCE |
| 207 | 207 | ||
| 208 | clean-files := vdso32-syscall* vdso32-sysenter* vdso32-int80* | 208 | clean-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 | ||
| 1492 | static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn) | 1492 | static 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 | */ |
| 1660 | static void *__ka(phys_addr_t paddr) | 1660 | static 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 */ |
| 1670 | static unsigned long m2p(phys_addr_t maddr) | 1670 | static 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 */ |
| 1681 | static void *m2v(phys_addr_t maddr) | 1681 | static 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 */ |
| 1687 | static void set_page_prot_flags(void *addr, pgprot_t prot, unsigned long flags) | 1687 | static 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 | } |
| 1699 | static void set_page_prot(void *addr, pgprot_t prot) | 1700 | static 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 |
| 1772 | static void convert_pfn_mfn(void *v) | 1771 | static 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 | ||
| 87 | static void __init m2p_override_init(void); | ||
| 88 | |||
| 89 | unsigned long *xen_p2m_addr __read_mostly; | 87 | unsigned long *xen_p2m_addr __read_mostly; |
| 90 | EXPORT_SYMBOL_GPL(xen_p2m_addr); | 88 | EXPORT_SYMBOL_GPL(xen_p2m_addr); |
| 91 | unsigned long xen_p2m_size __read_mostly; | 89 | unsigned 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 | ||
| 409 | unsigned long get_phys_to_machine(unsigned long pfn) | 405 | unsigned 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 | |||
| 658 | static struct list_head *m2p_overrides; | ||
| 659 | static DEFINE_SPINLOCK(m2p_override_lock); | ||
| 660 | |||
| 661 | static 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 | |||
| 673 | static 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 */ | ||
| 679 | static 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 | |||
| 733 | int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops, | 651 | int 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 | ||
| 784 | out: | 692 | out: |
| 785 | if (lazy) | ||
| 786 | arch_leave_lazy_mmu_mode(); | ||
| 787 | |||
| 788 | return ret; | 693 | return ret; |
| 789 | } | 694 | } |
| 790 | EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping); | 695 | EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping); |
| 791 | 696 | ||
| 792 | static 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 | |||
| 818 | static 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 | |||
| 914 | int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, | 697 | int 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); | ||
| 951 | out: | 720 | out: |
| 952 | if (lazy) | ||
| 953 | arch_leave_lazy_mmu_mode(); | ||
| 954 | return ret; | 721 | return ret; |
| 955 | } | 722 | } |
| 956 | EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping); | 723 | EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping); |
| 957 | 724 | ||
| 958 | unsigned 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 | } | ||
| 968 | EXPORT_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 */ | ||
| 36 | extern const char xen_hypervisor_callback[]; | ||
| 37 | extern const char xen_failsafe_callback[]; | ||
| 38 | #ifdef CONFIG_X86_64 | ||
| 39 | extern asmlinkage void nmi(void); | ||
| 40 | #endif | ||
| 41 | extern void xen_sysenter_target(void); | ||
| 42 | extern void xen_syscall_target(void); | ||
| 43 | extern 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 */ |
| 46 | struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata; | 36 | struct 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 | ||
| 77 | static void __init xen_add_extra_mem(u64 start, u64 size) | 67 | static 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 | ||
| 100 | static void __init xen_del_extra_mem(u64 start, u64 size) | 90 | static 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, | |||
| 267 | static void __init xen_update_mem_tables(unsigned long pfn, unsigned long mfn) | 257 | static 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 | ||
| 548 | static void xen_align_and_add_e820_region(u64 start, u64 size, int type) | 538 | static 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 | ||
| 561 | void xen_ignore_unusable(struct e820entry *list, size_t map_size) | 552 | static 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) | |||
| 507 | static void xen_cpu_die(unsigned int cpu) | 507 | static 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 @@ | |||
| 10 | extern const char xen_hypervisor_callback[]; | 10 | extern const char xen_hypervisor_callback[]; |
| 11 | extern const char xen_failsafe_callback[]; | 11 | extern const char xen_failsafe_callback[]; |
| 12 | 12 | ||
| 13 | void xen_sysenter_target(void); | ||
| 14 | #ifdef CONFIG_X86_64 | ||
| 15 | void xen_syscall_target(void); | ||
| 16 | void xen_syscall32_target(void); | ||
| 17 | #endif | ||
| 18 | |||
| 13 | extern void *xen_initial_gdt; | 19 | extern void *xen_initial_gdt; |
| 14 | 20 | ||
| 15 | struct trap_info; | 21 | struct trap_info; |
