mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, mtrr: remove debug message x86: disable stack-protector for __restore_processor_state() x86: fix is_io_mapping_possible() build warning on i386 allnoconfig x86, setup: compile with -DDISABLE_BRANCH_PROFILING x86/dma: unify definition of pci_unmap_addr* and pci_unmap_len macros x86, mm: fix misuse of debug_kmap_atomic x86: remove duplicated code with pcpu_need_numa() x86,percpu: fix inverted NUMA test in setup_pcpu_remap() x86: signal: check sas_ss_size instead of sas_ss_flags()
This commit is contained in:
commit
6bb597507f
@ -57,6 +57,7 @@ $(obj)/cpustr.h: $(obj)/mkcpustr FORCE
|
||||
# How to compile the 16-bit code. Note we always compile for -march=i386,
|
||||
# that way we can complain to the user if the CPU is insufficient.
|
||||
KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
|
||||
-DDISABLE_BRANCH_PROFILING \
|
||||
-Wall -Wstrict-prototypes \
|
||||
-march=i386 -mregparm=3 \
|
||||
-include $(srctree)/$(src)/code16gcc.h \
|
||||
@ -66,7 +67,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
|
||||
$(call cc-option, -fno-unit-at-a-time)) \
|
||||
$(call cc-option, -fno-stack-protector) \
|
||||
$(call cc-option, -mpreferred-stack-boundary=2)
|
||||
KBUILD_CFLAGS += $(call cc-option,-m32)
|
||||
KBUILD_CFLAGS += $(call cc-option, -m32)
|
||||
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
||||
|
||||
$(obj)/bzImage: asflags-y := $(SVGA_MODE)
|
||||
|
@ -8,6 +8,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma h
|
||||
|
||||
KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
|
||||
KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
|
||||
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
|
||||
cflags-$(CONFIG_X86_64) := -mcmodel=small
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
|
||||
|
@ -89,12 +89,40 @@ extern void pci_iommu_alloc(void);
|
||||
/* MSI arch hook */
|
||||
#define arch_setup_msi_irqs arch_setup_msi_irqs
|
||||
|
||||
#define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys)
|
||||
|
||||
#if defined(CONFIG_X86_64) || defined(CONFIG_DMA_API_DEBUG)
|
||||
|
||||
#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \
|
||||
dma_addr_t ADDR_NAME;
|
||||
#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \
|
||||
__u32 LEN_NAME;
|
||||
#define pci_unmap_addr(PTR, ADDR_NAME) \
|
||||
((PTR)->ADDR_NAME)
|
||||
#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \
|
||||
(((PTR)->ADDR_NAME) = (VAL))
|
||||
#define pci_unmap_len(PTR, LEN_NAME) \
|
||||
((PTR)->LEN_NAME)
|
||||
#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \
|
||||
(((PTR)->LEN_NAME) = (VAL))
|
||||
|
||||
#else
|
||||
|
||||
#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME[0];
|
||||
#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) unsigned LEN_NAME[0];
|
||||
#define pci_unmap_addr(PTR, ADDR_NAME) sizeof((PTR)->ADDR_NAME)
|
||||
#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \
|
||||
do { break; } while (pci_unmap_addr(PTR, ADDR_NAME))
|
||||
#define pci_unmap_len(PTR, LEN_NAME) sizeof((PTR)->LEN_NAME)
|
||||
#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \
|
||||
do { break; } while (pci_unmap_len(PTR, LEN_NAME))
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
# include "pci_32.h"
|
||||
#else
|
||||
# include "pci_64.h"
|
||||
#ifdef CONFIG_X86_64
|
||||
#include "pci_64.h"
|
||||
#endif
|
||||
|
||||
/* implement the pci_ DMA API in terms of the generic device dma_ one */
|
||||
|
@ -1,34 +0,0 @@
|
||||
#ifndef _ASM_X86_PCI_32_H
|
||||
#define _ASM_X86_PCI_32_H
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
||||
/* Dynamic DMA mapping stuff.
|
||||
* i386 has everything mapped statically.
|
||||
*/
|
||||
|
||||
struct pci_dev;
|
||||
|
||||
/* The PCI address space does equal the physical memory
|
||||
* address space. The networking and block device layers use
|
||||
* this boolean for bounce buffer decisions.
|
||||
*/
|
||||
#define PCI_DMA_BUS_IS_PHYS (1)
|
||||
|
||||
/* pci_unmap_{page,single} is a nop so... */
|
||||
#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME[0];
|
||||
#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) unsigned LEN_NAME[0];
|
||||
#define pci_unmap_addr(PTR, ADDR_NAME) sizeof((PTR)->ADDR_NAME)
|
||||
#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \
|
||||
do { break; } while (pci_unmap_addr(PTR, ADDR_NAME))
|
||||
#define pci_unmap_len(PTR, LEN_NAME) sizeof((PTR)->LEN_NAME)
|
||||
#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \
|
||||
do { break; } while (pci_unmap_len(PTR, LEN_NAME))
|
||||
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
||||
#endif /* _ASM_X86_PCI_32_H */
|
@ -24,28 +24,6 @@ extern int (*pci_config_write)(int seg, int bus, int dev, int fn,
|
||||
|
||||
extern void dma32_reserve_bootmem(void);
|
||||
|
||||
/* The PCI address space does equal the physical memory
|
||||
* address space. The networking and block device layers use
|
||||
* this boolean for bounce buffer decisions
|
||||
*
|
||||
* On AMD64 it mostly equals, but we set it to zero if a hardware
|
||||
* IOMMU (gart) of sotware IOMMU (swiotlb) is available.
|
||||
*/
|
||||
#define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys)
|
||||
|
||||
#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \
|
||||
dma_addr_t ADDR_NAME;
|
||||
#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \
|
||||
__u32 LEN_NAME;
|
||||
#define pci_unmap_addr(PTR, ADDR_NAME) \
|
||||
((PTR)->ADDR_NAME)
|
||||
#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \
|
||||
(((PTR)->ADDR_NAME) = (VAL))
|
||||
#define pci_unmap_len(PTR, LEN_NAME) \
|
||||
((PTR)->LEN_NAME)
|
||||
#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \
|
||||
(((PTR)->LEN_NAME) = (VAL))
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _ASM_X86_PCI_64_H */
|
||||
|
@ -462,9 +462,6 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
|
||||
*base = base_hi << (32 - PAGE_SHIFT) | base_lo >> PAGE_SHIFT;
|
||||
*type = base_lo & 0xff;
|
||||
|
||||
printk(KERN_DEBUG " get_mtrr: cpu%d reg%02d base=%010lx size=%010lx %s\n",
|
||||
cpu, reg, *base, *size,
|
||||
mtrr_attrib_to_str(*type & 0xff));
|
||||
out_put_cpu:
|
||||
put_cpu();
|
||||
}
|
||||
|
@ -153,7 +153,6 @@ static struct page * __init pcpur_get_page(unsigned int cpu, int pageno)
|
||||
static ssize_t __init setup_pcpu_remap(size_t static_size)
|
||||
{
|
||||
static struct vm_struct vm;
|
||||
pg_data_t *last;
|
||||
size_t ptrs_size, dyn_size;
|
||||
unsigned int cpu;
|
||||
ssize_t ret;
|
||||
@ -162,22 +161,9 @@ static ssize_t __init setup_pcpu_remap(size_t static_size)
|
||||
* If large page isn't supported, there's no benefit in doing
|
||||
* this. Also, on non-NUMA, embedding is better.
|
||||
*/
|
||||
if (!cpu_has_pse || pcpu_need_numa())
|
||||
if (!cpu_has_pse || !pcpu_need_numa())
|
||||
return -EINVAL;
|
||||
|
||||
last = NULL;
|
||||
for_each_possible_cpu(cpu) {
|
||||
int node = early_cpu_to_node(cpu);
|
||||
|
||||
if (node_online(node) && NODE_DATA(node) &&
|
||||
last && last != NODE_DATA(node))
|
||||
goto proceed;
|
||||
|
||||
last = NODE_DATA(node);
|
||||
}
|
||||
return -EINVAL;
|
||||
|
||||
proceed:
|
||||
/*
|
||||
* Currently supports only single page. Supporting multiple
|
||||
* pages won't be too difficult if it ever becomes necessary.
|
||||
|
@ -221,7 +221,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
|
||||
if (!onsigstack) {
|
||||
/* This is the X/Open sanctioned signal stack switching. */
|
||||
if (ka->sa.sa_flags & SA_ONSTACK) {
|
||||
if (sas_ss_flags(sp) == 0)
|
||||
if (current->sas_ss_size)
|
||||
sp = current->sas_ss_sp + current->sas_ss_size;
|
||||
} else {
|
||||
#ifdef CONFIG_X86_32
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
int is_io_mapping_possible(resource_size_t base, unsigned long size)
|
||||
{
|
||||
#ifndef CONFIG_X86_PAE
|
||||
#if !defined(CONFIG_X86_PAE) && defined(CONFIG_PHYS_ADDR_T_64BIT)
|
||||
/* There is no way to map greater than 1 << 32 address without PAE */
|
||||
if (base + size > 0x100000000ULL)
|
||||
return 0;
|
||||
|
@ -1,2 +1,7 @@
|
||||
# __restore_processor_state() restores %gs after S3 resume and so should not
|
||||
# itself be stack-protected
|
||||
nostackp := $(call cc-option, -fno-stack-protector)
|
||||
CFLAGS_cpu_$(BITS).o := $(nostackp)
|
||||
|
||||
obj-$(CONFIG_PM_SLEEP) += cpu_$(BITS).o
|
||||
obj-$(CONFIG_HIBERNATION) += hibernate_$(BITS).o hibernate_asm_$(BITS).o
|
||||
|
Loading…
Reference in New Issue
Block a user