diff options
Diffstat (limited to 'include')
27 files changed, 193 insertions, 69 deletions
diff --git a/include/asm-i386/desc.h b/include/asm-i386/desc.h index 494e73bca095..89b8b82c82b3 100644 --- a/include/asm-i386/desc.h +++ b/include/asm-i386/desc.h | |||
| @@ -24,11 +24,13 @@ struct Xgt_desc_struct { | |||
| 24 | unsigned short pad; | 24 | unsigned short pad; |
| 25 | } __attribute__ ((packed)); | 25 | } __attribute__ ((packed)); |
| 26 | 26 | ||
| 27 | extern struct Xgt_desc_struct idt_descr, cpu_gdt_descr[NR_CPUS]; | 27 | extern struct Xgt_desc_struct idt_descr; |
| 28 | DECLARE_PER_CPU(struct Xgt_desc_struct, cpu_gdt_descr); | ||
| 29 | |||
| 28 | 30 | ||
| 29 | static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu) | 31 | static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu) |
| 30 | { | 32 | { |
| 31 | return ((struct desc_struct *)cpu_gdt_descr[cpu].address); | 33 | return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; |
| 32 | } | 34 | } |
| 33 | 35 | ||
| 34 | #define load_TR_desc() __asm__ __volatile__("ltr %w0"::"q" (GDT_ENTRY_TSS*8)) | 36 | #define load_TR_desc() __asm__ __volatile__("ltr %w0"::"q" (GDT_ENTRY_TSS*8)) |
diff --git a/include/asm-i386/kprobes.h b/include/asm-i386/kprobes.h index 27cac050a60e..a0d2d74a7dda 100644 --- a/include/asm-i386/kprobes.h +++ b/include/asm-i386/kprobes.h | |||
| @@ -27,6 +27,9 @@ | |||
| 27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
| 28 | #include <linux/ptrace.h> | 28 | #include <linux/ptrace.h> |
| 29 | 29 | ||
| 30 | #define __ARCH_WANT_KPROBES_INSN_SLOT | ||
| 31 | |||
| 32 | struct kprobe; | ||
| 30 | struct pt_regs; | 33 | struct pt_regs; |
| 31 | 34 | ||
| 32 | typedef u8 kprobe_opcode_t; | 35 | typedef u8 kprobe_opcode_t; |
| @@ -40,14 +43,14 @@ typedef u8 kprobe_opcode_t; | |||
| 40 | 43 | ||
| 41 | #define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry | 44 | #define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry |
| 42 | #define ARCH_SUPPORTS_KRETPROBES | 45 | #define ARCH_SUPPORTS_KRETPROBES |
| 43 | #define arch_remove_kprobe(p) do {} while (0) | ||
| 44 | 46 | ||
| 47 | void arch_remove_kprobe(struct kprobe *p); | ||
| 45 | void kretprobe_trampoline(void); | 48 | void kretprobe_trampoline(void); |
| 46 | 49 | ||
| 47 | /* Architecture specific copy of original instruction*/ | 50 | /* Architecture specific copy of original instruction*/ |
| 48 | struct arch_specific_insn { | 51 | struct arch_specific_insn { |
| 49 | /* copy of the original instruction */ | 52 | /* copy of the original instruction */ |
| 50 | kprobe_opcode_t insn[MAX_INSN_SIZE]; | 53 | kprobe_opcode_t *insn; |
| 51 | }; | 54 | }; |
| 52 | 55 | ||
| 53 | struct prev_kprobe { | 56 | struct prev_kprobe { |
diff --git a/include/asm-ia64/sn/arch.h b/include/asm-ia64/sn/arch.h index 91c31be87b13..16adc93d7a72 100644 --- a/include/asm-ia64/sn/arch.h +++ b/include/asm-ia64/sn/arch.h | |||
| @@ -31,7 +31,8 @@ | |||
| 31 | * to ACPI3.0, this limit will be removed. The notion of "compact nodes" | 31 | * to ACPI3.0, this limit will be removed. The notion of "compact nodes" |
| 32 | * should be deleted and TIOs should be included in MAX_NUMNODES. | 32 | * should be deleted and TIOs should be included in MAX_NUMNODES. |
| 33 | */ | 33 | */ |
| 34 | #define MAX_COMPACT_NODES 512 | 34 | #define MAX_TIO_NODES MAX_NUMNODES |
| 35 | #define MAX_COMPACT_NODES (MAX_NUMNODES + MAX_TIO_NODES) | ||
| 35 | 36 | ||
| 36 | /* | 37 | /* |
| 37 | * Maximum number of nodes in all partitions and in all coherency domains. | 38 | * Maximum number of nodes in all partitions and in all coherency domains. |
diff --git a/include/asm-m32r/uaccess.h b/include/asm-m32r/uaccess.h index 0da7c47d2f01..e8ae61956a51 100644 --- a/include/asm-m32r/uaccess.h +++ b/include/asm-m32r/uaccess.h | |||
| @@ -328,7 +328,7 @@ extern void __put_user_bad(void); | |||
| 328 | " .long 1b,4b\n" \ | 328 | " .long 1b,4b\n" \ |
| 329 | " .long 2b,4b\n" \ | 329 | " .long 2b,4b\n" \ |
| 330 | ".previous" \ | 330 | ".previous" \ |
| 331 | : "=r"(err) \ | 331 | : "=&r"(err) \ |
| 332 | : "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \ | 332 | : "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \ |
| 333 | : "r14", "memory") | 333 | : "r14", "memory") |
| 334 | 334 | ||
| @@ -353,7 +353,7 @@ extern void __put_user_bad(void); | |||
| 353 | " .long 1b,4b\n" \ | 353 | " .long 1b,4b\n" \ |
| 354 | " .long 2b,4b\n" \ | 354 | " .long 2b,4b\n" \ |
| 355 | ".previous" \ | 355 | ".previous" \ |
| 356 | : "=r"(err) \ | 356 | : "=&r"(err) \ |
| 357 | : "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \ | 357 | : "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \ |
| 358 | : "r14", "memory") | 358 | : "r14", "memory") |
| 359 | #else | 359 | #else |
| @@ -398,7 +398,7 @@ struct __large_struct { unsigned long buf[100]; }; | |||
| 398 | " .balign 4\n" \ | 398 | " .balign 4\n" \ |
| 399 | " .long 1b,3b\n" \ | 399 | " .long 1b,3b\n" \ |
| 400 | ".previous" \ | 400 | ".previous" \ |
| 401 | : "=r"(err) \ | 401 | : "=&r"(err) \ |
| 402 | : "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \ | 402 | : "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \ |
| 403 | : "r14", "memory") | 403 | : "r14", "memory") |
| 404 | 404 | ||
| @@ -442,7 +442,7 @@ do { \ | |||
| 442 | " .balign 4\n" \ | 442 | " .balign 4\n" \ |
| 443 | " .long 1b,3b\n" \ | 443 | " .long 1b,3b\n" \ |
| 444 | ".previous" \ | 444 | ".previous" \ |
| 445 | : "=r"(err), "=&r"(x) \ | 445 | : "=&r"(err), "=&r"(x) \ |
| 446 | : "r"(addr), "i"(-EFAULT), "0"(err) \ | 446 | : "r"(addr), "i"(-EFAULT), "0"(err) \ |
| 447 | : "r14", "memory") | 447 | : "r14", "memory") |
| 448 | 448 | ||
diff --git a/include/asm-mips/atomic.h b/include/asm-mips/atomic.h index 654b97d3e13a..2c8b853376c9 100644 --- a/include/asm-mips/atomic.h +++ b/include/asm-mips/atomic.h | |||
| @@ -250,7 +250,10 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) | |||
| 250 | " subu %0, %1, %3 \n" | 250 | " subu %0, %1, %3 \n" |
| 251 | " bltz %0, 1f \n" | 251 | " bltz %0, 1f \n" |
| 252 | " sc %0, %2 \n" | 252 | " sc %0, %2 \n" |
| 253 | " .set noreorder \n" | ||
| 253 | " beqzl %0, 1b \n" | 254 | " beqzl %0, 1b \n" |
| 255 | " subu %0, %1, %3 \n" | ||
| 256 | " .set reorder \n" | ||
| 254 | " sync \n" | 257 | " sync \n" |
| 255 | "1: \n" | 258 | "1: \n" |
| 256 | " .set mips0 \n" | 259 | " .set mips0 \n" |
| @@ -266,7 +269,10 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) | |||
| 266 | " subu %0, %1, %3 \n" | 269 | " subu %0, %1, %3 \n" |
| 267 | " bltz %0, 1f \n" | 270 | " bltz %0, 1f \n" |
| 268 | " sc %0, %2 \n" | 271 | " sc %0, %2 \n" |
| 272 | " .set noreorder \n" | ||
| 269 | " beqz %0, 1b \n" | 273 | " beqz %0, 1b \n" |
| 274 | " subu %0, %1, %3 \n" | ||
| 275 | " .set reorder \n" | ||
| 270 | " sync \n" | 276 | " sync \n" |
| 271 | "1: \n" | 277 | "1: \n" |
| 272 | " .set mips0 \n" | 278 | " .set mips0 \n" |
| @@ -598,7 +604,10 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
| 598 | " dsubu %0, %1, %3 \n" | 604 | " dsubu %0, %1, %3 \n" |
| 599 | " bltz %0, 1f \n" | 605 | " bltz %0, 1f \n" |
| 600 | " scd %0, %2 \n" | 606 | " scd %0, %2 \n" |
| 607 | " .set noreorder \n" | ||
| 601 | " beqzl %0, 1b \n" | 608 | " beqzl %0, 1b \n" |
| 609 | " dsubu %0, %1, %3 \n" | ||
| 610 | " .set reorder \n" | ||
| 602 | " sync \n" | 611 | " sync \n" |
| 603 | "1: \n" | 612 | "1: \n" |
| 604 | " .set mips0 \n" | 613 | " .set mips0 \n" |
| @@ -614,7 +623,10 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
| 614 | " dsubu %0, %1, %3 \n" | 623 | " dsubu %0, %1, %3 \n" |
| 615 | " bltz %0, 1f \n" | 624 | " bltz %0, 1f \n" |
| 616 | " scd %0, %2 \n" | 625 | " scd %0, %2 \n" |
| 626 | " .set noreorder \n" | ||
| 617 | " beqz %0, 1b \n" | 627 | " beqz %0, 1b \n" |
| 628 | " dsubu %0, %1, %3 \n" | ||
| 629 | " .set reorder \n" | ||
| 618 | " sync \n" | 630 | " sync \n" |
| 619 | "1: \n" | 631 | "1: \n" |
| 620 | " .set mips0 \n" | 632 | " .set mips0 \n" |
diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h index 5a4c8a54b8f4..8c011aa61afa 100644 --- a/include/asm-mips/io.h +++ b/include/asm-mips/io.h | |||
| @@ -283,6 +283,24 @@ static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, | |||
| 283 | __ioremap_mode((offset), (size), _CACHE_UNCACHED) | 283 | __ioremap_mode((offset), (size), _CACHE_UNCACHED) |
| 284 | 284 | ||
| 285 | /* | 285 | /* |
| 286 | * ioremap_cachable - map bus memory into CPU space | ||
| 287 | * @offset: bus address of the memory | ||
| 288 | * @size: size of the resource to map | ||
| 289 | * | ||
| 290 | * ioremap_nocache performs a platform specific sequence of operations to | ||
| 291 | * make bus memory CPU accessible via the readb/readw/readl/writeb/ | ||
| 292 | * writew/writel functions and the other mmio helpers. The returned | ||
| 293 | * address is not guaranteed to be usable directly as a virtual | ||
| 294 | * address. | ||
| 295 | * | ||
| 296 | * This version of ioremap ensures that the memory is marked cachable by | ||
| 297 | * the CPU. Also enables full write-combining. Useful for some | ||
| 298 | * memory-like regions on I/O busses. | ||
| 299 | */ | ||
| 300 | #define ioremap_cachable(offset, size) \ | ||
| 301 | __ioremap_mode((offset), (size), PAGE_CACHABLE_DEFAULT) | ||
| 302 | |||
| 303 | /* | ||
| 286 | * These two are MIPS specific ioremap variant. ioremap_cacheable_cow | 304 | * These two are MIPS specific ioremap variant. ioremap_cacheable_cow |
| 287 | * requests a cachable mapping, ioremap_uncached_accelerated requests a | 305 | * requests a cachable mapping, ioremap_uncached_accelerated requests a |
| 288 | * mapping using the uncached accelerated mode which isn't supported on | 306 | * mapping using the uncached accelerated mode which isn't supported on |
diff --git a/include/asm-mips/smp.h b/include/asm-mips/smp.h index 5618f1e12f40..75c6fe7c2126 100644 --- a/include/asm-mips/smp.h +++ b/include/asm-mips/smp.h | |||
| @@ -58,7 +58,9 @@ static inline int num_booting_cpus(void) | |||
| 58 | return cpus_weight(cpu_callout_map); | 58 | return cpus_weight(cpu_callout_map); |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | /* These are defined by the board-specific code. */ | 61 | /* |
| 62 | * These are defined by the board-specific code. | ||
| 63 | */ | ||
| 62 | 64 | ||
| 63 | /* | 65 | /* |
| 64 | * Cause the function described by call_data to be executed on the passed | 66 | * Cause the function described by call_data to be executed on the passed |
| @@ -79,7 +81,12 @@ extern void prom_boot_secondary(int cpu, struct task_struct *idle); | |||
| 79 | extern void prom_init_secondary(void); | 81 | extern void prom_init_secondary(void); |
| 80 | 82 | ||
| 81 | /* | 83 | /* |
| 82 | * Detect available CPUs, populate phys_cpu_present_map before smp_init | 84 | * Populate cpu_possible_map before smp_init, called from setup_arch. |
| 85 | */ | ||
| 86 | extern void plat_smp_setup(void); | ||
| 87 | |||
| 88 | /* | ||
| 89 | * Called after init_IRQ but before __cpu_up. | ||
| 83 | */ | 90 | */ |
| 84 | extern void prom_prepare_cpus(unsigned int max_cpus); | 91 | extern void prom_prepare_cpus(unsigned int max_cpus); |
| 85 | 92 | ||
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h index e8e5d4143377..ddae9bae31af 100644 --- a/include/asm-mips/system.h +++ b/include/asm-mips/system.h | |||
| @@ -322,7 +322,7 @@ static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old, | |||
| 322 | #endif | 322 | #endif |
| 323 | "2: \n" | 323 | "2: \n" |
| 324 | " .set pop \n" | 324 | " .set pop \n" |
| 325 | : "=&r" (retval), "=m" (*m) | 325 | : "=&r" (retval), "=R" (*m) |
| 326 | : "R" (*m), "Jr" (old), "Jr" (new) | 326 | : "R" (*m), "Jr" (old), "Jr" (new) |
| 327 | : "memory"); | 327 | : "memory"); |
| 328 | } else if (cpu_has_llsc) { | 328 | } else if (cpu_has_llsc) { |
| @@ -342,7 +342,7 @@ static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old, | |||
| 342 | #endif | 342 | #endif |
| 343 | "2: \n" | 343 | "2: \n" |
| 344 | " .set pop \n" | 344 | " .set pop \n" |
| 345 | : "=&r" (retval), "=m" (*m) | 345 | : "=&r" (retval), "=R" (*m) |
| 346 | : "R" (*m), "Jr" (old), "Jr" (new) | 346 | : "R" (*m), "Jr" (old), "Jr" (new) |
| 347 | : "memory"); | 347 | : "memory"); |
| 348 | } else { | 348 | } else { |
| @@ -379,7 +379,7 @@ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old, | |||
| 379 | #endif | 379 | #endif |
| 380 | "2: \n" | 380 | "2: \n" |
| 381 | " .set pop \n" | 381 | " .set pop \n" |
| 382 | : "=&r" (retval), "=m" (*m) | 382 | : "=&r" (retval), "=R" (*m) |
| 383 | : "R" (*m), "Jr" (old), "Jr" (new) | 383 | : "R" (*m), "Jr" (old), "Jr" (new) |
| 384 | : "memory"); | 384 | : "memory"); |
| 385 | } else if (cpu_has_llsc) { | 385 | } else if (cpu_has_llsc) { |
| @@ -397,7 +397,7 @@ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old, | |||
| 397 | #endif | 397 | #endif |
| 398 | "2: \n" | 398 | "2: \n" |
| 399 | " .set pop \n" | 399 | " .set pop \n" |
| 400 | : "=&r" (retval), "=m" (*m) | 400 | : "=&r" (retval), "=R" (*m) |
| 401 | : "R" (*m), "Jr" (old), "Jr" (new) | 401 | : "R" (*m), "Jr" (old), "Jr" (new) |
| 402 | : "memory"); | 402 | : "memory"); |
| 403 | } else { | 403 | } else { |
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 64210549f56b..90d005bb4d1c 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
| @@ -159,9 +159,11 @@ extern void do_cpu_ftr_fixups(unsigned long offset); | |||
| 159 | #endif | 159 | #endif |
| 160 | 160 | ||
| 161 | /* We need to mark all pages as being coherent if we're SMP or we | 161 | /* We need to mark all pages as being coherent if we're SMP or we |
| 162 | * have a 74[45]x and an MPC107 host bridge. | 162 | * have a 74[45]x and an MPC107 host bridge. Also 83xx requires |
| 163 | * it for PCI "streaming/prefetch" to work properly. | ||
| 163 | */ | 164 | */ |
| 164 | #if defined(CONFIG_SMP) || defined(CONFIG_MPC10X_BRIDGE) | 165 | #if defined(CONFIG_SMP) || defined(CONFIG_MPC10X_BRIDGE) \ |
| 166 | || defined(CONFIG_PPC_83xx) | ||
| 165 | #define CPU_FTR_COMMON CPU_FTR_NEED_COHERENT | 167 | #define CPU_FTR_COMMON CPU_FTR_NEED_COHERENT |
| 166 | #else | 168 | #else |
| 167 | #define CPU_FTR_COMMON 0 | 169 | #define CPU_FTR_COMMON 0 |
| @@ -277,7 +279,8 @@ enum { | |||
| 277 | CPU_FTRS_G2_LE = CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | | 279 | CPU_FTRS_G2_LE = CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | |
| 278 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS, | 280 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS, |
| 279 | CPU_FTRS_E300 = CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | | 281 | CPU_FTRS_E300 = CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | |
| 280 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS, | 282 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS | |
| 283 | CPU_FTR_COMMON, | ||
| 281 | CPU_FTRS_CLASSIC32 = CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | | 284 | CPU_FTRS_CLASSIC32 = CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | |
| 282 | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE, | 285 | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE, |
| 283 | CPU_FTRS_POWER3_32 = CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | | 286 | CPU_FTRS_POWER3_32 = CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | |
diff --git a/include/asm-powerpc/eeh.h b/include/asm-powerpc/eeh.h index b263fb2fa6e4..eb392032e19b 100644 --- a/include/asm-powerpc/eeh.h +++ b/include/asm-powerpc/eeh.h | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/string.h> | 27 | #include <linux/string.h> |
| 28 | 28 | ||
| 29 | struct pci_dev; | 29 | struct pci_dev; |
| 30 | struct pci_bus; | ||
| 30 | struct device_node; | 31 | struct device_node; |
| 31 | 32 | ||
| 32 | #ifdef CONFIG_EEH | 33 | #ifdef CONFIG_EEH |
| @@ -60,8 +61,9 @@ void __init pci_addr_cache_build(void); | |||
| 60 | * to finish the eeh setup for this device. | 61 | * to finish the eeh setup for this device. |
| 61 | */ | 62 | */ |
| 62 | void eeh_add_device_early(struct device_node *); | 63 | void eeh_add_device_early(struct device_node *); |
| 64 | void eeh_add_device_late(struct pci_dev *dev); | ||
| 63 | void eeh_add_device_tree_early(struct device_node *); | 65 | void eeh_add_device_tree_early(struct device_node *); |
| 64 | void eeh_add_device_late(struct pci_dev *); | 66 | void eeh_add_device_tree_late(struct pci_bus *); |
| 65 | 67 | ||
| 66 | /** | 68 | /** |
| 67 | * eeh_remove_device - undo EEH setup for the indicated pci device | 69 | * eeh_remove_device - undo EEH setup for the indicated pci device |
| @@ -116,12 +118,12 @@ static inline void pci_addr_cache_build(void) { } | |||
| 116 | 118 | ||
| 117 | static inline void eeh_add_device_early(struct device_node *dn) { } | 119 | static inline void eeh_add_device_early(struct device_node *dn) { } |
| 118 | 120 | ||
| 119 | static inline void eeh_add_device_late(struct pci_dev *dev) { } | ||
| 120 | |||
| 121 | static inline void eeh_remove_device(struct pci_dev *dev) { } | 121 | static inline void eeh_remove_device(struct pci_dev *dev) { } |
| 122 | 122 | ||
| 123 | static inline void eeh_add_device_tree_early(struct device_node *dn) { } | 123 | static inline void eeh_add_device_tree_early(struct device_node *dn) { } |
| 124 | 124 | ||
| 125 | static inline void eeh_add_device_tree_late(struct pci_bus *bus) { } | ||
| 126 | |||
| 125 | static inline void eeh_remove_bus_device(struct pci_dev *dev) { } | 127 | static inline void eeh_remove_bus_device(struct pci_dev *dev) { } |
| 126 | #define EEH_POSSIBLE_ERROR(val, type) (0) | 128 | #define EEH_POSSIBLE_ERROR(val, type) (0) |
| 127 | #define EEH_IO_ERROR_VALUE(size) (-1UL) | 129 | #define EEH_IO_ERROR_VALUE(size) (-1UL) |
diff --git a/include/asm-powerpc/mmu.h b/include/asm-powerpc/mmu.h index d096d9e76ad7..b0b9a3f8cdc2 100644 --- a/include/asm-powerpc/mmu.h +++ b/include/asm-powerpc/mmu.h | |||
| @@ -112,6 +112,7 @@ typedef struct { | |||
| 112 | } hpte_t; | 112 | } hpte_t; |
| 113 | 113 | ||
| 114 | extern hpte_t *htab_address; | 114 | extern hpte_t *htab_address; |
| 115 | extern unsigned long htab_size_bytes; | ||
| 115 | extern unsigned long htab_hash_mask; | 116 | extern unsigned long htab_hash_mask; |
| 116 | 117 | ||
| 117 | /* | 118 | /* |
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h index 12ecc9b9f285..72bfe3af0460 100644 --- a/include/asm-powerpc/reg.h +++ b/include/asm-powerpc/reg.h | |||
| @@ -615,27 +615,9 @@ | |||
| 615 | #define proc_trap() asm volatile("trap") | 615 | #define proc_trap() asm volatile("trap") |
| 616 | 616 | ||
| 617 | #ifdef CONFIG_PPC64 | 617 | #ifdef CONFIG_PPC64 |
| 618 | static inline void ppc64_runlatch_on(void) | 618 | |
| 619 | { | 619 | extern void ppc64_runlatch_on(void); |
| 620 | unsigned long ctrl; | 620 | extern void ppc64_runlatch_off(void); |
| 621 | |||
| 622 | if (cpu_has_feature(CPU_FTR_CTRL)) { | ||
| 623 | ctrl = mfspr(SPRN_CTRLF); | ||
| 624 | ctrl |= CTRL_RUNLATCH; | ||
| 625 | mtspr(SPRN_CTRLT, ctrl); | ||
| 626 | } | ||
| 627 | } | ||
| 628 | |||
| 629 | static inline void ppc64_runlatch_off(void) | ||
| 630 | { | ||
| 631 | unsigned long ctrl; | ||
| 632 | |||
| 633 | if (cpu_has_feature(CPU_FTR_CTRL)) { | ||
| 634 | ctrl = mfspr(SPRN_CTRLF); | ||
| 635 | ctrl &= ~CTRL_RUNLATCH; | ||
| 636 | mtspr(SPRN_CTRLT, ctrl); | ||
| 637 | } | ||
| 638 | } | ||
| 639 | 621 | ||
| 640 | extern unsigned long scom970_read(unsigned int address); | 622 | extern unsigned long scom970_read(unsigned int address); |
| 641 | extern void scom970_write(unsigned int address, unsigned long value); | 623 | extern void scom970_write(unsigned int address, unsigned long value); |
| @@ -645,15 +627,6 @@ extern void scom970_write(unsigned int address, unsigned long value); | |||
| 645 | #define __get_SP() ({unsigned long sp; \ | 627 | #define __get_SP() ({unsigned long sp; \ |
| 646 | asm volatile("mr %0,1": "=r" (sp)); sp;}) | 628 | asm volatile("mr %0,1": "=r" (sp)); sp;}) |
| 647 | 629 | ||
| 648 | #else /* __ASSEMBLY__ */ | ||
| 649 | |||
| 650 | #define RUNLATCH_ON(REG) \ | ||
| 651 | BEGIN_FTR_SECTION \ | ||
| 652 | mfspr (REG),SPRN_CTRLF; \ | ||
| 653 | ori (REG),(REG),CTRL_RUNLATCH; \ | ||
| 654 | mtspr SPRN_CTRLT,(REG); \ | ||
| 655 | END_FTR_SECTION_IFSET(CPU_FTR_CTRL) | ||
| 656 | |||
| 657 | #endif /* __ASSEMBLY__ */ | 630 | #endif /* __ASSEMBLY__ */ |
| 658 | #endif /* __KERNEL__ */ | 631 | #endif /* __KERNEL__ */ |
| 659 | #endif /* _ASM_POWERPC_REG_H */ | 632 | #endif /* _ASM_POWERPC_REG_H */ |
diff --git a/include/asm-powerpc/thread_info.h b/include/asm-powerpc/thread_info.h index c044ec16a879..237fc2b72974 100644 --- a/include/asm-powerpc/thread_info.h +++ b/include/asm-powerpc/thread_info.h | |||
| @@ -113,7 +113,7 @@ static inline struct thread_info *current_thread_info(void) | |||
| 113 | #define TIF_POLLING_NRFLAG 4 /* true if poll_idle() is polling | 113 | #define TIF_POLLING_NRFLAG 4 /* true if poll_idle() is polling |
| 114 | TIF_NEED_RESCHED */ | 114 | TIF_NEED_RESCHED */ |
| 115 | #define TIF_32BIT 5 /* 32 bit binary */ | 115 | #define TIF_32BIT 5 /* 32 bit binary */ |
| 116 | /* #define SPARE 6 */ | 116 | #define TIF_RUNLATCH 6 /* Is the runlatch enabled? */ |
| 117 | #define TIF_ABI_PENDING 7 /* 32/64 bit switch needed */ | 117 | #define TIF_ABI_PENDING 7 /* 32/64 bit switch needed */ |
| 118 | #define TIF_SYSCALL_AUDIT 8 /* syscall auditing active */ | 118 | #define TIF_SYSCALL_AUDIT 8 /* syscall auditing active */ |
| 119 | #define TIF_SINGLESTEP 9 /* singlestepping active */ | 119 | #define TIF_SINGLESTEP 9 /* singlestepping active */ |
| @@ -131,7 +131,7 @@ static inline struct thread_info *current_thread_info(void) | |||
| 131 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | 131 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
| 132 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 132 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
| 133 | #define _TIF_32BIT (1<<TIF_32BIT) | 133 | #define _TIF_32BIT (1<<TIF_32BIT) |
| 134 | /* #define _SPARE (1<<SPARE) */ | 134 | #define _TIF_RUNLATCH (1<<TIF_RUNLATCH) |
| 135 | #define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING) | 135 | #define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING) |
| 136 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) | 136 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) |
| 137 | #define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP) | 137 | #define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP) |
diff --git a/include/asm-sparc64/futex.h b/include/asm-sparc64/futex.h index 6a332a9f099c..0caf60147e97 100644 --- a/include/asm-sparc64/futex.h +++ b/include/asm-sparc64/futex.h | |||
| @@ -1,6 +1,86 @@ | |||
| 1 | #ifndef _ASM_FUTEX_H | 1 | #ifndef _SPARC64_FUTEX_H |
| 2 | #define _ASM_FUTEX_H | 2 | #define _SPARC64_FUTEX_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/futex.h> | 4 | #include <linux/futex.h> |
| 5 | #include <asm/errno.h> | ||
| 6 | #include <asm/system.h> | ||
| 7 | #include <asm/uaccess.h> | ||
| 5 | 8 | ||
| 6 | #endif | 9 | #define __futex_cas_op(insn, ret, oldval, uaddr, oparg) \ |
| 10 | __asm__ __volatile__( \ | ||
| 11 | "\n1: lduwa [%3] %%asi, %2\n" \ | ||
| 12 | " " insn "\n" \ | ||
| 13 | "2: casa [%3] %%asi, %2, %1\n" \ | ||
| 14 | " cmp %2, %1\n" \ | ||
| 15 | " bne,pn %%icc, 1b\n" \ | ||
| 16 | " mov 0, %0\n" \ | ||
| 17 | "3:\n" \ | ||
| 18 | " .section .fixup,#alloc,#execinstr\n" \ | ||
| 19 | " .align 4\n" \ | ||
| 20 | "4: ba 3b\n" \ | ||
| 21 | " mov %5, %0\n" \ | ||
| 22 | " .previous\n" \ | ||
| 23 | " .section __ex_table,#alloc\n" \ | ||
| 24 | " .align 4\n" \ | ||
| 25 | " .word 1b, 4b\n" \ | ||
| 26 | " .word 2b, 4b\n" \ | ||
| 27 | " .previous\n" \ | ||
| 28 | : "=&r" (ret), "=&r" (oldval), "=&r" (tem) \ | ||
| 29 | : "r" (uaddr), "r" (oparg), "i" (-EFAULT) \ | ||
| 30 | : "memory") | ||
| 31 | |||
| 32 | static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr) | ||
| 33 | { | ||
| 34 | int op = (encoded_op >> 28) & 7; | ||
| 35 | int cmp = (encoded_op >> 24) & 15; | ||
| 36 | int oparg = (encoded_op << 8) >> 20; | ||
| 37 | int cmparg = (encoded_op << 20) >> 20; | ||
| 38 | int oldval = 0, ret, tem; | ||
| 39 | |||
| 40 | if (unlikely(!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))) | ||
| 41 | return -EFAULT; | ||
| 42 | if (unlikely((((unsigned long) uaddr) & 0x3UL))) | ||
| 43 | return -EINVAL; | ||
| 44 | |||
| 45 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | ||
| 46 | oparg = 1 << oparg; | ||
| 47 | |||
| 48 | inc_preempt_count(); | ||
| 49 | |||
| 50 | switch (op) { | ||
| 51 | case FUTEX_OP_SET: | ||
| 52 | __futex_cas_op("mov\t%4, %1", ret, oldval, uaddr, oparg); | ||
| 53 | break; | ||
| 54 | case FUTEX_OP_ADD: | ||
| 55 | __futex_cas_op("add\t%2, %4, %1", ret, oldval, uaddr, oparg); | ||
| 56 | break; | ||
| 57 | case FUTEX_OP_OR: | ||
| 58 | __futex_cas_op("or\t%2, %4, %1", ret, oldval, uaddr, oparg); | ||
| 59 | break; | ||
| 60 | case FUTEX_OP_ANDN: | ||
| 61 | __futex_cas_op("and\t%2, %4, %1", ret, oldval, uaddr, oparg); | ||
| 62 | break; | ||
| 63 | case FUTEX_OP_XOR: | ||
| 64 | __futex_cas_op("xor\t%2, %4, %1", ret, oldval, uaddr, oparg); | ||
| 65 | break; | ||
| 66 | default: | ||
| 67 | ret = -ENOSYS; | ||
| 68 | } | ||
| 69 | |||
| 70 | dec_preempt_count(); | ||
| 71 | |||
| 72 | if (!ret) { | ||
| 73 | switch (cmp) { | ||
| 74 | case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; | ||
| 75 | case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; | ||
| 76 | case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; | ||
| 77 | case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; | ||
| 78 | case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; | ||
| 79 | case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; | ||
| 80 | default: ret = -ENOSYS; | ||
| 81 | } | ||
| 82 | } | ||
| 83 | return ret; | ||
| 84 | } | ||
| 85 | |||
| 86 | #endif /* !(_SPARC64_FUTEX_H) */ | ||
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h index 110a2de89123..473edb2603ec 100644 --- a/include/asm-sparc64/smp.h +++ b/include/asm-sparc64/smp.h | |||
| @@ -66,8 +66,14 @@ static __inline__ int hard_smp_processor_id(void) | |||
| 66 | 66 | ||
| 67 | #define raw_smp_processor_id() (current_thread_info()->cpu) | 67 | #define raw_smp_processor_id() (current_thread_info()->cpu) |
| 68 | 68 | ||
| 69 | extern void smp_setup_cpu_possible_map(void); | ||
| 70 | |||
| 69 | #endif /* !(__ASSEMBLY__) */ | 71 | #endif /* !(__ASSEMBLY__) */ |
| 70 | 72 | ||
| 73 | #else | ||
| 74 | |||
| 75 | #define smp_setup_cpu_possible_map() do { } while (0) | ||
| 76 | |||
| 71 | #endif /* !(CONFIG_SMP) */ | 77 | #endif /* !(CONFIG_SMP) */ |
| 72 | 78 | ||
| 73 | #define NO_PROC_ID 0xFF | 79 | #define NO_PROC_ID 0xFF |
diff --git a/include/asm-x86_64/pci.h b/include/asm-x86_64/pci.h index fd03e15d7ea6..8a05af264d18 100644 --- a/include/asm-x86_64/pci.h +++ b/include/asm-x86_64/pci.h | |||
| @@ -19,8 +19,6 @@ extern unsigned int pcibios_assign_all_busses(void); | |||
| 19 | #endif | 19 | #endif |
| 20 | #define pcibios_scan_all_fns(a, b) 0 | 20 | #define pcibios_scan_all_fns(a, b) 0 |
| 21 | 21 | ||
| 22 | extern int no_iommu, force_iommu; | ||
| 23 | |||
| 24 | extern unsigned long pci_mem_start; | 22 | extern unsigned long pci_mem_start; |
| 25 | #define PCIBIOS_MIN_IO 0x1000 | 23 | #define PCIBIOS_MIN_IO 0x1000 |
| 26 | #define PCIBIOS_MIN_MEM (pci_mem_start) | 24 | #define PCIBIOS_MIN_MEM (pci_mem_start) |
diff --git a/include/asm-x86_64/pgtable.h b/include/asm-x86_64/pgtable.h index 8fbf4dd72115..715fd94cf577 100644 --- a/include/asm-x86_64/pgtable.h +++ b/include/asm-x86_64/pgtable.h | |||
| @@ -131,7 +131,7 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long | |||
| 131 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | 131 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) |
| 132 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) | 132 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) |
| 133 | 133 | ||
| 134 | #define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE) | 134 | #define USER_PTRS_PER_PGD ((TASK_SIZE-1)/PGDIR_SIZE+1) |
| 135 | #define FIRST_USER_ADDRESS 0 | 135 | #define FIRST_USER_ADDRESS 0 |
| 136 | 136 | ||
| 137 | #ifndef __ASSEMBLY__ | 137 | #ifndef __ASSEMBLY__ |
diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h index eca3f2d633db..3ba8fd45fcb3 100644 --- a/include/asm-x86_64/proto.h +++ b/include/asm-x86_64/proto.h | |||
| @@ -39,7 +39,6 @@ extern void config_acpi_tables(void); | |||
| 39 | extern void ia32_syscall(void); | 39 | extern void ia32_syscall(void); |
| 40 | extern void iommu_hole_init(void); | 40 | extern void iommu_hole_init(void); |
| 41 | 41 | ||
| 42 | extern void time_init_gtod(void); | ||
| 43 | extern int pmtimer_mark_offset(void); | 42 | extern int pmtimer_mark_offset(void); |
| 44 | extern void pmtimer_resume(void); | 43 | extern void pmtimer_resume(void); |
| 45 | extern void pmtimer_wait(unsigned); | 44 | extern void pmtimer_wait(unsigned); |
| @@ -134,6 +133,7 @@ extern int force_iommu; | |||
| 134 | 133 | ||
| 135 | extern int reboot_force; | 134 | extern int reboot_force; |
| 136 | extern int notsc_setup(char *); | 135 | extern int notsc_setup(char *); |
| 136 | extern int setup_additional_cpus(char *); | ||
| 137 | 137 | ||
| 138 | extern void smp_local_timer_interrupt(struct pt_regs * regs); | 138 | extern void smp_local_timer_interrupt(struct pt_regs * regs); |
| 139 | 139 | ||
diff --git a/include/linux/netfilter_bridge/ebt_log.h b/include/linux/netfilter_bridge/ebt_log.h index 358fbc84fb59..96e231ae7554 100644 --- a/include/linux/netfilter_bridge/ebt_log.h +++ b/include/linux/netfilter_bridge/ebt_log.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */ | 4 | #define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */ |
| 5 | #define EBT_LOG_ARP 0x02 | 5 | #define EBT_LOG_ARP 0x02 |
| 6 | #define EBT_LOG_NFLOG 0x04 | ||
| 6 | #define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP) | 7 | #define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP) |
| 7 | #define EBT_LOG_PREFIX_SIZE 30 | 8 | #define EBT_LOG_PREFIX_SIZE 30 |
| 8 | #define EBT_LOG_WATCHER "log" | 9 | #define EBT_LOG_WATCHER "log" |
diff --git a/include/linux/netfilter_ipv4/ipt_LOG.h b/include/linux/netfilter_ipv4/ipt_LOG.h index 22d16177319b..892f9a33fea8 100644 --- a/include/linux/netfilter_ipv4/ipt_LOG.h +++ b/include/linux/netfilter_ipv4/ipt_LOG.h | |||
| @@ -6,7 +6,8 @@ | |||
| 6 | #define IPT_LOG_TCPOPT 0x02 /* Log TCP options */ | 6 | #define IPT_LOG_TCPOPT 0x02 /* Log TCP options */ |
| 7 | #define IPT_LOG_IPOPT 0x04 /* Log IP options */ | 7 | #define IPT_LOG_IPOPT 0x04 /* Log IP options */ |
| 8 | #define IPT_LOG_UID 0x08 /* Log UID owning local socket */ | 8 | #define IPT_LOG_UID 0x08 /* Log UID owning local socket */ |
| 9 | #define IPT_LOG_MASK 0x0f | 9 | #define IPT_LOG_NFLOG 0x10 /* Log using nf_log backend */ |
| 10 | #define IPT_LOG_MASK 0x1f | ||
| 10 | 11 | ||
| 11 | struct ipt_log_info { | 12 | struct ipt_log_info { |
| 12 | unsigned char level; | 13 | unsigned char level; |
diff --git a/include/linux/netfilter_ipv6/ip6t_LOG.h b/include/linux/netfilter_ipv6/ip6t_LOG.h index 9008ff5c40ae..060c1a1c6c60 100644 --- a/include/linux/netfilter_ipv6/ip6t_LOG.h +++ b/include/linux/netfilter_ipv6/ip6t_LOG.h | |||
| @@ -6,7 +6,8 @@ | |||
| 6 | #define IP6T_LOG_TCPOPT 0x02 /* Log TCP options */ | 6 | #define IP6T_LOG_TCPOPT 0x02 /* Log TCP options */ |
| 7 | #define IP6T_LOG_IPOPT 0x04 /* Log IP options */ | 7 | #define IP6T_LOG_IPOPT 0x04 /* Log IP options */ |
| 8 | #define IP6T_LOG_UID 0x08 /* Log UID owning local socket */ | 8 | #define IP6T_LOG_UID 0x08 /* Log UID owning local socket */ |
| 9 | #define IP6T_LOG_MASK 0x0f | 9 | #define IP6T_LOG_NFLOG 0x10 /* Log using nf_log backend */ |
| 10 | #define IP6T_LOG_MASK 0x1f | ||
| 10 | 11 | ||
| 11 | struct ip6t_log_info { | 12 | struct ip6t_log_info { |
| 12 | unsigned char level; | 13 | unsigned char level; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index b6f51e3a38ec..ff2e09c953b9 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -298,8 +298,9 @@ struct mm_struct { | |||
| 298 | unsigned long addr, unsigned long len, | 298 | unsigned long addr, unsigned long len, |
| 299 | unsigned long pgoff, unsigned long flags); | 299 | unsigned long pgoff, unsigned long flags); |
| 300 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); | 300 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); |
| 301 | unsigned long mmap_base; /* base of mmap area */ | 301 | unsigned long mmap_base; /* base of mmap area */ |
| 302 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | 302 | unsigned long task_size; /* size of task vm space */ |
| 303 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | ||
| 303 | unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */ | 304 | unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */ |
| 304 | pgd_t * pgd; | 305 | pgd_t * pgd; |
| 305 | atomic_t mm_users; /* How many users with user space? */ | 306 | atomic_t mm_users; /* How many users with user space? */ |
diff --git a/include/linux/serial_reg.h b/include/linux/serial_reg.h index 6a2bb955844b..3c8a6aa77415 100644 --- a/include/linux/serial_reg.h +++ b/include/linux/serial_reg.h | |||
| @@ -247,10 +247,10 @@ | |||
| 247 | #define UART_CTR 0xFF | 247 | #define UART_CTR 0xFF |
| 248 | 248 | ||
| 249 | /* | 249 | /* |
| 250 | * The 16C950 Additional Control Reigster | 250 | * The 16C950 Additional Control Register |
| 251 | */ | 251 | */ |
| 252 | #define UART_ACR_RXDIS 0x01 /* Receiver disable */ | 252 | #define UART_ACR_RXDIS 0x01 /* Receiver disable */ |
| 253 | #define UART_ACR_TXDIS 0x02 /* Receiver disable */ | 253 | #define UART_ACR_TXDIS 0x02 /* Transmitter disable */ |
| 254 | #define UART_ACR_DSRFC 0x04 /* DSR Flow Control */ | 254 | #define UART_ACR_DSRFC 0x04 /* DSR Flow Control */ |
| 255 | #define UART_ACR_TLENB 0x20 /* 950 trigger levels enable */ | 255 | #define UART_ACR_TLENB 0x20 /* 950 trigger levels enable */ |
| 256 | #define UART_ACR_ICRRD 0x40 /* ICR Read enable */ | 256 | #define UART_ACR_ICRRD 0x40 /* ICR Read enable */ |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index d73501ba7e44..b9ea44ac0ddb 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -543,7 +543,7 @@ asmlinkage long sys_unlinkat(int dfd, const char __user * pathname, int flag); | |||
| 543 | asmlinkage long sys_symlinkat(const char __user * oldname, | 543 | asmlinkage long sys_symlinkat(const char __user * oldname, |
| 544 | int newdfd, const char __user * newname); | 544 | int newdfd, const char __user * newname); |
| 545 | asmlinkage long sys_linkat(int olddfd, const char __user *oldname, | 545 | asmlinkage long sys_linkat(int olddfd, const char __user *oldname, |
| 546 | int newdfd, const char __user *newname); | 546 | int newdfd, const char __user *newname, int flags); |
| 547 | asmlinkage long sys_renameat(int olddfd, const char __user * oldname, | 547 | asmlinkage long sys_renameat(int olddfd, const char __user * oldname, |
| 548 | int newdfd, const char __user * newname); | 548 | int newdfd, const char __user * newname); |
| 549 | asmlinkage long sys_futimesat(int dfd, char __user *filename, | 549 | asmlinkage long sys_futimesat(int dfd, char __user *filename, |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 0e92bf7ec28e..bac61db26456 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
| @@ -147,6 +147,7 @@ enum | |||
| 147 | KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ | 147 | KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ |
| 148 | KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ | 148 | KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ |
| 149 | KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ | 149 | KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ |
| 150 | KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */ | ||
| 150 | }; | 151 | }; |
| 151 | 152 | ||
| 152 | 153 | ||
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index d6111a2f0a23..8d362c49b8a9 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
| @@ -233,7 +233,6 @@ struct xfrm_type | |||
| 233 | int (*init_state)(struct xfrm_state *x); | 233 | int (*init_state)(struct xfrm_state *x); |
| 234 | void (*destructor)(struct xfrm_state *); | 234 | void (*destructor)(struct xfrm_state *); |
| 235 | int (*input)(struct xfrm_state *, struct xfrm_decap_state *, struct sk_buff *skb); | 235 | int (*input)(struct xfrm_state *, struct xfrm_decap_state *, struct sk_buff *skb); |
| 236 | int (*post_input)(struct xfrm_state *, struct xfrm_decap_state *, struct sk_buff *skb); | ||
| 237 | int (*output)(struct xfrm_state *, struct sk_buff *pskb); | 236 | int (*output)(struct xfrm_state *, struct sk_buff *pskb); |
| 238 | /* Estimate maximal size of result of transformation of a dgram */ | 237 | /* Estimate maximal size of result of transformation of a dgram */ |
| 239 | u32 (*get_max_size)(struct xfrm_state *, int size); | 238 | u32 (*get_max_size)(struct xfrm_state *, int size); |
| @@ -403,6 +402,11 @@ unsigned xfrm_spi_hash(xfrm_address_t *addr, u32 spi, u8 proto, unsigned short f | |||
| 403 | 402 | ||
| 404 | extern void __xfrm_state_destroy(struct xfrm_state *); | 403 | extern void __xfrm_state_destroy(struct xfrm_state *); |
| 405 | 404 | ||
| 405 | static inline void __xfrm_state_put(struct xfrm_state *x) | ||
| 406 | { | ||
| 407 | atomic_dec(&x->refcnt); | ||
| 408 | } | ||
| 409 | |||
| 406 | static inline void xfrm_state_put(struct xfrm_state *x) | 410 | static inline void xfrm_state_put(struct xfrm_state *x) |
| 407 | { | 411 | { |
| 408 | if (atomic_dec_and_test(&x->refcnt)) | 412 | if (atomic_dec_and_test(&x->refcnt)) |
diff --git a/include/pcmcia/device_id.h b/include/pcmcia/device_id.h index 346d81ece287..e04e0b0d9a25 100644 --- a/include/pcmcia/device_id.h +++ b/include/pcmcia/device_id.h | |||
| @@ -72,6 +72,15 @@ | |||
| 72 | .prod_id = { (v1), (v2), (v3), (v4) }, \ | 72 | .prod_id = { (v1), (v2), (v3), (v4) }, \ |
| 73 | .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, } | 73 | .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, } |
| 74 | 74 | ||
| 75 | #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \ | ||
| 76 | .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ | ||
| 77 | PCMCIA_DEV_ID_MATCH_CARD_ID| \ | ||
| 78 | PCMCIA_DEV_ID_MATCH_PROD_ID1, \ | ||
| 79 | .manf_id = (manf), \ | ||
| 80 | .card_id = (card), \ | ||
| 81 | .prod_id = { (v1), NULL, NULL, NULL }, \ | ||
| 82 | .prod_id_hash = { (vh1), 0, 0, 0 }, } | ||
| 83 | |||
| 75 | 84 | ||
| 76 | /* multi-function devices */ | 85 | /* multi-function devices */ |
| 77 | 86 | ||
