diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-generic/iomap.h | 2 | ||||
| -rw-r--r-- | include/asm-generic/pci_iomap.h | 2 | ||||
| -rw-r--r-- | include/asm-generic/poll.h | 2 | ||||
| -rw-r--r-- | include/drm/Kbuild | 1 | ||||
| -rw-r--r-- | include/drm/exynos_drm.h | 22 | ||||
| -rw-r--r-- | include/linux/compat.h | 4 | ||||
| -rw-r--r-- | include/linux/dcache.h | 33 | ||||
| -rw-r--r-- | include/linux/if_link.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter_bridge/ebtables.h | 4 | ||||
| -rw-r--r-- | include/linux/percpu.h | 29 | ||||
| -rw-r--r-- | include/linux/regset.h | 10 | ||||
| -rw-r--r-- | include/linux/rtnetlink.h | 3 | ||||
| -rw-r--r-- | include/linux/signalfd.h | 5 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 10 | ||||
| -rw-r--r-- | include/net/bluetooth/bluetooth.h | 2 | ||||
| -rw-r--r-- | include/net/bluetooth/hci_core.h | 6 | ||||
| -rw-r--r-- | include/net/bluetooth/l2cap.h | 12 | ||||
| -rw-r--r-- | include/net/netfilter/nf_conntrack.h | 2 | ||||
| -rw-r--r-- | include/net/rtnetlink.h | 2 | ||||
| -rw-r--r-- | include/trace/events/sched.h | 50 |
20 files changed, 87 insertions, 115 deletions
diff --git a/include/asm-generic/iomap.h b/include/asm-generic/iomap.h index 8a3d4fde2604..6afd7d6a9899 100644 --- a/include/asm-generic/iomap.h +++ b/include/asm-generic/iomap.h | |||
| @@ -70,7 +70,7 @@ extern void ioport_unmap(void __iomem *); | |||
| 70 | /* Destroy a virtual mapping cookie for a PCI BAR (memory or IO) */ | 70 | /* Destroy a virtual mapping cookie for a PCI BAR (memory or IO) */ |
| 71 | struct pci_dev; | 71 | struct pci_dev; |
| 72 | extern void pci_iounmap(struct pci_dev *dev, void __iomem *); | 72 | extern void pci_iounmap(struct pci_dev *dev, void __iomem *); |
| 73 | #else | 73 | #elif defined(CONFIG_GENERIC_IOMAP) |
| 74 | struct pci_dev; | 74 | struct pci_dev; |
| 75 | static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr) | 75 | static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr) |
| 76 | { } | 76 | { } |
diff --git a/include/asm-generic/pci_iomap.h b/include/asm-generic/pci_iomap.h index e58fcf891370..ce37349860fe 100644 --- a/include/asm-generic/pci_iomap.h +++ b/include/asm-generic/pci_iomap.h | |||
| @@ -25,7 +25,7 @@ extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port, | |||
| 25 | #define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr)) | 25 | #define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr)) |
| 26 | #endif | 26 | #endif |
| 27 | 27 | ||
| 28 | #else | 28 | #elif defined(CONFIG_GENERIC_PCI_IOMAP) |
| 29 | static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max) | 29 | static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max) |
| 30 | { | 30 | { |
| 31 | return NULL; | 31 | return NULL; |
diff --git a/include/asm-generic/poll.h b/include/asm-generic/poll.h index 44bce836d350..9ce7f44aebd2 100644 --- a/include/asm-generic/poll.h +++ b/include/asm-generic/poll.h | |||
| @@ -28,6 +28,8 @@ | |||
| 28 | #define POLLRDHUP 0x2000 | 28 | #define POLLRDHUP 0x2000 |
| 29 | #endif | 29 | #endif |
| 30 | 30 | ||
| 31 | #define POLLFREE 0x4000 /* currently only for epoll */ | ||
| 32 | |||
| 31 | struct pollfd { | 33 | struct pollfd { |
| 32 | int fd; | 34 | int fd; |
| 33 | short events; | 35 | short events; |
diff --git a/include/drm/Kbuild b/include/drm/Kbuild index a5c0e10fd47d..1e38a19d68f6 100644 --- a/include/drm/Kbuild +++ b/include/drm/Kbuild | |||
| @@ -2,6 +2,7 @@ header-y += drm.h | |||
| 2 | header-y += drm_fourcc.h | 2 | header-y += drm_fourcc.h |
| 3 | header-y += drm_mode.h | 3 | header-y += drm_mode.h |
| 4 | header-y += drm_sarea.h | 4 | header-y += drm_sarea.h |
| 5 | header-y += exynos_drm.h | ||
| 5 | header-y += i810_drm.h | 6 | header-y += i810_drm.h |
| 6 | header-y += i915_drm.h | 7 | header-y += i915_drm.h |
| 7 | header-y += mga_drm.h | 8 | header-y += mga_drm.h |
diff --git a/include/drm/exynos_drm.h b/include/drm/exynos_drm.h index 5e120f1c5cd9..1ed3aae893a5 100644 --- a/include/drm/exynos_drm.h +++ b/include/drm/exynos_drm.h | |||
| @@ -97,15 +97,30 @@ struct drm_exynos_plane_set_zpos { | |||
| 97 | #define DRM_IOCTL_EXYNOS_PLANE_SET_ZPOS DRM_IOWR(DRM_COMMAND_BASE + \ | 97 | #define DRM_IOCTL_EXYNOS_PLANE_SET_ZPOS DRM_IOWR(DRM_COMMAND_BASE + \ |
| 98 | DRM_EXYNOS_PLANE_SET_ZPOS, struct drm_exynos_plane_set_zpos) | 98 | DRM_EXYNOS_PLANE_SET_ZPOS, struct drm_exynos_plane_set_zpos) |
| 99 | 99 | ||
| 100 | #ifdef __KERNEL__ | ||
| 101 | |||
| 100 | /** | 102 | /** |
| 101 | * Platform Specific Structure for DRM based FIMD. | 103 | * A structure for lcd panel information. |
| 102 | * | 104 | * |
| 103 | * @timing: default video mode for initializing | 105 | * @timing: default video mode for initializing |
| 106 | * @width_mm: physical size of lcd width. | ||
| 107 | * @height_mm: physical size of lcd height. | ||
| 108 | */ | ||
| 109 | struct exynos_drm_panel_info { | ||
| 110 | struct fb_videomode timing; | ||
| 111 | u32 width_mm; | ||
| 112 | u32 height_mm; | ||
| 113 | }; | ||
| 114 | |||
| 115 | /** | ||
| 116 | * Platform Specific Structure for DRM based FIMD. | ||
| 117 | * | ||
| 118 | * @panel: default panel info for initializing | ||
| 104 | * @default_win: default window layer number to be used for UI. | 119 | * @default_win: default window layer number to be used for UI. |
| 105 | * @bpp: default bit per pixel. | 120 | * @bpp: default bit per pixel. |
| 106 | */ | 121 | */ |
| 107 | struct exynos_drm_fimd_pdata { | 122 | struct exynos_drm_fimd_pdata { |
| 108 | struct fb_videomode timing; | 123 | struct exynos_drm_panel_info panel; |
| 109 | u32 vidcon0; | 124 | u32 vidcon0; |
| 110 | u32 vidcon1; | 125 | u32 vidcon1; |
| 111 | unsigned int default_win; | 126 | unsigned int default_win; |
| @@ -139,4 +154,5 @@ struct exynos_drm_hdmi_pdata { | |||
| 139 | unsigned int bpp; | 154 | unsigned int bpp; |
| 140 | }; | 155 | }; |
| 141 | 156 | ||
| 142 | #endif | 157 | #endif /* __KERNEL__ */ |
| 158 | #endif /* _EXYNOS_DRM_H_ */ | ||
diff --git a/include/linux/compat.h b/include/linux/compat.h index 41c9f6515f46..7e05fcee75a1 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -561,5 +561,9 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid, | |||
| 561 | unsigned long liovcnt, const struct compat_iovec __user *rvec, | 561 | unsigned long liovcnt, const struct compat_iovec __user *rvec, |
| 562 | unsigned long riovcnt, unsigned long flags); | 562 | unsigned long riovcnt, unsigned long flags); |
| 563 | 563 | ||
| 564 | #else | ||
| 565 | |||
| 566 | #define is_compat_task() (0) | ||
| 567 | |||
| 564 | #endif /* CONFIG_COMPAT */ | 568 | #endif /* CONFIG_COMPAT */ |
| 565 | #endif /* _LINUX_COMPAT_H */ | 569 | #endif /* _LINUX_COMPAT_H */ |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index d64a55b23afd..ff5f5256d175 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
| @@ -47,27 +47,6 @@ struct dentry_stat_t { | |||
| 47 | }; | 47 | }; |
| 48 | extern struct dentry_stat_t dentry_stat; | 48 | extern struct dentry_stat_t dentry_stat; |
| 49 | 49 | ||
| 50 | /* | ||
| 51 | * Compare 2 name strings, return 0 if they match, otherwise non-zero. | ||
| 52 | * The strings are both count bytes long, and count is non-zero. | ||
| 53 | */ | ||
| 54 | static inline int dentry_cmp(const unsigned char *cs, size_t scount, | ||
| 55 | const unsigned char *ct, size_t tcount) | ||
| 56 | { | ||
| 57 | int ret; | ||
| 58 | if (scount != tcount) | ||
| 59 | return 1; | ||
| 60 | do { | ||
| 61 | ret = (*cs != *ct); | ||
| 62 | if (ret) | ||
| 63 | break; | ||
| 64 | cs++; | ||
| 65 | ct++; | ||
| 66 | tcount--; | ||
| 67 | } while (tcount); | ||
| 68 | return ret; | ||
| 69 | } | ||
| 70 | |||
| 71 | /* Name hashing routines. Initial hash value */ | 50 | /* Name hashing routines. Initial hash value */ |
| 72 | /* Hash courtesy of the R5 hash in reiserfs modulo sign bits */ | 51 | /* Hash courtesy of the R5 hash in reiserfs modulo sign bits */ |
| 73 | #define init_name_hash() 0 | 52 | #define init_name_hash() 0 |
| @@ -89,14 +68,7 @@ static inline unsigned long end_name_hash(unsigned long hash) | |||
| 89 | } | 68 | } |
| 90 | 69 | ||
| 91 | /* Compute the hash for a name string. */ | 70 | /* Compute the hash for a name string. */ |
| 92 | static inline unsigned int | 71 | extern unsigned int full_name_hash(const unsigned char *, unsigned int); |
| 93 | full_name_hash(const unsigned char *name, unsigned int len) | ||
| 94 | { | ||
| 95 | unsigned long hash = init_name_hash(); | ||
| 96 | while (len--) | ||
| 97 | hash = partial_name_hash(*name++, hash); | ||
| 98 | return end_name_hash(hash); | ||
| 99 | } | ||
| 100 | 72 | ||
| 101 | /* | 73 | /* |
| 102 | * Try to keep struct dentry aligned on 64 byte cachelines (this will | 74 | * Try to keep struct dentry aligned on 64 byte cachelines (this will |
| @@ -309,7 +281,8 @@ extern struct dentry *d_ancestor(struct dentry *, struct dentry *); | |||
| 309 | extern struct dentry *d_lookup(struct dentry *, struct qstr *); | 281 | extern struct dentry *d_lookup(struct dentry *, struct qstr *); |
| 310 | extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *); | 282 | extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *); |
| 311 | extern struct dentry *__d_lookup(struct dentry *, struct qstr *); | 283 | extern struct dentry *__d_lookup(struct dentry *, struct qstr *); |
| 312 | extern struct dentry *__d_lookup_rcu(struct dentry *parent, struct qstr *name, | 284 | extern struct dentry *__d_lookup_rcu(const struct dentry *parent, |
| 285 | const struct qstr *name, | ||
| 313 | unsigned *seq, struct inode **inode); | 286 | unsigned *seq, struct inode **inode); |
| 314 | 287 | ||
| 315 | /** | 288 | /** |
diff --git a/include/linux/if_link.h b/include/linux/if_link.h index c52d4b5f872a..4b24ff453aee 100644 --- a/include/linux/if_link.h +++ b/include/linux/if_link.h | |||
| @@ -137,6 +137,7 @@ enum { | |||
| 137 | IFLA_AF_SPEC, | 137 | IFLA_AF_SPEC, |
| 138 | IFLA_GROUP, /* Group the device belongs to */ | 138 | IFLA_GROUP, /* Group the device belongs to */ |
| 139 | IFLA_NET_NS_FD, | 139 | IFLA_NET_NS_FD, |
| 140 | IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ | ||
| 140 | __IFLA_MAX | 141 | __IFLA_MAX |
| 141 | }; | 142 | }; |
| 142 | 143 | ||
diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h index 8797ed16feb2..4dd5bd6994a8 100644 --- a/include/linux/netfilter_bridge/ebtables.h +++ b/include/linux/netfilter_bridge/ebtables.h | |||
| @@ -285,8 +285,8 @@ struct ebt_table { | |||
| 285 | struct module *me; | 285 | struct module *me; |
| 286 | }; | 286 | }; |
| 287 | 287 | ||
| 288 | #define EBT_ALIGN(s) (((s) + (__alignof__(struct ebt_replace)-1)) & \ | 288 | #define EBT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) & \ |
| 289 | ~(__alignof__(struct ebt_replace)-1)) | 289 | ~(__alignof__(struct _xt_align)-1)) |
| 290 | extern struct ebt_table *ebt_register_table(struct net *net, | 290 | extern struct ebt_table *ebt_register_table(struct net *net, |
| 291 | const struct ebt_table *table); | 291 | const struct ebt_table *table); |
| 292 | extern void ebt_unregister_table(struct net *net, struct ebt_table *table); | 292 | extern void ebt_unregister_table(struct net *net, struct ebt_table *table); |
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 32cd1f67462e..21638ae14e07 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -348,9 +348,9 @@ do { \ | |||
| 348 | #define _this_cpu_generic_to_op(pcp, val, op) \ | 348 | #define _this_cpu_generic_to_op(pcp, val, op) \ |
| 349 | do { \ | 349 | do { \ |
| 350 | unsigned long flags; \ | 350 | unsigned long flags; \ |
| 351 | local_irq_save(flags); \ | 351 | raw_local_irq_save(flags); \ |
| 352 | *__this_cpu_ptr(&(pcp)) op val; \ | 352 | *__this_cpu_ptr(&(pcp)) op val; \ |
| 353 | local_irq_restore(flags); \ | 353 | raw_local_irq_restore(flags); \ |
| 354 | } while (0) | 354 | } while (0) |
| 355 | 355 | ||
| 356 | #ifndef this_cpu_write | 356 | #ifndef this_cpu_write |
| @@ -449,10 +449,10 @@ do { \ | |||
| 449 | ({ \ | 449 | ({ \ |
| 450 | typeof(pcp) ret__; \ | 450 | typeof(pcp) ret__; \ |
| 451 | unsigned long flags; \ | 451 | unsigned long flags; \ |
| 452 | local_irq_save(flags); \ | 452 | raw_local_irq_save(flags); \ |
| 453 | __this_cpu_add(pcp, val); \ | 453 | __this_cpu_add(pcp, val); \ |
| 454 | ret__ = __this_cpu_read(pcp); \ | 454 | ret__ = __this_cpu_read(pcp); \ |
| 455 | local_irq_restore(flags); \ | 455 | raw_local_irq_restore(flags); \ |
| 456 | ret__; \ | 456 | ret__; \ |
| 457 | }) | 457 | }) |
| 458 | 458 | ||
| @@ -479,10 +479,10 @@ do { \ | |||
| 479 | #define _this_cpu_generic_xchg(pcp, nval) \ | 479 | #define _this_cpu_generic_xchg(pcp, nval) \ |
| 480 | ({ typeof(pcp) ret__; \ | 480 | ({ typeof(pcp) ret__; \ |
| 481 | unsigned long flags; \ | 481 | unsigned long flags; \ |
| 482 | local_irq_save(flags); \ | 482 | raw_local_irq_save(flags); \ |
| 483 | ret__ = __this_cpu_read(pcp); \ | 483 | ret__ = __this_cpu_read(pcp); \ |
| 484 | __this_cpu_write(pcp, nval); \ | 484 | __this_cpu_write(pcp, nval); \ |
| 485 | local_irq_restore(flags); \ | 485 | raw_local_irq_restore(flags); \ |
| 486 | ret__; \ | 486 | ret__; \ |
| 487 | }) | 487 | }) |
| 488 | 488 | ||
| @@ -507,11 +507,11 @@ do { \ | |||
| 507 | ({ \ | 507 | ({ \ |
| 508 | typeof(pcp) ret__; \ | 508 | typeof(pcp) ret__; \ |
| 509 | unsigned long flags; \ | 509 | unsigned long flags; \ |
| 510 | local_irq_save(flags); \ | 510 | raw_local_irq_save(flags); \ |
| 511 | ret__ = __this_cpu_read(pcp); \ | 511 | ret__ = __this_cpu_read(pcp); \ |
| 512 | if (ret__ == (oval)) \ | 512 | if (ret__ == (oval)) \ |
| 513 | __this_cpu_write(pcp, nval); \ | 513 | __this_cpu_write(pcp, nval); \ |
| 514 | local_irq_restore(flags); \ | 514 | raw_local_irq_restore(flags); \ |
| 515 | ret__; \ | 515 | ret__; \ |
| 516 | }) | 516 | }) |
| 517 | 517 | ||
| @@ -544,10 +544,10 @@ do { \ | |||
| 544 | ({ \ | 544 | ({ \ |
| 545 | int ret__; \ | 545 | int ret__; \ |
| 546 | unsigned long flags; \ | 546 | unsigned long flags; \ |
| 547 | local_irq_save(flags); \ | 547 | raw_local_irq_save(flags); \ |
| 548 | ret__ = __this_cpu_generic_cmpxchg_double(pcp1, pcp2, \ | 548 | ret__ = __this_cpu_generic_cmpxchg_double(pcp1, pcp2, \ |
| 549 | oval1, oval2, nval1, nval2); \ | 549 | oval1, oval2, nval1, nval2); \ |
| 550 | local_irq_restore(flags); \ | 550 | raw_local_irq_restore(flags); \ |
| 551 | ret__; \ | 551 | ret__; \ |
| 552 | }) | 552 | }) |
| 553 | 553 | ||
| @@ -718,12 +718,13 @@ do { \ | |||
| 718 | # ifndef __this_cpu_add_return_8 | 718 | # ifndef __this_cpu_add_return_8 |
| 719 | # define __this_cpu_add_return_8(pcp, val) __this_cpu_generic_add_return(pcp, val) | 719 | # define __this_cpu_add_return_8(pcp, val) __this_cpu_generic_add_return(pcp, val) |
| 720 | # endif | 720 | # endif |
| 721 | # define __this_cpu_add_return(pcp, val) __pcpu_size_call_return2(this_cpu_add_return_, pcp, val) | 721 | # define __this_cpu_add_return(pcp, val) \ |
| 722 | __pcpu_size_call_return2(__this_cpu_add_return_, pcp, val) | ||
| 722 | #endif | 723 | #endif |
| 723 | 724 | ||
| 724 | #define __this_cpu_sub_return(pcp, val) this_cpu_add_return(pcp, -(val)) | 725 | #define __this_cpu_sub_return(pcp, val) __this_cpu_add_return(pcp, -(val)) |
| 725 | #define __this_cpu_inc_return(pcp) this_cpu_add_return(pcp, 1) | 726 | #define __this_cpu_inc_return(pcp) __this_cpu_add_return(pcp, 1) |
| 726 | #define __this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1) | 727 | #define __this_cpu_dec_return(pcp) __this_cpu_add_return(pcp, -1) |
| 727 | 728 | ||
| 728 | #define __this_cpu_generic_xchg(pcp, nval) \ | 729 | #define __this_cpu_generic_xchg(pcp, nval) \ |
| 729 | ({ typeof(pcp) ret__; \ | 730 | ({ typeof(pcp) ret__; \ |
diff --git a/include/linux/regset.h b/include/linux/regset.h index 8abee6556223..686f37327a49 100644 --- a/include/linux/regset.h +++ b/include/linux/regset.h | |||
| @@ -335,8 +335,11 @@ static inline int copy_regset_to_user(struct task_struct *target, | |||
| 335 | { | 335 | { |
| 336 | const struct user_regset *regset = &view->regsets[setno]; | 336 | const struct user_regset *regset = &view->regsets[setno]; |
| 337 | 337 | ||
| 338 | if (!regset->get) | ||
| 339 | return -EOPNOTSUPP; | ||
| 340 | |||
| 338 | if (!access_ok(VERIFY_WRITE, data, size)) | 341 | if (!access_ok(VERIFY_WRITE, data, size)) |
| 339 | return -EIO; | 342 | return -EFAULT; |
| 340 | 343 | ||
| 341 | return regset->get(target, regset, offset, size, NULL, data); | 344 | return regset->get(target, regset, offset, size, NULL, data); |
| 342 | } | 345 | } |
| @@ -358,8 +361,11 @@ static inline int copy_regset_from_user(struct task_struct *target, | |||
| 358 | { | 361 | { |
| 359 | const struct user_regset *regset = &view->regsets[setno]; | 362 | const struct user_regset *regset = &view->regsets[setno]; |
| 360 | 363 | ||
| 364 | if (!regset->set) | ||
| 365 | return -EOPNOTSUPP; | ||
| 366 | |||
| 361 | if (!access_ok(VERIFY_READ, data, size)) | 367 | if (!access_ok(VERIFY_READ, data, size)) |
| 362 | return -EIO; | 368 | return -EFAULT; |
| 363 | 369 | ||
| 364 | return regset->set(target, regset, offset, size, NULL, data); | 370 | return regset->set(target, regset, offset, size, NULL, data); |
| 365 | } | 371 | } |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 8e872ead88b5..577592ea0ea0 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
| @@ -602,6 +602,9 @@ struct tcamsg { | |||
| 602 | #define TCA_ACT_TAB 1 /* attr type must be >=1 */ | 602 | #define TCA_ACT_TAB 1 /* attr type must be >=1 */ |
| 603 | #define TCAA_MAX 1 | 603 | #define TCAA_MAX 1 |
| 604 | 604 | ||
| 605 | /* New extended info filters for IFLA_EXT_MASK */ | ||
| 606 | #define RTEXT_FILTER_VF (1 << 0) | ||
| 607 | |||
| 605 | /* End of information exported to user level */ | 608 | /* End of information exported to user level */ |
| 606 | 609 | ||
| 607 | #ifdef __KERNEL__ | 610 | #ifdef __KERNEL__ |
diff --git a/include/linux/signalfd.h b/include/linux/signalfd.h index 3ff4961da9b5..247399b2979a 100644 --- a/include/linux/signalfd.h +++ b/include/linux/signalfd.h | |||
| @@ -61,13 +61,16 @@ static inline void signalfd_notify(struct task_struct *tsk, int sig) | |||
| 61 | wake_up(&tsk->sighand->signalfd_wqh); | 61 | wake_up(&tsk->sighand->signalfd_wqh); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | extern void signalfd_cleanup(struct sighand_struct *sighand); | ||
| 65 | |||
| 64 | #else /* CONFIG_SIGNALFD */ | 66 | #else /* CONFIG_SIGNALFD */ |
| 65 | 67 | ||
| 66 | static inline void signalfd_notify(struct task_struct *tsk, int sig) { } | 68 | static inline void signalfd_notify(struct task_struct *tsk, int sig) { } |
| 67 | 69 | ||
| 70 | static inline void signalfd_cleanup(struct sighand_struct *sighand) { } | ||
| 71 | |||
| 68 | #endif /* CONFIG_SIGNALFD */ | 72 | #endif /* CONFIG_SIGNALFD */ |
| 69 | 73 | ||
| 70 | #endif /* __KERNEL__ */ | 74 | #endif /* __KERNEL__ */ |
| 71 | 75 | ||
| 72 | #endif /* _LINUX_SIGNALFD_H */ | 76 | #endif /* _LINUX_SIGNALFD_H */ |
| 73 | |||
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 50db9b04a552..ae86adee3746 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -1465,6 +1465,16 @@ static inline void skb_set_mac_header(struct sk_buff *skb, const int offset) | |||
| 1465 | } | 1465 | } |
| 1466 | #endif /* NET_SKBUFF_DATA_USES_OFFSET */ | 1466 | #endif /* NET_SKBUFF_DATA_USES_OFFSET */ |
| 1467 | 1467 | ||
| 1468 | static inline void skb_mac_header_rebuild(struct sk_buff *skb) | ||
| 1469 | { | ||
| 1470 | if (skb_mac_header_was_set(skb)) { | ||
| 1471 | const unsigned char *old_mac = skb_mac_header(skb); | ||
| 1472 | |||
| 1473 | skb_set_mac_header(skb, -skb->mac_len); | ||
| 1474 | memmove(skb_mac_header(skb), old_mac, skb->mac_len); | ||
| 1475 | } | ||
| 1476 | } | ||
| 1477 | |||
| 1468 | static inline int skb_checksum_start_offset(const struct sk_buff *skb) | 1478 | static inline int skb_checksum_start_offset(const struct sk_buff *skb) |
| 1469 | { | 1479 | { |
| 1470 | return skb->csum_start - skb_headroom(skb); | 1480 | return skb->csum_start - skb_headroom(skb); |
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h index abaad6ed9b83..4a82ca0bb0b2 100644 --- a/include/net/bluetooth/bluetooth.h +++ b/include/net/bluetooth/bluetooth.h | |||
| @@ -256,4 +256,6 @@ void l2cap_exit(void); | |||
| 256 | int sco_init(void); | 256 | int sco_init(void); |
| 257 | void sco_exit(void); | 257 | void sco_exit(void); |
| 258 | 258 | ||
| 259 | void bt_sock_reclassify_lock(struct sock *sk, int proto); | ||
| 260 | |||
| 259 | #endif /* __BLUETOOTH_H */ | 261 | #endif /* __BLUETOOTH_H */ |
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index ea9231f4935f..453893b3120e 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
| @@ -540,7 +540,7 @@ void hci_conn_put_device(struct hci_conn *conn); | |||
| 540 | static inline void hci_conn_hold(struct hci_conn *conn) | 540 | static inline void hci_conn_hold(struct hci_conn *conn) |
| 541 | { | 541 | { |
| 542 | atomic_inc(&conn->refcnt); | 542 | atomic_inc(&conn->refcnt); |
| 543 | cancel_delayed_work_sync(&conn->disc_work); | 543 | cancel_delayed_work(&conn->disc_work); |
| 544 | } | 544 | } |
| 545 | 545 | ||
| 546 | static inline void hci_conn_put(struct hci_conn *conn) | 546 | static inline void hci_conn_put(struct hci_conn *conn) |
| @@ -559,9 +559,9 @@ static inline void hci_conn_put(struct hci_conn *conn) | |||
| 559 | } else { | 559 | } else { |
| 560 | timeo = msecs_to_jiffies(10); | 560 | timeo = msecs_to_jiffies(10); |
| 561 | } | 561 | } |
| 562 | cancel_delayed_work_sync(&conn->disc_work); | 562 | cancel_delayed_work(&conn->disc_work); |
| 563 | queue_delayed_work(conn->hdev->workqueue, | 563 | queue_delayed_work(conn->hdev->workqueue, |
| 564 | &conn->disc_work, jiffies + timeo); | 564 | &conn->disc_work, timeo); |
| 565 | } | 565 | } |
| 566 | } | 566 | } |
| 567 | 567 | ||
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 68f589150692..b1664ed884e6 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
| @@ -611,7 +611,7 @@ static inline void l2cap_set_timer(struct l2cap_chan *chan, | |||
| 611 | { | 611 | { |
| 612 | BT_DBG("chan %p state %d timeout %ld", chan, chan->state, timeout); | 612 | BT_DBG("chan %p state %d timeout %ld", chan, chan->state, timeout); |
| 613 | 613 | ||
| 614 | if (!__cancel_delayed_work(work)) | 614 | if (!cancel_delayed_work(work)) |
| 615 | l2cap_chan_hold(chan); | 615 | l2cap_chan_hold(chan); |
| 616 | schedule_delayed_work(work, timeout); | 616 | schedule_delayed_work(work, timeout); |
| 617 | } | 617 | } |
| @@ -619,20 +619,20 @@ static inline void l2cap_set_timer(struct l2cap_chan *chan, | |||
| 619 | static inline void l2cap_clear_timer(struct l2cap_chan *chan, | 619 | static inline void l2cap_clear_timer(struct l2cap_chan *chan, |
| 620 | struct delayed_work *work) | 620 | struct delayed_work *work) |
| 621 | { | 621 | { |
| 622 | if (__cancel_delayed_work(work)) | 622 | if (cancel_delayed_work(work)) |
| 623 | l2cap_chan_put(chan); | 623 | l2cap_chan_put(chan); |
| 624 | } | 624 | } |
| 625 | 625 | ||
| 626 | #define __set_chan_timer(c, t) l2cap_set_timer(c, &c->chan_timer, (t)) | 626 | #define __set_chan_timer(c, t) l2cap_set_timer(c, &c->chan_timer, (t)) |
| 627 | #define __clear_chan_timer(c) l2cap_clear_timer(c, &c->chan_timer) | 627 | #define __clear_chan_timer(c) l2cap_clear_timer(c, &c->chan_timer) |
| 628 | #define __set_retrans_timer(c) l2cap_set_timer(c, &c->retrans_timer, \ | 628 | #define __set_retrans_timer(c) l2cap_set_timer(c, &c->retrans_timer, \ |
| 629 | L2CAP_DEFAULT_RETRANS_TO); | 629 | msecs_to_jiffies(L2CAP_DEFAULT_RETRANS_TO)); |
| 630 | #define __clear_retrans_timer(c) l2cap_clear_timer(c, &c->retrans_timer) | 630 | #define __clear_retrans_timer(c) l2cap_clear_timer(c, &c->retrans_timer) |
| 631 | #define __set_monitor_timer(c) l2cap_set_timer(c, &c->monitor_timer, \ | 631 | #define __set_monitor_timer(c) l2cap_set_timer(c, &c->monitor_timer, \ |
| 632 | L2CAP_DEFAULT_MONITOR_TO); | 632 | msecs_to_jiffies(L2CAP_DEFAULT_MONITOR_TO)); |
| 633 | #define __clear_monitor_timer(c) l2cap_clear_timer(c, &c->monitor_timer) | 633 | #define __clear_monitor_timer(c) l2cap_clear_timer(c, &c->monitor_timer) |
| 634 | #define __set_ack_timer(c) l2cap_set_timer(c, &chan->ack_timer, \ | 634 | #define __set_ack_timer(c) l2cap_set_timer(c, &chan->ack_timer, \ |
| 635 | L2CAP_DEFAULT_ACK_TO); | 635 | msecs_to_jiffies(L2CAP_DEFAULT_ACK_TO)); |
| 636 | #define __clear_ack_timer(c) l2cap_clear_timer(c, &c->ack_timer) | 636 | #define __clear_ack_timer(c) l2cap_clear_timer(c, &c->ack_timer) |
| 637 | 637 | ||
| 638 | static inline int __seq_offset(struct l2cap_chan *chan, __u16 seq1, __u16 seq2) | 638 | static inline int __seq_offset(struct l2cap_chan *chan, __u16 seq1, __u16 seq2) |
| @@ -834,7 +834,7 @@ int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid); | |||
| 834 | struct l2cap_chan *l2cap_chan_create(struct sock *sk); | 834 | struct l2cap_chan *l2cap_chan_create(struct sock *sk); |
| 835 | void l2cap_chan_close(struct l2cap_chan *chan, int reason); | 835 | void l2cap_chan_close(struct l2cap_chan *chan, int reason); |
| 836 | void l2cap_chan_destroy(struct l2cap_chan *chan); | 836 | void l2cap_chan_destroy(struct l2cap_chan *chan); |
| 837 | inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, | 837 | int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, |
| 838 | bdaddr_t *dst); | 838 | bdaddr_t *dst); |
| 839 | int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len, | 839 | int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len, |
| 840 | u32 priority); | 840 | u32 priority); |
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h index 8a2b0ae7dbd2..ab86036bbf0c 100644 --- a/include/net/netfilter/nf_conntrack.h +++ b/include/net/netfilter/nf_conntrack.h | |||
| @@ -209,7 +209,7 @@ extern struct nf_conntrack_tuple_hash * | |||
| 209 | __nf_conntrack_find(struct net *net, u16 zone, | 209 | __nf_conntrack_find(struct net *net, u16 zone, |
| 210 | const struct nf_conntrack_tuple *tuple); | 210 | const struct nf_conntrack_tuple *tuple); |
| 211 | 211 | ||
| 212 | extern void nf_conntrack_hash_insert(struct nf_conn *ct); | 212 | extern int nf_conntrack_hash_check_insert(struct nf_conn *ct); |
| 213 | extern void nf_ct_delete_from_lists(struct nf_conn *ct); | 213 | extern void nf_ct_delete_from_lists(struct nf_conn *ct); |
| 214 | extern void nf_ct_insert_dying_list(struct nf_conn *ct); | 214 | extern void nf_ct_insert_dying_list(struct nf_conn *ct); |
| 215 | 215 | ||
diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h index 678f1ffaf843..370293901971 100644 --- a/include/net/rtnetlink.h +++ b/include/net/rtnetlink.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *); | 7 | typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *); |
| 8 | typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); | 8 | typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); |
| 9 | typedef u16 (*rtnl_calcit_func)(struct sk_buff *); | 9 | typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *); |
| 10 | 10 | ||
| 11 | extern int __rtnl_register(int protocol, int msgtype, | 11 | extern int __rtnl_register(int protocol, int msgtype, |
| 12 | rtnl_doit_func, rtnl_dumpit_func, | 12 | rtnl_doit_func, rtnl_dumpit_func, |
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 6ba596b07a72..e33ed1bfa113 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
| @@ -370,56 +370,6 @@ TRACE_EVENT(sched_stat_runtime, | |||
| 370 | (unsigned long long)__entry->vruntime) | 370 | (unsigned long long)__entry->vruntime) |
| 371 | ); | 371 | ); |
| 372 | 372 | ||
| 373 | #ifdef CREATE_TRACE_POINTS | ||
| 374 | static inline u64 trace_get_sleeptime(struct task_struct *tsk) | ||
| 375 | { | ||
| 376 | #ifdef CONFIG_SCHEDSTATS | ||
| 377 | u64 block, sleep; | ||
| 378 | |||
| 379 | block = tsk->se.statistics.block_start; | ||
| 380 | sleep = tsk->se.statistics.sleep_start; | ||
| 381 | tsk->se.statistics.block_start = 0; | ||
| 382 | tsk->se.statistics.sleep_start = 0; | ||
| 383 | |||
| 384 | return block ? block : sleep ? sleep : 0; | ||
| 385 | #else | ||
| 386 | return 0; | ||
| 387 | #endif | ||
| 388 | } | ||
| 389 | #endif | ||
| 390 | |||
| 391 | /* | ||
| 392 | * Tracepoint for accounting sleeptime (time the task is sleeping | ||
| 393 | * or waiting for I/O). | ||
| 394 | */ | ||
| 395 | TRACE_EVENT(sched_stat_sleeptime, | ||
| 396 | |||
| 397 | TP_PROTO(struct task_struct *tsk, u64 now), | ||
| 398 | |||
| 399 | TP_ARGS(tsk, now), | ||
| 400 | |||
| 401 | TP_STRUCT__entry( | ||
| 402 | __array( char, comm, TASK_COMM_LEN ) | ||
| 403 | __field( pid_t, pid ) | ||
| 404 | __field( u64, sleeptime ) | ||
| 405 | ), | ||
| 406 | |||
| 407 | TP_fast_assign( | ||
| 408 | memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); | ||
| 409 | __entry->pid = tsk->pid; | ||
| 410 | __entry->sleeptime = trace_get_sleeptime(tsk); | ||
| 411 | __entry->sleeptime = __entry->sleeptime ? | ||
| 412 | now - __entry->sleeptime : 0; | ||
| 413 | ) | ||
| 414 | TP_perf_assign( | ||
| 415 | __perf_count(__entry->sleeptime); | ||
| 416 | ), | ||
| 417 | |||
| 418 | TP_printk("comm=%s pid=%d sleeptime=%Lu [ns]", | ||
| 419 | __entry->comm, __entry->pid, | ||
| 420 | (unsigned long long)__entry->sleeptime) | ||
| 421 | ); | ||
| 422 | |||
| 423 | /* | 373 | /* |
| 424 | * Tracepoint for showing priority inheritance modifying a tasks | 374 | * Tracepoint for showing priority inheritance modifying a tasks |
| 425 | * priority. | 375 | * priority. |
