diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/Kbuild | 3 | ||||
| -rw-r--r-- | include/linux/a.out.h | 8 | ||||
| -rw-r--r-- | include/linux/cpuidle.h | 1 | ||||
| -rw-r--r-- | include/linux/ide.h | 2 | ||||
| -rw-r--r-- | include/linux/if_tunnel.h | 2 | ||||
| -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 |
19 files changed, 69 insertions, 44 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 93b98856007a..b6fbb2573e88 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -166,6 +166,9 @@ unifdef-y += acct.h | |||
| 166 | unifdef-y += adb.h | 166 | unifdef-y += adb.h |
| 167 | unifdef-y += adfs_fs.h | 167 | unifdef-y += adfs_fs.h |
| 168 | unifdef-y += agpgart.h | 168 | unifdef-y += agpgart.h |
| 169 | ifeq ($(wildcard include/asm-$(SRCARCH)/a.out.h),include/asm-$(SRCARCH)/a.out.h) | ||
| 170 | unifdef-y += a.out.h | ||
| 171 | endif | ||
| 169 | unifdef-y += apm_bios.h | 172 | unifdef-y += apm_bios.h |
| 170 | unifdef-y += atalk.h | 173 | unifdef-y += atalk.h |
| 171 | unifdef-y += atmdev.h | 174 | unifdef-y += atmdev.h |
diff --git a/include/linux/a.out.h b/include/linux/a.out.h index 208f4e8ed304..e86dfca44589 100644 --- a/include/linux/a.out.h +++ b/include/linux/a.out.h | |||
| @@ -1,8 +1,6 @@ | |||
| 1 | #ifndef __A_OUT_GNU_H__ | 1 | #ifndef __A_OUT_GNU_H__ |
| 2 | #define __A_OUT_GNU_H__ | 2 | #define __A_OUT_GNU_H__ |
| 3 | 3 | ||
| 4 | #ifdef CONFIG_ARCH_SUPPORTS_AOUT | ||
| 5 | |||
| 6 | #define __GNU_EXEC_MACROS__ | 4 | #define __GNU_EXEC_MACROS__ |
| 7 | 5 | ||
| 8 | #ifndef __STRUCT_EXEC_OVERRIDE__ | 6 | #ifndef __STRUCT_EXEC_OVERRIDE__ |
| @@ -277,10 +275,4 @@ struct relocation_info | |||
| 277 | #endif /* no N_RELOCATION_INFO_DECLARED. */ | 275 | #endif /* no N_RELOCATION_INFO_DECLARED. */ |
| 278 | 276 | ||
| 279 | #endif /*__ASSEMBLY__ */ | 277 | #endif /*__ASSEMBLY__ */ |
| 280 | #else /* CONFIG_ARCH_SUPPORTS_AOUT */ | ||
| 281 | #ifndef __ASSEMBLY__ | ||
| 282 | struct exec { | ||
| 283 | }; | ||
| 284 | #endif | ||
| 285 | #endif /* CONFIG_ARCH_SUPPORTS_AOUT */ | ||
| 286 | #endif /* __A_OUT_GNU_H__ */ | 278 | #endif /* __A_OUT_GNU_H__ */ |
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/ide.h b/include/linux/ide.h index f8f195c20da2..9918772bf274 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -153,7 +153,7 @@ enum { ide_unknown, ide_generic, ide_pci, | |||
| 153 | ide_qd65xx, ide_umc8672, ide_ht6560b, | 153 | ide_qd65xx, ide_umc8672, ide_ht6560b, |
| 154 | ide_rz1000, ide_trm290, | 154 | ide_rz1000, ide_trm290, |
| 155 | ide_cmd646, ide_cy82c693, ide_4drives, | 155 | ide_cmd646, ide_cy82c693, ide_4drives, |
| 156 | ide_pmac, ide_etrax100, ide_acorn, | 156 | ide_pmac, ide_acorn, |
| 157 | ide_au1xxx, ide_palm3710 | 157 | ide_au1xxx, ide_palm3710 |
| 158 | }; | 158 | }; |
| 159 | 159 | ||
diff --git a/include/linux/if_tunnel.h b/include/linux/if_tunnel.h index f1fbe9c930d7..d4efe4014705 100644 --- a/include/linux/if_tunnel.h +++ b/include/linux/if_tunnel.h | |||
| @@ -41,7 +41,7 @@ struct ip_tunnel_prl { | |||
| 41 | __u16 __reserved; | 41 | __u16 __reserved; |
| 42 | __u32 datalen; | 42 | __u32 datalen; |
| 43 | __u32 __reserved2; | 43 | __u32 __reserved2; |
| 44 | void __user *data; | 44 | /* data follows */ |
| 45 | }; | 45 | }; |
| 46 | 46 | ||
| 47 | /* PRL flags */ | 47 | /* PRL flags */ |
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 | }; |
