diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/dcache.h | 1 | ||||
| -rw-r--r-- | include/linux/inetdevice.h | 34 | ||||
| -rw-r--r-- | include/linux/ipv6.h | 1 | ||||
| -rw-r--r-- | include/linux/irqchip/mmp.h | 6 | ||||
| -rw-r--r-- | include/linux/mlx5/device.h | 22 | ||||
| -rw-r--r-- | include/linux/mlx5/driver.h | 7 | ||||
| -rw-r--r-- | include/linux/mm_types.h | 1 | ||||
| -rw-r--r-- | include/linux/sched.h | 6 | ||||
| -rw-r--r-- | include/linux/spinlock.h | 14 | ||||
| -rw-r--r-- | include/linux/swapops.h | 2 | ||||
| -rw-r--r-- | include/linux/syscalls.h | 5 | ||||
| -rw-r--r-- | include/linux/wait.h | 57 |
12 files changed, 103 insertions, 53 deletions
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index b90337c9d468..4a12532da8c4 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
| @@ -336,6 +336,7 @@ extern int d_validate(struct dentry *, struct dentry *); | |||
| 336 | * helper function for dentry_operations.d_dname() members | 336 | * helper function for dentry_operations.d_dname() members |
| 337 | */ | 337 | */ |
| 338 | extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); | 338 | extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); |
| 339 | extern char *simple_dname(struct dentry *, char *, int); | ||
| 339 | 340 | ||
| 340 | extern char *__d_path(const struct path *, const struct path *, char *, int); | 341 | extern char *__d_path(const struct path *, const struct path *, char *, int); |
| 341 | extern char *d_absolute_path(const struct path *, char *, int); | 342 | extern char *d_absolute_path(const struct path *, char *, int); |
diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index b99cd23f3474..79640e015a86 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h | |||
| @@ -5,45 +5,13 @@ | |||
| 5 | 5 | ||
| 6 | #include <linux/bitmap.h> | 6 | #include <linux/bitmap.h> |
| 7 | #include <linux/if.h> | 7 | #include <linux/if.h> |
| 8 | #include <linux/ip.h> | ||
| 8 | #include <linux/netdevice.h> | 9 | #include <linux/netdevice.h> |
| 9 | #include <linux/rcupdate.h> | 10 | #include <linux/rcupdate.h> |
| 10 | #include <linux/timer.h> | 11 | #include <linux/timer.h> |
| 11 | #include <linux/sysctl.h> | 12 | #include <linux/sysctl.h> |
| 12 | #include <linux/rtnetlink.h> | 13 | #include <linux/rtnetlink.h> |
| 13 | 14 | ||
| 14 | enum | ||
| 15 | { | ||
| 16 | IPV4_DEVCONF_FORWARDING=1, | ||
| 17 | IPV4_DEVCONF_MC_FORWARDING, | ||
| 18 | IPV4_DEVCONF_PROXY_ARP, | ||
| 19 | IPV4_DEVCONF_ACCEPT_REDIRECTS, | ||
| 20 | IPV4_DEVCONF_SECURE_REDIRECTS, | ||
| 21 | IPV4_DEVCONF_SEND_REDIRECTS, | ||
| 22 | IPV4_DEVCONF_SHARED_MEDIA, | ||
| 23 | IPV4_DEVCONF_RP_FILTER, | ||
| 24 | IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE, | ||
| 25 | IPV4_DEVCONF_BOOTP_RELAY, | ||
| 26 | IPV4_DEVCONF_LOG_MARTIANS, | ||
| 27 | IPV4_DEVCONF_TAG, | ||
| 28 | IPV4_DEVCONF_ARPFILTER, | ||
| 29 | IPV4_DEVCONF_MEDIUM_ID, | ||
| 30 | IPV4_DEVCONF_NOXFRM, | ||
| 31 | IPV4_DEVCONF_NOPOLICY, | ||
| 32 | IPV4_DEVCONF_FORCE_IGMP_VERSION, | ||
| 33 | IPV4_DEVCONF_ARP_ANNOUNCE, | ||
| 34 | IPV4_DEVCONF_ARP_IGNORE, | ||
| 35 | IPV4_DEVCONF_PROMOTE_SECONDARIES, | ||
| 36 | IPV4_DEVCONF_ARP_ACCEPT, | ||
| 37 | IPV4_DEVCONF_ARP_NOTIFY, | ||
| 38 | IPV4_DEVCONF_ACCEPT_LOCAL, | ||
| 39 | IPV4_DEVCONF_SRC_VMARK, | ||
| 40 | IPV4_DEVCONF_PROXY_ARP_PVLAN, | ||
| 41 | IPV4_DEVCONF_ROUTE_LOCALNET, | ||
| 42 | __IPV4_DEVCONF_MAX | ||
| 43 | }; | ||
| 44 | |||
| 45 | #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1) | ||
| 46 | |||
| 47 | struct ipv4_devconf { | 15 | struct ipv4_devconf { |
| 48 | void *sysctl; | 16 | void *sysctl; |
| 49 | int data[IPV4_DEVCONF_MAX]; | 17 | int data[IPV4_DEVCONF_MAX]; |
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 850e95bc766c..b8b7dc755752 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
| @@ -101,6 +101,7 @@ struct inet6_skb_parm { | |||
| 101 | #define IP6SKB_FORWARDED 2 | 101 | #define IP6SKB_FORWARDED 2 |
| 102 | #define IP6SKB_REROUTED 4 | 102 | #define IP6SKB_REROUTED 4 |
| 103 | #define IP6SKB_ROUTERALERT 8 | 103 | #define IP6SKB_ROUTERALERT 8 |
| 104 | #define IP6SKB_FRAGMENTED 16 | ||
| 104 | }; | 105 | }; |
| 105 | 106 | ||
| 106 | #define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb)) | 107 | #define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb)) |
diff --git a/include/linux/irqchip/mmp.h b/include/linux/irqchip/mmp.h new file mode 100644 index 000000000000..c78a8921185d --- /dev/null +++ b/include/linux/irqchip/mmp.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #ifndef __IRQCHIP_MMP_H | ||
| 2 | #define __IRQCHIP_MMP_H | ||
| 3 | |||
| 4 | extern struct irq_chip icu_irq_chip; | ||
| 5 | |||
| 6 | #endif /* __IRQCHIP_MMP_H */ | ||
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index 737685e9e852..68029b30c3dc 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
| @@ -309,21 +309,20 @@ struct mlx5_hca_cap { | |||
| 309 | __be16 max_desc_sz_rq; | 309 | __be16 max_desc_sz_rq; |
| 310 | u8 rsvd21[2]; | 310 | u8 rsvd21[2]; |
| 311 | __be16 max_desc_sz_sq_dc; | 311 | __be16 max_desc_sz_sq_dc; |
| 312 | u8 rsvd22[4]; | 312 | __be32 max_qp_mcg; |
| 313 | __be16 max_qp_mcg; | 313 | u8 rsvd22[3]; |
| 314 | u8 rsvd23; | ||
| 315 | u8 log_max_mcg; | 314 | u8 log_max_mcg; |
| 316 | u8 rsvd24; | 315 | u8 rsvd23; |
| 317 | u8 log_max_pd; | 316 | u8 log_max_pd; |
| 318 | u8 rsvd25; | 317 | u8 rsvd24; |
| 319 | u8 log_max_xrcd; | 318 | u8 log_max_xrcd; |
| 320 | u8 rsvd26[42]; | 319 | u8 rsvd25[42]; |
| 321 | __be16 log_uar_page_sz; | 320 | __be16 log_uar_page_sz; |
| 322 | u8 rsvd27[28]; | 321 | u8 rsvd26[28]; |
| 323 | u8 log_msx_atomic_size_qp; | 322 | u8 log_msx_atomic_size_qp; |
| 324 | u8 rsvd28[2]; | 323 | u8 rsvd27[2]; |
| 325 | u8 log_msx_atomic_size_dc; | 324 | u8 log_msx_atomic_size_dc; |
| 326 | u8 rsvd29[76]; | 325 | u8 rsvd28[76]; |
| 327 | }; | 326 | }; |
| 328 | 327 | ||
| 329 | 328 | ||
| @@ -472,9 +471,8 @@ struct mlx5_eqe_cmd { | |||
| 472 | struct mlx5_eqe_page_req { | 471 | struct mlx5_eqe_page_req { |
| 473 | u8 rsvd0[2]; | 472 | u8 rsvd0[2]; |
| 474 | __be16 func_id; | 473 | __be16 func_id; |
| 475 | u8 rsvd1[2]; | 474 | __be32 num_pages; |
| 476 | __be16 num_pages; | 475 | __be32 rsvd1[5]; |
| 477 | __be32 rsvd2[5]; | ||
| 478 | }; | 476 | }; |
| 479 | 477 | ||
| 480 | union ev_data { | 478 | union ev_data { |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 2aa258b0ced1..8888381fc150 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
| @@ -358,7 +358,7 @@ struct mlx5_caps { | |||
| 358 | u32 reserved_lkey; | 358 | u32 reserved_lkey; |
| 359 | u8 local_ca_ack_delay; | 359 | u8 local_ca_ack_delay; |
| 360 | u8 log_max_mcg; | 360 | u8 log_max_mcg; |
| 361 | u16 max_qp_mcg; | 361 | u32 max_qp_mcg; |
| 362 | int min_page_sz; | 362 | int min_page_sz; |
| 363 | }; | 363 | }; |
| 364 | 364 | ||
| @@ -691,7 +691,7 @@ void mlx5_pagealloc_cleanup(struct mlx5_core_dev *dev); | |||
| 691 | int mlx5_pagealloc_start(struct mlx5_core_dev *dev); | 691 | int mlx5_pagealloc_start(struct mlx5_core_dev *dev); |
| 692 | void mlx5_pagealloc_stop(struct mlx5_core_dev *dev); | 692 | void mlx5_pagealloc_stop(struct mlx5_core_dev *dev); |
| 693 | void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id, | 693 | void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id, |
| 694 | s16 npages); | 694 | s32 npages); |
| 695 | int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev, int boot); | 695 | int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev, int boot); |
| 696 | int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev); | 696 | int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev); |
| 697 | void mlx5_register_debugfs(void); | 697 | void mlx5_register_debugfs(void); |
| @@ -731,9 +731,6 @@ void mlx5_cq_debugfs_cleanup(struct mlx5_core_dev *dev); | |||
| 731 | int mlx5_db_alloc(struct mlx5_core_dev *dev, struct mlx5_db *db); | 731 | int mlx5_db_alloc(struct mlx5_core_dev *dev, struct mlx5_db *db); |
| 732 | void mlx5_db_free(struct mlx5_core_dev *dev, struct mlx5_db *db); | 732 | void mlx5_db_free(struct mlx5_core_dev *dev, struct mlx5_db *db); |
| 733 | 733 | ||
| 734 | typedef void (*health_handler_t)(struct pci_dev *pdev, struct health_buffer __iomem *buf, int size); | ||
| 735 | int mlx5_register_health_report_handler(health_handler_t handler); | ||
| 736 | void mlx5_unregister_health_report_handler(void); | ||
| 737 | const char *mlx5_command_str(int command); | 734 | const char *mlx5_command_str(int command); |
| 738 | int mlx5_cmdif_debugfs_init(struct mlx5_core_dev *dev); | 735 | int mlx5_cmdif_debugfs_init(struct mlx5_core_dev *dev); |
| 739 | void mlx5_cmdif_debugfs_cleanup(struct mlx5_core_dev *dev); | 736 | void mlx5_cmdif_debugfs_cleanup(struct mlx5_core_dev *dev); |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index fb425aa16c01..faf4b7c1ad12 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -332,6 +332,7 @@ struct mm_struct { | |||
| 332 | unsigned long pgoff, unsigned long flags); | 332 | unsigned long pgoff, unsigned long flags); |
| 333 | #endif | 333 | #endif |
| 334 | unsigned long mmap_base; /* base of mmap area */ | 334 | unsigned long mmap_base; /* base of mmap area */ |
| 335 | unsigned long mmap_legacy_base; /* base of mmap area in bottom-up allocations */ | ||
| 335 | unsigned long task_size; /* size of task vm space */ | 336 | unsigned long task_size; /* size of task vm space */ |
| 336 | unsigned long highest_vm_end; /* highest vma end address */ | 337 | unsigned long highest_vm_end; /* highest vma end address */ |
| 337 | pgd_t * pgd; | 338 | pgd_t * pgd; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index d722490da030..078066daffd4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1532,6 +1532,8 @@ static inline pid_t task_pgrp_nr(struct task_struct *tsk) | |||
| 1532 | * Test if a process is not yet dead (at most zombie state) | 1532 | * Test if a process is not yet dead (at most zombie state) |
| 1533 | * If pid_alive fails, then pointers within the task structure | 1533 | * If pid_alive fails, then pointers within the task structure |
| 1534 | * can be stale and must not be dereferenced. | 1534 | * can be stale and must not be dereferenced. |
| 1535 | * | ||
| 1536 | * Return: 1 if the process is alive. 0 otherwise. | ||
| 1535 | */ | 1537 | */ |
| 1536 | static inline int pid_alive(struct task_struct *p) | 1538 | static inline int pid_alive(struct task_struct *p) |
| 1537 | { | 1539 | { |
| @@ -1543,6 +1545,8 @@ static inline int pid_alive(struct task_struct *p) | |||
| 1543 | * @tsk: Task structure to be checked. | 1545 | * @tsk: Task structure to be checked. |
| 1544 | * | 1546 | * |
| 1545 | * Check if a task structure is the first user space task the kernel created. | 1547 | * Check if a task structure is the first user space task the kernel created. |
| 1548 | * | ||
| 1549 | * Return: 1 if the task structure is init. 0 otherwise. | ||
| 1546 | */ | 1550 | */ |
| 1547 | static inline int is_global_init(struct task_struct *tsk) | 1551 | static inline int is_global_init(struct task_struct *tsk) |
| 1548 | { | 1552 | { |
| @@ -1894,6 +1898,8 @@ extern struct task_struct *idle_task(int cpu); | |||
| 1894 | /** | 1898 | /** |
| 1895 | * is_idle_task - is the specified task an idle task? | 1899 | * is_idle_task - is the specified task an idle task? |
| 1896 | * @p: the task in question. | 1900 | * @p: the task in question. |
| 1901 | * | ||
| 1902 | * Return: 1 if @p is an idle task. 0 otherwise. | ||
| 1897 | */ | 1903 | */ |
| 1898 | static inline bool is_idle_task(const struct task_struct *p) | 1904 | static inline bool is_idle_task(const struct task_struct *p) |
| 1899 | { | 1905 | { |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 7d537ced949a..75f34949d9ab 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
| @@ -117,9 +117,17 @@ do { \ | |||
| 117 | #endif /*arch_spin_is_contended*/ | 117 | #endif /*arch_spin_is_contended*/ |
| 118 | #endif | 118 | #endif |
| 119 | 119 | ||
| 120 | /* The lock does not imply full memory barrier. */ | 120 | /* |
| 121 | #ifndef ARCH_HAS_SMP_MB_AFTER_LOCK | 121 | * Despite its name it doesn't necessarily has to be a full barrier. |
| 122 | static inline void smp_mb__after_lock(void) { smp_mb(); } | 122 | * It should only guarantee that a STORE before the critical section |
| 123 | * can not be reordered with a LOAD inside this section. | ||
| 124 | * spin_lock() is the one-way barrier, this LOAD can not escape out | ||
| 125 | * of the region. So the default implementation simply ensures that | ||
| 126 | * a STORE can not move into the critical section, smp_wmb() should | ||
| 127 | * serialize it with another STORE done by spin_lock(). | ||
| 128 | */ | ||
| 129 | #ifndef smp_mb__before_spinlock | ||
| 130 | #define smp_mb__before_spinlock() smp_wmb() | ||
| 123 | #endif | 131 | #endif |
| 124 | 132 | ||
| 125 | /** | 133 | /** |
diff --git a/include/linux/swapops.h b/include/linux/swapops.h index c5fd30d2a415..8d4fa82bfb91 100644 --- a/include/linux/swapops.h +++ b/include/linux/swapops.h | |||
| @@ -67,6 +67,8 @@ static inline swp_entry_t pte_to_swp_entry(pte_t pte) | |||
| 67 | swp_entry_t arch_entry; | 67 | swp_entry_t arch_entry; |
| 68 | 68 | ||
| 69 | BUG_ON(pte_file(pte)); | 69 | BUG_ON(pte_file(pte)); |
| 70 | if (pte_swp_soft_dirty(pte)) | ||
| 71 | pte = pte_swp_clear_soft_dirty(pte); | ||
| 70 | arch_entry = __pte_to_swp_entry(pte); | 72 | arch_entry = __pte_to_swp_entry(pte); |
| 71 | return swp_entry(__swp_type(arch_entry), __swp_offset(arch_entry)); | 73 | return swp_entry(__swp_type(arch_entry), __swp_offset(arch_entry)); |
| 72 | } | 74 | } |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 4147d700a293..84662ecc7b51 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -802,9 +802,14 @@ asmlinkage long sys_vfork(void); | |||
| 802 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int, | 802 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int, |
| 803 | int __user *); | 803 | int __user *); |
| 804 | #else | 804 | #else |
| 805 | #ifdef CONFIG_CLONE_BACKWARDS3 | ||
| 806 | asmlinkage long sys_clone(unsigned long, unsigned long, int, int __user *, | ||
| 807 | int __user *, int); | ||
| 808 | #else | ||
| 805 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, | 809 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, |
| 806 | int __user *, int); | 810 | int __user *, int); |
| 807 | #endif | 811 | #endif |
| 812 | #endif | ||
| 808 | 813 | ||
| 809 | asmlinkage long sys_execve(const char __user *filename, | 814 | asmlinkage long sys_execve(const char __user *filename, |
| 810 | const char __user *const __user *argv, | 815 | const char __user *const __user *argv, |
diff --git a/include/linux/wait.h b/include/linux/wait.h index f487a4750b7f..a67fc1635592 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
| @@ -811,6 +811,63 @@ do { \ | |||
| 811 | __ret; \ | 811 | __ret; \ |
| 812 | }) | 812 | }) |
| 813 | 813 | ||
| 814 | #define __wait_event_interruptible_lock_irq_timeout(wq, condition, \ | ||
| 815 | lock, ret) \ | ||
| 816 | do { \ | ||
| 817 | DEFINE_WAIT(__wait); \ | ||
| 818 | \ | ||
| 819 | for (;;) { \ | ||
| 820 | prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE); \ | ||
| 821 | if (condition) \ | ||
| 822 | break; \ | ||
| 823 | if (signal_pending(current)) { \ | ||
| 824 | ret = -ERESTARTSYS; \ | ||
| 825 | break; \ | ||
| 826 | } \ | ||
| 827 | spin_unlock_irq(&lock); \ | ||
| 828 | ret = schedule_timeout(ret); \ | ||
| 829 | spin_lock_irq(&lock); \ | ||
| 830 | if (!ret) \ | ||
| 831 | break; \ | ||
| 832 | } \ | ||
| 833 | finish_wait(&wq, &__wait); \ | ||
| 834 | } while (0) | ||
| 835 | |||
| 836 | /** | ||
| 837 | * wait_event_interruptible_lock_irq_timeout - sleep until a condition gets true or a timeout elapses. | ||
| 838 | * The condition is checked under the lock. This is expected | ||
| 839 | * to be called with the lock taken. | ||
| 840 | * @wq: the waitqueue to wait on | ||
| 841 | * @condition: a C expression for the event to wait for | ||
| 842 | * @lock: a locked spinlock_t, which will be released before schedule() | ||
| 843 | * and reacquired afterwards. | ||
| 844 | * @timeout: timeout, in jiffies | ||
| 845 | * | ||
| 846 | * The process is put to sleep (TASK_INTERRUPTIBLE) until the | ||
| 847 | * @condition evaluates to true or signal is received. The @condition is | ||
| 848 | * checked each time the waitqueue @wq is woken up. | ||
| 849 | * | ||
| 850 | * wake_up() has to be called after changing any variable that could | ||
| 851 | * change the result of the wait condition. | ||
| 852 | * | ||
| 853 | * This is supposed to be called while holding the lock. The lock is | ||
| 854 | * dropped before going to sleep and is reacquired afterwards. | ||
| 855 | * | ||
| 856 | * The function returns 0 if the @timeout elapsed, -ERESTARTSYS if it | ||
| 857 | * was interrupted by a signal, and the remaining jiffies otherwise | ||
| 858 | * if the condition evaluated to true before the timeout elapsed. | ||
| 859 | */ | ||
| 860 | #define wait_event_interruptible_lock_irq_timeout(wq, condition, lock, \ | ||
| 861 | timeout) \ | ||
| 862 | ({ \ | ||
| 863 | int __ret = timeout; \ | ||
| 864 | \ | ||
| 865 | if (!(condition)) \ | ||
| 866 | __wait_event_interruptible_lock_irq_timeout( \ | ||
| 867 | wq, condition, lock, __ret); \ | ||
| 868 | __ret; \ | ||
| 869 | }) | ||
| 870 | |||
| 814 | 871 | ||
| 815 | /* | 872 | /* |
| 816 | * These are the old interfaces to sleep waiting for an event. | 873 | * These are the old interfaces to sleep waiting for an event. |
