diff options
| author | Paul Mackerras <paulus@samba.org> | 2008-06-16 00:53:25 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2008-06-16 00:53:25 -0400 |
| commit | a9653cf540d407fb75deb3db65a1be6c81d53ee0 (patch) | |
| tree | 075fb79746f1d74443c9a9062e73c26a6266b05c /include | |
| parent | e80ac32767d0f781ac195c472d500a7451d3729a (diff) | |
| parent | 066519068ad2fbe98c7f45552b1f592903a9c8c8 (diff) | |
Merge branch 'linux-2.6' into merge
Diffstat (limited to 'include')
| -rw-r--r-- | include/acpi/processor.h | 1 | ||||
| -rw-r--r-- | include/asm-arm/arch-pxa/regs-lcd.h | 5 | ||||
| -rw-r--r-- | include/asm-m68k/bitops.h | 45 | ||||
| -rw-r--r-- | include/asm-parisc/checksum.h | 2 | ||||
| -rw-r--r-- | include/asm-powerpc/kvm_ppc.h | 1 | ||||
| -rw-r--r-- | include/linux/cpuidle.h | 1 | ||||
| -rw-r--r-- | include/linux/ioport.h | 6 | ||||
| -rw-r--r-- | include/linux/ipv6.h | 4 | ||||
| -rw-r--r-- | include/linux/kvm_host.h | 2 | ||||
| -rw-r--r-- | include/linux/math64.h | 21 | ||||
| -rw-r--r-- | include/linux/mm.h | 17 | ||||
| -rw-r--r-- | include/linux/pci.h | 1 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 1 | ||||
| -rw-r--r-- | include/linux/proc_fs.h | 4 | ||||
| -rw-r--r-- | include/linux/rtnetlink.h | 1 | ||||
| -rw-r--r-- | include/linux/sched.h | 13 | ||||
| -rw-r--r-- | include/linux/ssb/ssb_driver_gige.h | 2 | ||||
| -rw-r--r-- | include/linux/tcp.h | 7 | ||||
| -rw-r--r-- | include/linux/time.h | 16 | ||||
| -rw-r--r-- | include/linux/virtio_net.h | 2 | ||||
| -rw-r--r-- | include/net/inet_sock.h | 10 | ||||
| -rw-r--r-- | include/net/request_sock.h | 4 | ||||
| -rw-r--r-- | include/net/tcp.h | 2 |
23 files changed, 126 insertions, 42 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 06480bcabfdc..06ebb6ef72aa 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
| @@ -319,6 +319,7 @@ static inline int acpi_processor_ppc_has_changed(struct acpi_processor *pr) | |||
| 319 | #endif /* CONFIG_CPU_FREQ */ | 319 | #endif /* CONFIG_CPU_FREQ */ |
| 320 | 320 | ||
| 321 | /* in processor_throttling.c */ | 321 | /* in processor_throttling.c */ |
| 322 | int acpi_processor_tstate_has_changed(struct acpi_processor *pr); | ||
| 322 | int acpi_processor_get_throttling_info(struct acpi_processor *pr); | 323 | int acpi_processor_get_throttling_info(struct acpi_processor *pr); |
| 323 | extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state); | 324 | extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state); |
| 324 | extern struct file_operations acpi_processor_throttling_fops; | 325 | extern struct file_operations acpi_processor_throttling_fops; |
diff --git a/include/asm-arm/arch-pxa/regs-lcd.h b/include/asm-arm/arch-pxa/regs-lcd.h index f762493f5141..3ba464c913a5 100644 --- a/include/asm-arm/arch-pxa/regs-lcd.h +++ b/include/asm-arm/arch-pxa/regs-lcd.h | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | #ifndef __ASM_ARCH_REGS_LCD_H | 1 | #ifndef __ASM_ARCH_REGS_LCD_H |
| 2 | #define __ASM_ARCH_REGS_LCD_H | 2 | #define __ASM_ARCH_REGS_LCD_H |
| 3 | |||
| 4 | #include <asm/arch/bitfield.h> | ||
| 5 | |||
| 3 | /* | 6 | /* |
| 4 | * LCD Controller Registers and Bits Definitions | 7 | * LCD Controller Registers and Bits Definitions |
| 5 | */ | 8 | */ |
| @@ -69,7 +72,7 @@ | |||
| 69 | #define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */ | 72 | #define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */ |
| 70 | #define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */ | 73 | #define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */ |
| 71 | #define LCCR0_PDD_S 12 | 74 | #define LCCR0_PDD_S 12 |
| 72 | #define LCCR0_BM (1 << 20) /* Branch mask */ | 75 | #define LCCR0_BM (1 << 20) /* Branch mask */ |
| 73 | #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ | 76 | #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ |
| 74 | #define LCCR0_LCDT (1 << 22) /* LCD panel type */ | 77 | #define LCCR0_LCDT (1 << 22) /* LCD panel type */ |
| 75 | #define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ | 78 | #define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ |
diff --git a/include/asm-m68k/bitops.h b/include/asm-m68k/bitops.h index 83d1f286230b..3e8106442d5a 100644 --- a/include/asm-m68k/bitops.h +++ b/include/asm-m68k/bitops.h | |||
| @@ -410,8 +410,49 @@ static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size, | |||
| 410 | res = ext2_find_first_zero_bit (p, size - 32 * (p - addr)); | 410 | res = ext2_find_first_zero_bit (p, size - 32 * (p - addr)); |
| 411 | return (p - addr) * 32 + res; | 411 | return (p - addr) * 32 + res; |
| 412 | } | 412 | } |
| 413 | #define ext2_find_next_bit(addr, size, off) \ | 413 | |
| 414 | generic_find_next_le_bit((unsigned long *)(addr), (size), (off)) | 414 | static inline int ext2_find_first_bit(const void *vaddr, unsigned size) |
| 415 | { | ||
| 416 | const unsigned long *p = vaddr, *addr = vaddr; | ||
| 417 | int res; | ||
| 418 | |||
| 419 | if (!size) | ||
| 420 | return 0; | ||
| 421 | |||
| 422 | size = (size >> 5) + ((size & 31) > 0); | ||
| 423 | while (*p++ == 0UL) { | ||
| 424 | if (--size == 0) | ||
| 425 | return (p - addr) << 5; | ||
| 426 | } | ||
| 427 | |||
| 428 | --p; | ||
| 429 | for (res = 0; res < 32; res++) | ||
| 430 | if (ext2_test_bit(res, p)) | ||
| 431 | break; | ||
| 432 | return (p - addr) * 32 + res; | ||
| 433 | } | ||
| 434 | |||
| 435 | static inline int ext2_find_next_bit(const void *vaddr, unsigned size, | ||
| 436 | unsigned offset) | ||
| 437 | { | ||
| 438 | const unsigned long *addr = vaddr; | ||
| 439 | const unsigned long *p = addr + (offset >> 5); | ||
| 440 | int bit = offset & 31UL, res; | ||
| 441 | |||
| 442 | if (offset >= size) | ||
| 443 | return size; | ||
| 444 | |||
| 445 | if (bit) { | ||
| 446 | /* Look for one in first longword */ | ||
| 447 | for (res = bit; res < 32; res++) | ||
| 448 | if (ext2_test_bit(res, p)) | ||
| 449 | return (p - addr) * 32 + res; | ||
| 450 | p++; | ||
| 451 | } | ||
| 452 | /* No set bit yet, search remaining full bytes for a set bit */ | ||
| 453 | res = ext2_find_first_bit(p, size - 32 * (p - addr)); | ||
| 454 | return (p - addr) * 32 + res; | ||
| 455 | } | ||
| 415 | 456 | ||
| 416 | #endif /* __KERNEL__ */ | 457 | #endif /* __KERNEL__ */ |
| 417 | 458 | ||
diff --git a/include/asm-parisc/checksum.h b/include/asm-parisc/checksum.h index cc3ec1bd8919..e9639ccc3fce 100644 --- a/include/asm-parisc/checksum.h +++ b/include/asm-parisc/checksum.h | |||
| @@ -65,7 +65,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) | |||
| 65 | "2:\n" | 65 | "2:\n" |
| 66 | : "=r" (sum), "=r" (iph), "=r" (ihl) | 66 | : "=r" (sum), "=r" (iph), "=r" (ihl) |
| 67 | : "1" (iph), "2" (ihl) | 67 | : "1" (iph), "2" (ihl) |
| 68 | : "r19", "r20", "r21" ); | 68 | : "r19", "r20", "r21", "memory"); |
| 69 | 69 | ||
| 70 | return (__force __sum16)sum; | 70 | return (__force __sum16)sum; |
| 71 | } | 71 | } |
diff --git a/include/asm-powerpc/kvm_ppc.h b/include/asm-powerpc/kvm_ppc.h index b35a7e3ef978..5a21115228af 100644 --- a/include/asm-powerpc/kvm_ppc.h +++ b/include/asm-powerpc/kvm_ppc.h | |||
| @@ -57,6 +57,7 @@ extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, | |||
| 57 | 57 | ||
| 58 | extern int kvmppc_emulate_instruction(struct kvm_run *run, | 58 | extern int kvmppc_emulate_instruction(struct kvm_run *run, |
| 59 | struct kvm_vcpu *vcpu); | 59 | struct kvm_vcpu *vcpu); |
| 60 | extern int kvmppc_emulate_mmio(struct kvm_run *run, struct kvm_vcpu *vcpu); | ||
| 60 | 61 | ||
| 61 | extern void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn, | 62 | extern void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn, |
| 62 | u64 asid, u32 flags); | 63 | u64 asid, u32 flags); |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 51e6b1e520e6..dcf77fa826b5 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
| @@ -82,6 +82,7 @@ struct cpuidle_state_kobj { | |||
| 82 | }; | 82 | }; |
| 83 | 83 | ||
| 84 | struct cpuidle_device { | 84 | struct cpuidle_device { |
| 85 | unsigned int registered:1; | ||
| 85 | unsigned int enabled:1; | 86 | unsigned int enabled:1; |
| 86 | unsigned int cpu; | 87 | unsigned int cpu; |
| 87 | 88 | ||
diff --git a/include/linux/ioport.h b/include/linux/ioport.h index d5d40a9f7929..c6801bffe76d 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h | |||
| @@ -53,14 +53,14 @@ struct resource_list { | |||
| 53 | #define IORESOURCE_AUTO 0x40000000 | 53 | #define IORESOURCE_AUTO 0x40000000 |
| 54 | #define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */ | 54 | #define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */ |
| 55 | 55 | ||
| 56 | /* ISA PnP IRQ specific bits (IORESOURCE_BITS) */ | 56 | /* PnP IRQ specific bits (IORESOURCE_BITS) */ |
| 57 | #define IORESOURCE_IRQ_HIGHEDGE (1<<0) | 57 | #define IORESOURCE_IRQ_HIGHEDGE (1<<0) |
| 58 | #define IORESOURCE_IRQ_LOWEDGE (1<<1) | 58 | #define IORESOURCE_IRQ_LOWEDGE (1<<1) |
| 59 | #define IORESOURCE_IRQ_HIGHLEVEL (1<<2) | 59 | #define IORESOURCE_IRQ_HIGHLEVEL (1<<2) |
| 60 | #define IORESOURCE_IRQ_LOWLEVEL (1<<3) | 60 | #define IORESOURCE_IRQ_LOWLEVEL (1<<3) |
| 61 | #define IORESOURCE_IRQ_SHAREABLE (1<<4) | 61 | #define IORESOURCE_IRQ_SHAREABLE (1<<4) |
| 62 | 62 | ||
| 63 | /* ISA PnP DMA specific bits (IORESOURCE_BITS) */ | 63 | /* PnP DMA specific bits (IORESOURCE_BITS) */ |
| 64 | #define IORESOURCE_DMA_TYPE_MASK (3<<0) | 64 | #define IORESOURCE_DMA_TYPE_MASK (3<<0) |
| 65 | #define IORESOURCE_DMA_8BIT (0<<0) | 65 | #define IORESOURCE_DMA_8BIT (0<<0) |
| 66 | #define IORESOURCE_DMA_8AND16BIT (1<<0) | 66 | #define IORESOURCE_DMA_8AND16BIT (1<<0) |
| @@ -76,7 +76,7 @@ struct resource_list { | |||
| 76 | #define IORESOURCE_DMA_TYPEB (2<<6) | 76 | #define IORESOURCE_DMA_TYPEB (2<<6) |
| 77 | #define IORESOURCE_DMA_TYPEF (3<<6) | 77 | #define IORESOURCE_DMA_TYPEF (3<<6) |
| 78 | 78 | ||
| 79 | /* ISA PnP memory I/O specific bits (IORESOURCE_BITS) */ | 79 | /* PnP memory I/O specific bits (IORESOURCE_BITS) */ |
| 80 | #define IORESOURCE_MEM_WRITEABLE (1<<0) /* dup: IORESOURCE_READONLY */ | 80 | #define IORESOURCE_MEM_WRITEABLE (1<<0) /* dup: IORESOURCE_READONLY */ |
| 81 | #define IORESOURCE_MEM_CACHEABLE (1<<1) /* dup: IORESOURCE_CACHEABLE */ | 81 | #define IORESOURCE_MEM_CACHEABLE (1<<1) /* dup: IORESOURCE_CACHEABLE */ |
| 82 | #define IORESOURCE_MEM_RANGELENGTH (1<<2) /* dup: IORESOURCE_RANGELENGTH */ | 82 | #define IORESOURCE_MEM_RANGELENGTH (1<<2) /* dup: IORESOURCE_RANGELENGTH */ |
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 10b666b61add..cde056e08181 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
| @@ -396,8 +396,10 @@ static inline struct request_sock *inet6_reqsk_alloc(struct request_sock_ops *op | |||
| 396 | { | 396 | { |
| 397 | struct request_sock *req = reqsk_alloc(ops); | 397 | struct request_sock *req = reqsk_alloc(ops); |
| 398 | 398 | ||
| 399 | if (req != NULL) | 399 | if (req != NULL) { |
| 400 | inet_rsk(req)->inet6_rsk_offset = inet6_rsk_offset(req); | 400 | inet_rsk(req)->inet6_rsk_offset = inet6_rsk_offset(req); |
| 401 | inet6_rsk(req)->pktopts = NULL; | ||
| 402 | } | ||
| 401 | 403 | ||
| 402 | return req; | 404 | return req; |
| 403 | } | 405 | } |
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 398978972b7a..092b1b25291d 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -297,7 +297,7 @@ static inline gpa_t gfn_to_gpa(gfn_t gfn) | |||
| 297 | return (gpa_t)gfn << PAGE_SHIFT; | 297 | return (gpa_t)gfn << PAGE_SHIFT; |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | static inline void kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) | 300 | static inline void kvm_migrate_timers(struct kvm_vcpu *vcpu) |
| 301 | { | 301 | { |
| 302 | set_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests); | 302 | set_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests); |
| 303 | } | 303 | } |
diff --git a/include/linux/math64.h b/include/linux/math64.h index c1a5f81501ff..c87f1528703a 100644 --- a/include/linux/math64.h +++ b/include/linux/math64.h | |||
| @@ -81,4 +81,25 @@ static inline s64 div_s64(s64 dividend, s32 divisor) | |||
| 81 | } | 81 | } |
| 82 | #endif | 82 | #endif |
| 83 | 83 | ||
| 84 | u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder); | ||
| 85 | |||
| 86 | static __always_inline u32 | ||
| 87 | __iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder) | ||
| 88 | { | ||
| 89 | u32 ret = 0; | ||
| 90 | |||
| 91 | while (dividend >= divisor) { | ||
| 92 | /* The following asm() prevents the compiler from | ||
| 93 | optimising this loop into a modulo operation. */ | ||
| 94 | asm("" : "+rm"(dividend)); | ||
| 95 | |||
| 96 | dividend -= divisor; | ||
| 97 | ret++; | ||
| 98 | } | ||
| 99 | |||
| 100 | *remainder = dividend; | ||
| 101 | |||
| 102 | return ret; | ||
| 103 | } | ||
| 104 | |||
| 84 | #endif /* _LINUX_MATH64_H */ | 105 | #endif /* _LINUX_MATH64_H */ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index c31a9cd2a30e..586a943cab01 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -760,16 +760,17 @@ unsigned long unmap_vmas(struct mmu_gather **tlb, | |||
| 760 | * (see walk_page_range for more details) | 760 | * (see walk_page_range for more details) |
| 761 | */ | 761 | */ |
| 762 | struct mm_walk { | 762 | struct mm_walk { |
| 763 | int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, void *); | 763 | int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); |
| 764 | int (*pud_entry)(pud_t *, unsigned long, unsigned long, void *); | 764 | int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); |
| 765 | int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, void *); | 765 | int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); |
| 766 | int (*pte_entry)(pte_t *, unsigned long, unsigned long, void *); | 766 | int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); |
| 767 | int (*pte_hole)(unsigned long, unsigned long, void *); | 767 | int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *); |
| 768 | struct mm_struct *mm; | ||
| 769 | void *private; | ||
| 768 | }; | 770 | }; |
| 769 | 771 | ||
| 770 | int walk_page_range(const struct mm_struct *, unsigned long addr, | 772 | int walk_page_range(unsigned long addr, unsigned long end, |
| 771 | unsigned long end, const struct mm_walk *walk, | 773 | struct mm_walk *walk); |
| 772 | void *private); | ||
| 773 | void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, | 774 | void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, |
| 774 | unsigned long end, unsigned long floor, unsigned long ceiling); | 775 | unsigned long end, unsigned long floor, unsigned long ceiling); |
| 775 | void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, | 776 | void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 509159bcd4e7..d18b1dd49fab 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -206,6 +206,7 @@ struct pci_dev { | |||
| 206 | struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ | 206 | struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ |
| 207 | int rom_attr_enabled; /* has display of the rom attribute been enabled? */ | 207 | int rom_attr_enabled; /* has display of the rom attribute been enabled? */ |
| 208 | struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ | 208 | struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ |
| 209 | struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; /* sysfs file for WC mapping of resources */ | ||
| 209 | #ifdef CONFIG_PCI_MSI | 210 | #ifdef CONFIG_PCI_MSI |
| 210 | struct list_head msi_list; | 211 | struct list_head msi_list; |
| 211 | #endif | 212 | #endif |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 9b940e644179..eafc9d6d2b35 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -716,6 +716,7 @@ | |||
| 716 | #define PCI_DEVICE_ID_HP_CISSA 0x3220 | 716 | #define PCI_DEVICE_ID_HP_CISSA 0x3220 |
| 717 | #define PCI_DEVICE_ID_HP_CISSC 0x3230 | 717 | #define PCI_DEVICE_ID_HP_CISSC 0x3230 |
| 718 | #define PCI_DEVICE_ID_HP_CISSD 0x3238 | 718 | #define PCI_DEVICE_ID_HP_CISSD 0x3238 |
| 719 | #define PCI_DEVICE_ID_HP_CISSE 0x323a | ||
| 719 | #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 | 720 | #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 |
| 720 | 721 | ||
| 721 | #define PCI_VENDOR_ID_PCTECH 0x1042 | 722 | #define PCI_VENDOR_ID_PCTECH 0x1042 |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 9883bc942262..fff1d27ddb4c 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
| @@ -9,6 +9,8 @@ | |||
| 9 | 9 | ||
| 10 | struct net; | 10 | struct net; |
| 11 | struct completion; | 11 | struct completion; |
| 12 | struct mm_struct; | ||
| 13 | |||
| 12 | /* | 14 | /* |
| 13 | * The proc filesystem constants/structures | 15 | * The proc filesystem constants/structures |
| 14 | */ | 16 | */ |
| @@ -101,8 +103,6 @@ extern spinlock_t proc_subdir_lock; | |||
| 101 | extern void proc_root_init(void); | 103 | extern void proc_root_init(void); |
| 102 | extern void proc_misc_init(void); | 104 | extern void proc_misc_init(void); |
| 103 | 105 | ||
| 104 | struct mm_struct; | ||
| 105 | |||
| 106 | void proc_flush_task(struct task_struct *task); | 106 | void proc_flush_task(struct task_struct *task); |
| 107 | struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *); | 107 | struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *); |
| 108 | int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); | 108 | int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index a2aec2c0cfb5..b358c704d102 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
| @@ -246,6 +246,7 @@ enum rt_class_t | |||
| 246 | { | 246 | { |
| 247 | RT_TABLE_UNSPEC=0, | 247 | RT_TABLE_UNSPEC=0, |
| 248 | /* User defined values */ | 248 | /* User defined values */ |
| 249 | RT_TABLE_COMPAT=252, | ||
| 249 | RT_TABLE_DEFAULT=253, | 250 | RT_TABLE_DEFAULT=253, |
| 250 | RT_TABLE_MAIN=254, | 251 | RT_TABLE_MAIN=254, |
| 251 | RT_TABLE_LOCAL=255, | 252 | RT_TABLE_LOCAL=255, |
diff --git a/include/linux/sched.h b/include/linux/sched.h index ae0be3c62375..c5d3f847ca8d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -2026,6 +2026,19 @@ static inline int fatal_signal_pending(struct task_struct *p) | |||
| 2026 | return signal_pending(p) && __fatal_signal_pending(p); | 2026 | return signal_pending(p) && __fatal_signal_pending(p); |
| 2027 | } | 2027 | } |
| 2028 | 2028 | ||
| 2029 | static inline int signal_pending_state(long state, struct task_struct *p) | ||
| 2030 | { | ||
| 2031 | if (!(state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL))) | ||
| 2032 | return 0; | ||
| 2033 | if (!signal_pending(p)) | ||
| 2034 | return 0; | ||
| 2035 | |||
| 2036 | if (state & (__TASK_STOPPED | __TASK_TRACED)) | ||
| 2037 | return 0; | ||
| 2038 | |||
| 2039 | return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p); | ||
| 2040 | } | ||
| 2041 | |||
| 2029 | static inline int need_resched(void) | 2042 | static inline int need_resched(void) |
| 2030 | { | 2043 | { |
| 2031 | return unlikely(test_thread_flag(TIF_NEED_RESCHED)); | 2044 | return unlikely(test_thread_flag(TIF_NEED_RESCHED)); |
diff --git a/include/linux/ssb/ssb_driver_gige.h b/include/linux/ssb/ssb_driver_gige.h index 01fbdf5fef22..942e38736901 100644 --- a/include/linux/ssb/ssb_driver_gige.h +++ b/include/linux/ssb/ssb_driver_gige.h | |||
| @@ -100,7 +100,7 @@ extern char * nvram_get(const char *name); | |||
| 100 | /* Get the device MAC address */ | 100 | /* Get the device MAC address */ |
| 101 | static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) | 101 | static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) |
| 102 | { | 102 | { |
| 103 | #ifdef CONFIG_BCM947XX | 103 | #ifdef CONFIG_BCM47XX |
| 104 | char *res = nvram_get("et0macaddr"); | 104 | char *res = nvram_get("et0macaddr"); |
| 105 | if (res) | 105 | if (res) |
| 106 | memcpy(macaddr, res, 6); | 106 | memcpy(macaddr, res, 6); |
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 18e62e3d406f..b31b6b74aa28 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
| @@ -239,11 +239,6 @@ static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req) | |||
| 239 | return (struct tcp_request_sock *)req; | 239 | return (struct tcp_request_sock *)req; |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | struct tcp_deferred_accept_info { | ||
| 243 | struct sock *listen_sk; | ||
| 244 | struct request_sock *request; | ||
| 245 | }; | ||
| 246 | |||
| 247 | struct tcp_sock { | 242 | struct tcp_sock { |
| 248 | /* inet_connection_sock has to be the first member of tcp_sock */ | 243 | /* inet_connection_sock has to be the first member of tcp_sock */ |
| 249 | struct inet_connection_sock inet_conn; | 244 | struct inet_connection_sock inet_conn; |
| @@ -379,8 +374,6 @@ struct tcp_sock { | |||
| 379 | unsigned int keepalive_intvl; /* time interval between keep alive probes */ | 374 | unsigned int keepalive_intvl; /* time interval between keep alive probes */ |
| 380 | int linger2; | 375 | int linger2; |
| 381 | 376 | ||
| 382 | struct tcp_deferred_accept_info defer_tcp_accept; | ||
| 383 | |||
| 384 | unsigned long last_synq_overflow; | 377 | unsigned long last_synq_overflow; |
| 385 | 378 | ||
| 386 | u32 tso_deferred; | 379 | u32 tso_deferred; |
diff --git a/include/linux/time.h b/include/linux/time.h index d32ef0ad4c0a..e15206a7e82e 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #ifdef __KERNEL__ | 6 | #ifdef __KERNEL__ |
| 7 | # include <linux/cache.h> | 7 | # include <linux/cache.h> |
| 8 | # include <linux/seqlock.h> | 8 | # include <linux/seqlock.h> |
| 9 | # include <linux/math64.h> | ||
| 9 | #endif | 10 | #endif |
| 10 | 11 | ||
| 11 | #ifndef _STRUCT_TIMESPEC | 12 | #ifndef _STRUCT_TIMESPEC |
| @@ -169,18 +170,13 @@ extern struct timeval ns_to_timeval(const s64 nsec); | |||
| 169 | * timespec_add_ns - Adds nanoseconds to a timespec | 170 | * timespec_add_ns - Adds nanoseconds to a timespec |
| 170 | * @a: pointer to timespec to be incremented | 171 | * @a: pointer to timespec to be incremented |
| 171 | * @ns: unsigned nanoseconds value to be added | 172 | * @ns: unsigned nanoseconds value to be added |
| 173 | * | ||
| 174 | * This must always be inlined because its used from the x86-64 vdso, | ||
| 175 | * which cannot call other kernel functions. | ||
| 172 | */ | 176 | */ |
| 173 | static inline void timespec_add_ns(struct timespec *a, u64 ns) | 177 | static __always_inline void timespec_add_ns(struct timespec *a, u64 ns) |
| 174 | { | 178 | { |
| 175 | ns += a->tv_nsec; | 179 | a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, NSEC_PER_SEC, &ns); |
| 176 | while(unlikely(ns >= NSEC_PER_SEC)) { | ||
| 177 | /* The following asm() prevents the compiler from | ||
| 178 | * optimising this loop into a modulo operation. */ | ||
| 179 | asm("" : "+r"(ns)); | ||
| 180 | |||
| 181 | ns -= NSEC_PER_SEC; | ||
| 182 | a->tv_sec++; | ||
| 183 | } | ||
| 184 | a->tv_nsec = ns; | 180 | a->tv_nsec = ns; |
| 185 | } | 181 | } |
| 186 | #endif /* __KERNEL__ */ | 182 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 9405aa6cdf26..38c0571820fb 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
| @@ -38,7 +38,7 @@ struct virtio_net_hdr | |||
| 38 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set | 38 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set |
| 39 | __u8 gso_type; | 39 | __u8 gso_type; |
| 40 | __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ | 40 | __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ |
| 41 | __u16 gso_size; /* Bytes to append to gso_hdr_len per frame */ | 41 | __u16 gso_size; /* Bytes to append to hdr_len per frame */ |
| 42 | __u16 csum_start; /* Position to start checksumming from */ | 42 | __u16 csum_start; /* Position to start checksumming from */ |
| 43 | __u16 csum_offset; /* Offset after that to place checksum */ | 43 | __u16 csum_offset; /* Offset after that to place checksum */ |
| 44 | }; | 44 | }; |
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index a42cd63d241a..9fabe5b38912 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h | |||
| @@ -197,4 +197,14 @@ static inline int inet_iif(const struct sk_buff *skb) | |||
| 197 | return skb->rtable->rt_iif; | 197 | return skb->rtable->rt_iif; |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | static inline struct request_sock *inet_reqsk_alloc(struct request_sock_ops *ops) | ||
| 201 | { | ||
| 202 | struct request_sock *req = reqsk_alloc(ops); | ||
| 203 | |||
| 204 | if (req != NULL) | ||
| 205 | inet_rsk(req)->opt = NULL; | ||
| 206 | |||
| 207 | return req; | ||
| 208 | } | ||
| 209 | |||
| 200 | #endif /* _INET_SOCK_H */ | 210 | #endif /* _INET_SOCK_H */ |
diff --git a/include/net/request_sock.h b/include/net/request_sock.h index b220b5f624de..0c96e7bed5db 100644 --- a/include/net/request_sock.h +++ b/include/net/request_sock.h | |||
| @@ -115,8 +115,8 @@ struct request_sock_queue { | |||
| 115 | struct request_sock *rskq_accept_head; | 115 | struct request_sock *rskq_accept_head; |
| 116 | struct request_sock *rskq_accept_tail; | 116 | struct request_sock *rskq_accept_tail; |
| 117 | rwlock_t syn_wait_lock; | 117 | rwlock_t syn_wait_lock; |
| 118 | u16 rskq_defer_accept; | 118 | u8 rskq_defer_accept; |
| 119 | /* 2 bytes hole, try to pack */ | 119 | /* 3 bytes hole, try to pack */ |
| 120 | struct listen_sock *listen_opt; | 120 | struct listen_sock *listen_opt; |
| 121 | }; | 121 | }; |
| 122 | 122 | ||
diff --git a/include/net/tcp.h b/include/net/tcp.h index 633147cb6bbc..cf54034019d9 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -139,7 +139,6 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo); | |||
| 139 | #define MAX_TCP_KEEPINTVL 32767 | 139 | #define MAX_TCP_KEEPINTVL 32767 |
| 140 | #define MAX_TCP_KEEPCNT 127 | 140 | #define MAX_TCP_KEEPCNT 127 |
| 141 | #define MAX_TCP_SYNCNT 127 | 141 | #define MAX_TCP_SYNCNT 127 |
| 142 | #define MAX_TCP_ACCEPT_DEFERRED 65535 | ||
| 143 | 142 | ||
| 144 | #define TCP_SYNQ_INTERVAL (HZ/5) /* Period of SYNACK timer */ | 143 | #define TCP_SYNQ_INTERVAL (HZ/5) /* Period of SYNACK timer */ |
| 145 | 144 | ||
| @@ -433,7 +432,6 @@ extern struct sk_buff * tcp_make_synack(struct sock *sk, | |||
| 433 | 432 | ||
| 434 | extern int tcp_disconnect(struct sock *sk, int flags); | 433 | extern int tcp_disconnect(struct sock *sk, int flags); |
| 435 | 434 | ||
| 436 | extern void tcp_unhash(struct sock *sk); | ||
| 437 | 435 | ||
| 438 | /* From syncookies.c */ | 436 | /* From syncookies.c */ |
| 439 | extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; | 437 | extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; |
